2013-05-29 16 views
6

SURF per impostazione predefinita funziona sull'immagine grigia. Sto pensando di fare SURF sull'immagine HSV. Il mio metodo è quello di separare i canali in H, S e V. E io uso S e V per il rilevamento dei punti chiave. Ho provato a confrontare il numero di punti chiave in SV vs RGB e in termini di canali wise, HSV offre più funzionalità.Rivelatore SURF a colori

enter image description here

sicuro di quello che non sto facendo è corretto o meno. Serve qualche spiegazione sulla possibilità di applicare SURF sull'immagine HSV. Ho letto un articolo sull'applicazione di SIFT su diversi spazi cromatici ma non su SURF.

  1. C'è un modo migliore per raggiungere questo obiettivo?
  2. Possiamo applicare SURF al colore, spazio HSV?

Grazie per il vostro tempo.

+0

Penso che sia possibile estrarre SURF sull'immagine HSV. Ma tieni presente che gli intervalli di valori dei canali S e V sono diversi (e sono anche diversi dall'immagine in scala di grigi), quindi devi calibrare il parametro hessianThreshold per rendere il risultato ragionevole. Ed è anche importante capire come consolidare i punti chiave di diversi canali. – cxyzs7

+0

In openCV l'intervallo di HSV è diverso dallo standard HSV. In OpenCV la H è tra 0-180 mentre sia S che V è compresa tra 0 e 255. Penso che la scala di grigi sia compresa tra 0-255 e 8 bit. Quindi immagino che quello che ho provato sopra sia ok. Come ti senti al riguardo? – rish

+0

I risultati sembrano ragionevoli. Ecco un documento a cui potresti essere interessato: [Color-SURF: un descrittore di surf con istogrammi di colore del kernel locali] (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5360809). Ma sembra che utilizzino ancora la scala dei grigi per il rilevamento dei punti chiave e i descrittori di colore-SURF. – cxyzs7

risposta

5
  1. È possibile applicare SURF al colore, spazio HSV?

Non ho prove, ma per quanto ne so, setacciare e SURF uso abbastanza (in linea di principio) simili tecniche di rilevamento:

rilevatore SIFT utilizza la tecnica Difference-of-Gaussian (DoG) per approssimare in modo efficiente il Laplacian-of-Gaussian (LoG) , che sono entrambe tecniche Blob Detection.

rivelatore SURF utilizza scatola filtri/box-sfuocature di dimensioni arbitrarie per calcolare (o approssimare?) Il determinante dell'Hessiana che è un blob Detection tecnica.

Entrambi i metodi utilizzano una strategia per calcolare quei BLOB in più scale (SIFT: DoG-Pyramid; SURF: immagini integrali per ridimensionare le dimensioni del filtro). Alla fine, entrambi i metodi rilevano BLOB nell'array 2D specificato.

Quindi, se SIFT è in grado di rilevare buone caratteristiche nei propri canali (H) SV, SURF dovrebbe essere in grado di fare lo stesso perché in linea di principio entrambi rilevano blob. Cosa si può fare è rilevare bolle nel/saturazione/canale valore di tonalità:

  • tonalità-blob: regioni simile tono colore che sono circondate da diverso (tutto superiore o tutti inferiore) colore toni ;

  • saturazione-blob: regioni della ... yea di che cosa? non ho idea di come interpretarlo;

  • valore-BLOB: dovrebbe fornire risultati molto simili ai blob dell'immagine RGB convertita di grayimage.

Una cosa da aggiungere: sto solo gestire la rilevatore! Non ho idea di come SIFT/SURF descrizione sia influenzato dai dati colore.

0

Non l'ho provato, ma ciò che si potrebbe fare è utilizzare i valori HSV del punto di interesse come criteri di corrispondenza aggiuntivi. Quello che ho usato nell'implementazione originale e ciò che ha accelerato la corrispondenza delle coppie di immagini è stato il segno del determinante della matrice hessiana. Il segno ci dice se si tratta di un blob chiaro su uno sfondo scuro o un blob scuro su uno sfondo chiaro. Ovviamente, non si cercherebbe di abbinare un blob scuro con un blob brillante.

In modo simile, è possibile utilizzare i valori HSV e utilizzare la distanza. Perché abbinare i BLOB blu con i BLOB gialli. Non ha senso, tranne il bilanciamento del bianco o l'illuminazione è completamente incasinato. Forse il mio paper about matching line segments può aiutare qui. Ho usato HSV lì.

Come per l'estrazione di punti di interesse SURF sui diversi canali H, S e V, sono d'accordo con la risposta di Micka.

Quello che potresti provare è creare un descrittore usando il canale Tonalità.