Guida definitiva al rilevamento di oggetti utilizzando il deep learning [2022]

Pubblicato: 2021-01-08

Sommario

introduzione

Il rilevamento degli oggetti , in parole povere, è un metodo che viene utilizzato per riconoscere e rilevare diversi oggetti presenti in un'immagine o un video ed etichettarli per classificare questi oggetti. Il rilevamento degli oggetti in genere utilizza algoritmi diversi per eseguire questo riconoscimento e la localizzazione degli oggetti e questi algoritmi utilizzano il deep learning per generare risultati significativi.

Rilevamento di oggetti

La tecnica di rilevamento degli oggetti aiuta nel riconoscimento, rilevamento e localizzazione di più istanze visive di oggetti in un'immagine o in un video. Fornisce una comprensione molto migliore dell'oggetto nel suo insieme, piuttosto che una semplice classificazione degli oggetti di base. Questo metodo può essere utilizzato per contare il numero di istanze di oggetti unici e contrassegnare le loro posizioni precise, insieme all'etichettatura. Con il tempo, anche le prestazioni di questo processo sono migliorate in modo significativo, aiutandoci con casi d'uso in tempo reale. Tutto sommato, risponde alla domanda: "Quale oggetto è dove e quanto c'è?".

Fonte

Cos'è un oggetto?

Un oggetto è un elemento che può essere rappresentato visivamente. Le caratteristiche fisiche di un oggetto non hanno un'ampia gamma di variabilità. Un oggetto deve essere semirigido per essere rilevato e differenziato.

Storia del rilevamento di oggetti

Negli ultimi 20 anni, il progresso del rilevamento degli oggetti ha generalmente attraversato due periodi di sviluppo significativi, a partire dai primi anni 2000:

1. Rilevamento di oggetti tradizionale: dai primi anni 2000 al 2014.

2. Rilevamento basato sul deep learning, dopo il 2014.

L'evoluzione tecnica del rilevamento di oggetti è iniziata all'inizio degli anni 2000 e dei rivelatori in quel momento. Hanno seguito la visione di basso e medio livello e hanno seguito il metodo del "riconoscimento per componenti". Questo metodo ha consentito il rilevamento degli oggetti come misura della somiglianza tra i componenti, le forme e i contorni dell'oggetto e le caratteristiche che sono state prese in considerazione sono state le trasformazioni della distanza, i contesti delle forme e l'assenza di bordi, ecc. Le cose non sono andate bene e quindi i metodi di rilevamento della macchina ha iniziato a entrare in scena per risolvere questo problema.

Il rilevamento multiscala degli oggetti doveva essere effettuato prendendo in considerazione quegli oggetti che avevano "diverse dimensioni" e "diverse proporzioni". Questa è stata una delle principali sfide tecniche nel rilevamento degli oggetti nelle prime fasi. Ma, dopo il 2014, con l'aumento dei progressi tecnici, il problema è stato risolto. Questo ci ha portato alla seconda fase del rilevamento degli oggetti , in cui i compiti sono stati eseguiti utilizzando il deep learning .

Fonte

Concetto

Il concetto principale alla base di questo processo è che ogni oggetto avrà le sue caratteristiche. Queste caratteristiche possono aiutarci a separare gli oggetti dagli altri. La metodologia di rilevamento degli oggetti utilizza queste funzionalità per classificare gli oggetti. Lo stesso concetto viene utilizzato per cose come il rilevamento dei volti, il rilevamento delle impronte digitali, ecc.

Facciamo un esempio, se abbiamo due auto sulla strada, usando l'algoritmo di rilevamento degli oggetti , possiamo classificarle ed etichettarle.

Fonte :

Definizione

Il rilevamento di oggetti è un processo per trovare tutte le possibili istanze di oggetti del mondo reale, come volti umani, fiori, automobili, ecc. in immagini o video, in tempo reale con la massima precisione. La tecnica di rilevamento degli oggetti utilizza caratteristiche derivate e algoritmi di apprendimento per riconoscere tutte le occorrenze di una categoria di oggetti. Le applicazioni reali del rilevamento di oggetti sono il recupero delle immagini, la sicurezza e la sorveglianza, i sistemi avanzati di assistenza alla guida, noti anche come ADAS, e molti altri.

Leggi: Le 10 migliori tecniche di deep learning

Descrizione generale di Rilevamento oggetti

