3DEverywhere Virtual Imaging Technology

Salta direttamente al contenuto

Menu principale

Progetto 3D - Deep Learning


Progetto 3D Deep Learning - Sviluppo di un sistema capace di implementare l'analisi della scena tramite dati 3D e utilizzo di algoritmi di "Deep Learning" per analizzare la scena.

Il progetto 3D-Deep Learning (3D-DL) ha come obiettivo la realizzazione di una nuova generazione del sistema EyeTower3D Anti-Taigating con prestazioni migliori ed hardware più economico. Il progetto è stato suddiviso in tre fasi:

  1. verifica delle caratteristiche e dei dati delle più recenti camere 3D;
  2. sviluppo di algoritmi di deep learning per anti-tailgating con dati 3D e di colore;
  3. raffinamento e implementazione su sistemi embedded degli algoritmi di deep learning per anti-tailgating.



Fase 1: Verifica di caratteristiche e dati delle più recenti camere 3D



Sono state testate diverse camere 3D per valutare le loro prestazioni nel contesto considerato. Innanzitutto è stata fatta una ricerca di tutti i modelli di camere 3D a tempo di volo e a luce strutturata e sono state confrontate le loro specifiche. I sensori selezionati sono l’Asus Xtion, l’Orbbec Astra, l’Intel D435 e il SoftKinetic DS325.




Si è scelto il sensore Orbbec Astra: è un sensore a luce strutturata avente una risoluzione per i dati depth di 640x480 pixels e lavora fino a circa 8 metri. Pro: ha un buon range e un livello di rumore abbastanza basso. Contro: poca precisione sui bordi degli oggetti, la precisione cala con la distanza. Con questo sensore sono stati acquisiti dei dataset con dati video e 3D riguardanti il passaggio di persone nel contesto di interesse. E' stato acquisito un dataset per il training degli algoritmi di machine learning (training set) e un dataset di test per la validazione delle prestazioni del metodo sviluppato. I dataset contengono anche situazioni difficili come persone abbracciate o molto vicine tra loro. E' stato infine riadattato e migliorato il sistema di motion detection e tracking 3D per adattarlo alla situazione considerata e migliorarne le performances. Le immagini di seguito mostrano alcuni esempi di frame a colori e depth relativi ai dati acquisiti. Si noti come sono state acquisite anche situazioni “difficili” con persone abbracciate o molto vicine tra loro.




Frame a colori



Frame depth




Fase 2: Sviluppo di algoritmi di deep learning per anti-tailgating con dati 3D e di colore


Una volta viste le caratteristiche dei dati della camera 3D, si è poi passati allo sviluppo di algoritmi basati sulle più recenti tecniche di machine learning. Sono stati utilizzati modelli di Convolutional Neural Network (CNN) capaci di ottenere ottime performances ma con una complessità computazionale ridotta per poter girare su hardware embedded privo di GPU.

Considerato il dataset relativamente piccolo e la necessità di lavorare in real-time è stata utilizzata un’architettura di deep learning semplice. L’input è rappresentato dai blob estratti dal sistema di motion detection e tracking. Questo modulo è in grado di segmentare le persone dallo sfondo ma ha il problema critico di non riuscire a separare le persone quando si presentano vicine o abbracciate, producendo un unico blob nel caso di più persone vicine tra loro.

Il problema è semplice nel caso di poche persone chiaramente separate, ma può diventare particolarmente critico in presenza di persone molto vicine tra loro o di un numero elevato di persone. La capacità di disambiguare più persone molto vicine tra loro o che cercano di nascondersi una con l’altra è uno dei problemi fondamentali nell’anti-tailgating e si è cercato di realizzare un approccio il più robusto possibile a queste problematiche.

In situazioni come quella della figura subito sotto la fase iniziale di detection deterministica degli oggetti in movimento ritorna un solo blob (evidenziato in rosso). La rete neurale prende in ingresso il blob rilevato (quindi solo i pixel all’interno del rettangolo) e deve essere in grado di determinare se contiene una sola persona o più persone. Questo può essere ottenuto utilizzando sia dati depth che di colore e la rete deve essere in grado di catturare features utili a risolvere il problema come ad esempio la presenza di più teste o un’area troppo grande per essere una persona sola.



