Che cos’è il riconoscimento di oggetti?

3 cose da sapere

Che cos’è il riconoscimento di oggetti?

Il riconoscimento di oggetti è una tecnica di visione artificiale per l’identificazione di oggetti in immagini o video. Il riconoscimento di oggetti è un output chiave degli algoritmi di deep learning e machine learning. Quando guardiamo una fotografia o un video, riusciamo immediatamente a individuare persone, oggetti, scene e dettagli visivi. L’obiettivo è quello di insegnare a un computer a svolgere un’attività naturale per l’uomo: identificare e riconoscere il contenuto di un’immagine.

Figura 1. Utilizzare il riconoscimento di oggetti per identificare diverse categorie di oggetti.

Il riconoscimento di oggetti è una tecnologia fondamentale alla base delle automobili senza conducente, poiché consente loro di riconoscere un segnale di stop o di distinguere un pedone da un lampione. Inoltre, è molto utile in una varietà di applicazioni, come l’identificazione di patologie nel bioimaging, l’ispezione industriale e la visione robotica.

Riconoscimento di oggetti vs. rilevazione di oggetti

La rilevazione di oggetti e il riconoscimento di oggetti sono tecniche simili per l’identificazione di oggetti, ma differiscono nell’esecuzione. La rilevazione di oggetti è il processo di individuazione di istanze di oggetti nelle immagini. Nel caso del deep learning, la rilevazione di oggetti è un sottogruppo del riconoscimento di oggetti, dove l’oggetto non viene solo identificato, ma anche localizzato in un’immagine. Ciò consente di identificare e localizzare più oggetti all’interno della stessa immagine.

Figura 2. Riconoscimento di oggetti (a sinistra) e rilevazione di oggetti (a destra). 

Come funziona il riconoscimento di oggetti?

È possibile utilizzare una varietà di approcci per il riconoscimento di oggetti. Recentemente, le tecniche di machine learning e deep learning sono diventate approcci comunemente utilizzati per risolvere problemi legati al riconoscimento di oggetti. Entrambe le tecniche imparano a identificare gli oggetti nelle immagini, ma differiscono nell’esecuzione.

Figura 3. Tecniche di machine learning e di deep learning per il riconoscimento di oggetti. 

La sezione seguente spiega le differenze tra il machine learning e il deep learning per il riconoscimento di oggetti e mostra come implementarle.

Tecniche di riconoscimento oggetti

Riconoscimento oggetti tramite deep learning

Le tecniche di deep learning sono diventate un metodo diffuso per effettuare il riconoscimento di oggetti. I modelli di deep learning, come le reti neurali convoluzionali o CNN, vengono utilizzati per imparare automaticamente le caratteristiche di un oggetto al fine di indentificarlo. Ad esempio, una CNN può imparare a identificare le differenze tra cani e gatti analizzando migliaia di immagini addestrate e imparando le caratteristiche che differenziano un cane da un gatto.

Esistono due approcci per effettuare il riconoscimento di oggetti utilizzando il deep learning:

  • Addestrare un modello da zero: Per addestrare una rete profonda da zero, è necessario raccogliere un set di dati etichettati di grandi dimensioni e progettare un’architettura di rete in grado di apprendere le feature e costruire modello. I risultati possono essere sorprendenti, ma questo approccio richiede grandi quantità di dati di training ed è necessario impostare i layer e i pesi nella CNN.
  • Utilizzo di un modello di deep learning pre-addestrato: La maggior parte delle applicazioni di deep learning utilizza l’approccio denominato transfer learning, un processo che consiste nell’affinamento di un modello precedentemente addestrato. Si parte da una rete esistente, come AlexNet o GoogLeNet, in cui si inseriscono nuovi dati contenenti classi precedentemente sconosciute. Questo metodo richiede meno tempo e fornisce un risultato più rapido, poiché il modello è già stato addestrato su migliaia o milioni di immagini.

Il deep learning garantisce un alto livello di precisione, ma richiede grandi quantità di dati per effettuare previsioni accurate.

Figura 4. Applicazione di deep learning che mostra il riconoscimento oggetti dei piatti di un ristorante.

Riconoscimento oggetti tramite machine learning

Anche le tecniche di machine learning vengono ampiamente utilizzate per il riconoscimento di oggetti e offrono approcci diversi rispetto al deep learning. Tra gli esempi più comuni di tecniche di machine learning figurano:

Flusso di lavoro di machine learning