Noi umani possiamo rilevare vari oggetti presenti davanti a noi e possiamo anche identificarli tutti con precisione. È molto facile per noi contare e identificare più oggetti senza alcuno sforzo. I recenti sviluppi nelle tecnologie hanno portato alla disponibilità di grandi quantità di dati per addestrare algoritmi efficienti, per fare in modo che i computer svolgano lo stesso compito di classificazione e rilevamento.

Ci sono così tanti termini relativi al riconoscimento di oggetti come visione artificiale, localizzazione di oggetti, classificazione di oggetti, ecc. e potrebbero sopraffarti come principiante, quindi facci conoscere tutti questi termini e le loro definizioni passo dopo passo:

  • Computer Vision: è un campo dell'intelligenza artificiale che ci consente di addestrare i computer a comprendere e interpretare la grafica di immagini e video utilizzando algoritmi e modelli.
  • Classificazione delle immagini: implica il rilevamento e l'etichettatura delle immagini utilizzando l'intelligenza artificiale. Queste immagini sono classificate utilizzando le caratteristiche fornite dagli utenti.
  • Localizzazione degli oggetti: implica il rilevamento di diversi oggetti in una data visuale e traccia un confine attorno ad essi, principalmente un riquadro, per classificarli.
  • Rilevamento di oggetti: coinvolge entrambi questi processi e classifica gli oggetti, quindi traccia i confini per ogni oggetto e li etichetta in base alle loro caratteristiche.

Tutte queste caratteristiche costituiscono il processo di riconoscimento degli oggetti.

Come funziona il rilevamento degli oggetti?

Ora che abbiamo esaminato il rilevamento di oggetti e acquisito conoscenze su cosa sia, ora è il momento di sapere come funziona e cosa lo fa funzionare. Possiamo avere una varietà di approcci, ma ci sono due approcci principali: un approccio di apprendimento automatico e un approccio di apprendimento profondo. Entrambi questi approcci sono in grado di apprendere e identificare gli oggetti, ma l'esecuzione è molto diversa.

Leggi anche: Tutorial sul rilevamento di oggetti TensorFlow

Metodi per il rilevamento di oggetti

Il rilevamento degli oggetti può essere effettuato mediante un approccio di apprendimento automatico e un approccio di apprendimento approfondito. L'approccio di apprendimento automatico richiede che le funzionalità siano definite utilizzando vari metodi e quindi utilizzando qualsiasi tecnica come Support Vector Machines (SVM) per eseguire la classificazione. Considerando che l'approccio di deep learning consente di eseguire l'intero processo di rilevamento senza definire esplicitamente le caratteristiche per eseguire la classificazione. L'approccio del deep learning si basa principalmente sulle reti neurali convoluzionali (CNN).

Metodi di apprendimento automatico

  1. Trasformazione caratteristica invariante di scala (SIFT)
  2. Caratteristiche dell'istogramma delle sfumature orientate (HOG).
  3. Framework di rilevamento degli oggetti Viola-Jones

Metodi di apprendimento profondo

  1. Proposte regionali (R-CNN, Fast R-CNN, Faster R-CNN)
  2. Guardi solo una volta (YOLO)
  3. Reti convoluzionali deformabili
  4. Perfezionamento della rete neurale per il rilevamento di oggetti (RefineDet)
  5. Retina-Net

Impareremo i metodi di deep learning in dettaglio, ma prima facci sapere cos'è l'apprendimento automatico, cos'è l'apprendimento profondo e qual è la differenza tra loro.

Che cos'è l'apprendimento automatico?

L'apprendimento automatico è l'applicazione dell'intelligenza artificiale per far sì che i computer imparino dai dati forniti e quindi prendano decisioni da soli in modo simile agli esseri umani. Dà ai computer la capacità di apprendere e fare previsioni sulla base dei dati e delle informazioni che gli vengono forniti e anche attraverso interazioni e osservazioni nel mondo reale. L'apprendimento automatico, fondamentalmente, è il processo di utilizzo di algoritmi per analizzare i dati e quindi imparare da essi per fare previsioni e determinare le cose in base ai dati forniti.

Gli algoritmi di apprendimento automatico possono prendere decisioni da soli senza essere esplicitamente programmati per questo. Questi algoritmi creano modelli matematici basati sui dati forniti, noti come "set di allenamento", per effettuare le previsioni. Negli algoritmi di apprendimento automatico, dobbiamo fornire le funzionalità al sistema, per far sì che eseguano l'apprendimento in base alle funzionalità fornite, questo processo è chiamato Feature Engineering.

