• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
Guide

YOLO Object Detection usando Tensorflow, darkflow e python

YOLO Object Detection usando Tensorflow, darkflow e python

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.

Written by Andrea Provino - Dicembre 9, 2018
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino