+39 334 925 7730 academy@lab4int.org

DRONE vs COMPUTER VISION

da | Nov 27, 2022

DRONE vs COMPUTER VISION

(Riconoscimento facciale di oggetti applicato alle telecamere dei DRONI)

Ringrazio Simone Bonifazi (sue le immagini dei DRONI) e tutti i soci fondatori della LAB4INT, per avermi invitato in questa bella Associazione di Amici che cercano di aiutare attraverso la formazione e divulgazione, e la distribuzione di “Know How” le Forze dell’Ordine e le Forze Armate Italiane.
In ultimo ma non per ultimo “Nec Recisa Recedit” && “Forza Paris”!!

Antonio Broi

Data Analyst and Digital Forensics Expert

Mi presento:

Mi chiamo Antonio Broi, sono un appartenente alle forze dell’ordine con 36 anni di esperienza ma, negli ultimi decenni, ho acquisito un profilo prettamente informatico investigativo “Digital Forensic” e “Data AnalisYS”. Dagli albori degli anni 90’ ad oggi, parallelamente nella vita privata, mi sono appassionato e dedicato, oltre che alla “Digital Forensic” ed alla “Cyber Security”, alla programmazione e lo studio del funzionamento, configurazione ed ”assemblaggio” di miei sistemi Operativi Gnu-Linux con all’interno miei applicativi Osint e Computer Vision. Dopo tanto… tanto girovagare tra i linguaggi di programmazione, negli ultimi anni, sono passato dal linguaggio di programmazione PHP/MySql/Javascript, quindi lato web, infine al linguaggio di programmazione Python (riduttivo oggi chiamarlo scripting), in particolare per tentare di sviluppare delle metodologie di riconoscimento, di oggetti, più in particolare del riconoscimento facciale a 360* (o in “tutte le salse” come amo chiamarlo), gli stessi da diverse fonti quali files immagini, files video, telecamere, ipcam, url, streamming video etc. etc.. In seguito, mi sono affacciato, a tutto ciò che riguarda la “gesture” cioè i movimenti del corpo umano o parti di esso attraverso programmi e librerie di Deep Learning, sempre nel linguaggio Python, in ultimo oggi oltre al riconoscimento delle impronte vocali, tramite comparazione “cnn” ed il “translate” e “transliter” da audio e testo tramite “Machine Learning” collegato ad “API” online, mi sto cimmentando in creazione di modelli di “Machine Learning” a scopo investigativo, sia utilizzando metodologie “Super-visionati” che “Non-Super-visionati”. Ritengo che queste tecnologie seppur non ancora a valenza scientifica possano essere un valido strumento per le Forze dell’Ordine e le Forze Armate nell’ambito delle proprie attività istituzionali autorizzate e per questo motivo importante cercare di svilupparle appieno.

PREMESSA:

Una delle ultime frontiere tecnologiche è rappresentata sicuramente dall’avvento e diffusione dei DRONI, sia ad ala fissa che a multi-rotori, utilizzati in ambito civile, privato ed aziendale, ed anche militare, ricoprendo una sempre più diffusa richiesta in qualche modo “robotica” della società nella sua interezza, quindi non solo ludica ma anche e soprattutto di utilità civile e militare.
Si perché di questo stiamo parlando di un robot seppur con sembianze di un aereo o di un futuristico elicottero, autonomo, comandato a distanza, capace di ricevere ed eseguire comandi e di vedere con i suoi occhi elettronici (telecamere) ed i suoi innumerevoli sensori di posizione GPS, bussola, infrarossi etc. , non di meno, in grado di ricevere una programmazione anche di tipo evoluto (Deep Learning – Machine Learning per autonome decisioni), persino di ricevere istruzioni che lo facciano muovere autonomamente in orari e luoghi ed eseguire alcune azioni quasi con una volontà autonoma, con semplici istruzioni e condizioni di programmazione.

Questo oggetto è buono ? é cattivo ? é utile?, non darò un giudizio o mi arrampicherò in discorsi etici, noi tentiamo di sviluppare tecnologia informatica. Posso dirvi di essere una persona positiva e di riuscire ad immaginare soltanto gli aspetti ed utilizzi positivi futuri, che porteranno l’utilizzo di questa tecnologia, in un esplosione di modernità e prosperità tecnologica, a far migliorare la nostra società. Cerco di immaginare che tali tecnologie, nel prossimo futuro, ci aiuteranno, tra le miriadi di altri compiti, magari a preservare il pianeta, immaginandoli come moderni spazzini e contemporaneamente avendo occhi vigili da anlisiti robotici, utilizzando soltanto energia rinnovabile (energia solare, vento ionico od altro), potranno magari preservare l’ambiente, ed eventualmente CHISSA difenderci dalle avversità di qualunque natura.

