Il setaccio è un buon modo per estrarre funzionalità da un'immagine?


13

Sto cercando di estrarre funzionalità da un'immagine, ma non sono riuscito a ottenere i punti che voglio estrarre, e quindi la mia immagine non riesce a corrispondere al modello.

Ci sono punti di controllo che devo superare prima di applicare SIFT alla mia immagine in modo da ottenere buoni risultati? Ad esempio l'immagine del modello è;
inserisci qui la descrizione dell'immagine

immagine mirata; inserisci qui la descrizione dell'immagine


1
Dipende dal tipo di immagine e da cosa si desidera utilizzare le funzionalità. Maggiori informazioni per favore.

Risposte:


14

Quello che dovresti fare quando abbini un modello a un'immagine usando il setaccio è eseguire il setaccio sul tuo modello e quindi cercare quelle funzioni di setacciamento in quella disposizione nella tua scena.

Regola empirica: confronta come mi piace.

Setaccio (modello) contenuto in setaccio (immagine)

Non è possibile ottimizzare Sift per estrarre le "funzionalità desiderate" Sift * utilizza misure invarianti per trovare le funzionalità che ritiene più salienti. (* Chris A)

Se vuoi che trovi caratteristiche particolari dal tuo modello, crea modelli più piccoli di quelle caratteristiche e cercale.

Solo un suggerimento. Non so esattamente quale tipo di modello stai cercando di adattare a quale tipo di scena o immagine.


7
+1, sono d'accordo. Tranne una cosa. SIFT non trova le funzionalità più invarianti. Utilizza misure invarianti per trovare le funzionalità che ritiene più salienti.

7

Non sono sicuro se si desidera solo abbinare due immagini (ad esempio, trovare i punti comuni) o si desidera tentare qualcosa come CBIR (recupero di immagini basato sul contenuto - ricerca in un database con un'immagine modello per trovare tutto ciò che contiene il oggetto).

Attualmente sto facendo ricerche CBIR, quindi sono abbastanza aggiornato con i metodi attuali. Qui e qui ci sono i collegamenti alle mie risposte a problemi simili ai tuoi da StackOverflow, dovresti dare un'occhiata.

Ora, per parlare un po 'di SIFT. Quando è stato introdotto per la prima volta da Lowe, il termine SIFT si applicava sia al processo di rilevamento delle caratteristiche sia ai descrittori delle caratteristiche calcolati su quei punti di interesse rilevati. Fino ad oggi, i descrittori SIFT hanno dimostrato di essere incredibilmente fantastici. I descrittori hanno alcune proprietà interessanti che @Totero ha già menzionato.

D'altro canto, il metodo di rilevamento SIFT , che oggi è sempre più indicato come DoG (Differenza di gaussiani), non è più all'avanguardia. È ancora ampiamente usato, ma per il processo di rilevamento delle caratteristiche, oggi ci sono più metodi, alcuni dei quali sono migliori o completano bene i tipi di estratti di processi DoG con punti chiave invarianti.

La maggior parte degli articoli attuali (guarda i collegamenti nelle domande collegate sullo stackoverflow) hanno un'altra pratica piacevole: combinano diversi modi di rilevare le caratteristiche e quindi usano i descrittori SIFT (che oscillano ancora come descrittori) per calcolare le rappresentazioni vettoriali invarianti. Attualmente sto lavorando con una combinazione di DoG (si concentrano su parti di immagini simili ad angoli) e regioni MSER (si concentrano su punti distinti simili a blob attraverso più scale). Potresti voler provare e sperimentare e lanciare ancora più tipi di rilevatori di funzionalità lì, se trovi questa combinazione non soddisfacente sul tuo particolare database di immagini.

Inoltre, se sei interessato, ecco un documento che valuta le preformance di diverse combinazioni di rilevamento e descrittore. Non l'ho letto da quando DoG e MSER + SIFT funzionano bene per me, ma l'ho scremato e il foglio è abbastanza buono.

PS: usa google scholar se non hai accesso al database IEEEXplore a cui ho collegato.


solo un piccolo chiarimento: DoG sta per Differenza di gaussiano (differenza tra due risposte di filtro gaussiano)
Libor

2

Sulla base delle risposte precedenti:

(1) È possibile utilizzare SIFT (o un'altra variante migliorata di questo descrittore di patch locale) con campionamento denso, invece del rilevatore incorporato. È possibile scegliere la dimensione della patch locale e la densità di campionamento in base alle proprie esigenze di prestazioni e costo computazionale.

(2) SIFT è un descrittore invariante affine per la corrispondenza stereo di base ampia. Ciò significa che SIFT funziona bene quando si acquisisce un'immagine e si induce una trasformazione affine ad essa, in cui il 'modello' deve essere presente nell'immagine di destinazione, sebbene con le trasformazioni.

Suggerimenti: (a) Crea un database di immagini modello (se possibile) per migliorare le tue possibilità di rilevare l'immagine.

(b) È possibile utilizzare il modello BoW come base se si sceglie di adottare un approccio CBIR al proprio compito.

(c) Ritaglia l'immagine del modello solo nella parte pertinente e usa un SIFT altamente denso. http://www.vlfeat.org/overview/dsift.html

(4) Successivamente potresti voler provare un descrittore su più scale come PHOG (istogramma piramidale dei gradienti), ecc. Che potrebbe potenzialmente migliorare i risultati. http://www.vlfeat.org/overview/dsift.html#tut.dsift.phow

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.