Deep learnign e python : Object Recognition e Object Predict esempio pratico in 13 righe di codice

Aggiornato il: 6 giorni fa

Prerequisiti :

  • Se non sai perchè utilizzeremo python, clicca qui

  • Se non hai ancora installato Python, clicca qui

  • Se non sai come scaricare e gestire le librerie, clicca qui

  • Se non sai cosa sia un Dataset, clicca qui

  • Se non sai quali sono le migliori librerie per l'I.A. , clicca qui



Introduzione

Il rilevamento di oggetti è una tecnologia che rientra nel dominio più ampio della visione artificiale . Si occupa di identificare e tracciare oggetti presenti in immagini e video. Il rilevamento di oggetti ha molteplici applicazioni come il rilevamento dei volti, il rilevamento dei veicoli, il conteggio dei pedoni, le auto a guida autonoma, i sistemi di sicurezza, ecc.

I due principali obiettivi del rilevamento di oggetti includono:

  • Per identificare tutti gli oggetti presenti in un'immagine

  • Filtra l'oggetto dell'attenzione

In questo articolo vedrai come eseguire il rilevamento di oggetti in Python con l'aiuto della libreria ImageAI .


Apprendimento approfondito per il rilevamento di oggetti

Le tecniche di deep learning si sono dimostrate all'avanguardia per vari problemi di rilevamento di oggetti. Di seguito sono riportati alcuni degli approcci di deep learning comunemente utilizzati per il rilevamento di oggetti:

  • ImageAI

  • Rilevatori a colpo singolo

  • YOLO (Guardi solo una volta)

  • Reti neurali convoluzionali

Nel resto di questo articolo, vedremo cos'è esattamente ImageAI e come usarlo per eseguire il rilevamento di oggetti.


La libreria ImageAI

ImageAI è una libreria Python creata per consentire agli sviluppatori di creare applicazioni e sistemi con capacità di apprendimento approfondito e di visione artificiale autonome utilizzando poche righe di codice diretto. ImageAI contiene un'implementazione Python di quasi tutti gli algoritmi di apprendimento profondo all'avanguardia come RetinaNet , YOLOv3 e TinyYOLOv3.

ImageAI utilizza diverse API che funzionano offline: ha API di rilevamento di oggetti, rilevamento di video e rilevamento di oggetti che possono essere chiamate senza accesso a Internet. ImageAI utilizza un modello pre-addestrato e può essere facilmente personalizzato.

La ObjectDetectionclasse della libreria ImageAI contiene funzioni per eseguire il rilevamento di oggetti su qualsiasi immagine o insieme di immagini, utilizzando modelli pre-addestrati. Con ImageAI, puoi rilevare e riconoscere 80 diversi tipi di oggetti comuni e quotidiani.



Configurazione dell'ambiente di sviluppo

In questa parte del tutorial, lavoreremo attraverso l'installazione di ImageAI.

Per utilizzare ImageAI è necessario installare alcune dipendenze. Il primo passo è avere Python installato sul tuo computer. Se non lo hai installato, o non sai come scaricare e gestire le librerie vai ai prerequisiti


Dopo aver installato Python sul tuo computer, installa le seguenti librerie usando pip:


TensorFlow

$ pip install tensorflow
$ pip3 install tensorflow # per Python3

OpenCV

$ pip install opencv-python
$ pip3 install opencv-python # per Python3

Keras

$ pip install keras
$ pip3 install keras # per Python3

ImageAI

$ pip install imageAI
$ pip3 install imageAI # per Python3

Ora scarica il file del modello TinyYOLOv3 che contiene il modello di classificazione che verrà utilizzato per il rilevamento degli oggetti.



Rilevamento di oggetti con ImageAI in 10 semplici step

Vediamo ora come utilizzare effettivamente la libreria ImageAI.

Spiegherò passo dopo passo come costruire il tuo primo modello di rilevamento di oggetti con ImageAI.


Step 1

Il nostro primo compito qui è creare le cartelle necessarie. Per questo tutorial abbiamo bisogno delle seguenti cartelle:

  • Rilevamento di oggetti : cartella principale

  • modelli : memorizza il modello pre-addestrato

  • input : memorizza il file immagine su cui si desidera eseguire il rilevamento degli oggetti

  • output : memorizza il file immagine con gli oggetti rilevati

Dopo aver creato le cartelle, la Directory principale dovrebbe contenere le seguenti sottocartelle:

CartellaPrincipale
├── input
├── models
└── output

3 directories, 0 files


Step 2

Apri il tuo editor di testo preferito per scrivere codice Python e crea un nuovo file detector.py .



Step 3

Importa la ObjectDetectionclasse dalla libreria ImageAI.

from imageai.Detection import ObjectDetection

Step 4

Ora che hai importato la libreria imageAI e la ObjectDetectionclasse, la prossima cosa è creare un'istanza della classe ObjectDetection, come mostrato qui:

detector = ObjectDetection()

Step 5

Specifichiamo il percorso dalla nostra immagine di input, immagine di output e modello.

model_path = "./models/yolo-tiny.h5"
input_path = "./input/test45.jpg"
output_path = "./output/newimage.jpg"