So per esperienza che ogni oggetto può diventare un’arma se finisce nelle mani della persona sbagliata!, anche una semplice matita, la mia vita militare nelle forze dell’ordine mi ha insegnato questo.
Non esiste una tecnologia buona o cattiva ! esiste l’uso consapevole ed equilibrato di tale tecnologia.
Ad esempio ci addestriamo ad utilizzare degli strumenti di guerra per preservare la pace e la vita delle persone !!! Sempre! Queste vengono prima della nostra !!
Tengo a precisare, inoltre, che in questo elaborato non tratterò diffusamente di questa tecnologia, cioè degli aspetti di funzionamento tecnico hardware e software dei DRONI, dei pregi e difetti di tale tecnologia, dei particolari e tecnicismi tipici di questa tecnologia e dell’utilizzo attuale e futuro.
Mi limiterò ad analizzare, illustrare ed ipotizzare semplicemente, vista la mia esperienza ed il mio “background” ad illustrare l’utilizzo delle tecniche di “Computer Vision”, quindi il riconoscimento di vari oggetti “object” tra i quali anche il riconoscimento facciale, e la tecnologia cosiddetta di movimento della persona “gesture” (utilizzate per analizzare i movimenti del corpo umano), applicata all’occhio della telecamere del DRONE.

La Telecamere ( o videocamera o IP-CAMERA) del DRONE:

Ogni Drone ha almeno una telecamere collegata all’hardware della scheda madre del computer di bordo o collegata via radio (wifi o bluetooth) alla sezione wifi del DRONE o bluetooth.
Queste telecamere, quindi, verranno viste come parte dell’Hardware dal sistema operativo installato sulla memoria del drone e quindi come un modulo hardware che, parimenti delle altre componentistiche fisiche, o meglio moduli, (ex. scheda di rete, scheda video, scheda madre, hard disk , ram etc) o come un U.R.L. o IP-CAM a cui il sistema operativo deve collegarsi per gestirle quindi in questo caso un indirizzo IP.

A sua volta non dimentichiamo che a terra la “Command and Control” che dialoga, comanda, e pilota il DRONE, comunica via radio (non sempre via Wifi potrebbe comunicare anche tramite rete cellulare, trasmissione dati in banda Uhf-VhF od altro) e quindi riceve a terra, oltre al flusso dati “data in – data out”, relativo ai comandi ed istruzioni, anche il segnale della Telecamere come un flusso “streammng” video da un determinato IP o semplicemente un fotogramma da un URL cicliclo, come già detto.

Computer Vision:

In questi anni, nella mia vita privata, mi sono dedicato allo studio dell’O.S.Int (Open Source Intelligence), come moderno strumento investigativo dalle cosiddette fonti aperte, notando che ad un certo punto sulle immagini, video , tracce audio od altri oggetti complessi, non c’erano tanti strumenti disponibili (leggi software).

Da qui , circa 6 anni fa’, ho iniziato (seguendo il detto latino “facis de neccessitàte virtute”) la mia ricerca, studio, e ricerca ed applicazione pratica in assemblaggio e creazione di programmi per effettuare riconoscimenti facciali (prima) poi riconoscimenti di oggetti (Computer Vision), in ultimo seguendo le tracce e corsi Online (spesso a pagamento) di vari autori e veri guru della materia a cui mi ispiro: Adrian Rosebrock autore di https://www.pyimagesearch.com/authon vero guru nel panorama internazionale della “Computer Vision”, Davis King autore delle librerie Python Dlib https://dlib.net https://github.com/davisking, Adam Geitgey https://github.com/ageitgey https://adamgeitgey.com e della bellissima libreria Python face_recognition.

