Keypoint e Descrittori Locali

Slide

Indice


Requisiti per Feature Invarianti

Un localizzatore di keypoint deve garantire ripetibilità: lo stesso punto fisico deve essere rilevato in immagini diverse della stessa scena, anche in presenza di trasformazioni geometriche e fotometriche.

Le invarianze richieste sono:

TrasformazioneDescrizione
TraslazioneLa posizione nella scena non cambia il punto fisico
RotazioneLa scena può essere ruotata planare
ScalaL’oggetto può essere più vicino o lontano dalla camera
IlluminazioneVariazioni lineari e non lineari di intensità

Harris Corner Detector

Definizione

Il Harris Corner Detector rileva punti di interesse (corner) analizzando come varia l’intensità dell’immagine spostandosi in ogni direzione. Un corner è un punto in cui lo spostamento in qualsiasi direzione produce una variazione significativa.

Formulazione Matematica

La variazione di intensità per uno spostamento attorno al pixel è:

dove è una funzione peso (gaussiana o finestra uniforme). Tramite l’approssimazione di Taylor al primo ordine si ottiene:

dove è la matrice di struttura (structure tensor):

Gli autovalori di descrivono le variazioni principali di intensità nelle due direzioni ortogonali.

Cornerness e Classificazione dei Pixel

Per evitare il calcolo esplicito degli autovalori (costoso), si usa la funzione di cornerness :

con . La classificazione dei pixel in base a :

CasoAutovaloriTipo
Corner, (grande)Variazione in tutte le direzioni
EdgeVariazione in una sola direzione
Flat piccoloNessuna variazione

Algoritmo e Proprietà

Algoritmo:

  1. Calcola i gradienti , (es. con Sobel)
  2. Calcola per ogni pixel (con pesatura gaussiana)
  3. Calcola per ogni pixel
  4. Applica una soglia su
  5. Sopprimi i non-massimi locali (non-maximum suppression)

Proprietà di invarianza:

TrasformazioneInvariante?Nota
RotazioneGli autovalori di non cambiano con la rotazione
Traslazione di intensità ()Le derivate non cambiano
Scala moltiplicativa di intensità ()Parziale scala come ; con soglia adattiva è ok
Scala geometricaNoUn corner a scala diversa può non essere rilevato

La mancanza di invarianza alla scala geometrica è il limite principale di Harris.


Scale Space e Laplacian of Gaussian

Definizione

Lo scale space è una famiglia di immagini ottenute convolvendo l’immagine originale con gaussiane a crescente. Rappresenta la struttura dell’immagine a diverse scale di dettaglio.

La gaussiana a scala :

Il Laplacian of Gaussian (LoG) misura la variazione locale a una data scala:

LoG Normalizzato

Per rendere il rilevatore invariante alla scala, il LoG deve essere normalizzato rispetto a :

La normalizzazione garantisce che blob di dimensioni diverse producano risposte comparabili. La scala caratteristica di un blob è il che massimizza .

Localizzatori Invarianti per Scala

MetodoLocalizzazione spazialeLocalizzazione in scala
Laplacian detectorQualsiasi localizzatore 2DMassimo del LoG nello scale space
Harris-LaplaceHarris corner in 2DMassimo del LoG in scala
DoG (SIFT)Massimo del DoG in 3DIntegrata nella struttura DoG

SIFT (Scale-Invariant Feature Transform)

Definizione

SIFT (Lowe, 1999) è il descrittore locale più noto. Combina un localizzatore basato su DoG (Difference of Gaussians) con un descrittore robusto basato su istogrammi di gradienti orientati. È invariante a scala, rotazione e variazioni di illuminazione.

DoG: Localizzazione dei Keypoint

Il Difference of Gaussians approssima il LoG normalizzato in modo efficiente:

dove è l’immagine smoothed alla scala .

Struttura piramidale:

  • L’immagine è analizzata in ottave (ogni ottava raddoppia , da a )
  • Ogni ottava contiene intervalli, con
  • Per coprire un’intera ottava servono livelli di convoluzione gaussiana (e quindi immagini DoG)
  • Tipicamente , quindi

Localizzazione approssimata: i keypoint sono i massimi e minimi della DoG nello spazio 3D . Un pixel è candidato estremo se è maggiore o minore di tutti i suoi vicini (8 nella stessa scala, 9 nella scala superiore, 9 nella scala inferiore).

Localizzazione accurata: i massimi discreti non coincidono esattamente con i massimi continui. Si effettua un’interpolazione (sviluppo di Taylor del secondo ordine) per localizzare il keypoint con precisione sub-pixel.

