Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac:...

29
Localizzazione Template deformabili 1 Annalisa Franco [email protected] http://bias.csr.unibo.it/VR/

Transcript of Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac:...

Page 1: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Localizzazione

Template deformabili

1

Annalisa Franco

[email protected]

http://bias.csr.unibo.it/VR/

Page 2: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Template deformabili

• Un template deformabile è attivo, è in grado di modificarsi per

adattarsi al meglio ai dati in input. Le categorie principali:

▫ Free-Form deformable: il template non è vincolato a forme precise

(anche se generalmente si impongono criteri di regolarità). Si fa uso

di un potential field, cioè di una funzione di energia prodotta dalle

feature salienti dell’immagine, per guidare il processo verso le

deformazioni maggiormente significative.

2

Snakes [Kass88]

Active Region [Cox96]

Page 3: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Snakes

▫ Uno snake è definito come una funzione energia. La ricerca del migliore

allineamento tra lo snake e la forma di un oggetto si basa sulla

minimizzazione della seguente funzione:

dove:

▫ Lo snake è definito in modo parametrico come 𝑣 𝑖 = 𝑥 𝑖 , 𝑦(𝑖) ;

Eint è l’energia interna che controlla la regolarità e l’elasticità dello snake;

Eimage è l’energia dell’immagine che indica quanto la forma dell’oggetto si adatta

all’immagine sottostante (bordi, gradiente, ...);

Eext è l’energia esterna determinata da altri eventuali vincoli esterni.

3

1

0

dssvEsvEsvEE extimageintsnake

Page 4: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Analytic-form based

• Analytic-Form based (Parametric deformable): si tratta di

template parametrici (polilinee, archi, curve spline, o

combinazione dei precedenti) regolate da un numero limitato di

parametri agendo sui quali si ottengono deformazioni controllate.

4

Yuille’s eye [Yuil92]

Profilo esterno dell’occhio e

pupilla modellati con 9

parametri

Page 5: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Prototype-based

• Prototype based (Parametric deformable): viene definito un

template master e una serie di trasformazioni parametriche che

ne producono versioni deformate.

5

Grenader [Gren93]

Page 6: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Shape learning (1)

• Shape learning (Apprendimento della forma da esempi):

spesso risulta complicato fornire espressioni analitiche di un

template e altrettanto difficile definire precisamente le

trasformazioni che mappano un oggetto nelle sue possibili

deformazioni.

• I metodi di Shape learning hanno come obiettivo

l’apprendimento della forma di un oggetto e delle sue possibili

variazioni a partire da un insieme di esempi.

• Nel metodo di Cootes [Coot00] il template viene modellato da

poligonali; durante l’addestramento gli esempi nel training set

sono allineati (manualmente) sulla base di punti notevoli. I

molteplici gradi di libertà dati dalla mobilità spaziale di punti

corrispondenti nei diversi pattern di esempio vengono fortemente

ridotti (trasformata KL) per ottenere un modello parametrico con

pochi gradi di libertà.

6

Page 7: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Shape learning (2)

7

Convergenza del modello

a partire da una soluzione

iniziale “molto imprecisa”

Training set (a

sinistra)

e modello

parametrico

appreso (a destra)

Page 8: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Esempi (1)

Forma della Mano: 18 immagini di mani etichettate con una

poligonale facendo attenzione a marcare i punti “corrispondenti”

sempre nello stesso ordine.

I 5 “modi di variazione principale” determinati con KL transform

gestiscono molto bene buona parte delle possibili variazioni.

8

...

Page 9: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Esempi (2)

Caratteristiche interne del volto: 200 immagini di volti

etichettate con più poligonali facendo attenzione a marcare i

punti “corrispondenti” sempre nello stesso ordine.

anche in questo caso i 5 “modi di variazione principale”

determinati con KL transform gestiscono molto bene buona parte

delle possibili variazioni.

9

...

Page 10: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Approcci transformation-based

10

Es. Registrazione di immagini con keypoint e descrittori locali

?

Page 11: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Approcci transformation-based

1. Rilevare i keypoint e calcolarne i descrittori

SIFT, SURF, BRIEF, ecc…

1. Determinare un set di presunti match

Ricerca esaustiva o utilizzo di strutture dati

1. Sulla base dei migliori match determinare la

trasformazione ottimale.

Ransac

11

Page 12: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Feature matching: possibili approcci

• Come confrontare due set di punti con

descrittori locali?

Ricerca esaustiva: confronto di ogni

feature in un’immagine con tutte le

feature dell’altra;

Per limitare la complessità

computazionale è necessario restringere il

numero di confronti da effettuare:

Hashing: applicazione di una funzione

hash per organizzare i descrittori in