Seguendo le tracce in rete di questi ultimi autori, parallelamente, all’avvicinamento al linguaggio di programmazione Python https://python.org ed in particolare l’utilizzo di potenti librerie matematiche e di Deep Learning (Dlib Opencv Numpy Keras Tensorflow Flask a titolo esemplificativo e non esaustivo), non di meno raccogliendo innumerevoli esempi in rete di programmi ed attraverso l’adattamento e modifica degli stessi, creando programmi (cosidetti script) ma non solo, anche programmi e piattaforme complesse, come vedremmo piu’ avanti, mi sono fatto un’idea completa sulle potenzialità e limiti di questa tecnologia, applicandola non di meno nella vita lavorativa AUTORIZZATA.
L’avvicinamento a tale particolare branca della programmazione Python , cosiddetta “Computer Vision” permette, attraverso la scrittura di programmi semplici e meno semplici, con un unico comune denominatore l’utilizzo di poche righe e/o pagine di programmazione ma, sempre, l’importazione in intestazione di librerie complesse, le quali, spesso, richiedono ore se non giorni di compilazione, a seconda della potenza di calcolo a disposizione, all’interno del Sistema Operativo, olte a richiedere un preciso setup sviluppato in anni, si avete capito bene in anni, di debug e compilazione sperimentando tra diversi e innumerevoli Sistemi Operativi tipo: Apple Mac, Microsoft Windows, ma soprattutto Gnu-Linux (Ubuntu 14.04 LTS – Ubuntu 16.04 LTS – Ubuntu 18.04 LTS – UBUNTU 20.04 LTS – UBUNTU 22.04 LTS – KALI LINUX – PARROT SECURITY LINUX – BACKBOX LINUX – TSURUGI-LINUX.ORG a titolo esemplificativo e non assolutamente esaustivo) su sistemi Hardware molto diversi tra di loro Imac, Notebook thinkpad, Notebook Ibm, Raspberry, Desktop Dell etc. etc.. In seguito ri-assemblaggio degli stessi tramite applicativi, in Live DVD e/o Live USB pen-drive riutilizzabili in altri sistemi tramite tecnica di avvio cosidetto Live.

Ogni oggetto nella Computer Vision puo’ essere individuato addestrando specifici “Modelli di librerie” dandogli in pasto numerose immagini riguardanti quel particolare oggetto da individuare tramite elaborazione di diversi algoritmi insiti nelle librerie (si possono utilizzare vari algoritmi e librerie ma il funzionamento migliore lo si ha con l’utilizzo delle librerie Deep Learning Keras e Tensorflow), nell’esempio un dataset riportante centinai di immagini di fucili “Kalashnikov” hanno addestrato un modello di libreria per riconoscere nell’immagine la presenza o meno di un kalashnikov e far comparire in caso positivi la relativa scritta “kalashnikov” (vedi immagine).

Tecniche piu’ semplici individuano l’oggetto delle medesime dimensioni e/o forma dando in elaborazione di modello di libreria una o piu’ immagini ma senza l’utilizzo dell’elaborazione Deep Learning, nell’esempio la ricerca semplice del medesimo oggetto uguale nell’intricato quadro stracolmo di oggetti simili, viene messo in evidenza oscurando per sottrazione il resto dell’immagine (vedi immagine).

Nell’esempio un file video nel quale sono presenti alcune autovetture,  viene tracciata una sola automobile, tecnica di  “link analisys” o “track analisys” e per tutto il filmato il medesimo fuoristrada non viene perso dal quadratino rosso “matching”.

Nell’esempio sotto riportato un fuoristrada viene tracciato da un quadratino di colore rosso per tutto il tragitto.

Il riconoscimento facciale:

Lo stesso riconoscimento facciale, UTILIZZA DIVERSE LIBRERIE, diversi algoritmi e passaggi in tutte le fasi di elaborazioni dall’immagine base in input all’ultimo risultato dell’identificazione con percentuale o per “matching, sia che si tratti di semplice verifica 1:1 (vedi autenticazione dei telefoni cellulari tramite face recognition), o identificazione 1:M (uno a molti – spesso i molti sono rappresentati da database con singole immagini per ogni soggetti o o piu’ immagini per ogni soggetto nei programmi piu’ evoluti che utilizzando CNN O KNN “Convolution Neural Network” cioè le reti neurali Deep Learning e quindi passando anche dal livello nascosto, cosiddetto “Layer Hidding”), anche se la ricerca spesso e da intendersi N.M (molti a molti), in quanto ricerchiamo piu’ immagini o ricerchiami o da un video composto da diversi fotogrammi a secondo (25 piu’ o meno a seconda dei casi), o ricerchiamo da una telecamere in realtime, o ricerchiamo da un flusso “streamming” o da un url o ip.

