Cosa sono le self driving cars e la loro tassonomia
Il problema della localizzazione
Modello probablisitico
Filtri di Kalman
Particle filter
Ricerca del percorso
Modello Deep Learning
Conclusioni
1. Vincenzo Dentamaro
CEO Nextome, Georgia Institute of Technology,
Università degli studi di Bari
Introduzione alle:
Self Driving Cars
2. Agenda
• Cosa sono le self driving cars e la loro tassonomia
• Il problema della localizzazione
• Modello probablisitico
o Filtri di Kalman
o Particle filter
o Ricerca del percorso
• Modello Deep Learning
• Conclusioni
3. Cosa sono le self driving cars e la
loro tassonomia
Le self driving cars sono auto capaci a localizzarsi in uno spazio, pianificare un
percorso e muoversi evitando gli ostacoli in presenza di alter automobili e persone.
La tassonomia
• Livello 0 - Nessuna autonomia
• Livello 1 - Assistenza alla guida: (il guidatore deve essere pronto a riprenderne il
controllo)
• Livello 2 - Automazione parziale: (monitoraggio circostante da parte dell’utente)
• Livello 3 - Automazione condizionata (guidatore pronto a riprendere controllo in
caso di richiesta del sistema)
• Livello 4 - Alta automazione (non attivabile in casi estremi come es. maltempo).
• Livello 5 - Completa automazione
7. Il problema della localizzazione
In presenza di mappa
.
Fixed anchors localization
GPS Sensors based localization
8. Il problema della localizzazione
In presenza di mappa
.
Migliorare l’accuratezza
9. Modello Probabilistico
Pros:
• Non necessita di addestramento
• E’ utilizzabile sempre ma con notevoli limiti
Cons:
• Non è in grado di muoversi nel traffico efficientemente senza computer
vision (non riconosce segnali, non riconosce persone)
• Imprevedibile
• Non gestisce le priorità
10. Filtri di Kalman
I filtri di Kalman, sono usati per filtrare segnali rumorosi, gestendo l’incertezza
presente in tale segnale. Ogni sensore ha un certo “rumore”, se tale rumore è
lineare, il Kalman Filter può rimuoverlo. Inoltre il Filtro di Kalman è noto per
predire stati future del Sistema.
Un altro vantaggio del filtro Kalman è che lo storico di uno stato non è
necessario poiché il filtro si basa solo sullo stato immediato e su una matrice di
covarianza che definisce la probabilità dello stato di essere corretto durante
l’update.
Nelle self driving cars, servono a predire la posizione di oggetti (tracking),
pulire segnali rumorosi riguardo il movimento e la localizzazione.
11. Filtri di Kalman
• Lo stato è rappresentato come la posizione/velocità/valore associato al Sistema
• Le azioni sono ciò su cui si può intervenire e che avrà effetto sul sistema.
• Ci sono 2 equazioni nel filtro di Kalman, la prima è la predizione (qual’è lo stato
corrente rispetto allo stato passato e l’azione effettuata), la seconda equazione è
nota come equazioni di aggiornamento: esamina i sensori di ingresso in
proporzione a quanto ci si fida di ogni sensore e quanto ci si fida della stima dello
stato complessivo e aggiorna lo stato attuale.
• Questo filtro funziona prevedendo lo stato corrente utilizzando le equazioni di
predizione e poi segue una correzione della stima precedente utilizzando le
equazioni di aggiornamento. Questo processo viene ripetuto continuamente.
12. Particle Filters
• L’idea chiave è quella di rappresentare la densità a posteriori con un insieme
di campioni casuali (“samples”) con associato un peso ed effettuare la stima
in base a questi campioni e al loro peso. Al crescere del numero di campioni
considerati si ottiene una rappresentazione equivalente della funzione di
densità.
13. Particle Filters
Algoritmo
1. Randomly generate a bunch of particles Particles can
have position, heading, and/or whatever other state
variable you need to estimate. Each has a weight
(probability) indicating how likely it matches the actual
state of the system. Initialize each with the same weight.
2. Predict next state of the particles Move the particles
based on how you predict the real system is behaving.
3. Update the weighting of the particles based on the
measurement. Particles that closely match the
measurements are weighted higher than particles which
don't match the measurements very well.
4. Resample Discard highly improbable particle and
replace them with copies of the more probable particles.
5. Compute Estimate Optionally, compute weighted mean
and covariance of the set of particles to get a state
estimate
15. Ricerca del percorso su mappa
Algoritmo Dijkstra
• L'algoritmo di Dijkstra consente di selezionare gli shortest path ( cammini
minimi ) in un grafo ciclico caratterizzato da archi con pesi non negativi. Il
cammino minimo è il percorso che permette di unire due nodi distinti del
grafo.
• L’algoritmo è finito e ha complessità O(V²) dove V è il numero di vertici.
16. Ricerca del percorso su mappa
Algoritmo A*
• A* è un algoritmo di ricerca di tipo best first e ottimizzazione basato su grafi
o griglie. Viene frequentemente impiegato nell’intelligenza artificiale perché
in grado di gestire grafi ampi e indeterminati.
• L’algoritmo euristico ha il compito di stimare la distanza tra qualsiasi nodo e
la soluzione. L’euristica influenza fortemente i risultati conseguiti da A*.
Esso, in particolare, ne determina il tempo complessivo di esecuzione. Un
algoritmo euristico molto efficace consente ad A* di trovare velocemente la
soluzione. Nel caso pessimo, una funzione euristica costante, A* diviene un
algoritmo di ricerca molto simile a Dijkstra.
17. Ricerca del percorso su mappa
Algoritmo A*
• A* rientra nella categoria degli algoritmi di ricerca best-first. Esso infatti
esamina, passo dopo passo, i nodi che hanno il punteggio migliore.
• A* usa le seguenti strutture dati per mantenere traccia dello stato
d’esecuzione:
o Una lista di nodi già visitati;
o Una coda a priorità contentente i nodi da visitare.
• Nel corso dell’esecuzione, ad ogni nodo vengono associati più valori: gScore,
hScore, fScore. In termini matematici, dato il nodo corrente n, il nodo di
partenza p e il nodo soluzione s, si deifiniscono i valori:
La funzione g calcola il costo effettivo del percorso
che separa i nodi p (partenza) e n (attuale).
La funzione h calcola una stima del costo del
percorso tra i nodi s (soluzione) e n (attuale). La
funzione h corrisponde alla definizione dell’algoritmo
euristico enunciato in precedenza. Essa è infatti
chiamata spesso funzione euristica.
18. Ricerca del percorso su mappa
Algoritmo A*
1. Inserimento nella coda del nodo di partenza con priorità pari al fScore;
2. Se la coda è vuota, l’algoritmo termina: soluzione non trovata;
3. Estrazione del miglior nodo da visitare (priorità con valore più basso);
4. Se il nodo estratto ha hScore nullo, l’algoritmo termina: soluzione trovata;
5. Costruzione dei nodi figli;
6. Eliminazione dei nodi figli già visitati e subottimi;
7. Inserimento dei nodi rimanenti nella coda con priorità pari al fScore;
8. Tornare al punto 2.
20. Modello Deep Learning
Computer Vision
Supervised
Learning
Unsupervised
Learning
Semi-Supervised
Learning
Reinforcement
Learning
Apprendimento supervisionato standard
Computer Vision
21. Deep Learning con le ConvNet
• Consentono di costruire più livelli al fine di relevare diverse features ad ogni livello tenendo
conto della disposizione spaziale dei pixel nell’imagine.
• I campi recettori funzionano come finestre sovrapposte che si fanno scorrere sull’immagine in
modo da creare una mappa di caratteristiche, tale processo si chiama convoluzione.
• Più layers permettono di riconoscere oggetti nell’imagine aventi sia posizione che diverse
dimensioni.
• Il layer di pooling sono dei layer semplici che permettono il riepilogo delle caratteristiche da
passare poi al livello convolutivo sucessivo per finire a un perceptron multilivello.
Regular neural network (fully connected): Convolutional neural network:
Sequenza di convolutional layer e pooling layer
con al termine più livelli di full connected layers.
24. Deep Learning architettura
• 9 layers
• 1 normalization layer
• 5 convolutional layers
• 3 fully connected
layers
• 27 million
connections
• 250 thousand
parameters
Camera + Inputs da parte
del conducente (sterzo,
freni, velocià, marce) da
parte dell’automobilista in
fase di training
27. Conclusioni
• Il deep learning da solo ha dimostrato di poter guidare un’auto in condizioni
di traffico normale e senza condizioni atmosferiche particolari.
• La fusione tra il modello probabilistico e il modello deep learning (deep
reinforcement learning) è il futuro per le self driving cars. Tale fusione sarà
capace a fronteggiare anche problematiche estreme come guida con il
maltempo.