Step 6

Dopo aver istanziato la ObjectDetectionclasse, ora possiamo chiamare varie funzioni dalla classe. La classe contiene le seguenti funzioni di chiamare modelli pre-addestrati: setModelTypeAsRetinaNet(), setModelTypeAsYOLOv3(), e setModelTypeAsTinyYOLOv3().

Ai fini di questo tutorial, userò il TinyYOLOv3model pre-addestrato e quindi useremo la setModelTypeAsTinyYOLOv3() funzione per caricare il nostro modello.

detector.setModelTypeAsTinyYOLOv3()

Step 7

Successivamente, chiameremo la funzione setModelPath(). Questa funzione accetta una stringa che contiene il percorso del modello pre-addestrato:

detector.setModelPath(model_path)

Step 8

Questo passaggio chiama la funzione loadModel() . Carica il modello dal percorso specificato sopra utilizzando il setModelPath() metodo di classe.

detector.loadModel()

Step 9

Per rilevare gli oggetti nell'immagine, dobbiamo chiamare la detectObjectsFromImage funzione utilizzando il detector object che abbiamo creato nella sezione precedente.

Questa funzione richiede due argomenti: input_imagee output_image_path.

input_image è il percorso in cui si trova l'immagine che stiamo rilevando, mentre il output_image_path è il percorso per memorizzare l'immagine con gli oggetti rilevati. Questa funzione restituisce un dizionario che contiene i nomi e le probabilità percentuali di tutti gli oggetti rilevati nell'immagine.

detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)

Step 10

È possibile accedere agli elementi del dizionario attraversando ogni elemento nel dizionario.

for eachItem in detection:
    print(eachItem["name"] , " : ", eachItem["percentage_probability"])

Codice completo per il rilevamento di oggetti

Per scaricare il codice gratuitamente, registrati nel portale con Facebook, Google o con la tua email e sblocca l'area dedicata ai download dei progetti.

Scorri in fondo alla pagina per Registrarti o Accedere se ancora non l'hai fatto.

Clicca qui per accedere a l'area download progetti A.I.

Nell'output è possibile vedere il nome di ogni oggetto rilevato insieme alla sua percentuale di probabilità come mostrato di seguito: Output

car  :  53.66367697715759
person  :  75.88377594947815
person  :  51.0115921497345
person  :  84.292072057724

Immagine originale:

L'immagine originale, ovvero "img.jpg", aveva questo aspetto:

Foto prima della manipolazione deep learning

Immagine con rilevamento di oggetti:

Dopo il rilevamento dell'oggetto, l'immagine risultante ha questo aspetto:

Foto di Output dopo la manipolazione

Puoi vedere che ImageAI ha identificato con successo auto e persone nell'immagine.


Conclusione

Il rilevamento di oggetti è una delle attività di computervision più comuni. Questo articolo spiega come eseguire il rilevamento di oggetti in Python utilizzando la libreria ImageAI con l'aiuto di un esempio pratico di DeepLearning.


Vuoi Scaricare il progetto Gratis ?

  1. Accedi o registrati al portale

  2. Clicca qui e scarica il progetto



Grazie mille per la lettura, spero che il piccolo esempio ti abbia fatto capire la potenza di questa libreria abbinata alla semplicità di python. Scrivi qui nei commenti possibili applicazioni o estensioni di questo frammento di codice.

Vuoi scaricare il codice completo Registrati e nel portale e clicca qui ! E' Gratis.
Per eventuali problemi nel codice scrivi sul nostro Forum.



3,438 visualizzazioni2 commenti

Post recenti

Mostra tutti

VUOI DIVENTARE UN MEMBRO UFFICIALE DELLA NOSTRA COMMUNITY E TRARNE I SEGUENTI BENEFICI?

Forum

Accedi al forum e fai domande o crea discussioni con esperti del settore. Potrai anche fare proposte di lavoro, condividere i tuoi progetti ed altro

Sfide

Accedi a diverse e diverti sfide sulla programmazione e intelligenza artificiale. Appena completerai la sfida riverai la certificazione

Download

Potrai scaricare in modo gratuito tutti i file dei vari progetti nel portale. Ogni progetto è disponibile in formato PDF, PYTHON, NOTEBOOK

E molto altro

Appena ti sarai registrato ti arriverà un e-book in regalo e in futuro ne riceverai altri...

In oltre potresti ricevere sconti o buoni

Se ti piacciono i benefici, i regali e vuoi essere aggiornato quando escono nuovi articoli, progetti o news premi il tasto qui sotto e registrati/accedi con Google, Facebook o con la tua email

VUOI SCRIVERE ARTICOLI PER NOI.

Se vuoi scrivere articoli sul mondo dell' AI ed avere la tua visibilità, contattaci adesso.
Grazie per l'interesse dimostrato.

Segui i nostri canali social

Segui i nostri canali social 

  • YouTube Icona sociale

Youtube

  • Instagram

Instagram

  • Spotify Icona sociale

Spotify

  • White Facebook Icon

Facebook

  • Twitter Icon sociale

Twitter

©2020 Intelligenza Artificiale Italia

  • Instagram
  • Facebook Icona sociale
  • Youtube