Vediamo ed analizziamo le fasi del riconoscimento fac-ciale:

I file di immagini statiche (jpg png di solito) o i singoli frame del flusso da IP-Cam Telecamere od altro, vengono convertiti in immagine in scala di grigio (vedi immagine), in seguito entra in azione l’algoritmo (HOG) Histogram Oriented Gradient che proietta la luce evidenziando l’orientamento della direzione della stessa, questo nei particolari del viso permette di individuare perfettamente il quadrato comprendente il viso umano, in quanto si crea un pattern, cioè un impronta del viso (vedi immagine).

A questo punto il quadratino del viso viene normalizzato, in quanto le immagini hanno sempre risoluzioni diverse ma la comparazione dei visi deve avvenire alle medesime dimensioni e risoluzione.

Attraverso ulteriore algoritmo vengono individuati i cosidetti punti di interesse “Face Landmarks Estimation”(approccio inventato nel 2014 da Vahid Kazemi e Josephine Sullivan).

Gli stessi saranno individuati nelle medesime posizioni per tutti i visi di solito 68 (agli albori 5) ma possono variare a seconda degli algoritmi utilizzati, ce ne sono vari sia Cloused Source che Open Source, facendo presente, inoltre, che nel passato si utilizzavano algoritmi diversi, quali a titolo di esempio Eigen Faces. I punti anzidetti identificano la parte superiore del mento, il bordo esterno di ciascun occhio, il bordo interno di ogni sopracciglio, il contorno occhio il contorno pupille.

Questo algoritmo cercherà di individuare ciascuno di questi punti su ciascun viso.(vedi immagini sotto gentilmente prestati dal Sig. Andrea Cumini e dall’Avvocato Rachele De Stefanis )

Vediamo ora alcune immagini con ben individuati i face landmarks, nonostante in una immagine la persona abbia gli occhiali(vedi immagini). A tal proposito si anticipa che il matching essendo veri gli altri punti di interesse sara’ possibile con risultati pero da tenere d’occhio. A questo punto che sono ben individuati i punti di interesse “Face Landmarks”, l’immagine verrà ruotata, scalata, e traslata in modo che gli occhi e la bocca siano sempre orientati nel miglio modo possibile per le successive fasi di calcolo matematico e di estrazione del cosiddetto “embedding”.

L’algoritmo di Deep Learning a questo punto estrarrà, per ogni viso individuato, un vettore matematico di misurazioni tra i 68 punti di “face Landmarks” , un cosidetto “embedding” composto da 128 numeri rappresentati delle misurazioni effettuate dal livello “hidding” dell’algoritmo Deep Learning.

Cosa rappresentano questi 128 numeri di “embeding”?

Nessuno ancora l’ha scoperto essendo questo layer del Deep Learning talmente complesso da non essere possibile attualmente capirlo. Quello che è certo che ogni embedding rappresenta le misurazioni dei “face landmark” di un determinato ed unico viso. E la successiva comparazione tra gli embedings permetterà di arrivare ad una percentuale di compatibilità do 0 a 100 o da 0 a 1 o da 1 a 0 a secondo degli algoritmi. Tutti comunque rappresentanti una percentuale riconducibile da 0% a100%. Il cosidetto matching di solito è rappresentato da una percentuale superiore variabile dal 50% al 75%. Nel caso di Python Face_recognition si considera superiore al 50% il matching vero e proprio.Vediamo qualche immagine riportanti il viso ed i relativi matching con posto sulla parte superiore il Nome e Cognome della persona individuata dal programma Python.

Immagine del Prof. Paolo Dal Checco e del consulente informatico Simone Bonifazi sottoposti a ricerca “face recognition” e “matching” attraverso database Convolution Neural Networ, script Python Deep Learning.

Immagine dei medesimi Prof. Paolo Dal Checco e del consulente informatico Simone Bonifazi sottoposti ad algoritmo di indivisuazione dei punti di interesse “face landmarks” script Python.

Immagini di alcuni soci fondatori di LAB4INT sottoposta a riconoscimento facciale, notare che nonostane la scarsa qualita di  risoluzione e luminosità quasi tutti i visi sono stati riconosciuti, inoltre si rappresenta che il database di comparazione è composto da una sola immagine dei soggetti da ricercare, cosa che non agevola la ricerca.

Riconoscimento facciale da Telecamere :

