Voglio confrontare i descrittori SURF in un'immagine (A), con i descrittori in diverse altre immagini (B, C, D, ..) per trovare l'immagine più simile ad A. I descrittori hanno 64 dimensioni.Confronta i descrittori SURF in un'immagine a un elenco di descrittori in altre immagini
Utilizzando C# e Emgu, la corrispondenza viene eseguita confrontando i descrittori di A in B, poi in C, poi in D e così via. Questo è molto lento quando il numero di immagini supera 10, perché molti descrittori irrilevanti devono essere cercati.
Per accelerare il processo, la strada giusta da seguire (in base agli articoli) sembra essere quella di costruire un kd-tree per i descrittori in (B, C, D, ..) per trovare rapidamente il descrittore in A. L'albero kd è diviso in dimensioni in base al livello. La prima divisione viene decisa dalla 1a dimensione, la seconda divisione dalla 2a dimensione, ecc. Tuttavia, al numero di dimensioni alte per i descrittori (64), il vantaggio dell'uso di un albero KD si riduce.
Quindi la mia domanda è: quale esperienza o conoscenza avete con l'utilizzo di un albero KD/altro metodo per abbinare i descrittori SURF da un'immagine (A) a diverse immagini (B, C, D ..). Cosa funziona bene e non così bene e hai fatto qualcosa di simile?
FLANN sarebbe un'opzione qui, in quanto viene utilizzato da OpenCV, ma non riesco a trovare una versione per C#. Neighboor approssimativamente più vicino sarebbe anche un'opzione per accelerare il kd-tree, ma funziona bene con le immagini corrispondenti?
migliori saluti Morten
Quella pagina non funziona più, ho un "Errore Trac" – mpen
http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples /c/find_obj.cpp – Piotr