Top Banner
Samuele Salti, Luigi Di Stefano Elaborazione dell’immagine LS Outline Detectors Rotation invariant detectors Harris corner detector Scale invariant detectors LoG & Hessian LoG approximations (DoG, Lepetit & Fua, …) Harris-Laplace Fast-Hessian Descriptors Rotation & Scale invariant descriptors SIFT SURF Matching Strategies Geometric Validation & LS Pose Estimation
52

2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Apr 21, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di StefanoElaborazione dell’immagine LS

Outline

• Detectors– Rotation invariant detectors

• Harris corner detector

– Scale invariant detectors• LoG & Hessian

• LoG approximations (DoG, Lepetit & Fua, …)

• Harris-Laplace

• Fast-Hessian

• Descriptors– Rotation & Scale invariant descriptors

• SIFT

• SURF

• Matching Strategies

• Geometric Validation & LS Pose Estimation

Page 2: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Descriptors

• Una volta individuati i feature points, è necessario descriverli.

• Paradossalmente, le difficoltà si rovesciano:– È molto semplice ottenere un descrittore scale-invariant

• In effetti tutto il lavoro è già fatto: alla fine di ogni algoritmo presentato è nota la scala caratteristica (più o meno approssimata) del feature point.

• Andando a estrarre informazioni solo dall’immagine dello scale-space a quella scala, il descrittore risultante è automaticamente scale invariant.

– È (relativamente) più complesso ottenere un descrittore invariante alle rotazioni.

Page 3: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Descrittori invarianti a rotazione

• Idea base e più usata: calcolare un’orientazione caratteristica del keypoint (in modo simile alla scala caratteristica) analizzando l’intorno del punto.

• Normalizzare qualunque patch o quantità calcolata per descrivere la patch rispetto a questa orientazione principale.

• Oltre a differire nei descrittori, quindi, i possibili algoritmi presentano anche modi alternativi di calcolare l’orientazione caratteristica.

• Nel seguito vedremo:

– SIFT

– SURF

– Lepetit&Fua

Page 4: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Orientazione caratteristica in SIFT

• Calcolo dell’orientazione caratteristica– Per ogni immagine nella piramide, pre-calcolo di modulo e orientazione dei

gradienti

– Si calcola un istogramma delle orientazioni (binning pari a 10°) in un’intorno di ogni keypoint. Ogni campione viene pesato con il modulo del gradiente e con una gaussiana avente deviazione standard pari a 1.5 volte la scala del keypoint.

– L’orientazione caratteristica è data dal picco principale dell’istogramma delle orientazioni. Sono però mantenuti anche eventuali picchi secondari aventi valore compreso entro l’ 80% del massimo (statisticamente solo il 15% dei keypoint). In tal caso, si creano tanti keypoint quanti sono i picchi, con stessa locazione, stessa scala e diversa orientazione.

– Infine, una parabola viene interpolata su ogni picco ed i suoi vicini, per ottenere un valore di orientazione principale maggiormente accuratato.

Page 5: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

SIFT Descriptor (1)

• Si considera una griglia 16x16 intorno al keypoint nell’immagine L(x,y,σ) in cui tale punto è stato individuato. La griglia è suddivisa in 4x4 regioni (ciascuna di 4x4 pixel) ed in ognuna di tali regioni viene costruito un istogramma delle orientazioni dei gradienti (normalizzati rispetto all’orientazione principale del keypoint).

• Ogni istogramma ha 8 bin ( = angoli di 45°), quindi il descrittore risultante ha 4x4x8 = 128 elementi. Ciascun pixel contribuisce all’istogramma della regione cui appartiene sommando il modulo del gradiente ancora una volta pesato con una gaussiana centrata nel keypoint (σ pari alla metà del lato della griglia).

Un esempio più compattocon griglia 8x8

Page 6: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

SIFT Descriptor (2)

