Blog.

YOLO su Cartelli Stradali | Log 5


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
Logs

log_come_nasce_guida_esplorare_trovare_find_way_explore

Usare il sistema YOLO, effettuando un traning su cartelli stradali, in modo da gestire l’analisi in tempo reale di un video e identificare la segnaletica correttamente

Definire questo progetto ambizioso è dire poco, tenendo presente che non abbiamo la più pallida idea di cosa dobbiamo fare. Ma la motivazione non ci manca.

Ricerca. Nella prima fase dobbiamo acquisire quante più informazioni possibili: software, dataset, fattibilità, guide, video se serve anche il manuale di istruzioni dell’Airbus A380. Come fonti, sceglieremo le più autorevoli fornite da google: Medium e github, indispensabili.

Ok. Allora.

Pare che la strada che abbiamo intrapreso non sia proprio una giungla inesplorata. Ci sono parecchie risorse. Il primo è un “Bosh dataset” che dovbebbe raccogliere un po’ di segnaletica stradale tedesca, molto simile se non identica a quella italiana. 

Ho il timore che qesto progetto richieda un sistema di analisi diverso da YOLO, ma non ne sono sicuro. Dovremo fare ulteriori ricerche. 

Ci sono parecchie risorse che convergono nell’identificazione di installazioni semaforiche, ma per il momento scartimole. Ci interessano i segnali stradali. Speriamo solo di fare la scelta giusta e di non dovercene pentire in seguito.

Ho trovato questo tizio che a quanto pare avrebbe realizzato un software basato su YOLO, e sembra funzionare in suo video. Per il momento salviamo la risorsa e andiamo avanti. In più non capisco come faccia a funzionare. Quali modelli usa?

In un report finale prodotto per conto della Stanford University, i ricercatori hanno usato Belgium Traffic Sign Dataset. Potrei essermi confuso all’inizio, e il Bosh dataset sarebbe quindi frutto della mia immaginazione…

Il sistema migliore: R-CNN vs YOLO

Ecco quello a cui mi riferivo poco fa: Fast RCNN vs YOLO. In questo articolo su Medium, l’autore spiega molto chiaramente le differenze tra i due sistemi, confrontandoli in base a prestazioni e punti deboli.

In effetti, R-CNN svolge una funzione analoga a YOLO benché impieghi più tempo; per analizzare un’immagine occorrono circa 0,2 secondi, come si evince dal grafico Test-Time speed. YOLO può arrivare a gestire 45 immagini al secondo (9 volte più veloce). Si tratta di dati sperimentali, anche se dovrebbero essere presi con le dovute cautele. In linea di massima pare che YOLO sia la scelta migliore, ma ecco il problema. YOLO si basa su una logica di funzionamento che fatica a trovare piccoli oggetti come aerei, uccelli o cartelli stradali in lontananza e le relative scritte. 

Quindi… 

Questo tizio sfrutta tensorflow e alcune librerie per portare a compimento il nostro stesso progetto… 

L’idea… usiamo YOLO, in questo modo. Scarichiamo il dataset dal sito belga, effettuaimo un training su quei dati usando le funzioni presenti su github e facciamo fare al sistema l’object recogniction. 

Su questo sito è presente una dettagliata guida che spiega come effettuare il traning, ma usa darknet, invece di darkflow. Inoltre, non sappiamo l’accuratezza che avrebbe questo sistema nel identificare piccoli oggetti, anche se vale la pena tentare.

Installare tkinter (gestione grafica di python)

Stiamo tentando di usare un programma per la creazione dei file xml in modo da fare il traning. Tkinter.

Cosa mi frulla per la testa?

Una pazzia, creare un software di guida autonoma. In che modo? Unsando un po’ di sistemi già presenti su internet, e implementando YOLO per l’analisi dei cartelli.

Ne abbiamo di strada da fare, per il moemnto ti saluto!

Alla prossima!

Un caldo abbraccio, Andrea.


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