Filtraggio dei candidati:

  • Si eliminano i punti con contrasto basso (sensibili al rumore) — soglia sul valore di DoG
  • Si eliminano i punti su edge (sfruttando il rapporto degli autovalori della Hessiana, come in Harris)

Orientazione dei Keypoint

Per ottenere invarianza alla rotazione, a ogni keypoint viene assegnata un’orientazione dominante. Per ogni punto dell’intorno (nell’immagine smoothed alla scala più vicina) si calcola magnitudo e orientazione del gradiente:

Viene costruito un istogramma delle orientazioni a 36 bin (10° ciascuno). I contributi sono pesati per la magnitudo e per una gaussiana con scala del punto. L’orientazione assegnata è il picco assoluto dell’istogramma.

Keypoint multipli

Se esistono picchi locali che superano l’80% del massimo assoluto, vengono generati ulteriori keypoint con stessa posizione e scala ma orientazione diversa.

Descrittore SIFT

Il descrittore è costruito a partire da una finestra orientata attorno al keypoint (ruotata secondo l’orientazione assegnata). Le magnitudo dei gradienti sono pesate con una gaussiana con pari a metà della larghezza della finestra.

Struttura del descrittore:

  1. La regione attorno al keypoint viene partizionata in sottoregioni
  2. Per ogni sottoregione si costruisce un istogramma di 8 bin delle orientazioni (pesate per la magnitudo)
  3. I valori vengono distribuiti nei bin adiacenti tramite interpolazione trilineare (robustezza)
  4. I valori concatenati formano il vettore descrittore

Normalizzazione (per invarianza all’illuminazione):

  1. Normalizza il vettore a norma unitaria → gestisce variazioni lineari di intensità
  2. Applica una soglia a 0.2 (scarta valori > 0.2) → gestisce saturazione della camera
  3. Rinormalizza a norma unitaria

SURF (Speeded-Up Robust Features)

Definizione

SURF (Bay et al., 2008) è una versione computazionalmente efficiente di SIFT. Sostituisce i filtri LoG con box filters calcolabili in tempo costante tramite l’immagine integrale. È invariante a rotazione, scala e illuminazione.

Box Filters e Immagine Integrale

L’immagine integrale è la somma di tutti i pixel nella regione in alto a sinistra di :

Calcolata in un’unica passata con le formule ricorsive:

Grazie all’immagine integrale, la somma dei pixel in un rettangolo qualsiasi si calcola con 4 accessi in memoria: (angoli del rettangolo). I box filters , , approssimano le derivate seconde della gaussiana con filtri rettangolari di valori interi. Il filtro base approssima una gaussiana con .

Localizzazione SURF

La localizzazione si basa sul determinante della matrice Hessiana approssimata:

dove è un fattore correttivo. I keypoint corrispondono ai massimi locali di questa mappa.

Vantaggio rispetto a SIFT: non serve ridimensionare l’immagine. Si aumentano le dimensioni dei box filter per analizzare scale diverse, con complessità costante su ogni livello. La localizzazione finale usa non-maximum suppression in un intorno e interpolazione.

Orientazione e Descrittore SURF

Orientazione: risposta ai filtri Haar-like in e nell’intorno circolare di raggio . Le risposte vengono sommate vettorialmente su finestre angolari di ; l’orientazione dominante è la direzione della somma massima.

Descrittore:

  1. Regione quadrata centrata e orientata sul keypoint
  2. Divisa in sottoregioni
  3. Per ogni sottoregione, risposte Haar pesate con gaussiana:

  1. Concatenazione di tutte le sottoregioni → dimensione 64
  2. Normalizzazione a vettore unitario (invarianza al contrasto)

Versione estesa a 128

Si separano le somme di e per e , e analogamente per . Più discriminativa ma doppiamente costosa.


FAST Keypoints

Definizione

FAST (Features from Accelerated Segment Test) è un rilevatore di corner estremamente veloce, basato sul confronto di intensità tra un pixel candidato e i suoi vicini su un cerchio discreto di raggio 3.

Algoritmo FAST

  1. Considera il pixel con intensità e soglia (tipicamente )
  2. Seleziona i 16 pixel sull’anello circolare di raggio 3
  3. è un corner se esistono pixel consecutivi sull’anello tutti con intensità oppure tutti
    • → FAST-12, → FAST-11, → FAST-9
  4. Accelerazione: si controllano i pixel 1, 5, 9, 13. Se meno di 3 soddisfano la condizione, non è un corner (scartato subito)
  5. Dopo la detection si applica non-maximum suppression