• Per minimizzare gli effetti della quantizzazione, il contributo di ogni pixel non viene assegnato in maniera rigida ad una sola cella dell’istogramma, ma distribuito fra più celle vicine (nelle 3 dimensioni definite da angolo e regioni) in maniera proporzionale alla vicinanza al centro della cella (interpolazione trilineare).

• Approccio ispirato a studi sul sistema visivo umano che suggeriscono come i neuroni presenti nella corteccia visiva primaria (V1) ai fini del riconoscimento oggetti rispondano alle orientazioni dei gradienti secondo un meccanismo che tollera un certo grado di shift delle posizioni dei gradienti sulla retina.

• Infine, il vettore che costituisce il descrittore è normalizzato a lunghezza unitaria, per ottenere l’invarianza a cambiamenti affini di intensità luminosa. Robustezza anche a variazioni non lineari di contrasto riducendo importanza dei moduli rispetto alle orientazioni, ottenuta saturando tutti gli elementi > 0.2 e rinormalizzando il vettore.

bk bk+1

dk dk+11 1

1

1k k

k k

w d

w d+ +

= − = −

Page 7: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

SURF (Speeded-Up Robust Features)

• Il descrittore SURF è fortemente ispirato a SIFT, ma con una serie di scelte ed accorgimenti che mirano a ridurre significativamente il costo computazionale senza perdere in robustezza e distintività.

• In particolare, le principali scelte che caratterizzano SURF rispetto a SIFT sono:– Usare le risposte alle wavelet di Haar piuttosto che il gradiente.

– Usare le integral images per calcolare le risposte alle wavelet di Haar.

– Calcolare un descrittore di dimensione ridotta (i.e. 64), così da velocizzare sia il calcolo dello stesso sia la fase di matching.

x-direction(dx)

y-direction(dy)

-1+1

+1-1

Page 8: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Orientazione Caratteristica

• Dato un keypoint individuato alla scala s, si calcolano le risposte dx, dy (con filtri di lato 4s) in un intorno circolare del keypoint di dimensione prefissata (r=6s).

• Le risposte sono pesate con una gaussiana (σ=2s) centrata nel keypoint e rappresentate nel piano (dx, dy).

• Nel piano (dx, dy) viene poi fatta ruotare una sliding window di ampiezza π/3, sommando le componenti omologhe delle risposte contenute nella window in modo da ottenere un vettore.

• Il vettore con modulo massimo definisce l’orientazione caratteristica del keypoint.

• Qualora la specifica applicazione non richieda l’invarianza per rotazione, è possibile evitare il calcolo dell’orientazione caratteristica, usando il descrittore U-SURF (Upright SURF). Gli autori riportano che tale descrittore che si è dimostrato robusto per rotazioni nel range +/- 15°.

Page 9: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Descrittore SURF (1)

• Per ogni keypoint viene costruita una regione quadrata di lato 20s orientata come il vettore che definisce l’orientazione caratteristica.

• Come in SIFT, la regione attorno al keypoint viene suddivisa in 4x4 sotto-regioni ed in esse sono calcolate le risposte alle Haar wavelets dx,dy (con filtri di lato 2s). Tali risposte sono pesate con una gaussiana (σ=3.3s) centrata nel keypoint.

• Concatenando i vettori locali associati alle 16 sotto-regioni si ottiene il descrittore finale da 64 elementi.

• Per ogni sotto-regione sono calcolate le somme e le somme dei valori assoluti di dx,dy , ottenendo un descrittore locale di 4 elementi:

( ), , ,dx dx dy dy= ∑ ∑ ∑ ∑v

Page 10: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Descrittore SURF (2)

• Alcuni esempi di come il descrittore SURF catturi la struttura locale dell’immagine:

• Le Haar wavelets sono invarianti ad un bias di illuminazione (disturbo additivo). Per ottenere invarianza anche ad un disturbo moltiplicativo (gain) il descrittore viene normalizzato per ottenere norma unitaria.

