2011-11-09 16 views
6

Sto cercando di ottenere la posizione di un determinato oggetto in un'immagine ripresa con una fotocamera. La corrispondenza dei modelli non verrà eseguita in questo caso, perché ho bisogno di una soluzione di invarianza di scala/rotazione.Utilizzo dei punti chiave per calcolare le somiglianze dell'oggetto

Così Ora sto utilizzando l'algoritmo veloce da OpenCV per rilevare punti chiave a mia immagine, che sembra funzionare bene.

Ma cosa succederà? Ho una 'immagine modello' dell'oggetto che voglio rilevare. Posso immaginare di dover rilevare anche i punti chiave di questa immagine modello e quindi confrontarla per mostrare l'immagine scattata con la fotocamera. È questo quello che devo fare dopo e se sì, quali funzioni posso usare per quello? (Sto usando OpenCV)

O c'è un altro modo di fare questo?

Così come posso utilizzare i punti chiave per rilevare un certo oggetto a mia immagine?

+1

si può guardare gli ultimi 3 tutorial da questa pagina, forse possono essere utile a voi: http://opencv.itseez.com/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html – Adrian

+0

@AdrianPopovici Grazie, Ho provato "Features2D + Homography per trovare un oggetto conosciuto", funziona perfettamente. Il rovescio della medaglia è che è estremamente lento. Ma probabilmente è perché sono su un iphone. Ci proverò anche l'ultimo per vedere se è più veloce. Grazie comunque, mi hai indicato nella giusta direzione! – w00

risposta

6

Si utilizza VELOCE per rilevare keypoints, che è OK.

Ora il passaggio successivo è l'uso di un estrattore di descrittori . Che cos'è un estrattore di descrittori? È un algoritmo che genera una descrizione di un punto chiave che rende questo punto chiave riconoscibile da un matcher . descrittori famosi sono SIFT, FREAK ...

Dopo aver trovato i descrittori l'immagine modello in e l'immagine di query in, avrete bisogno di un matcher. L'appassionato ti dirà quali descrittori sono uguali.

Si noti che SIFT richiede un matcher a distanza euclidea (FLANN), ma FREAK o altri descrittori binari richiedono un matcher basato su distanza hamming.

1

provare le caratteristiche di ORB, invece. Sono progettati per essere più veloci.
Inoltre, dai uno sguardo allo CARD descriptors.

+0

Ho provato a implementare il metodo ORB, ma l'app si interrompe ogni volta che provo. Continua a schiantarsi quando provo a fare una partita. - Metodo Brute Force: http: //pastebin.com/BvnFQgcY --- flannBased: http://pastebin.com/1RrCv0QL - Qualche idea su quale potrebbe essere il problema? – w00

1

Forse si può provare SIFT descrizione punto chiave

VLfeat

Rob Hess

la seconda si basa OpenCV.

Problemi correlati