La divisione guida autonoma di NVIDIA studia sistemi software e hardware per guidare le auto di domani: NVIDIA DRIVE ™ è il loro diamante.
Oggi esploriamo le sfide nascoste in questo campo, con un punto di vista ingegneristico: dall’identificare le linee al riconoscere gli incroci.
Perché analizzare NVIDIA DRIVE ?
Le auto a guida autonoma sono un concentrato di tecnologia cutting-edge. LIDAR, LADAR, fotocamere ad alta velocità, e computer in grado di eseguire miliardi di operazioni al secondo.
Ti conosco. Te, come me, vuoi di più!
Ecco l’ingresso di modelli di machine learning, classificatori, sistemi ensemble, object detecition e più in generale le applicazioni della computer vision.
Insomma, un settore affascinante!
Attraverso brevi video esplicativi, provenienti direttamente da NVIDIA DRIVE ™ Labs, e con l’aiuto di Nada Cvijetic Senior Manager preso la divisione Autonomus Vehicles, andiamo alla scoperta di questo meraviglioso mondo.
Fame di conoscenza e curiosità, perché questa è la nostra essenza!
Divide et impera, il metodo dietro NVIDIA DRIVE
Creare un’auto a guida autonoma è un problema.
Per risolvere un problema, abbiamo bisogno di un metodo.
Il metodo migliore? I latini insegnano: Divide et impera
Dividi il tuo problema, scomponilo in elementi gestibili, e conquista la soluzione.
Ogni sezione indirizza uno specifico problema. Dall’unione delle singole soluzioni si delina la big picture: nasce così NDVIA DRIVE ™, la piattaforma d’AI per la guida autonoma.
Path Perception Confidence
Direi che possiamo iniziare col tenere il volante dritto.
Bella gente, abbiamo un’auto da 2 tonnellate che sfreccia a 90 km/h. In caso di urto, abbiamo diversi Newton di forza da smaltire.
Meglio non pensarsi e fare in modo che l’auto rimanga in carreggiata.
A questo proposito è fondamentale avere fiducia che l’auto percepisca correttamente l’ambiente circostante. Una simile fiducia è quantificata dalla così detta path perception confidence.
Ci servono due elementi: ridondanza e diversificazione.
La soluzione è combinare diverse Deep Neural Network usando un approccio di ensemble.
Ciascuna rete neurale assolve al medesimo compito, questo produce ridondanza e ci piace!
Ciascuna rete neurale esamina e genera dati in modo indipendente, questo produce diversificazione e ci piace!
NVIDIA DRIVE usa tre reti neurali per questo compito:
- LaneNet DNN
- PathNet DNN
- PilotNet DNN
Viene poi compiuta un’analisi di accordo / disaccordo sulle differenti direzioni predette per misurare path perception confidence Live e ottenere dati affidabili.
ClearSightNet
Dubito che attraverseresti una strada a occhi chiusi.
Allo stesso modo, la nostra auto deve essere costantemente in grado di percepire l’ambiente circostante.
Posizionare telecamere a 360° semplicemente non basta: occorre assicurarci che il campo visivo di ciascuna di esse sia chiaro e libero da ostacoli.
Ecco che entra in gioco ClearSightNet DNN, una rete neurale profonda che identifica occlusioni ambientali dovute a blur, pixel saturation, nebbia o pioggia.
I dati provenienti da questa rete devono essere implementati con le altre reti per determinare la confidenza complessiva dell’auto per l’ambiente circostante.
Future prediction
Prevedere il futuro è un’abilità squisitamente umana.
Identificare la traiettoria di un oggetto lanciato sulla nostra faccia e chiudere gli occhi una frazione di secondo prima dell’impatto.
Un calciatore che si tuffa e para la palla prima che questa entri in porta.
Due esempi banali di previsione futura.
Un’auto a guida autonoma deve poter essere in grado di replicare questa abilità.
Entrano in gioco le recursive neural network (RNN) che, nel caso di NVIDIA DRIVE, sono in grado di anticipare la traiettoria di un oggetto nell’ordine di mezzo secondo.
In questo modo l’auto è in capace di anticipare e correggere la propria direzione se necessario.
La loro efficacia si estende anche al calcolo del TTC, Time To Collision, che classificando gli oggetti in allontanamento e avvicinamento al veicolo, è in grado di determinare la computed urgency, quindi l’urgenza di effettuare una manovra correttiva.
Matematicamente la computed urgency è l’inverso del TTC.
360° Vision
Potrebbe essere scontato necessitare di un set di fotocamere che insieme assicurino una visione a 360 gradi.
NVIDIA DRIVE allena il modello di Surround Camera Object Tracking usando 6 telecamere che insieme consentono di estrarre importanti insights.
A ogni nuovo oggetto identificato è assegnato un ID univoco che rimane stabile e costante per tutto il tempo in cui risulti essere nel campo visivo delle telecamere.
Questa tracking stability è fondamentale. Tracciando lo spostamento dell’oggetto è infatti possibile determinarne accuratamente la velocità, dato che si rivela essere utile ai fini della pianificazione e controllo della traiettoria.
Un’altra metrica da tenere a mente è la tracking initialization latency: è il tempo che il sistema impiega a identificare e assegnare un ID univoco a un nuovo oggetto, ed è imperativo che resti basso.
A questo aggiungiamo a necessità di dover tracciare correttamente ogni oggetto presente nella scena. I veicoli lontani devono essere identificati con la stessa accuratezza di quelli vicini, tanto nelle scene affollate quanto in quelle parzialmente occluse.
Per concludere, un fantastico podcast di Neda Cvijetic:
Un caldo abbraccio, Andrea.