• Gli autori propongono anche una versione di SURF avente le medesime dimensioni di SIFT (i.e. SURF-128). In questo caso, le somme di dx,|dx| sono calcolate separatamente per dy>0 e dy<0, e la stessa cosa viene fatta per le somme di dy,|dy|. Rispetto a SURF, il descrittore SURF-128 risulta più distintivo, poco più lento da calcolare ma significativamente più oneroso nella fase di matching in ragione dell’elevata dimensionalità.

Page 11: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Confronto sperimentale di descrittori

• Contributo principale dovuto a Mikolajczyk&Schmid (PAMI, 2005). Emerge che globalmente, SIFT è il descrittore più efficace.

Scale changes (2-2.5) and rotation (30-45°), Harris-Laplace keypoints

Viewpoint changes (40-60°), Harris-Affine Keypoints

Page 12: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Un confronto SIFT/SURF (1)

• Valutazione svolta da Wyman (CUHK) sul dataset del Visual Geometry Group di Oxford.

Elaborazione dell’immagine LS

img

#

bikes boat graf leuven wall

2 o ++ -- - ---

3 o o - -- ----

4 + +++ - -- ---

5 ++ +++ o -- o

6 +++ +++ o --- o

Legend

+ SURF better by

0.1 recall rate

- SIFT better by

0.1 recall rate

o Draw

Page 13: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

• SURF risulta migliore:– Nel gestire immagini con molto blur

– Nel gestire immagini con forti rotazioni

e cambiamenti di scala puri

• SIFT risulta migliore:– Nel gestire cambiamenti del punto di

vista (deformazioni prospettiche)

– Nel gestire variazioni di illuminazioni

• SURF è mediamente circa 3 volte più veloce.

• CVLab-DEIS, Progetto ARIS (AugmentedReality), 320x240, no-doubling:

SIFT ≈ 5 fps, SURF ≈ 10 fps

img# Bikes Boat graf Leuve

n

Wall

2 o ++ -- - ---

3 o o - -- ----

4 + +++ - -- ---

5 ++ +++ O -- o

6 +++ +++ O --- o

Un confronto SIFT/SURF (2)

Page 14: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Lepetit&Fua: orientazione caretteristica

• Ancora una volta, massima enfasi sulla velocità

• Orientazione caratteristica data da

Page 15: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Outline

• Detectors– Rotation invariant detectors

• Harris corner detector

– Scale invariant detectors• LoG & Hessian

• LoG approximations (DoG, Fua, …)

• Harris-Laplace

• Fast-Hessian

– Affine invariant detectors• Harris Affine

• Descriptors– Rotation & Scale invariant descriptors

• SIFT

• SURF

• Matching Strategies

• Geometric Validation & LS Pose Estimation

Page 16: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Matching Strategies

• Una volta individuate e descritte le feature, è necessario stabilire le corrispondenze confrontando i descrittori.

• Il problema è un classico problema di Nearest Neighbor (NN) Search:Given a set S of points in metric space M and a query point q ∈∈∈∈M, find the closest point in S to q.

• Limitiamo, senza perdita di generalità, la trattazione alla ricerca di featurescorrispondenti tra due immagini, che indicheremo come reference image R

(modello dell’oggetto) e target image T (scena corrente).

• Per ogni feature in T è quindi necessario trovare il NN in R.

– I feature points di T sono quindi, di volta in volta, i vari query point q.

– I features points estratti in R rappresentano l’insieme di punti S.

– Un spazio metrico M è definito da un insieme ed una funzione distanza

• M è uno spazio a n dimensioni (Rn) con n la dimensione del descrittore (128 per SIFT, 64 per SURF…)

• La metrica può essere la distanza euclidea, la distanza L1 o altre (Mahalanobis, ..)

Page 17: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Criteri di Matching

• Una volta trovato il NN con qualunque distanza, non è detto che la corrispondenza sia valida in quanto in generale esisteranno feature points in Tche non hanno corrispondente in R (clutter, feature dell’oggetto non rilevate in R).

