top of page
Team I.A. Italia

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

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
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
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 Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Guest
May 01, 2023

Veramente, veramente interessante. Mi chiedo se è possibile inserire oltre alla % di corrispondenza anche la dimensione dell'output: ad esempio se in un insieme di immagini volessi individuare quelle che si ripetono desidererei sapere la dimensione del file

Like

Fabrizio Ciciarelli
Fabrizio Ciciarelli
Mar 02, 2021

Devo dire che non immaginavo si potesse così velocemente mettere in piedi un progetto simile. Complimenti articolo veramente interessante.

Like

Romeo Ceccato
Romeo Ceccato
Mar 01, 2021

... "in sole 13 righe di codice"... è un modo carino per descrivere la punta di un grande iceberg... la Computer Vision è sicuramente una branca della A.I. molto affascinante... e complessa. Complimenti per questa introduzione.

Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page