bucket contenenti oggetti «simili»;

Index-based Nearest neighbor search:

es. KD-Tree

Problema: presenza di outliers.

12

Hashing

KD-Tree

Page 13: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Come selezionare i match presunti?

• Per ciascun keypoint, il suo nearest neighbor è il keypoint che ha

distanza euclidea minima;

• Molte feature non avranno un match corretto (background,

rumore, occlusioni, ecc…)…

• Soglia globale sulla distanza tra

descrittori?

𝑆𝑆𝐷 𝑝𝑎𝑡𝑐ℎ1, 𝑝𝑎𝑡𝑐ℎ2 < 𝑡ℎ𝑟

13

Come fissare la soglia?

Page 14: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Come selezionare i match presunti?

• L’adozione di una soglia globale non dà buoni risultati;

• È possibile scartare alcuni match errati osservando la distanza

dal nearest neighbor (1-NN) in rapporto alla distanza dal

secondo keypoint più simile (2-NN)

14

Page 15: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

La trasformazione ottimale

• Come possiamo calcolare la trasformazione ottimale a

partire dai match presunti?

▫ Problema: presenza di outlier

Page 16: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: algoritmo generale

L’algoritmo RAndom SAmple Consensus (RANSAC) è un metodo

iterativo che permette di stimare un modello (es. parametri di

trasformazione) a partire da un insieme di osservazioni in presenza di

outliers.

L’idea alla base del metodo è che i dati si dividono in inliers, ovvero dati

la cui distribuzione è compatibile con i parametri del modello, e outliers

che non sono rappresentati correttamente dal modello.

16

Insieme di punti (con outlier) Rette individuata con RANSAC

In generale, dati N

punti 𝑥𝑖(osservazioni),

assumendo che essi

siano generati da un

modello con

parametri Θ,

l’algoritmo cerca di

stimare Θ.

Page 17: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: algoritmo generale

Ripeti K volte:

1. Scegli n campioni casuali;

2. Adatta i parametri Θ agli n campioni;

3. Per ciascuno dei restanti N-n punti, calcola la

distanza dal modello e conta in numero c di inliers

L’output è il modello Θ con c più elevato.

17

Page 18: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: esempio

18

Page 19: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: algoritmo generale

Ripeti K volte:

1. Scegli n campioni casuali;

2. Adatta i parametri Θ agli n campioni;

3. Per ciascuno dei restanti N-n punti, calcola la

distanza dal modello e conta in numero c di inliers

L’output è il modello Θ con c più elevato.

19

Quante volte?

Quanti?

Come definirli?

Page 20: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: modello generico

• Ogni tipo di modello ha un minimal set, ovvero un numero

minimo di esempi che consentono di calcolare il modello stesso

(es. linea 2 punti).

• Le possibili trasformazioni di un’immagine sono modelli. In

questo caso il minimal set è costituito da s coppie punti

(matches).

• Per l’applicazione relativa all’allineamento di due immagini a

partire da un insieme di keypoint l’obiettivo è quello di stimare la

migliore matrice di trasformazione (traslazione, rotazione e

scala):

𝑇 =𝑠 ∙ 𝑐𝑜𝑠𝜃 −𝑠 ∙ 𝑠𝑖𝑛𝜃 𝑑𝑥𝑠 ∙ 𝑠𝑖𝑛𝜃 𝑠 ∙ 𝑐𝑜𝑠𝜃 𝑑𝑦

0 0 1

20

Page 21: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac e keypoints: parametri

• Numero iniziale di punti nel minimal set s

▫ Tipicamente il numero di esempi necessari per calcolare

il modello.

• La soglia di distanza t che consente di definire un punto

come inlier.

• Il numero di iterazioni K necessarie per ottenere un

modello affidabile (in presenza di outliers).

21

Page 22: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: distanza

• Supponiamo che il rumore nellaposizione dei pattern segua unadistribuzione Gaussiana(deviazione standard 𝜎);

• La distanza segue dunque unadistribuzione con g gradi di libertà(pari alla dimensionalità dellaGaussiana);

• Dato un modello di distanza èsemplice fissare un appropriatovalore di soglia t; se fissiamo

𝑡2 = 3.84 𝜎2

con una probabilità del 95% tuttigli inlier avranno una distanza

𝑑 < 𝑡

22

𝑓 𝑑 =2𝑒

−𝑑2

2𝜎2

𝜋𝜎, 𝑑 ≥ 0

Page 23: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: numero di sample set K

• Vogliamo scegliere un valore di K (numero di sample set, di

iterazioni) tale che, con probabilità p, almeno un sample set non

contenga nessun outlier (es. p=0.99).

• e: ipotetica percentuale di outliers → 1 − 𝑒 inliers.