• È quindi opportuno introdurre un criterio per stabilire se un match deve essere accettato oppure scartato:

1) (NN distance) NNd T≤

2

2) (ratio of distances) NN

NN

dT

d −

Lowe [7]

T=0.8: elimina 90% dei match errati scartandosolo il 5% di quelli corretti.

Page 18: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

NN-Search Efficiente

• Data la query feature, q , la ricerca esaustiva del NN nell’insieme delle featuredel modello (o dei modelli appartenenti ad un database di oggetti da ricercare) ha complessità lineare nel numero delle model feature, S.

• Per velocizzare la ricerca si utilizzano tecniche di indexing mutuate dal settore delle basi di dati e dei sistemi informativi.

• L’approccio base è una tecnica denominata k-d tree (k-dimensional tree, Friedman, 1977), di cui è stata proposta una variante approssimata (Beis et. al, 1997) denominata BBF (Best Bin First) che risulta efficiente anche in spazi ad elevata dimensionalità quali sono quelli in cui vivono i descrittori di keypoints (e.g. SURF: n=64, SIFT: n=128…).

Page 19: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

k-d Tree

• Durante la ricerca del NN, il query point attraversa l’albero a partire dalla radice seguendo gli split

fino a raggiungere una foglia, che contiene un dato che costituisce una buona approssimazione del NN.

• Il k-d tree è una generalizzazione al caso dei dati k-dimensionali dell’albero binario.

• Ogni nodo rappresenta uno split dell’insieme dei dati originario secondo una delle k dimensioni.

k1,m1

k2,m2 k3,m3

k4,m4 k2,m5

si sj

< ≥

< ≥

< ≥

q

d(q,sj)

• L’albero viene poi ripercorso al contrario (backtracking) per raffinare la ricerca utilizzando una strategia di tipo branch-

and-bound che consente di fare il pruning di rami che non possono contenere un dato più vicino del miglior vicino corrente.

• Se l’albero è bilanciato la prima ricerca richiede solo log(n) confronti. Se nel backtracking vengono visitati pochi nodi lo speed-up è molto elevato.

Page 20: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Creazione dell’albero

• L’insieme dei dati, S, viene suddiviso scegliendo la dimensione, ki, avente la massima varianza. Lo split avviene scegliendo il valore mediando di tale dimensione.

a

b

c

d

e

f

g

h

x

y

e,xe

< ≥

• Viene creato il nodo radice con il dato mediano nella dimensione di split. I dati sono così suddivisi in due sotto-insiemi, S1 ed S2, aventi circa lo stesso numero di elementi.

• Il procedimento viene poi applicato in maniera ricorisiva a partire da S1 ed S2.

b,yb

< ≥

a

<

f,yf

< ≥

g hd c,xc

Page 21: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Ricerca del NN (1)

a

b

c

d

e

f

g

h

x

y

Poiché la (iper)sfera centrata in q ed avente raggio d(q,a) interseca gli (iper)piani che separano la partizione dello spazio associata alla foglia di a dalle partizioni adiacenti, è necessario esplorare anche tali partizioni (con i relativi nodi padre) per determinare il NN di q.

q

e,xe

< ≥

b,yb

< ≥

a

<

f,yf

< ≥

g hd c,xc

q

d(q,a)

Page 22: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Ricerca del NN (2)

1. Partendo dalla radice, si raggiunge la foglia che contiene q, individuando il NN corrente (NNcurr) e calcolando la relativa distanza da q (d(q, NNcurr)).

2. Backtracking:

– Si risale al nodo padre della foglia individuata. Se il dato in esso memorizzatoha distanza da q inferiore a NNcurr , tale dato diviene il nuovo NN corrente e viene aggiornata d(q, NNcurr)).

• Se ciò accade, viene esaminato anche questo semispazio, scendendonuovamente lungo l’albero.

