Riconoscimento automatico di oggetti in immagini digitali Enver Sangineto, Dipartimento di Informatica
Panoramica della presentazione Motivazioni Problemi Principali approcci
Riconoscimento di oggetti L’obiettivo di un sistema di object recognition è rilevare la presenza di “oggetti” d’interesse all’interno di immagini/video digitali Passo fondamentale per permettere ad un computer di “capire cosa sta guardando”
Perchè riconoscere automaticamente gli oggetti di un'immagine Recupero/classificazione d'immagini in data base visivi (Image Retrieval): ricerche on-line, annotazione (automatica) video, organizzazione di archivi fotografici musei, e-commerce... Visione applicata alla robotica: manipolazione d’oggetti, navigazione guidata dalla visione
Perchè riconoscere automaticamente gli oggetti di un'immagine [2] Video sorveglianza: rilevamento di intrusioni, … Biometria Interfacce uomo-macchina di tipo “intelligente” Guida automatica di veicoli su strada Visione industriale, medica, aerea, militare, ... Altro…
Object recognition è un problema aperto Non esistono sistemi general purpose
Problemi principali nel riconoscimento di oggetti Variabilità delle apparenze Segmentazione della scena
Variabilità: cambiamento del punto di vista Michelangelo 1475-1564
Variabilità [2]: cambiamento delle condizioni di illuminazione
Variabilità [3]: oggetti deformabili Xu, Beihong 1943
Variabilità [4]: variazione intra-classe
Segmentazione: Occlusioni Magritte, 1957
Segmentazione [2]: separazione dallo sfondo Klimt, 1913
Approcci principali al riconoscimento Model-based Machine learning
Ipotesi… Un solo oggetto per immagine Machine learning per rappresentare la conoscenza
Riconoscimento tramite apprendimento automatico: schema generale Suppongo di disporre, in fase di training, di un insieme T = {(I1, y1), …, (IN, yN)}, dove Ij è un’immagine e yj un’etichetta che indica l’oggetto in essa contenuto: yj {o1, …, om}
Riconoscimento tramite apprendimento automatico [2] Ogni Ij è rappresentata tramite un punto xj in Rn, detto spazio delle feature Utilizzo T per stimare la distribuzione statistica dei punti in Rn e costruire il classificatore C
Riconoscimento tramite apprendimento automatico [3] On-line, uso C per classificare un’immagine nuova I, non appartenente a T: C(I) {o1, …, om}
Un semplice esempio Istogramma dell’intensità dei pixel in I: Divido il range [0, 255] in n bin Assegno ogni pixel ad un bin: I(p) -> divn(I(p)) f(I) = (v0, …, vn-1)T, dove: vi = # { p I : divn(I(p)) = i}
Esempio [2] Rappresentazione di T in Rn (n,m = 2)
Esempio [3] Rappresentazione della nuova immagine (x = f(I))
Rappresentazione di un’immagine mediante feature Una feature è una rappresentazione, tramite valori numerici, di tutta o parte dell’immagine Se I' è una sottoparte dell’immagine I, allora una feature f è t.c.: f(I') Rd, f(I') = (v0, … vd-1)T, d >= 1
Feature globali e locali I' = I: feature globale I' I: feature locale
Esempio: feature locale fi(I') I' I immagine presa da: Tutorial CVPR 07
Scelta delle feature L’immagine in esame viene quindi descritta usando i valori di un insieme di feature pre-scelte f1, …, fk
Spazio delle feature Se: fj(I) Rd (1 <= j <= k), allora: x(I) = (f1(I) T f2(I) T … fk(I) T)T è un punto in Rk*d (spazio delle feature)
Proprietà (desiderabili) delle feature Stabilità, Capacità discriminative, Efficienza computazionale, …
Proprietà (desiderabile) del feature space Punti geometricamente “vicini” corrispondono ad immagini simili
Teoria Decisionale Bayesiana Data l’immagine x e m classi di oggetti C1, … Cm, associare x alla classe più probabile Scelgo Cj* tale che: Notazione abbreviata:
Esempio Le probabilità sono stimate tramite training immagine presa da: Duda, Hart, Stork, Pattern Classification
Metodi discriminativi Mirano a determinare i bordi di decisione (superfici iper-dimensionali) che meglio partizionano Rn rispetto alle classi d’interesse
Bordi di decisione: ese. monodimensionale
Bordo di decisione: ese. bidimensionale
Esempi di classificatori discriminativi Reti neurali (ANN) Support Vector Machines (SVM) Decision Trees K-Nearest Neighbor (k-NN) Boosting …
Riassumendo… In un approccio all’object recognition basato sul machine learning è necessario modellare due tipi di conoscenza: Conoscenza visiva (e.g., scegliere le feature) Conoscenza statistica (e.g., scegliere il classificatore)
Alcuni riferimenti Forsyth, Ponce, Computer Vision, a Modern Approach 2003 Duda, Hart, Stork, Pattern Classification (II edition) 2001 Bishop, Pattern Recognition and Machine Learning, 2006 Sebe, Cohen, Garg, Huang, Machine Learning in Computer Vision, 2005
Domande…