Ask Your Question
2

Where to learn basic principles used in Feature/Template detection ?

asked 2013-02-05 14:31:25 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >50 is welcome to improve it.

I''ve learnt basics of OpenCV and learnt how to write code which does something bit more complex than HelloWorld program. Anyways, In this meanwhile I've learnt how to write Feature and template based detection program using supported list of algorithms(ORB, FAST, SURF etc). In this I've learned how to detect features, how to detect descriptors, how to find matches based on descriptors and at last how to draw them using drawMaches().

Now I want to replace this drawMatches() with some custom logic...but I don't know what are the fundamental principles used by this drawMatches() and also I'm unaware what type/kind of data/information these keypoints and desciptors do carry.

So I'm looking some help, to understand these things fundamentally. I'm absolutely unaware where should I start from, so please provide pointers/information/url from where I can do my head-start.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
1

answered 2013-02-06 02:36:27 -0600

drawMatches function is only for display the association between two set of features points. If you want to use these features (SIFT/SURF/ORB/...) to recognize objects, you need a training phase. For example, the bag of words approach (BoW) is commonly used. You create a limited dictionary of word (usually an histograms of features). You use this vector (histogram) to train a classifier (SVM/...) For each new image, you compute the feature, create the histogram with respect to the dictionary, and use this vector as input for predicting the class (object learn). OpenCV can do almost everything for you in a first stage. See: * tutorial on features detection: http://docs.opencv.org/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html#table-of-content-feature2d * tutorial on machine learning (with SVM): http://docs.opencv.org/doc/tutorials/ml/table_of_content_ml/table_of_content_ml.html#table-of-content-ml * Bag Of Word in OpenCV: http://docs.opencv.org/modules/features2d/doc/object_categorization.html?highlight=bow#BOWTrainer * Bag Of Word principles: Visual Categorization with Bags of Keypoints by Gabriella Csurka, Christopher R. Dance, Lixin Fan, Jutta Willamowski, Cedric Bray, 2004. (you should probably start with this reference as suggested in OpenCV doc. * Try, enjoy, optimize, and read the lot of research papers available on this topic... (try "bag of visual word" in google scolar)

edit flag offensive delete link more

Comments

thank you, quite helpful indeed. :)

Abhinav gravatar imageAbhinav ( 2013-02-06 05:33:16 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-02-05 14:31:25 -0600

Seen: 546 times

Last updated: Feb 06 '13