• Se ciò non accade, il processo di backtracking continua a risalire l’albero.

– Raggiunta la radice, la ricerca è completata.

– Si controlla se l’altro semispazio associato al nodo padre secondo l’iperpiano che ha originato lo split può contenere o meno un vicino migliore del corrente. A tale scopo si verifica se l’iperpiano interseca la ipersfera centrata in q ed avente raggio d(q, NNcurr)).

Page 23: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Limite del k-d tree

• Al crescere di n, i bin in cui viene partizionato lo spazio hanno sempre più vicini:

1 2 viciniR →

2 4 viciniR →

3 6 viciniR →

4 8 viciniR →

2 vicininR n→ ⋅

• Ciò implica che, al crescere di n, cresce significativamente il numero dei bin adiacenti a quello associato ad NNcurr che deve essere esaminato per avere la garanzia di trovare il NN esatto. Conseguemente, il k-d tree è inefficiente in spaziad elevata dimensionalità.

• E’ un limite inerente la strutttura stessa dello spazio Rn, quindi difficilmentesuperabile. Beis e Lowe propongono allora un ricerca approssimata (Best Bin First) basata su una priority queue ed un limite sul massimo numero di foglieesaminabili (Emax).

Page 24: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Ricerca del NN (BBF)

1. Partendo dalla radice, si raggiunge la foglia che contiene q, individuando il NN corrente (NNcurr) la relativa distanza da q (d(q, NNcurr)). Durante la discesa si mantiene una priority queue costituita dai nodi visitati ordinati per distanza da q.

2. Backtracking:

– Si estrae il primo elemento della priority queue e si esplora il branch non precedentemente visitato fino al raggiungimento di una foglia. Durante il processo viene aggiornata la priority queue .

– Il passo precedente viene iterato fintantoché non è stato esaminato un prefissato numero di foglie Emax.

Il NN (approssimato) è il punto più vicino ottenuto dopo aver visitato Emax foglie.

Page 25: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

BBF vs. k-d tree

Speed-up(30.000 punti

distribuiti uniformemente)

Grado di approssimazione(Emax=200, n=12)

Page 26: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Matching o classificazione?

• La proposta di Lepetit e Fua [15] cambia radicalmente punto di vista.

• Le corrispondenze tra keypoints non vengono stabilite da un algoritmo di matching ma da un classificatore multiclasse, opportunamente addestrato.

• Le classi sono i keypoint ripetibili estratti da un’immagine di riferimento (e.g. un’immagine dell’oggetto che si vuole riconoscere) su cui viene eseguito il training (off-line) del classificatore.

• Lo speed-up conseguibile a run-time è notevole, grazie allo spostamento di buona parte del peso computazionale nella fase di training (off-line)

• L’approccio è però adeguato alle applicazioni in cui si ha disposizione un tempo significativo per eseguire il training .

( ): i iclassificazione k I p C k∀ ∈ →ɶ ɶɶ

{ } { }1 2: , 1,1,2 Ntraining K k k k I C N= ∈ → = −… …

Page 27: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Training set (View sets)

• Si estraggono i keypoint da I utilizzando il detector precedentemente descritto (slides 57, 58).

• Utilizzando una trasformazione affine, si genera casualmente un insieme molto ampio di viste sintetiche di I, aggiungendo anche rumore e background clutter (utile per i keypoint vicini ai bordi dell’oggetto).

• Si estraggono i keypoint dalle viste sintetiche generate, e si seleziona l’insieme dei keypoint ripetibili scegliendo solo quelli che vengono ritrovati con elevata frequenza nelle viste sintetiche (nota: la trasformazione random tra I e ciascuna vista è nota).

Una vista sintetica

generata a partire da I

L’insieme Kdei keypoint

ripetibili

Page 28: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Classificazione

