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:

  1. Feature Extraction - Dare una descrizione appropriata degli oggetti in termini di caratteristiche (features), rappresentabili in uno spazio di rappresentazione

  2. Decision Space - Specificare uno spazio di interpretazione (lo spazio delle classi)

  3. Mapping - Fornire un mapping fra lo spazio di rappresentazione e quello di interpretazione

  4. 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:

  1. Template Matching - confrontare l’immagine direttamente con template noti
  2. Approccio Statistico - usare distribuzioni probabilistiche e teoria statistica
  3. Approccio Sintattico (Strutturale) - analizzare la struttura e le relazioni tra componenti
  4. Reti Neurali - imparare dai dati attraverso reti neurali (specialmente deep learning)

Ognuno ha pro e contro che scopriremo nel corso.


Prossimi Argomenti

Continueremo con: