Presentazione Attività di Ricerca
Secondo periodo – Aprile-Settembre 2008
02 Ottobre 2008
http://imagelab.ing.unimo.it
Obiettivi progetto
 fatto (periodo 1)


 fatto (periodo 2)
1. Studio di fattibilità ed analisi dei requisiti; ricerca e definizione di sistemi di
acquisizione, telecamere e sistema di illuminazione più adatto allo scopo;
studio dello stato dell’arte negli algoritmi e nelle librerie software per il pick
and place
2. Studio e sviluppo di algoritmi di visione per l’individuazione della posizione e
rotazione nel 3D (o 2D ½) del pezzo per calcolo del punto di pick;
3. studio e sviluppo di algoritmi per l’individuazione dell’ingombro dei
contenitori dei manufatti
4. studio di segmentazione e localizzazione dei pezzi anche in caso di due
oggetti adiacenti o parzialmente sovrapposti
5. Realizzazione di un primo sistema prototipale e campagna di test
6. Estensione al caso di gruppi di pezzi sovrapposti e sviluppo di librerie
invarianti alla dimensione e forma dei pezzi
7. Realizzazione di un sistema prototipale e campagna di test
http://imagelab.ing.unimo.it
Ricostruzione 3D
http://imagelab.ing.unimo.it
Ricostruzione 3D
Problemi ancora da affrontare:
• La presenza in alcuni casi di picchi non corretti dovuti alla
mancanza di match corretto tra le due viste; verranno studiati
metodi per eliminarle o “tollerarle”
• La gestione di parti poco riflettenti, come il nero, o troppo
riflettenti (come specchio o superfici lucide), nonché la gestione
delle parti contenenti dei liquidi
http://imagelab.ing.unimo.it
Segmentazione oggetti complessi
Che approccio utilizzare?
•
Segmentazione basata sull’apparenza/colore
Colori non unici
Apparenza molto “confusa” e occlusioni
•
Segmentazione basata sui contorni
Occlusioni
Contrasti non evidenti e riflessi
•
Segmentazione basata su modello 3D completo
Modello 3D complesso da acquisire
Computazionalmente oneroso
•
Segmentazione basata su feature matching e trasf. geometriche
Robusto a rotazione, scaling, luminosità, ecc.
Veloce (pochi punti, non immagine completa o modello 3D)
Feature matchate devono essere correlate
Segmentazione non completa, ma “a punti”
http://imagelab.ing.unimo.it
Nostro approccio
I metodi di segmentazione feature-based implementano i seguenti
passi:
• Feature extraction
SIFT
• Feature matching
• Calcolo trasformazione geometrica tra modello e immagine
http://imagelab.ing.unimo.it
Feature extraction: SIFT
SIFT (Scale Invariant Feature Transform) – Lowe 2004
I passi principali dell’algoritmo SIFT sono i seguenti:
1. Scale-space extrema detection: questo passo ricerca i massimi su tutte le
scale e tutte le locazioni spaziali. Viene implementato efficientemente
utilizzando le DoG (Difference of Gaussians) per identificare punti di
interesse invarianti alla scala e all’orientazione.
2. Keypoint localization: per ogni punti di massimo trovato, un modello
dettagliato viene utilizzato per determinare la locazione e la scala. I keypoint
selezionati alla fine sono scelti sulla base di una misura di stabilità.
3. Orientation assignment: ad ogni keypoint vengono assegnate una o più
orientazioni, sulla base delle direzioni del gradiente in un intorno del
keypoint. Tutte le operazioni fatte successivamente sul keypoint vengono
fatte rispetto alla direzione, scala e locazione assegnate al keypoint,
garantendo quindi invarianza a queste caratteristiche.
4. Keypoint descriptor: vengono calcolati i gradienti locali alla scala
selezionata e in un intorno del keypoint. Questi vengono poi trasformati in
una rappresentazione che permette distorsioni locali della forma e cambi di
illuminazione.
http://imagelab.ing.unimo.it
Scale-space extrema detection
http://imagelab.ing.unimo.it
Scale-space extrema detection
http://imagelab.ing.unimo.it
Ricerca massimi nello scale-space
 Oltre a cercare i massimi in un intorno
 Elimino i punti con basso contrasto
 Elimino i punti sugli edge