• I dati usati per il training del classificatore sono le patch 32x32 centrate nei keypoint ripetibili estratte in ciascuna delle immagini sintetiche generate mediante la trasformazione affine. A run-time, saranno poi classificate analoghe patch 32x32 centrate nei keypoint estratti dall’immagine da analizzare.

• Il classificatore è una Random Forest, che è un classificatore multiclassecostituito da un insieme di Random Trees. Un Random Tree è un albero binario costruito in maniera random durante la fase di training. Si tratta della medesima tecnica di classificazione usata dalla Microsoft nell’algoritmo di riconoscimento delle body parts del Kinect [16].

Page 29: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Random Tree

( ) ip C kɶ

c c

Page 30: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Random Forest

• Si costruiscono T alberi, ognuno dei quali partiziona lo spazio delle features in maniera diversa.

• La classe finale è quella con la maggior probabilità a posteriori, mediata tra le foglie raggiunte

• rappresenta inoltre un buon stimatore della bontà della classificazione.

( )1

1arg max

T

i iic p c k

T =

= ∑ ɶ

( )c iP kɶ

Page 31: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Creazione degli alberi

• Due proposte per scegliere i test binari ad ogni nodo– Massimizzazione dell’Information Gain, cioè del decremento dell’entropia associato

allo split dei dati:

– Scelta totalmente Random

• Possibilità di normalizzare le patch secondo la orientazione caratteristica del keypoint

• Risultati– Usare test random è sufficiente (grafica a sx) !!

– La normalizzazione della patch (nel grafico a dx) permette di ridurre il numero degli alberi.

( ) ( )2

1

ii

i

SI H p H p

S=

= −∑

Page 32: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Risultati vs. SIFT (25 fps @ 2.8 GHz)SIFT Lepetit&Fua SIFT Lepetit&Fua

Page 33: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Ricapitolando….

Feature Extraction &

MatchingTarget

Model Features Database

PoseEstimation by

LLS

BoundingBox

- SIFT, SURF….. - Efficient Indexing(e.g. kd-tree, BBF)

- GHT

Geometric Validation

Not Found

Found

Page 34: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Geometric Validation: Star Model

{ } ( )1 2, , , ,N i i i iF F F F F Sϕ= = P…

i C i→ = −V P P

F1

F2

F3

F4F5

FN

1

1

N

C iiN == ∑P P

Nella fase off-line di training:

I I

iF F∀ ∈

( ), , ,i i i i iF Sϕ= P V

Page 35: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Geometric Validation: fase on-line

{ }( )

1 2, ,

, ,

M

i i i i

F F F F

F Sϕ

=

= P

ɶ ɶ ɶ ɶ…

ɶɶ ɶ ɶ

I

I∼

, 1....i iF F i M⇔ =ɶ

Riordiniamo poi F in modo che:

( )iC i i voting→ = +P P Vɶ ɶ

000000000000000000000

1Pɶ

2Pɶ

1 V

2 V MV

CPɶ

MPɶ

Page 36: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Similarity Invariant Voting (1)

P1

P2

Pk

P1~

Pk~

P2~

P1~

Pk~

P2~

P1~

Pk~

P2~

PC

I

I∼∼∼∼

Page 37: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Similarity Invariant Voting (2)

I I∼∼∼∼

P1

P2

Pk

PC

P1

∼∼∼∼

Pk

∼∼∼∼

P2

∼∼∼∼

PC

∼∼∼∼

( ) iC i i i is ϕ= + ⋅ ∆P P R Vɶ ɶ

( ), ,i i i iF Sϕ= ⇔P ( ), ,i i i iF Sϕ= P ɶɶ ɶ ɶ

, ii i i i

i

Ss

Sϕ ϕ ϕ∆ = − =ɶ

ɶ

Page 38: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Validazione delle corrispondenze

Le corrispondenze corrette generano voti coerenti che si accumulano nell’intorno della posizione del centro dell’oggetto nell’immagine analizzata. Viceversa, le corrispondenze errate producono voti che si disperdono senza accumulare evidenza per una ben precisa ipotesi di posa (similarità).