Esempio di situazione critica

E' stato quindi creato un classificatore basato su deep learning e questa rete neurale è stata allenata sul dataset acquisito. I primi test hanno dimostrato che l’approccio è in grado di ottenere le performances richieste. Sono state usate come input sia l’informazione video e quella contenuta nella depth map.


Fase 3: Raffinamento e implementazione su sistemi embedded degli algoritmi di deep learning per anti-tailgating



L' ultima fase del progetto ha affrontato due obiettivi fondamentali: il miglioramento delle prestazioni in particolare in situazioni difficili dove una persona può essere scambiata per più persone o viceversa e l’ottimizzazione computazionale, al fine di far funzionare gli algoritmi di machine learning per antitailgatinig con dati 3D su architetture embedded.

Sul primo fronte, relativo al miglioramento delle prestazioni, si è lavorato sull’utilizzo congiunto dell’informazione di colore e dell’informazione di depth.

Il secondo fronte dell' ultima fase del progetto, relativo all’ottimizzazione computazionale, è stata incentrato sul porting degli algoritmi su architetture embedded. Il punto di partenza per questa attività è stata la ricognizione delle schede di calcolo adatte ad operazioni di machine learning disponibili sul mercato. Particolare attenzione è stata riservata alle architetture con potenza di calcolo adeguata per i task relativi all' anti-tailgating anti-tailgating anti-tailgating con dati 3D tramite tecniche di deep learning. Tra le varie possibilità, per il progetto, sono state scelte le scheda VAR-SOM MX6 e mini-Amber in quanto dotate di buona potenza di elaborazione seppur prive di GPU. Una volta risolta la scelta dell' hardware di calcolo, si è passati al deployment della rete neurale su dispositivi embedded.

I risultati dell’elaborazione sono risultati molto simili (anche se non identici probabilmente per motivi di precisione numerica) a quelli ottenuti su PC ma come ci si aspettava il tempo di calcolo richiesto era notevolmente maggiore. Per migliorare l’ottimizzazione computazionale del sistema si è lavorato sui vari componenti del sistema.

La fase di ottimizzazione è stata seguita con una fase di testing del sistema in ambienti diversi e con situazioni via via più complesse per verificarne l’affidabilità. Vari test sono stati effettuati nelle seguenti situazioni:

  1. Situazione di persona singola. Sono state fatte prove di riconoscimento della persona singola anche includendo oggetti (ad esempio cappelli, giacconi imbottiti, zaini ..) o atteggiamenti (ad esempio braccia estese, telefono in mano, persona inginocchiata ..) atti a ingrandire l' aspetto della sagoma della persona singola e quindi potenzialmente in grado di indurre all’errata conclusione della presenza di più persone.
  2. Situazione di due persone. Sono state fatte prove di riconoscimento di due persone con particolare attenzione a situazioni di particolare vicinanza tra loro.


Sono state sperimentate varie tipologie di reti neurali con l’uso di dati depth e di dati colore. L' accuratezza più alta, fino al 92% nel caso migliore, è stata ottenuta con i dati depth. Con i dati colore l’accuratezza è sempre inferiore fino a toccare l’87% circa nel caso peggiore.


Conclusioni


Si è realizzato un sistema di anti-tailgating basato su deep learning. Le performances sono state all’altezza delle aspettative e anche il tempo di calcolo, per quanto superiore ad approcci tradizionali, è compatibile con i requisiti della maggior parte dei sistemi di anti-tailgating dove il flusso di persone è limitato ed è ragionevole un tempo di attesa di un paio di secondi.



3DEverywhere s.r.l.- via Croce Rossa, 14 - 35129 Padova, Italy

p.IVA 03824970283 - c.le soc.le 20.000€ i.v.


AZIENDA | PRODOTTI | SERVIZI | CONTATTI | COOKIE