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)
Questo istogramma mostra la distribuzione dei punti di forza di risposta delle funzionalità nell'immagine sopra:
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:
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).
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
Prego. Ho appena modificato la risposta, spero che aiuti. – fireant
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