Page 39: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Quantizzazione dello spazio della posa

∆y

Spazio di Hough Quantizzato

Max

∆x

I∼∼∼∼

∼∼∼∼

Page 40: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Spazio di Hough Quantizzato (1)

• 4D Hough Space Traslazione (xc ,yc), Rotazione(����====∆ϕ∆ϕ∆ϕ∆ϕ), Scala (s)

s = 0 s = 1 s = 2

Esempio di Hough Space a 4 dimensioni(4 bin per xC e yC, 3 per ���� e s)

x

y

0

1

2

3

1

2

3

1

2

00

x

y

0

1

2

3

1

2

3

1

2

00

x

y

0

1

2

3

1

2

3

1

2

00

Page 41: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Spazio di Hough Quantizzato (2)

s = 1

• Ogni corrispondenza produce un’ipotesi di traslazione, rotazione e scala cheviene accumulata in ben preciso bin dello spazio di Hough quantizzato.

• Le corrispondenze consistenti voteranno per il medesimo bin. • I massimo locali nello spazio 4D definiscono le più probabili ipotesi di posa

dell’oggetto cercato. Tali massimi vengono poi sogliati per stabilire la presenza/assenza dell’oggetto in relazione a ciascuna delle più probabili ipotesi di posa (singola istanza: soglia sul massimo assoluto).

s = 2s = 0

x

y

0

1

2

3

1

2

3

1

2

00

x

y

0

1

2

3

1

2

3

1

2

00

x

y

0

1

2

3

1

2

3

1

2

00

Page 42: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Un (inevitabile) ulteriore esempio

Page 43: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Spazio di Hough del precdente esempio

Page 44: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

ed infine ….

Feature Extraction &

MatchingTarget

Model Features Database

PoseEstimation by

LLS

BoundingBox

Geometric Validation

Not Found

Found

- Euclidean- Similarity- Affine…..

Page 45: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Stima della posa (e.g. similarità)

• Date le posizioni delle coppie di feature corrispondenti individuate dalla GHT:

1.... , , i ii i i i

i i

u ui n

v v

⇔ = = =

P P P P

ɶɶ ɶ

ɶ

vogliamo stimare la similarità (posa) che trasforma il modello nella scena

cos sin +

sin cosi i u

i ii i v

u u ts ss

v s s v t

ϑ ϑϑ ϑ

− = ⇒ = +

P RP t

ɶɶ

ɶ

cos , sin i i u

i i v

u u tm nm s n s

v n m v tϑ ϑ

− = = ⇒ = +

ɶ

ɶ

• La precedente relazione può essere riscritta come:

Page 46: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Stima della posa (2)

1 0

0 1ii i

ui i i

v

m

n uu v

tv u v

t

− =

ɶ

ɶ

11 1

11 1

1 0

0 1

1 0

0 1

un n n

vn n n

uu vm

vv un

tu v u

tv u v

− = ⇒ = −

Ax b

ɶ

ɶ

⋮ ⋮ ⋮ ⋮ ⋮

ɶ

ɶ

Possiamo riscrivere l’equazioneraggruppando i parametriincogniti in un vettore

e, considerando tutte le corrispondenzedisponibili, ottenere un sistemasovradeterminato di 2nequazioni in 4 incognite

Page 47: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Stima della posa (3)

che ammette la seguente soluzione standard ai minimi quadrati:

( ) 1 ( denota la pseudoinversa di )T T− + += =x A A A b A b A A

[ ]

( ) ( )

( )

1tan , ,2 2

, 0,2 : 2 2

0, , ,0 22 2

1, if 0with

0, otherwise

cos sin

n

m

sign m sign m

msign m

m ns

π πϑ ϑ

π πϑ ϑ π

π πϑ ϑ ϑ π ϑ ϑ ϑ π π

ϑ ϑ

− = ∈ −