• s: numero di punti per il calcolo del modello

• p: probabilità di successo

• 𝑃 𝑠 𝑠𝑎𝑚𝑝𝑙𝑒 𝑡𝑢𝑡𝑡𝑖 𝑖𝑛𝑙𝑖𝑒𝑟𝑠 = 1 − 𝑒 𝑠

• 𝑃 𝑠 𝑠𝑎𝑚𝑝𝑙𝑒 𝑎𝑙𝑚𝑒𝑛𝑜 𝑢𝑛 𝑜𝑢𝑡𝑙𝑖𝑒𝑟 = 1 − 1 − 𝑒 𝑠

• 𝑃 𝐾 𝑠𝑎𝑚𝑝𝑙𝑒 𝑠𝑒𝑡 𝑐𝑜𝑛 𝑎𝑙𝑚𝑒𝑛𝑜 𝑢𝑛 𝑜𝑢𝑡𝑙𝑖𝑒𝑟 = 1 − 1 − 𝑒 𝑠 𝐾

Vogliamo che questo valore sia piccolo…

1 − 1 − 𝑒 𝑠 𝐾 < 1 − 𝑝

𝐾 >log(1 − 𝑝)

log 1 − 1 − 𝑒 𝑠

23

N.B. il numero K non

dipende dal numero

totale di punti

Page 24: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: numero di samples K

24

𝐾 >log(1 − 𝑝)

log 1 − 1 − 𝑒 𝑠

s e

0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50

2 2 3 4 5 6 7 9 11 13 17

3 3 4 5 7 9 11 15 19 26 35

4 3 5 7 9 13 17 24 34 48 72

5 4 6 8 12 17 26 38 57 90 146

6 4 7 10 16 24 37 59 97 165 293

7 4 8 12 20 33 54 92 163 301 588

8 5 9 15 26 44 78 143 272 548 1177

Page 25: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

25

Page 26: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac e keypoints (1)

26

Page 27: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac e keypoints (2)

• L’obiettivo è quello di stimare la migliore matrice di trasformazione(traslazione, rotazione e scala):

𝑇 =𝑠 ∙ 𝑐𝑜𝑠𝜃 −𝑠 ∙ 𝑠𝑖𝑛𝜃 𝑑𝑥𝑠 ∙ 𝑠𝑖𝑛𝜃 𝑠 ∙ 𝑐𝑜𝑠𝜃 𝑑𝑦

0 0 1

27

Ripeti N volte:

1. Seleziona 4 coppie di punti;

2. Calcola a partire da questi la matrice T;

3. Calcola il numero di inlier per i quali

𝑆𝑆𝐷 𝑝𝑖′, 𝑇 𝑝𝑖 < 𝜖

dove 𝑝𝑖′ è il presunto match di 𝑝𝑖.

4. Seleziona la trasformazione T con il massimo numero di inlier

(eventualmente ricalcola a partire da tutti gli inlier per una stima

robusta)

Page 28: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Ransac: conclusioni

• Vantaggi:

▫ Semplice e generale;

▫ Robusto anche in presenza di un elevato numero di outlier;

▫ Più facilmente applicabile a problemi con un elevato numero

di parametri rispetto alla trasformata di Hough.

• Svantaggi:

▫ La complessità computazionale aumenta comunque in modo

significativo all’aumentare del numero di parametri del

modello da stimare;

▫ Non ottimale per ottenere modelli multipli;

▫ Non ottimale per modelli approssimati.

28

Page 29: Localizzazione Template deformabilibias.csr.unibo.it/VR/DispensePDF/10_Localizzazione... · Ransac: numero di sample set K •Vogliamo scegliere un valore di K (numero di sample set,

Bibliografia

[Kass88] M. Kass, A. Witkin e D. Terzopoulos, “Snakes: Active contour

models”, Int. J. Comput. Vision, 1(4), 321-331.

[Cox96] I. Cox, S. Rao e Y. Zhong, “Ratio regions, a tecnique for image

segmentation”, in Proc. 13th Int. Conf. on Pattern Recognition

(ICPR), pages 557-564, Vienna, Austria.

[Yuil92] A. Yuille, P. Hallinan e D. Cohen, “Feature extraction from faces

using deformable templates”, Int. J. Comput. Vision, 8(2),133-

144, 1992.

[Gren93] U. Grenander e D. Keenan, “Towards automated image

understanding”, in K.V. Mardia and G.K.Kanji, editors,

Advances in Applied Statistics: Statistics and Image (1), chapter

6, pages 89-103, Carfax Publishing Company, 1993.

[Coot00] T. Cootes e C. Taylor, “Statistical Models of Appearance for

Computer Vision”, Internal report Manchester University,

Dec.2000.

29