Gli esempi quotidiani di applicazioni di apprendimento automatico sono gli assistenti vocali, il filtro antispam e-mail, i consigli sui prodotti, ecc.

Che cos'è l'apprendimento profondo?

L'apprendimento profondo, a volte chiamato anche apprendimento strutturato profondo, è una classe di algoritmi di apprendimento automatico. Il deep learning utilizza un approccio multilivello per estrarre funzionalità di alto livello dai dati che gli vengono forniti. Non richiede che le funzionalità siano fornite manualmente per la classificazione, invece, cerca di trasformare i suoi dati in una rappresentazione astratta. Impara semplicemente dagli esempi e lo usa per la classificazione futura. Il deep learning è influenzato dalle reti neurali artificiali (ANN) presenti nel nostro cervello.

La maggior parte dei metodi di deep learning implementa reti neurali per ottenere i risultati. Tutti i modelli di deep learning richiedono enormi capacità di calcolo e grandi volumi di dati etichettati per apprendere le funzionalità direttamente dai dati. Le applicazioni quotidiane del deep learning sono l'aggregazione di notizie o il rilevamento di notizie di frode, il riconoscimento visivo, l'elaborazione del linguaggio naturale, ecc.

Tecniche di machine learning e deep learning per il riconoscimento degli oggetti. Fonte

Rilevamento di oggetti tramite Deep Learning

Ora che conosciamo molto bene il rilevamento degli oggetti e il deep learning, dovremmo sapere come eseguire il rilevamento degli oggetti utilizzando il deep learning .

Questi sono i modelli di deep learning più utilizzati per il rilevamento degli oggetti:

1. Famiglia di modelli R-CNN: sta per Convolutional Neural Networks basati sulla regione

    • R-CNN
    • R-CNN veloce
    • R-CNN più veloce

2. Famiglia di modelli YOLO: sta per You Look Only Once

    • YOLOv1
    • YOLOv2 e YOLOv3

Vediamoli uno per uno e capiamo come funzionano.

Il processo di rilevamento degli oggetti prevede questi passaggi da seguire:

  1. Prendere l'aspetto visivo come input, da un'immagine o da un video.
  2. Dividi l'oggetto visivo di input in sezioni o regioni.
  3. Prendi ogni sezione individualmente e lavora su di essa come una singola immagine
  4. Passando queste immagini nella nostra rete neurale convoluzionale (CNN) per classificarle in possibili classi.
  5. Dopo la classificazione, possiamo combinare tutte le immagini e generare l'immagine di input originale, ma anche con gli oggetti rilevati e le loro etichette.

Famiglia di reti neurali convoluzionali (R-CNN) basate sulla regione

Esistono diversi modelli di rilevamento degli oggetti nella famiglia R-CNN. Questi modelli di rilevamento si basano sulle strutture proposte dalla regione. Queste caratteristiche hanno avuto un grande sviluppo nel tempo, aumentando la precisione e l'efficienza.

I diversi modelli sotto R-CNN sono:

  • R-CNN

Il metodo R-CNN utilizza un processo chiamato ricerca selettiva per scoprire gli oggetti dall'immagine. Questo algoritmo genera un gran numero di regioni e lavora collettivamente su di esse. Queste raccolte di regioni vengono controllate per la presenza di oggetti se contengono qualsiasi oggetto. Il successo di questo metodo dipende dall'accuratezza della classificazione degli oggetti.

  • Fast-RCNN

Il metodo Fast-RCNN utilizza la struttura di R-CNN insieme a SPP-net (Spatial Pyramid Pooling) per rendere più veloce il modello R-CNN lento. Il Fast-RCNN utilizza la rete SPP per calcolare la rappresentazione CNN per l'intera immagine solo una volta. Quindi utilizza questa rappresentazione per calcolare la rappresentazione CNN per ogni patch generato dall'approccio di ricerca selettiva di R-CNN. Il Fast-RCNN effettua il treno di processo da un capo all'altro.

Il modello Fast-RCNN include anche la regressione del riquadro di delimitazione insieme al processo di addestramento. Ciò rende entrambi i processi di localizzazione e classificazione in un unico processo, rendendo il processo più veloce.

  • Più veloce-RCNN