http://imagelab.ing.unimo.it
Ricerca massimi nello scale-space
 Keypoint risultanti
http://imagelab.ing.unimo.it
Calcolo orientazione dei keypoints
 Calcolo modulo e orientazione del gradiente
 Si calcola l’istogramma delle orientazioni, quantizzato per 36 direzioni
 Il picco dell’istogramma e gli altri picchi entro l’80% del picco maggiore sono
scelti come direzione principale del keypoint. Se ne risultano più di uno (e
ciò succede in media il 15% delle volte), si crea un keypoint per ciascuna
direzione principale. Queste direzioni multiple contribuiscono
significativamente alla stabilità del matching.
 Il descrittore viene calcolato su un intorno di 16 x 16 orientato in modo
concorde alla sua direzione principale. Questo intorno viene suddiviso in 16
matrici 4 x 4 e per ciascuna l’istogramma dell’orientazione del gradiente
discretizzato su 8 bin (4x4x8=128 valori).
http://imagelab.ing.unimo.it
Matching dei keypoints
 Semplice distanza Euclidea tra i descrittori a 128 valori
 Per aumentare la robustezza vengono scartati tutti i match per cui il
rapporto tra la distanza del match migliore e la distanza del secondo match
migliore è maggiore di 0.8. Questo permette di evitare match falsi dovuti allo
sfondo o ad altri oggetti nella scena.
http://imagelab.ing.unimo.it
Trasformate geometriche
http://imagelab.ing.unimo.it
Trasformata proiettiva o omografica
 Colleziono tutti i punti e con SVD o MLE stimo i 9 parametri della
trasformata
http://imagelab.ing.unimo.it
Trasformata proiettiva o omografica
 Usando direttamente tutti i punti per la trasformazione ho due tipi di
problemi:
 Match sbagliati
 Match corretti ma su oggetti diversi
http://imagelab.ing.unimo.it
Trasformata omografica con RANSAC
 Allora abbiamo usato il RANSAC (dettagli sul report)
http://imagelab.ing.unimo.it
Trasformata Euclidea
 Necessità di distinguere (clusterizzare) match di oggetti diversi
MODELLO
OGGETTO
keypoint
keypoint matchato
punto caratterizzante
proiezione punto caratterizzante
vettore spostamento
vettore spostamento ruotato
http://imagelab.ing.unimo.it
Alcuni risultati (il resto dal vivo …)
http://imagelab.ing.unimo.it
Difetti … del SIFT
1.
2.
3.
4.
Il SIFT, come la maggior parte di questi metodi, si basa sul gradiente, quindi
sul fatto che gli oggetti di interesse presentano parti texturate con un buon
contrasto. Se questo non è vero i keypoints ottenuti sono troppo pochi e non
affidabili;
Il SIFT ha dimostrato di avere una limitata robustezza ai cambi di luminosità
localizzati, ad esempio dovuti ai riflessi dei flowpacks;
Il nostro approccio considera di confrontare l’immagine corrente con un
modello dell’oggetto da cercare. Sebbene questo nel nostro caso sia
inevitabile (volendo creare un sistema flessibile e non vincolato ad un solo
oggetto), se il modello non è sufficientemente rappresentativo delle situazioni
possibili il nostro approccio diventa inaffidabile;
Il SIFT, per costruzione, ottiene sempre solo un match per ciascun keypoint
del modello; questo significa che nel caso di oggetti poco texturati i pochi
keypoints ottenuti sul modello rischiano di essere suddivisi sulle varie istanze
dell’oggetto presenti nell’immagine corrente e non essere sufficienti per
segmentarli tutti.
http://imagelab.ing.unimo.it
Sviluppi (quasi-)futuri
 MULTI-MODELLO:
 Copie multiple da fondere
 Varie faccie: mutualmente esclusive
 MULTI-MATCH:
 Correggere il problema del SIFT del match 1-a-1
http://imagelab.ing.unimo.it
Integrazione 3D
 Come integrare segmentazione e 3D?
 Altezza solo nei punti di prelievo!
 Abbiamo davvero bisogno di prelevare il più alto? O solo
quelli non “coperti” da altri?
http://imagelab.ing.unimo.it
Scarica

Presentazione02102008