Keypoint e Descrittori Locali
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:
| Trasformazione | Descrizione |
|---|---|
| Traslazione | La posizione nella scena non cambia il punto fisico |
| Rotazione | La scena può essere ruotata planare |
| Scala | L’oggetto può essere più vicino o lontano dalla camera |
| Illuminazione | Variazioni 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 :
| Caso | Autovalori | Tipo | |
|---|---|---|---|
| Corner | , | (grande) | Variazione in tutte le direzioni |
| Edge | Variazione in una sola direzione | ||
| Flat | piccolo | Nessuna variazione |
Algoritmo e Proprietà
Algoritmo:
- Calcola i gradienti , (es. con Sobel)
- Calcola per ogni pixel (con pesatura gaussiana)
- Calcola per ogni pixel
- Applica una soglia su
- Sopprimi i non-massimi locali (non-maximum suppression)
Proprietà di invarianza:
| Trasformazione | Invariante? | Nota |
|---|---|---|
| Rotazione | Sì | Gli autovalori di non cambiano con la rotazione |
| Traslazione di intensità () | Sì | Le derivate non cambiano |
| Scala moltiplicativa di intensità () | Parziale | scala come ; con soglia adattiva è ok |
| Scala geometrica | No | Un 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
| Metodo | Localizzazione spaziale | Localizzazione in scala |
|---|---|---|
| Laplacian detector | Qualsiasi localizzatore 2D | Massimo del LoG nello scale space |
| Harris-Laplace | Harris corner in 2D | Massimo del LoG in scala |
| DoG (SIFT) | Massimo del DoG in 3D | Integrata 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:
- La regione attorno al keypoint viene partizionata in sottoregioni
- Per ogni sottoregione si costruisce un istogramma di 8 bin delle orientazioni (pesate per la magnitudo)
- I valori vengono distribuiti nei bin adiacenti tramite interpolazione trilineare (robustezza)
- I valori concatenati formano il vettore descrittore
Normalizzazione (per invarianza all’illuminazione):
- Normalizza il vettore a norma unitaria → gestisce variazioni lineari di intensità
- Applica una soglia a 0.2 (scarta valori > 0.2) → gestisce saturazione della camera
- 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:
- Regione quadrata centrata e orientata sul keypoint
- Divisa in sottoregioni
- Per ogni sottoregione, risposte Haar pesate con gaussiana:
- Concatenazione di tutte le sottoregioni → dimensione 64
- 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
- Considera il pixel con intensità e soglia (tipicamente )
- Seleziona i 16 pixel sull’anello circolare di raggio 3
- è un corner se esistono pixel consecutivi sull’anello tutti con intensità oppure tutti
- → FAST-12, → FAST-11, → FAST-9
- Accelerazione: si controllano i pixel 1, 5, 9, 13. Se meno di 3 soddisfano la condizione, non è un corner (scartato subito)
- Dopo la detection si applica non-maximum suppression
Proprietà e Varianti
| Proprietà | Valore |
|---|---|
| Efficienza | Molto alta |
| Ripetibilità | Bassa (solo luminosità) |
| Invarianza rotazione | No (nessuna info direzionale) |
| Invarianza scala | No (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:
- Rileva i keypoint e calcola i descrittori (SIFT, SURF, ORB, …)
- Determina un set di match presunti tramite nearest neighbor search
- 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:
- Scegli campioni casuali (il minimal set — numero minimo per determinare il modello)
- Adatta i parametri agli campioni
- 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% | |
|---|---|---|---|---|---|
| 5 | 9 | 17 | 34 | 72 |
Applicazione ai Keypoint
Per stimare l’omografia che allinea due immagini:
Il minimal set è 4 coppie di punti corrispondenti. Algoritmo per ogni iterazione:
- Seleziona 4 coppie di match presunti casuali
- Calcola da queste 4 coppie
- Conta gli inlier per cui
- Seleziona la con il massimo numero di inlier (opzionalmente ricalcolata su tutti gli inlier)
Vantaggi e svantaggi:
| Vantaggi | Svantaggi |
|---|---|
| Semplice e generale | Complessità cresce con il numero di parametri |
| Robusto anche con molti outlier | Non ottimale per stimare modelli multipli |
| Più scalabile della Hough transform | Non ottimale per modelli approssimati |
Prossimi Argomenti
Continueremo con:
- Trasformazioni 2D e Image Stitching - omografie e composizione di immagini panoramiche