YOLO, abbreviazione di You Only Look Once, è un potente ed efficiente sistema di riconoscimento oggetti. Sfrutta un ingegnoso meccanismo di machine learning che permette, attraverso la scomposizione e l’analisi di singoli fotogrammi, l’identificazione di auto, persone, animali e molto altro.
Le applicazioni sono numerose: dai sistemi di sciurezza all’interno di abitazioni, alle auto a guida autonoma.
In questo post configureremo tutto il necessario per eseguire i primi test su un’immagine.
YOLO | I requisti, hadware, software e mentali
I requisiti hardware sono semplici: basta un computer, meglio se dotato di GPU. In assenza di questo componente le operazioni saranno più lunghe, ma non impossibili.
Passiamo alla nota dolente, i requisiti mentali. Rilassati. Fatti una passeggiata.

Sei ancora seduto? Allora fatti una tisana:
- sei nervoso? Sbaglierai qualcosa
- non vedi l’ora di provare questo sistema e salti alcuni punti? Otterrai un mucchio di cose non funzionanti
- Sei frettoloso e fai copia e incolla senza capire nulla? Entrerai in un loop di frustrazione, rabbia e depressione che inevitabilmente ti porterà a distruggere il computer.
Sembra il bugiardino di un medicinale. “Ecco le controindicazioni...”
Però, seguendo alla lettera le informazioni di questa guida, con calma e tranquillità, raggiungerai il tuo obiettivo. Credimi, una volta giunto alla vetta della montagna, il panorama sarà senza eguali.
Perché dovresti seguire questa guida? Per svariati motivi, puoi metterti alla prova e acquisire nuove capacità; puoi fare i primi passi nel fantastico mondo delle intelligenze artificiali e stupirti di cosa un programa sia in grado di fare.
La guida è per utenti MS-Windows, in futuro lavorerò anche con linux.
Iniziamo
Installazione Microsoft Visual Studio
Le librerie che andrai ad installare, richiedono Microsoft Visual C++ v14. Quindi scarica la versione community di Visual Studio 2017. Segui la procedura di installazione, e cliccando su Visual C++ build tools, assicurati di scaricare:
- VC++ 2017 version 15.9 v14.16 latest v141 tools
- Windows 10 SDK (10.0.17763.0)
Segui le istruzioni. I file sono un po’ pesanti, e al termine dell’installazione ti sarà richiesto di effettuare il riavvio.
Assicurati di avere solo Visual Studio 2017 installato, qualora fossero presenti versioni precedenti, eliminale. Nel mio caso, era presente Visual Studio 2015. Mi ha causato problemi perché il sistema non caricava la v2017. Eliminarla è stato semplice, è bastato selezionarla sempre da Visual Studio Installer e disinstallarla.
Installazione Anaconda | Python
Ora installa python. Collegati al sito di anaconda e scarica l’installer.
Attenzione | Only 64-bit allowed
Da quanto ho capito, i sistemi a 32 bit non sono supportati da alcune librerie che andrai ad utilizzare. Questo obbliga l’installazione della versione 64bit del programma ed impedisce ai sistemi a 32bit di proseguire nella guida. Mi spiace. Se dovessi trovare altro materiale, fornirò prontamente la documentazione.
Segui le indicazioni a schermo e assicurati di installare python globalmente aggiungendo alla variabile PATH di Windows i dovuti file.
Ora abbiamo python v3.7 installato sul nostro sistema. Cerca dal menu start, Anaconda Prompt. Quindi digita:
python -V (attenzione alla V maiuscola)
Output: Python 3.7.0
Installazione Python v3.5
Dopo svariati tentativi, e numerose ricerche sul web, sono arrivato alla conclusione che con la versione 3.5 di python abbiamo la sicurezza che il sistema YOLO funzioni senza intoppi. Quindi, installa python 3.5, creando un nuovo ambiente all’interno di anaconda, che andrai in seguito ad attivare. All’interno di Anaconda prompt digita:
conda create -n py35 python=3.5
Digita “y”, per accettare l’installazione dei pacchetti.
Ora attiviamo l’ambiente digitando:
activate py35
Sei dentro l’ambiente di py35. Lo puoi vedere dalla scritta “(py35)” che compare alla sx del percorso file in cui ti trovi.
Installazione librerie
Ti servono queste librerie
- tensorflow
- numpy
- Cython
- opencv
- PyHamcrest
Quindi effetuane l’installazione, una alla volta, digitando (sempre in Anaconda Prompt):
pip install tensorflow
pip install numpy
Ora, numpy potrebbe essere già presente. Questo singifica che la shell di darà un messaggio di “errore”. Non ti preoccupare
pip install Cython
pip install PyHamcrest
conda config –add channels conda-forge
Anche questo comando potrebbe restituire un “Warning”, dal momento che il canale “conda-forge” potrebbe essere già registrato. Non ti preoccupare, vai a avanti.
conda install opencv
(richiede autorizzazione a procede “Proceed ([y]/n)?”, digita “y”)
Perfetto, le librerie sono installate!
Download darkflow-master
E’ arrivato il momento di scaricare i file richiesti per YOLO. Collegati a GitHub e scarica la repository darkflow-master.
E’ un file zip. Salvalo sul desktop e apri l’archivio.
Installazione darkflow
Su Anaconda Prompt digita:
cd Desktop\darkflow-master\darkflow-master
Ora installa darkflow usando il comando:
pip install -e .
Occhio al punto “.”, è necessario.
Questo è il momento della verità. Se hai installato tutto correttamente, darkflow sarà installato senza errori. In caso contrario, calma e sangue freddo.
Potrebbe essere andato storto qualcosa. Cerca di capire l’errore che compare. Una rapida ricarca su google potrebbe tornare utile.
Correzzione errori
Nel mio caso, ho ricevuto i seguenti “Warning”:
OUTPUT: twisted 18.7.0 requires PyHamcrest>=1.9.0, which is not installed.
OUTPUT: You are using pip version 10.0.1, however version 18.1 is available.
Per sicurezza, risolvo le richieste. Su Anaconda Prompt digito:
pip install PyHamcrest
python -m pip install –upgrade pip
Il secondo comando mi ha richiesto i permessi di amministratore. Li ho concessi, avviando una nuova istanza di Anaconda Prompt “Eseguendo come amministratore”
Download file *.weights
Collegati a questo link, e scarica “yolo.weights” salvando il file in una nuova cartella chiama “bin” all’interno di darkflow-master.
Percorso da desktop:
darkflow-master\darkflow-master\bin\yolo.weights
Avvio YOLO detecting object
Con il gestore fil di MS-Windows apri la cartella:
darkflow-master\darkflow-master\simple-img
Ci somo immagini di esempio su cui applichrai il sistema YOLO; a breve, si creerà una cartella Out in cui andrai a vedere il risultato.
Su Anaconda Promt digita:
python flow –imgdir sample_img/ –model cfg/yolo.cfg –load bin/yolo.weights
In 9.59 secondi, le mie immagini demo sono state processate. Il tempo varia in funzione di CPU, SSD o HDD, ma in linea di massima si aggira attorno a questo valore. Ecco il confronto prima / dopo
Il sistema funziona! Nei prossimi post, faremo alcune considerazioni e miglioreremo il riconoscimento.
Un caldo abbraccio, Andrea.