Proprietà e Varianti

ProprietàValore
EfficienzaMolto alta
RipetibilitàBassa (solo luminosità)
Invarianza rotazioneNo (nessuna info direzionale)
Invarianza scalaNo (raggio fisso = 3)

Variante per rotazione — orientazione tramite centroide di intensità:

Variante per scala — ricerca dei corner su una image pyramid (immagini riscalate progressivamente).


BRIEF: Descrittore Binario

Definizione

BRIEF (Binary Robust Independent Elementary Features) costruisce un descrittore come stringa binaria confrontando l’intensità di coppie di pixel nell’intorno del keypoint. Compatto ed efficiente da confrontare (distanza di Hamming).

Il test binario su una coppia nella patch (pre-smoothed con box filter):

Il descrittore composto da test:

con . Le coppie di pixel possono essere scelte con diverse distribuzioni (uniforme, gaussiana, griglia polare). Il pre-smoothing con box filter (non gaussiana, per efficienza) riduce la sensibilità al rumore.


ORB

Definizione

ORB (Oriented FAST and Rotated BRIEF) combina Oriented FAST e Rotated BRIEF. È libero da brevetti, efficiente e robusto — la principale alternativa a SIFT/SURF.

  • Oriented FAST: keypoint FAST con orientazione (centroide di intensità) e scala (image pyramid)
  • Rotated BRIEF: le coppie di pixel vengono ruotate secondo l’orientazione del keypoint → invarianza alla rotazione

Feature Matching

Il feature matching trova corrispondenze tra keypoint di due immagini della stessa scena.

Pipeline:

  1. Rileva i keypoint e calcola i descrittori (SIFT, SURF, ORB, …)
  2. Determina un set di match presunti tramite nearest neighbor search
  3. Stima la trasformazione ottimale con RANSAC

Selezione dei Match Presunti

Il match di un keypoint è il suo nearest neighbor (distanza euclidea minima per float, Hamming per binari).

Problema: una soglia globale sulla distanza non funziona bene — le distribuzioni di distanze corrette e errate si sovrappongono.

Soluzione — ratio test: si confronta la distanza 1-NN con la distanza 2-NN:

Se il rapporto è basso, il match è netto (il 1-NN è molto più vicino del 2-NN). Match ambigui vengono scartati.

Approcci per la ricerca efficiente:

  • Ricerca esaustiva: , accurata ma lenta
  • Hashing: funzione hash organizza i descrittori in bucket di oggetti simili
  • KD-Tree: struttura dati per nearest neighbor search efficiente in alta dimensione

RANSAC

Definizione

RANSAC (RAndom SAmple Consensus) è un algoritmo iterativo per stimare i parametri di un modello in presenza di outlier. Nel feature matching, stima la trasformazione geometrica ottimale (es. omografia) tra due immagini da un insieme di match presunti che include inevitabilmente match errati.

I dati si dividono in inlier (compatibili con il modello) e outlier (non rappresentati dal modello).

Algoritmo e Parametri

Algoritmo — ripeti volte:

  1. Scegli campioni casuali (il minimal set — numero minimo per determinare il modello)
  2. Adatta i parametri agli campioni
  3. Conta gli inlier : punti con distanza dal modello

Output: il modello con più elevato.

Parametri:

Soglia (per definire gli inlier): assumendo rumore gaussiano con deviazione standard :

Con questa scelta, il 95% degli inlier ha distanza .

Numero di iterazioni : si vuole che con probabilità (es. ) almeno un sample set sia privo di outlier. Detto la frazione di outlier e la dimensione del minimal set:

non dipende dal numero totale di punti .

Esempio — minimal set (omografia), :

10%20%30%40%50%
59173472

Applicazione ai Keypoint

Per stimare l’omografia che allinea due immagini:

Il minimal set è 4 coppie di punti corrispondenti. Algoritmo per ogni iterazione:

  1. Seleziona 4 coppie di match presunti casuali
  2. Calcola da queste 4 coppie
  3. Conta gli inlier per cui
  4. Seleziona la con il massimo numero di inlier (opzionalmente ricalcolata su tutti gli inlier)

Vantaggi e svantaggi:

VantaggiSvantaggi
Semplice e generaleComplessità cresce con il numero di parametri
Robusto anche con molti outlierNon ottimale per stimare modelli multipli
Più scalabile della Hough transformNon ottimale per modelli approssimati

Prossimi Argomenti

Continueremo con: