Riconoscere oggetti tramite RaspBerry (Object recognition)

Vi è mai successo di vedere quei video dove un quadratino verde stava ad indicare con una piccola scritta la natura dell’oggetto indicato?

Esempio, c’era un auto… triangolino verde all’interno del video sull’auto e sopra scritto auto 🚗 con una percentuale? bene questo è il classico riconoscimento di oggetti all’interno di una scena video o un immagine attraverso svariati programmi di riconoscimento. Oggi lo faremo noi con la nostra Raspberry Pi e tensorflow. Vi spiego come.

Cos’è TensorFlow

TensorFlow è una Libreria software open source per l’apprendimento automatico (machine learning), che fornisce moduli sperimentati e ottimizzati, utili nella realizzazione di algoritmi per diversi tipi di compiti percettivi e di comprensione del linguaggio. È una seconda generazione di API, utilizzata da una cinquantina di team attivi sia in ambiti di ricerca scientifica, sia in ambiti di produzione; è alla base di dozzine di prodotti commerciali Google come il riconoscimento vocale, Gmail, Google Foto, e Ricerca. Questi team hanno usato in precedenza DistBelief, la prima generazione di API. TensorFlow fu sviluppato dal team Google Brain e reso disponibile il 9 novembre 2015, nei termini della licenza open source. ( by WikiPedia)

Abbiamo capito quindi che è una fighissima libreria per l’apprendimento automatico e non solo, dobbiamo adesso sperimentarla per fargli fare quello che ci serve? come?… iniziamo con l’installazione.

Una volta installato la Raspbian desktop sul nostro rp3 facciamo i due comandino magici sempre prima di ogni altra cosa:

sudo apt-get update
sudo apt-get upgrade

una volta terminate le varie installazioni abilitiamo la cam, dal menu desktop del raspian.

Andiamo in RaspBerry configuration o via terminale tramite sudo raspi-con fig e abilitiamo dal menu interfaccia la cam, ci servirà per riconoscere gli oggetti tramite webcam.

https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi

bello eh? andiamo al sodo.

Installiamo git tramite il comando:

sudo apt install git

Ottimo, adesso copiamo il repository che ci interessa:

git clone https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.git

A questo punto nella cartella dovremmo trovare i file di interesse,

rinominiamo la cartella Tensoretcetcetc…. in tflite1 con:

mv TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi tflite1

Adesso come per il progetto di automazione dei post precedenti installiamo il virtualenv ci servirà per emulare l’interfaccia.

sudo pip3 install virtualenv
python3 -m venv tflite1-env
source tflite1-env/bin/activate
situazione attuale..
bash get_pi_requirements.sh
pip3 install tensorflow==1.13.1

a fine installazione avremo di nuovo il prompt pronto per l’uso, dobbiamo scaricare gli esempi di pattern per il riconoscimento degli oggetti direttamente da mamma google, scriviamo quindi:

wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip

unzip coco_ssd_mobilenet_v1_1.0_quant_2018_06_29

Inseriamo i file contenuti all’interno della cartella in tflite1 creando una directory di nome TFModel.

Lanciamo il nostro modello attraverso il comando:

python3 TFLite_detection_webcam.py --modeldir=TFModel

Questo sarà il risultato ottenuto.

E’ evidente che con una situazione del genere, soprattutto con una Raspberry Pi portatile e di facile utilizzo, le applicazioni potrebbero essere migliaia…. immaginate tutto questo su un drone? oppure semplicemente riconoscere il gatto che vuole uscire se si avvicina alla porta? basterà riconoscerlo ed inviare un messaggio al nostro smartphone!

Al prossimo articolo tanto altro, magari proseguendo su questa linea svilupperemo qualcosa che ci manderà un messaggio semplicemente se la webcam riconosce, qualcosa oppure qualcuno.

Grazie al prossimo articolo!

Share and Enjoy !

0Shares
0 0 0

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

9 + 1 =