∈ − ⇒ ∈

∈ ⇒ = + ⋅ ∈ − ⇒ = + − ⋅

<=

= =

⌢ ⌢

⌢ ⌢ ⌢ ⌢

• Dati (m,n) i parametri di rotazione ( ) e scala (s) possono essere facilmentericavati come segue:

ϑ

Page 48: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Esempio di stima della posa (1)

Elaborazione dell’immagine LS

1

3 4

2

Page 49: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Esempio di stima della posa (2)

Elaborazione dell’immagine LS

Page 50: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Ulteriori esempi (features SURF)

Page 51: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di StefanoElaborazione dell’immagine LS

Bibliografia

1. H. Moravec. Rover visual obstacle avoidance. In International Joint Conference on Artificial Intelligence, pages 785–790, 1981.

2. C. Harris and M. Stephens. A combined corner and edge detector. In Alvey Vision Conference, pages 147–151, 1988.

3. C. Schmid, R. Mohr, and C. Bauckhage. Comparing and evaluating interest points. In Proceedings of the 6th

International Conference on Computer Vision, Bombay, India, pages 230-235, January 1998.

4. T. Lindeberg. Feature detection with automatic scale selection. International Journal of Computer Vision, 30(2):79–116, 1998.

5. Witkin, A. P. "Scale-space filtering", Proc. 8th Int. Joint Conf. Art. Intell., Karlsruhe, Germany,1019–1022, 1983.

6. Koenderink, Jan "The structure of images", Biological Cybernetics, 50:363–370, 1984.

7. David G. Lowe. Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer

Vision, 20(2):91–110, 2004.

8. Mikolajczyk, K. and Schmid, C. 2004. Scale & Affine Invariant Interest Point Detectors. International Journal of

Computer Vision, 60(1): 63–86, 2004.

9. H. Bay, T. Tuytelaars, and L. Van Gool. SURF: Speeded Up Robust Features. In Ninth European Conference on

Computer Vision, 2006.

10. V. Lepetit and P. Fua. “Keypoint Recognition using Randomized Trees” , In. IEEE PAMI, Vol. 28, Isuue 9, pag. 1465- 1479, Sept. 2006

11. C. Schmid, R. Mohr, and C. Bauckhage. Comparing and evaluating interest points. In ICCV, pages 230–235,

1998.

Page 52: 2D OR by Invariant Features [modalità compatibilità] · Samuele Salti, Luigi Di Stefano Descriptors • Una volta individuati i featurepoints, è necessario descriverli. • Paradossalmente,

Samuele Salti, Luigi Di Stefano

Bibliografia

12. Mikolajczyk, K., Schmid, C.: A performance evaluation of local descriptors. PAMI 27 (2005) 1615–1630.

13. J. Friedman, J. Bentley, and R. Finkel. An algorithm for finding best matches in logarithmic expected time. ACM Trans. Math. Software, 3:209–226, 1977.

14. Beis, J. and Lowe, D.G. 1997. Shape indexing using approximate nearest-neighbour search in highdimensional spaces. In Conference on Computer Vision and Pattern Recognition, Puerto Rico, pp. 1000-1006.

15. Lepetit V., Fua P. "Keypoint Recognition Using Randomized Trees," IEEE Transactions on Pattern Analysis and

Machine Intelligence, vol. 28, no. 9, pp. 1465-1479, Sept., 2006

16. Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, Andrew Blake. Real-Time Human Pose Recognition in Parts from Single Depth Images. In Proceedings of

Conference on Computer Vision and Pattern Recognition, 2011.

17. P. Witkin, Scale-space filtering. In Proceedings of the 8th Joint Conference on Artificial Intelligence, pp. 1019-1022, 1983.

18. J.J. Koenderink, The structure of Images, Biological Cybernetics, no. 50, pp. 363-370, 1984.

Ringraziamenti a:Pietro Azzari, Filippo Volta, Alessandro Franchi