Il metodo Faster-RCNN è persino più veloce del Fast-RCNN. Il Fast-RCNN era veloce ma il processo di ricerca selettiva e questo processo è stato sostituito in Faster-RCNN implementando RPN (Region Proposal Network). L'RPN rende più veloce il processo di selezione implementando una piccola rete convoluzionale, che a sua volta genera regioni di interesse. Insieme a RPN, questo metodo utilizza anche le caselle di ancoraggio per gestire le proporzioni multiple e la scala degli oggetti. Faster-RCNN è uno degli algoritmi di rilevamento degli oggetti più accurati ed efficienti.

R-CNN Fast-RCNN Più veloce-RCNN
Tempo di prova per immagine 50 secondi 2 secondi 0,2 secondi
Velocità 1x 25 volte 250x

Sembri solo una volta (YOLO) Famiglia

L'approccio R-CNN che abbiamo visto sopra si concentra sulla divisione di un elemento visivo in parti e si concentra sulle parti che hanno una maggiore probabilità di contenere un oggetto, mentre il framework YOLO si concentra sull'intera immagine nel suo insieme e prevede i riquadri di delimitazione , quindi calcola le probabilità di classe per etichettare le caselle. La famiglia dei framework YOLO è costituita da rilevatori di oggetti molto veloci.

I diversi modelli di YOLO sono discussi di seguito:

  • YOLOv1

Questo modello è anche chiamato YOLO unificato, poiché questo modello unifica il rilevamento di oggetti e il modello di classificazione insieme come un'unica rete di rilevamento. Questo è stato il primo tentativo di creare una rete che rileva oggetti in tempo reale molto velocemente. YOLO prevede solo un numero limitato di caselle di delimitazione per raggiungere questo obiettivo.

  • YOLOv2 e v3

YOLOv2 e YOLOv3 sono le versioni avanzate del framework YOLOv1. YOLOv2 è anche chiamato YOLO9000. Il framework YOLOv1 fa diversi errori di localizzazione e YOLOv2 lo migliora concentrandosi sul richiamo e sulla localizzazione. YOLOv2 utilizza la normalizzazione batch, anchor box, classificatori ad alta risoluzione, funzionalità a grana fine, classificatori multilivello e Darknet19. Tutte queste caratteristiche rendono la v2 migliore della v1. L'estrattore di funzionalità Darknet19 contiene 19 livelli convoluzionali, 5 livelli di raggruppamento massimo e un livello softmax per la classificazione degli oggetti presenti nell'immagine.

Il metodo YOLOv3 è il metodo di rilevamento degli oggetti più veloce e accurato. Classifica accuratamente gli oggetti utilizzando classificatori logistici rispetto all'approccio softmax utilizzato da YOLOv2. Questo ci rende capaci di fare classificazioni multi-etichetta. YOLOv3 utilizza anche Darknet53 come estrattore di funzionalità, che ha 53 strati convoluzionali, più del Darknet19 utilizzato dalla v2, e questo lo rende più accurato. Utilizza anche un rilevatore di piccoli oggetti per rilevare tutti i piccoli oggetti presenti nell'immagine, che non potrebbero essere rilevati utilizzando v1.

Deve leggere : metodi passo-passo per costruire oggi il tuo sistema di intelligenza artificiale

Sommario

Spero che la panoramica di cui sopra sul rilevamento degli oggetti e la sua implementazione utilizzando il deep learning ti sia stata utile e ti abbia fatto capire l'idea centrale del rilevamento degli oggetti e come viene implementato nel mondo reale utilizzando vari metodi e in particolare utilizzando il deep learning.

Il rilevamento degli oggetti può essere utilizzato in molte aree per ridurre gli sforzi umani e aumentare l'efficienza dei processi in vari campi. Il rilevamento di oggetti, così come il deep learning, sono aree che fioriranno in futuro e faranno la loro presenza in numerosi campi. C'è molto spazio in questi campi e anche molte opportunità di miglioramento.

Corsi offerti da upGrad

u pGrad ha sviluppato programmi di formazione online completi su deep learning e machine learning in linea con le aspettative del settore. I moduli di formazione e l'approccio educativo di upGrad aiutano gli studenti a imparare rapidamente e a prepararsi per qualsiasi compito.

I principali programmi educativi offerti da upGrad sono adatti al livello di ingresso ea metà carriera

