Introduzione al Corso di Visione Artificiale e Riconoscimento
[Slide](C:\UNI\Magistrale\visione\00_Introduzione al corso.pdf)
Indice
Definizioni Fondamentali
Visione Artificiale (VA)
Definizione
La Visione Artificiale è una disciplina molto ampia che studia gli aspetti connessi allo studio e alla progettazione di sistemi artificiali in grado di eseguire compiti visivi e percettivi (tipici dell’uomo e di alcune specie animali).
In pratica: è la capacità di un computer di “vedere” e interpretare il mondo come lo fa il nostro cervello quando guardiamo qualcosa.
Task principali della VA
- Acquisizione di immagini - catturare dati visivi da sensori/fotocamere
- Elaborazione di immagini - migliorare, filtrare, trasformare i dati
- Ricostruzione 3D (shape from X) - creare modelli tridimensionali da immagini 2D
- Comprensione della scena (scene understanding) - capire cosa c’è nell’immagine e come gli oggetti si relazionano
- Riconoscimento di forme - identificare e classificare pattern
- Localizzazione di oggetti - trovare dove sono gli oggetti nell’immagine
- Tracking - seguire oggetti in movimento tra i frame di un video
Pattern Recognition (PR) - Riconoscimento di Forme
Definizione
Il Pattern Recognition è una delle più importanti sotto-discipline della VA. In italiano viene tradotto come “Riconoscimento di Forme”, anche se il termine Pattern è più generale.
Che cosa è un Pattern?
Secondo Watanabe (1985), un pattern è:
- L’opposto del caos - un’entità vagamente definita cui può essere dato un nome
- Qualcosa di riconoscibile - può essere un volto, un carattere scritto, un’impronta digitale, un segnale sonoro, l’andamento di un titolo di borsa, ecc.
Esempio pratico:
- Il vostro viso è un pattern visivo
- La vostra firma è un pattern di tratti
- Il vostro dito è un pattern biometrico
Riconoscimento e Classificazione
Nel contesto del Pattern Recognition:
Classificazione
Il riconoscimento è inteso come classificazione o categorizzazione, ovvero l’assegnamento del pattern a una classe.
Che cosa è una Classe?
Una classe è un insieme di entità aventi proprietà comuni. Il concetto è semantico e dipende strettamente dall’applicazione:
- 21 classi per il riconoscimento di lettere dell’alfabeto maiuscole
- 2 classi per distinguere le lettere dell’alfabeto italiano da quelle cirillico
- Infinite classi possibili a seconda dell’uso
Le classi possono essere:
- Definite dal progettista (classificazione supervisionata) - è il progettista che decide quali sono le classi
- Imparate autonomamente dal sistema (classificazione non supervisionata) - il sistema scopre autonomamente i gruppi naturali nei dati
Perché il Pattern Recognition è Importante?
Motivazione
La visione artificiale è cruciale perché una gran parte dei fenomeni dell’esistenza umana si manifestano sotto forma di pattern: simboli della scrittura, elementi costitutivi del parlato, disegni, immagini, il volto di persone care, ecc.
L’obiettivo: Dotare il computer di capacità di riconoscimento di pattern che svolga compiti percettivi e cognitivi.
Perché è Così Difficile?
La visione artificiale è estremamente sfidante per diverse ragioni:
Sfide Principali
Variabilità e ambiguità visive - lo stesso oggetto può apparire molto diverso a seconda dell’angolo, illuminazione, occlusione, scala, ecc.
Esempi pratici:
- Un cane marrone su sfondo marrone è difficile da distinguere
- Figura e sfondo si confondono (il classico esempio della vecchia/giovane donna)
- Un animale mimetizzato si nasconde perfettamente nell’ambiente
Questi problemi dimostrano che la percezione visiva non è semplice - neppure il nostro cervello la trova banale!
Human vs Mechanical Pattern Recognition
Approccio Umano (Opaco)
L’uomo esegue il riconoscimento mediante una classificazione del pattern, ma:
- Il mapping è opaco - non sappiamo esattamente come il cervello lo fa
- I dettagli sono inaccessibili - non possiamo descrivere le regole che usiamo
- È quasi sempre intuitivo - anche il riconoscitore stesso spesso non sa perché ha scelto quella risposta
Esempio: Riconoscete il viso di un amico in automatico, ma faticate a spiegare quale tratto lo rende riconoscibile.
Approccio Meccanico (Trasparente)
L’implementazione computazionale di un metodo di PR richiede che il mapping opaco sia sostituito da uno trasparente:
- Deve esserci un algoritmo esplicito
- Ogni step deve essere descrivibile e riproducibile
- Il sistema deve essere prevedibile e controllabile
Trade-off: Guadagniamo trasparenza e riproducibilità, ma potremmo perdere in accuratezza rispetto all’umano.
Come Progettare un’Applicazione di VA/PR?
Approccio Teorico
In teoria, il progetto segue questi step:
-
Feature Extraction - Dare una descrizione appropriata degli oggetti in termini di caratteristiche (features), rappresentabili in uno spazio di rappresentazione
-
Decision Space - Specificare uno spazio di interpretazione (lo spazio delle classi)
-
Mapping - Fornire un mapping fra lo spazio di rappresentazione e quello di interpretazione
-
Algoritmo - Determinare un operatore (algoritmo) che esegua questo mapping, ovvero che esegua la classificazione
Approccio Pratico
In pratica è molto più caotico e richiede esperienza:
- Perdere tempo nel tentativo di far funzionare telecamere, frame grabber e altri sensori con il vostro Sistema Operativo e driver
- Cercare in letteratura quali approcci sono stati utilizzati con successo per risolvere lo stesso problema (o analogo)
- Scaricare da Internet codice sviluppato da altri, adattandolo alle esigenze
- Approccio ad hoc essenziale: nella VA e nel PR per risolvere in modo ottimale ogni problema specifico è necessario un metodo personalizzato, non esiste una soluzione universale!
Punto Critico
Nella VA e nel PR per risolvere in modo ottimale ogni problema specifico è necessario un metodo ad hoc!!! Non esistono soluzioni universali che funzionano per tutto.
Applicazioni Pratiche della VA
Categoria: Misurazione, Conteggio, Qualità
Misurazione precisa non a contatto:
- Misurazione dimensionale accurata da immagini 2D
- Conformità rispetto a modello su immagini 2D
- Calibrazione e stereo visione
- Misurazione tridimensionale con profili laser
- Ricostruzione di volumi da nuvole di punti 3D
Conteggio e stima dimensioni:
- Conteggio veicoli, polli, persone, ecc.
- Conteggio frutti e stima dimensioni
Controllo qualità (evidenziato come rilevante):
- Individuazione difetti di produzione
- Selezione della frutta
- Classificazione automatica di difetti
Categoria: Image Processing Avanzato
Elaborazione/Miglioramento immagini:
- Elaborazione/Miglioramento immagini
- Deblurring e super-risoluzione
- Image stitching e registrazione immagini 2D- Ricostruzione 3D da più immagini 2D
- Image to image translation
Semantic Segmentation ⭐ (particolarmente rilevante):
- In immagini mediche:
- Separazione degli organi/parti del cervello
- Separazione/classificazione di cellule tumorali
- In immagini satellitari:
- Individuazione dei vari tipi di colture
- Individuazione di coperture in amianto
Categoria: Riconoscimento in Contesto Reale
Classification/Detection di oggetti:
- Automatic image annotation (tagging Facebook)
- Content-based image retrieval- Raggruppamento immagini nel proprio album
- Image captioning: generare didascalie in linguaggio naturale
- Retail product detection and recognition- Riconoscimento pedoni e segnali stradali
- Riconoscimento oggetti nell’ambiente in robotic vision
- Realtà aumentata: natural markers detection
Biometria ⭐:
- Face detection and Recognition
- Fingerprint Recognition
- Iris Recognition
- Gait, Other and Soft-Biometrics
- Emozioni, Gender, …
Gli Approcci del Pattern Recognition
Nel corso esploreremo quattro approcci principali:
- Template Matching - confrontare l’immagine direttamente con template noti
- Approccio Statistico - usare distribuzioni probabilistiche e teoria statistica
- Approccio Sintattico (Strutturale) - analizzare la struttura e le relazioni tra componenti
- Reti Neurali - imparare dai dati attraverso reti neurali (specialmente deep learning)
Ognuno ha pro e contro che scopriremo nel corso.
Prossimi Argomenti
Continueremo con:
- Sistemi di Visione - come catturiamo le immagini
- Immagini Digitali - come rappresentiamo le immagini nel computer
- Segmentazione - come suddividiamo l’immagine in regioni significative