Blog.

NVIDIA DRIVE ™ Labs | Come funziona un Autonomous Vehicle software


Autore
Andrea Provino
Data
Tempo di lettura
4 minuti
Categoria
AI, machine-learning

nvidia-drive-labs-nvidia-drive-software-guida-italiano-deep-learning-deep-neural-network-recursive-neural-network

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.

TaggedAIdeep learningneural network


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum