Ho letto sul giornale che i Vigili Urbani di Firenze hanno a disposizione un sistema automatico di lettura delle targhe automobilistiche in modo da interrogare poi un database della motorizzazione per elevare multe...mi sono chiesto...quanto e' complicato questo metodo??
Avevo letto che la libreria OpenCV permetteva di fare il riconoscimento automatico ma frugando ho trovato un prodotto gia' fatto ovvero OpenALPR,,vale la pena provarlo facendo una prova veloce
(ps. per motivi di privacy le targhe sono oscurate, fidatevi che i risultati sono corrispondenti alla realta')
Fornendo all'algoritmo questa foto
Si ha come risultato questa lista. Il primo candidato, quello con il punteggio piu' alto, corrisponde al vero numero di targa.
Non tutte le immagini forniscono dati corretti e per assurdo se si fotografa una targa in primissimo piano l'algoritmo fallisce miseramente
giovedì 29 marzo 2018
mercoledì 28 marzo 2018
Frecce Tricolori su Firenze 28 Marzo 2018
per cercare di fare partire il tempo la registrazione sbirciavo su un cellulare FlightRadar24 nella speranza che gli aerei delle Frecce avessero i transponder accesi....no...i militari a quanto pare non usano questo sistema ....in ogni caso ho avuto l'indicazione che la pattuglia era in zona quando un volo civile ha iniziato un circuito di attesa prima di entrare nell'area fiorentina
lunedì 26 marzo 2018
Immagini Raw su Gimp ed Android
Scattare una foto con un telefono cellulare e' semplice, scattare una foto con una resa cromatica soddisfacente non e' banale.
Per prima cosa si deve scattare una foto salvando i dati in formato Raw. Cio' non e' possibile con tutte le fotocamere dei telefoni (per quelli piu' costosi in genere si') e bisogna in ogni caso appoggiarci ad applicazioni esterne come AZ Camera (una delle poche che permette il salvataggio raw in modo gratuito). Lo scatto avra' una estensione .dng (il formato DNG non e' esattamente coincidente con il formato RAW ma per quello che seguira' non ci sono significative differenze) ed avra' la dimensione di qualche decina di Mb
Per avere dei colori fedeli si deve includere nell'immagine anche una tavola dei colori di riferimento come la CheckerColor di X-Rite. Si tratta di un oggetto molto costoso, sul centinaio di euro al momento, che e' formato da 24 mattonelle di colore omogeneo e calibrato
Se si include la tavola di riferimento nell'immagine si puo' poi usare il software ColorChecker Camera Calibration che elabora l'immagine, trova il riferimento e crea un file .dcp di riferimento per la fotocamera (attenzione, se la foto e' sovraesposta il software non funziona)
A questo punto con il programma dpc2icc si puo' convertire il profilo camera in .icc, il formato desiderato da Gimp. (attenzione: per la conversione e' necessario inserire la temperatura di colore)
Di default Gimp non sa gestire i file raw ed e' necessario installare il pluging ufraw. Scaricando pero' questo pacchetto si trova Gimp con gia' incluso il pacchetto ufraw. Aprendo un file .dng si apre in automatico ufraw
Da qui si possono impostare le impostazioni della camera importando il file .icc. Premendo Ok l'immagine corretta viene quindi inviata a Gimp per le successive modifiche
A questo punto non e' finita....avere una foto cromaticamente calibrata non vuol dire che riusciamo a vederla a monitor con i colori giusti perche' anche il monitor (o lo schermo del telefono) deve essere calibrato mediante apposite applicazioni (tipo ColorTrue di X-Rite per Android) ed appositi dispositivi hardware chiamati colorimetri (tipo ColorMunki X-Rite del costo di un centinaio di euro)
In conclusione ottenere i colori corretti su PC o Android e' piuttosto costoso....
Per prima cosa si deve scattare una foto salvando i dati in formato Raw. Cio' non e' possibile con tutte le fotocamere dei telefoni (per quelli piu' costosi in genere si') e bisogna in ogni caso appoggiarci ad applicazioni esterne come AZ Camera (una delle poche che permette il salvataggio raw in modo gratuito). Lo scatto avra' una estensione .dng (il formato DNG non e' esattamente coincidente con il formato RAW ma per quello che seguira' non ci sono significative differenze) ed avra' la dimensione di qualche decina di Mb
Per avere dei colori fedeli si deve includere nell'immagine anche una tavola dei colori di riferimento come la CheckerColor di X-Rite. Si tratta di un oggetto molto costoso, sul centinaio di euro al momento, che e' formato da 24 mattonelle di colore omogeneo e calibrato
Se si include la tavola di riferimento nell'immagine si puo' poi usare il software ColorChecker Camera Calibration che elabora l'immagine, trova il riferimento e crea un file .dcp di riferimento per la fotocamera (attenzione, se la foto e' sovraesposta il software non funziona)
A questo punto con il programma dpc2icc si puo' convertire il profilo camera in .icc, il formato desiderato da Gimp. (attenzione: per la conversione e' necessario inserire la temperatura di colore)
Di default Gimp non sa gestire i file raw ed e' necessario installare il pluging ufraw. Scaricando pero' questo pacchetto si trova Gimp con gia' incluso il pacchetto ufraw. Aprendo un file .dng si apre in automatico ufraw
A questo punto non e' finita....avere una foto cromaticamente calibrata non vuol dire che riusciamo a vederla a monitor con i colori giusti perche' anche il monitor (o lo schermo del telefono) deve essere calibrato mediante apposite applicazioni (tipo ColorTrue di X-Rite per Android) ed appositi dispositivi hardware chiamati colorimetri (tipo ColorMunki X-Rite del costo di un centinaio di euro)
In conclusione ottenere i colori corretti su PC o Android e' piuttosto costoso....
Estendere raggio d'azione dei beacons
Ho fatto una prova per estendere il raggio di ricezione del segnale dei Beacons Estimote. Per questo motivo ho preso un dongle USB Bluetooth 4.0 con connessione antenna SMA ed una antenna esterna direzionale della TP-LinK, anche questa dotata di connettore SMA
L'antenna e' nata per WiFi ma visto che sia WiFi che BT lavorano a 2.4 GHz non ci sono problemi
Le misure sono state fatte con un programma Python allontanandosi via via dall'antenna. In una prova di un beacon in modalita' Eddystone sono partito con un valore di RSSI di circa -46 per arrivare a circa 140 m di distanza ad un valore di RSSI -96.
Vettore normale su nuvola di punti
Il problema e' questo : data una nuvola di punti, generata da un sensore come Kinect, determinare i vettori normali delle superfici triangolari che hanno come vertici i punti della nuvola stessa.
Il sistema di coordinate ha l'asse Z orientato come la distanza dal sensore, X ed Y invece sono lungo la dimensione della matrice di acquisizione
Presi tre punti nello spazio (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) non allineati (questa condizione visto che i dati vengono da uno strumento di misura reale diciamo che e' soddisfatta a priori) per calcolare l'equazione del piano si deve calcolare il determinante della seguente matrice con la condizione che sia uguale a zero
(x-x1, y-y1, z-z1,
x2-x1, y2-y1, z2-z1,
x3-x2, y3-y2, z3-z2)
con la formula di Laplace per il determinante si ha che (x,y,z sono le variabili)
(x-x1)[(y2-y1)(z3-z1)-(y3-y1)(z2-z2)] - (y-y1)[(x2-x1)(z3-z1)-(x3-x1)(z2-z1)]+ (z-z1)[(x2-x1)(y3-y1)-(x3-x1)(y2-y1)]= 0
si ha cosi' un risultato nella forma
Il sistema di coordinate ha l'asse Z orientato come la distanza dal sensore, X ed Y invece sono lungo la dimensione della matrice di acquisizione
Presi tre punti nello spazio (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) non allineati (questa condizione visto che i dati vengono da uno strumento di misura reale diciamo che e' soddisfatta a priori) per calcolare l'equazione del piano si deve calcolare il determinante della seguente matrice con la condizione che sia uguale a zero
(x-x1, y-y1, z-z1,
x2-x1, y2-y1, z2-z1,
x3-x2, y3-y2, z3-z2)
con la formula di Laplace per il determinante si ha che (x,y,z sono le variabili)
(x-x1)[(y2-y1)(z3-z1)-(y3-y1)(z2-z2)] - (y-y1)[(x2-x1)(z3-z1)-(x3-x1)(z2-z1)]+ (z-z1)[(x2-x1)(y3-y1)-(x3-x1)(y2-y1)]= 0
si ha cosi' un risultato nella forma
ax+by+cz = 0
una volta calcolato il piano si deve calcolare la normale (nx,ny,nz)si calcola la derivata parziale
F = ax +by+cz
nx = dF/dx, ny = dF/dy, nz = dF/dz.
Visto che si tratta di un piano la derivata parziale e' banale e le componenti del vettore normale sono (a,b,c)
-----------------------------------------------------------
Un metodo alternativo (che non prevede di calcolare prima l'equazione di un piano) e' quella di calcolare il prodotto vettoriale tra i due del triangolo). Per esempio dati sempre i tre punti (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) si prendono due vettori
v = (x2-x1, y2-y1, z2-z1)
w = (x3-x1, y3-y1, y3-y1)
il vettore normale e' dato dal determinante della matrice
(x,y,z
v1 ,v2 ,v3,
w1,w2,w2)
n = u X v = (v2w3-v3w2)x+(v3w1-v1w3)y+(v1w2-v2w1)z
Adesso c'e il problema e' di normali ce ne sono due essendo la superficie orientata (brutalmente una sotto ed una sopra al piano) oppure nel prodotto vettoriale dipende dall'ordine con cui si pongono i vettori (vXw e' diverso da wXv)
A questo punto si puo' procedere normalizzando il vettore.
nn1 = n1/sqrt(n1n1+n2n2+n3n3)
nn2 = n2/sqrt(n1n1+n2n2+n3n3)
nn3 = n3/sqrt(n1n1+n2n2+n3n3)
il passaggio da coordinate cartesiane a coordinate.
A questo punto si puo' procedere normalizzando il vettore.
nn1 = n1/sqrt(n1n1+n2n2+n3n3)
nn2 = n2/sqrt(n1n1+n2n2+n3n3)
nn3 = n3/sqrt(n1n1+n2n2+n3n3)
il passaggio da coordinate cartesiane a coordinate.
Se si guarda la libreria PCL la ricostruzione della normale ad una superficie viene effettuata mediante il calcolo delle componenti principali che permette anche di gestire anche che l'orientazione delle normali sia coerente
mercoledì 21 marzo 2018
Rough AP
Ancora una domanda: ma se mi connetto ad un access point pubblico quali rischi si possono correre?? Ho provato a montarmi un Access Point per auto rubarmi le credenziali di accesso alla mia webmail lavorativa (Squirrel Mail su un accesso HTTP ..non HTTPS)
La cosa e' stata particolarmente banale. Per l'Access Point ho visto che c'erano molte alternative ma alla fine quella piu' semplice e' stata quella di usare WiFi Pumpkin.
Per recuperare le credenziali di accesso ho usato net-creds.py.
Il login e la password recuperati hanno necessitato 10 minuti di lavoro...non di piu'
Si ..vabbe'...ma HTTPS ?? Non ho provato ma qualcosa mi dice SSLSTRIP ... non funziona ovunque ma e' sempre una possibilita'
La cosa e' stata particolarmente banale. Per l'Access Point ho visto che c'erano molte alternative ma alla fine quella piu' semplice e' stata quella di usare WiFi Pumpkin.
Per recuperare le credenziali di accesso ho usato net-creds.py.
Il login e la password recuperati hanno necessitato 10 minuti di lavoro...non di piu'
Si ..vabbe'...ma HTTPS ?? Non ho provato ma qualcosa mi dice SSLSTRIP ... non funziona ovunque ma e' sempre una possibilita'
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...