1. Diploma PG in Machine Learning e AI : è adatto a professionisti che desiderano apprendere l'apprendimento automatico da zero e spostare i propri ruoli professionali in Machine Learning Engineer, Data Scientist, AI Architect, Business Analyst o Product Analyst.

2. Master of Science in Machine Learning e AI: è un programma completo di 18 mesi che aiuta le persone a ottenere un master in questo campo e acquisire conoscenze in questo campo oltre ad avere un'esperienza pratica pratica su un gran numero di progetti.

3. Certificazione avanzata in Machine Learning e Cloud da IIT Madras: è un corso avanzato fornito da IIT Madras per i campi del Machine Learning e delle Tecnologie Cloud.

4. Certificazione PG in Machine Learning e Deep Learning: questo corso è incentrato su machine e deep learning. Con questo corso, gli studenti possono candidarsi per posizioni come Machine Learning Engineer e Data Scientist.

5. Certificazione PG in Machine Learning e NLP: è un corso ben strutturato per l'apprendimento automatico e l'elaborazione del linguaggio naturale. Le opportunità di lavoro per gli studenti sono Data Scientist e Data Analyst.

upGrad ha sviluppato il curriculum di questi programmi per l'apprendimento automatico e l'apprendimento profondo in considerazione dei principi, degli aspetti e dei componenti principali dell'apprendimento automatico e delle opportunità di lavoro in modo che le competenze vengano sviluppate da zero. Dopo aver completato il programma da upGrad, ti aspettano straordinarie opportunità di carriera nell'apprendimento automatico in diversi settori e vari ruoli.

La linea di fondo

Gli studenti possono intraprendere uno qualsiasi dei percorsi sopra menzionati per costruire le loro carriere nell'apprendimento automatico e nel deep learning. Il supporto per il posizionamento di upGrad aiuta gli studenti a migliorare le loro prospettive di lavoro attraverso interessanti opportunità di carriera sul portale del lavoro, fiere del lavoro e Hackathon, nonché supporto per il posizionamento. Il futuro del deep learning è più luminoso con una domanda crescente e prospettive di crescita, e anche molte persone che vogliono fare carriera in questo campo. Partecipa a uno di questi corsi e molto altro ancora offerti da upGrad per tuffarti nelle opportunità di carriera nell'apprendimento automatico che ti aspettano.

Quali sono gli algoritmi di deep learning utilizzati nel rilevamento degli oggetti?

Il rilevamento di oggetti è un'attività di visione artificiale che si riferisce al processo di individuazione e identificazione di più oggetti in un'immagine. Algoritmi di deep learning come YOLO, SSD e R-CNN rilevano oggetti su un'immagine utilizzando reti neurali convoluzionali profonde, una sorta di rete neurale artificiale ispirata alla corteccia visiva. Le reti neurali convoluzionali profonde sono la classe più popolare di algoritmi di deep learning per il rilevamento di oggetti. Le reti convoluzionali profonde sono addestrate su grandi set di dati. Queste reti possono rilevare oggetti con molta più efficienza e precisione rispetto ai metodi precedenti.

Quale algoritmo è il migliore per il rilevamento di oggetti?

Esistono molti algoritmi per il rilevamento degli oggetti, che vanno da semplici scatole a complesse reti profonde. Lo standard del settore in questo momento è YOLO, che è l'abbreviazione di You Only Look Once. YOLO è una rete neurale semplice e facile da implementare che classifica gli oggetti con una precisione relativamente elevata. In poche parole, una rete neurale è un sistema di strati interconnessi che simulano il modo in cui i neuroni nel cervello comunicano. Ogni livello ha il proprio set di parametri, che vengono modificati in base ai dati forniti. I dati che escono da ogni livello vengono inseriti nel livello successivo e così via, fino a quando non otteniamo una previsione finale come output.

Quali sono le difficoltà che hai incontrato nell'identificazione degli oggetti?

Ci sono molte difficoltà che dobbiamo affrontare durante l'identificazione degli oggetti. Una delle difficoltà è quando l'oggetto è l'immagine di una scena. In questi casi abbiamo bisogno di conoscere la posizione della telecamera in passato e dovremmo stimare la posizione dell'oggetto in movimento. A causa dei cambiamenti nel tempo, potremmo ottenere un'immagine completamente diversa e non può essere abbinata. Un modo per risolvere questo problema è prendere l'aiuto della stima del movimento. Un altro è fare il ricalcolo con la differenza di tempo.