Il riconoscimento facciale è altresì possibile effettuarlo, come anzidetto,  su un flusso di dati proveniente da una Telecamere Hardware collegata alla scheda madre fisicamente o da un IP o da un U.R.L. o streaming video od altro, in questo caso ogni un singolo frame rappresenta un immagine che ciclicamente cambia e perla quale il processore dovrà eseguire complessi calcoli in pochi centesimi di secondo.    

L’accuratezza di tali riconoscimenti, inoltre, sarà proporzionale alla complessità delle immagini costituenti il database di comparazione e di ricerca delle immagini, e già, perché ci sono tanti modi e metodi di comparazione e ricerca facciale, ma ovviamente il database immagini è direttamente proporzionale alla potenza di calcolo necessaria a fare “matching”. Per ovviare a questo dispendio di forza calcolo processore si può, ovviamente,  vettorializzare l’intero database immagini, costituito dalla somma delle sopra descritte “embeding” immagine, in un unico file vettore, riuscendo in questo modo a velocizzare il processo pur utilizzando migliaia di immagini per una ricerca e “matching” in realtime a 25 o piu’ fotogrammi al secondo.

E qui entra in gioco il nostro DRONE.

La gesture nella Computer Vision:
Nello stesso modo sugli anzidetti flussi delle Telecamere del DRONE è possibile applicare qualsiasi tecnica di computer vision atta ad individuare degli oggetti o la cosiddetta “gesture” relativa ai movimenti ed individuazione dei gesti di una o piu’ persone.
Gli eventi associati ai matching od alla “gesture”:
In particolare si potrà associare ad un evento, esempio riconoscimento di un volto, di un oggetto particolare o parte del corpo, o movimento del corpo o delle mani, un allarme sonoro e/o video (vedi quadratino matching) o l’invio di un email specifica anche con allegato ad uno o più indirizzi di posta elettronica, invio di un SMS ad una o più persone (vedi libreria TWILIO), o esecuzione di un altro programma o condizione od infine autoapprendimento IA.

Il nostro DRONE:

Tutte queste tecniche e metodologie possono semplicemente essere traslate ed applicate ai droni ed al loro occhio elettronico, implementando eventi e condizioni nei programmi per svolgere qualsiasi compito, prevedendo che il Machine Learning insegnerà, nel medio periodo, a questi robot volanti ad agire autonomamente a seconda delle condizioni in cui si troveranno.
Example: oggi quasi tutti i droni hanno la funzione automatica di controllo ciclico dello stato dell’energia e del cosiddetto “ritorno a casa” luogo preimpostato per l’atterraggio, ciò evita che gli stessi si scarichino completamente a mezz’aria e cadano al suolo rovinosamente; altri hanno la funziona waypoints cioè naviga autonomamente attraverso dei punti geografici impostati sulla mappa del software.

Conclusioni:

In queste poche righe, molto esemplificative e non assolutamente esaustive, ho voluto fare una semplice illustrazione di quali possano essere le tecniche e metodologie di “Computer Vision” riguardanti i riconoscimenti facciale, riconoscimenti di oggetti di varia natura, e “gesture”, applicabili al flusso dati proveniente dalla Telecamere del DRONE, tentando di non utilizzare eccessivi tecnicismi e di arrivare in modo divulgativo e molto leggero, anche attraverso l’utilizzo di immagini e screenshot, a tutti, e senza in alcun modo entrare nel dettaglio di funzionamento Hardware e Software di questi affascinanti “ROBOT” dell’aria.
Mi scuso anticipatamente per le imprecisioni della tecnologia DRONE e lascio ai super-specialisti Marco Robustini e Simone Bonifazi il compito di illustrare il funzionamento, veramente complesso, di tale tecnologia, per la quale è richiesta una competenza specifica ed una grande esperienza teorica e soprattutto sul campo.

In ultimo, non posso fare a meno di far notare che queste competenze unite, creano una grande sinergia, ed insieme alla Digital Forensic e Drone Forensic permettono, non soltanto di conoscere appieno il fenomeno e le potenzialità dei Droni uniti alla Computer Vision, ma anche di avere una visione a 360 gradi e su diversi piani (attacco-difesa), per esempio anche in un’ottica diversa di eventuale intervento di informatica forense ed analisi dei DRONI, in ambito Polizia Giudiziaria o Militare.

Con la speranza di vedervi presto a qualche seminario divulgativo e/o formativo dell’associazione vi saluto e ringrazio tutti.

Pin It on Pinterest

Share This