AI-For-Beginners/translations/it/lessons/4-ComputerVision/11-ObjectDetection/README.md

12 KiB
Raw Blame History

Rilevamento degli Oggetti

I modelli di classificazione delle immagini che abbiamo trattato finora prendevano un'immagine e producevano un risultato categorico, come la classe 'numero' in un problema MNIST. Tuttavia, in molti casi non vogliamo solo sapere che un'immagine ritrae degli oggetti, ma desideriamo anche determinare la loro posizione precisa. Questo è esattamente l'obiettivo del rilevamento degli oggetti.

Quiz pre-lezione

Rilevamento degli Oggetti

Immagine dal sito web di YOLO v2

Un Approccio Naïve al Rilevamento degli Oggetti

Supponiamo di voler trovare un gatto in un'immagine. Un approccio molto semplice al rilevamento degli oggetti potrebbe essere il seguente:

  1. Suddividere l'immagine in un certo numero di riquadri.
  2. Eseguire la classificazione delle immagini su ciascun riquadro.
  3. I riquadri che producono un'attivazione sufficientemente alta possono essere considerati contenenti l'oggetto in questione.

Rilevamento Naïve

Immagine dal Notebook di Esercizi

Tuttavia, questo approccio è tutt'altro che ideale, poiché consente all'algoritmo di individuare il riquadro di delimitazione dell'oggetto in modo molto impreciso. Per una localizzazione più precisa, dobbiamo eseguire una sorta di regressione per prevedere le coordinate dei riquadri di delimitazione, e per farlo abbiamo bisogno di dataset specifici.

Regressione per il Rilevamento degli Oggetti

Questo articolo offre un'ottima introduzione al rilevamento delle forme.

Dataset per il Rilevamento degli Oggetti

Potresti imbatterti nei seguenti dataset per questo compito:

  • PASCAL VOC - 20 classi
  • COCO - Common Objects in Context. 80 classi, riquadri di delimitazione e maschere di segmentazione

COCO

Metriche per il Rilevamento degli Oggetti

Intersezione su Unione

Mentre per la classificazione delle immagini è facile misurare quanto bene l'algoritmo si comporta, per il rilevamento degli oggetti dobbiamo misurare sia la correttezza della classe che la precisione della posizione del riquadro di delimitazione inferito. Per quest'ultimo, utilizziamo la cosiddetta Intersezione su Unione (IoU), che misura quanto bene due riquadri (o due aree arbitrarie) si sovrappongono.

IoU

Figura 2 da questo eccellente articolo su IoU

L'idea è semplice: dividiamo l'area di intersezione tra due figure per l'area della loro unione. Per due aree identiche, IoU sarà 1, mentre per aree completamente disgiunte sarà 0. Altrimenti varierà da 0 a 1. Consideriamo tipicamente solo quei riquadri di delimitazione per cui IoU supera un certo valore.

Precisione Media

Supponiamo di voler misurare quanto bene una determinata classe di oggetti C viene riconosciuta. Per misurarlo, utilizziamo la metrica della Precisione Media (AP), calcolata come segue:

  1. Consideriamo la curva Precisione-Richiamo, che mostra l'accuratezza in base a un valore di soglia di rilevamento (da 0 a 1).
  2. A seconda della soglia, rileveremo più o meno oggetti nell'immagine, con valori diversi di precisione e richiamo.
  3. La curva avrà questo aspetto:

Immagine da NeuroWorkshop

La Precisione Media per una data classe C è l'area sotto questa curva. Più precisamente, l'asse del Richiamo è tipicamente diviso in 10 parti, e la Precisione è mediata su tutti questi punti:


AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})

AP e IoU

Considereremo solo quei rilevamenti per cui IoU supera un certo valore. Ad esempio, nel dataset PASCAL VOC tipicamente \mbox{IoU Threshold} = 0.5, mentre in COCO AP viene misurato per diversi valori di \mbox{IoU Threshold}.

Immagine da NeuroWorkshop

Precisione Media Media - mAP

La metrica principale per il Rilevamento degli Oggetti è chiamata Precisione Media Media, o mAP. È il valore della Precisione Media, mediato su tutte le classi di oggetti, e talvolta anche su \mbox{IoU Threshold}. Il processo di calcolo della mAP è descritto in dettaglio in questo articolo, e anche qui con esempi di codice.

Diversi Approcci al Rilevamento degli Oggetti

Esistono due grandi categorie di algoritmi di rilevamento degli oggetti:

  • Reti di Proposta di Regione (R-CNN, Fast R-CNN, Faster R-CNN). L'idea principale è generare Regioni di Interesse (ROI) ed eseguire CNN su di esse, cercando l'attivazione massima. È un po' simile all'approccio naïve, con l'eccezione che le ROI vengono generate in modo più intelligente. Uno dei principali svantaggi di tali metodi è che sono lenti, poiché richiedono molti passaggi del classificatore CNN sull'immagine.
  • Metodi a passaggio unico (YOLO, SSD, RetinaNet). In queste architetture, la rete è progettata per prevedere sia le classi che le ROI in un unico passaggio.

R-CNN: CNN Basata su Regione

R-CNN utilizza Selective Search per generare una struttura gerarchica di regioni ROI, che vengono poi passate attraverso estrattori di caratteristiche CNN e classificatori SVM per determinare la classe dell'oggetto, e una regressione lineare per determinare le coordinate del riquadro di delimitazione. Articolo ufficiale

RCNN

Immagine da van de Sande et al. ICCV11

RCNN-1

Immagini da questo articolo

F-RCNN - Fast R-CNN

Questo approccio è simile a R-CNN, ma le regioni vengono definite dopo che i livelli convoluzionali sono stati applicati.

FRCNN

Immagine dall'articolo ufficiale, arXiv, 2015

Faster R-CNN

L'idea principale di questo approccio è utilizzare una rete neurale per prevedere le ROI - la cosiddetta Rete di Proposta di Regione. Articolo, 2016

FasterRCNN

Immagine dall'articolo ufficiale

R-FCN: Rete Completamente Convoluzionale Basata su Regione

Questo algoritmo è ancora più veloce di Faster R-CNN. L'idea principale è la seguente:

  1. Estraiamo caratteristiche utilizzando ResNet-101.
  2. Le caratteristiche vengono elaborate da una Mappa di Punteggio Sensibile alla Posizione. Ogni oggetto delle classi C viene suddiviso in regioni k\times k, e addestriamo la rete a prevedere parti degli oggetti.
  3. Per ogni parte delle regioni k\times k, tutte le reti votano per le classi degli oggetti, e viene selezionata la classe con il massimo voto.

r-fcn image

Immagine dall'articolo ufficiale

YOLO - You Only Look Once

YOLO è un algoritmo in tempo reale a passaggio unico. L'idea principale è la seguente:

  • L'immagine viene suddivisa in regioni S\times S.
  • Per ogni regione, CNN prevede n oggetti possibili, le coordinate del riquadro di delimitazione e la confidenza = probabilità * IoU.

YOLO

Immagine dall'articolo ufficiale

Altri Algoritmi

✍️ Esercizi: Rilevamento degli Oggetti

Continua il tuo apprendimento nel seguente notebook:

ObjectDetection.ipynb

Conclusione

In questa lezione hai fatto un rapido tour di tutti i vari modi in cui il rilevamento degli oggetti può essere realizzato!

🚀 Sfida

Leggi questi articoli e notebook su YOLO e prova a utilizzarli tu stesso:

Quiz post-lezione

Revisione e Studio Autonomo

Compito: Rilevamento degli Oggetti

Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.