Per eseguire il riconoscimento di oggetti utilizzando un approccio standard di machine learning, si parte da una raccolta di immagini (o video) e si selezionano le caratteristiche significative in ciascuna immagine. Ad esempio, un algoritmo di estrazione feature potrebbe estrarre caratteristiche dei contorni o degli angoli che possono essere utilizzate per differenziare le classi nei dati.

Queste caratteristiche vengono aggiunte a un modello di machine learning, che le separerà in categorie distinte, quindi utilizzerà queste informazioni per l’analisi e la classificazione dei nuovi oggetti.

È possibile utilizzare una varietà di algoritmi di machine learning e metodi di estrazione di feature, che offrono molte combinazioni per creare un modello accurato di riconoscimento oggetti.

Figura 5. Flusso di lavoro di machine learning per il riconoscimento di oggetti.

L’utilizzo del machine learning per il riconoscimento di oggetti offre la flessibilità di scegliere la migliore combinazione di caratteristiche e classificatori per l’apprendimento. Consente di ottenere risultati precisi con una piccola quantità di dati.

Differenze tra machine learning e deep learning per il riconoscimento di oggetti

La scelta dell’approccio ottimale per il riconoscimento di oggetti dipende dall’applicazione utilizzata e dal problema che si sta cercando di risolvere. In molti casi, il machine learning può essere una tecnica efficace, in particolare se si conoscono le feature o caratteristiche dell’immagine più appropriate per differenziare classi di oggetti.

L’aspetto principale da tenere presente al momento della scelta tra machine learning e deep learning è se di dispone di una GPU potente e di una grande quantità di immagini etichettate. Se la risposta a una di queste domande è No, un approccio di machine learning potrebbe essere la scelta migliore. Le tecniche di deep learning sono tendenzialmente più efficaci se si dispone di più immagini e una GPU contribuisce a ridurre il tempo di addestramento del modello.

Figura 6. Fattori chiave nella scelta tra deep learning e machine learning.

Per saperne di più

Altri metodi di riconoscimento oggetti

In base all’applicazione, possono essere sufficienti anche altri approcci più basilari di riconoscimento oggetti.

  • Il confronto di modelli, che utilizza un’immagine di piccole dimensioni, o modello, per trovare le regioni corrispondenti in un’immagine più grande
  • La segmentazione di immagini e l’analisi dei blob, che utilizza le proprietà degli oggetti semplici, come le dimensioni, il colore o la forma

Generalmente, se un oggetto può essere riconosciuto utilizzando un approccio semplice come la segmentazione di immagini, è meglio partire dall’approccio più semplice. Ciò può fornire una soluzione efficace che non richiede centinaia o migliaia di immagini addestrate o una soluzione eccessivamente complessa.

Riconoscimento di oggetti

deep learning e machine learning con MATLAB

Con solo poche righe di codice MATLAB®, puoi costruire modelli di machine learning e deep learning per il riconoscimento di oggetti senza essere un esperto.

Utilizzare MATLAB per il riconoscimento di oggetti consente di essere efficaci in meno tempo, poiché permette di:

  1. Utilizzare le competenze del proprio settore e scoprire il data science con MATLAB:

    Puoi utilizzare MATLAB per apprendere e acquisire competenze nei settori del machine learning e deep learning. MATLAB rende l’apprendimento di questi campi pratico e accessibile. Inoltre, MATLAB consente agli esperti del settore di creare modelli di riconoscimento oggetti anziché affidare il compito ai data scientist, che potrebbero non conoscere il tuo settore o la tua applicazione.

  2. Utilizzare app per etichettare dati e costruire modelli:

    MATLAB consente di costruire modelli di machine learning e deep learning utilizzando il codice in minima parte.

    Con l’app Classification Learner, puoi costruire rapidamente modelli di machine learning e confrontare diversi algoritmi di machine learning senza dover scrivere il codice.

    Utilizzando l’app Image Labeler, puoi etichettare interattivamente gli oggetti all’interno di immagini e automatizzare l’etichettatura sul campo all’interno di video per l’addestramento e il test di modelli di deep learning. Questo approccio interattivo e automatizzato consente di ottenere migliori risultati in meno tempo.

  3. Integrare il riconoscimento di oggetti in un unico flusso di lavoro:

    MATLAB è in grado di unificare più domini in un unico flusso di lavoro. MATLAB consente di progettare e programmare nel medesimo ambiente. Offre strumenti e funzioni per il deep learning e il machine learning e per una serie di domini che si servono di questi algoritmi, come la robotica, la visione artificiale e l’analisi dati.

MATLAB consente di automatizzare la distribuzione dei modelli in sistemi aziendali, cluster, cloud e dispositivi embedded.

Prova gratuita

30 giorni di esplorazione a tua disposizione.