19

Sto usando OpenCV 2.3 per il rilevamento e la corrispondenza dei punti chiave. Ma sono un po 'confuso con i parametri size e response dati dall'algoritmo di rilevamento. Cosa significano esattamente?Che cosa rappresentano esattamente la dimensione e la risposta in un punto chiave SURF?

Sulla base del manuale di OpenCV, non riesco a capirlo:

float size: il diametro del quartiere punto chiave significativa

float response: la risposta con la quale sono stati selezionati i punti chiave più forti . Può essere utilizzato per ulteriori ordinamenti o sottocampionamento

Ho pensato che il punto migliore da seguire sarebbe quello con la risposta più alta ma sembra che non sia il caso. Quindi, come posso sottocampionare il set di punti chiave restituiti dal rilevatore di onde per mantenere solo il migliore in termini di tracciabilità?

risposta

59

Dimensioni e risposta

SURF è un rilevatore blob, in breve, la dimensione di una caratteristica è la dimensione del blob. Per essere più precisi, la dimensione restituita da OpenCV è metà della lunghezza dell'operatore approssimativo dell'Assia. La dimensione è anche nota come scala, ciò è dovuto al modo in cui funzionano i rilevatori di blob, vale a dire funzionalmente uguale alla prima sfocatura dell'immagine con il filtro gaussiano su diverse scale e quindi sottocampionamento delle immagini e infine rilevamento di blob con una dimensione fissa. Vedi l'immagine qui sotto che mostra le dimensioni delle funzioni SURF. La dimensione di ciascuna caratteristica è il raggio del cerchio disegnato. Le linee che escono dal centro delle caratteristiche alla circonferenza mostrano gli angoli o gli orientamenti. In questa immagine, la forza di risposta del filtro di rilevamento del blob è codificata a colori. È possibile visualizzare la maggior parte delle funzioni rilevate con una risposta debole. (Vedere l'immagine full size here)

SURF features

Questo istogramma mostra la distribuzione dei punti di forza di risposta delle funzionalità nell'immagine sopra:

histogram showing distribution of response strengths

Quali caratteristiche da monitorare?

Il tracker di funzioni più affidabile tiene traccia di tutte le funzionalità rilevate. Più sono le caratteristiche e più robustezza. Ma non è pratico tenere traccia di un gran numero di funzionalità, poiché spesso vogliamo limitare il tempo di calcolo.Il numero di elementi da tracciare spesso dovrebbe essere regolato empiricamente per ciascuna applicazione. Spesso l'immagine è suddivisa in sottoregioni regolari e in ognuna di esse vengono tenute traccia delle n caratteristiche più forti. di solito viene scelto in modo tale che in totale vengano rilevate circa 500 ~ 1000 caratteristiche per fotogramma.

Riferimenti

Leggendo il journal paper describing SURF sicuramente vi darà una buona idea di come funziona. Cerca di non rimanere bloccato nei dettagli, specialmente se lo sfondo non è in visione macchina/computer o nell'elaborazione delle immagini. Il rivelatore SURF può sembrare estremamente innovativo a prima vista, ma l'intera idea è di stimare l'operatore dell'Assia (un filtro ben stabilito) usando immagini integrali (che sono state utilizzate da altri metodi molto prima di SURF). Se vuoi capire bene SURF e non hai familiarità con l'elaborazione delle immagini, devi tornare indietro e leggere del materiale introduttivo. Recentemente mi sono imbattuto in a new and free book, il cui capitolo 13 ha una buona e breve introduzione al rilevamento delle funzionalità. Non tutto ciò che è stato detto è tecnicamente corretto, ma è un buon punto di partenza. Here puoi trovare un'altra buona descrizione di SURF con diverse immagini che mostrano come ogni passo funziona. In quella pagina si vede questa immagine:

SURF blobs

Potete vedere le macchie bianche e nere, questi sono i blob che SURF rileva a diverse scale e stime le loro dimensioni (raggio nel codice OpenCV).

+0

Risposta molto chiara. Molte grazie. Vorrei chiederti un'altra cosa in quanto sembra che tu sappia parecchio su SURF. C'è qualche documentazione oltre alla guida manuale opencv che vale la pena di guardare sul rivelatore e sull'estrattore SURF? – Tulkkas

+0

Prego. Ho appena modificato la risposta, spero che aiuti. – fireant

+0

Great thx. In realtà ho un passato in informatica, ma si trattava più di informazioni sull'implementazione openCV di SURF. Per le persone interessate, ho trovato anche questo sito [link] (http://www.aishack.in/2010/05/sift-scale-invariant-feature-transform/) che descrive SIFT su cui SURF si basa abbastanza bene. – Tulkkas

5
  1. "dimensione" è la dimensione dell'area coperta dal descrittore nell'immagine originale (Si ottiene sottocampionamento dell'immagine originale nello spazio scala, quindi si varia da punto chiave a punto chiave basato sulla loro scala).

  2. "reponse" è in effetti un indicatore di "quanto è buono" (più o meno, in termini di corner-ness) un punto.

  3. I punti buoni sono stabili per il recupero di scene statiche (questo è lo scopo principale dei descrittori SIFT/SURF). Nel caso del tracking, puoi avere dei buoni punti che appaiono perché l'oggetto tracciato si trova su uno sfondo ben formato, di metà nell'ombra ... poi scompare perché questa condizione è cambiata (cambio di luce, occlusione ...). Quindi non vi è alcuna garanzia per le attività di monitoraggio che un buon punto sarà sempre lì.

+0

I punti chiave validi hanno risposte grandi o piccole? –

Problemi correlati