Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
171 lines (108 sloc) 5.68 KB

Feature Detection and Description

.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_1 What are the main features in an image? How can finding those features be useful to us?
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_2 Okay, Corners are good features? But how do we find them?
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_3 We will look into Shi-Tomasi corner detection
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_4 Harris corner detector is not good enough when scale of image changes. Lowe developed a breakthrough method to find scale-invariant features and it is called SIFT
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_5 SIFT is really good, but not fast enough, so people came up with a speeded-up version called SURF.
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_06 All the above feature detection methods are good in some way. But they are not fast enough to work in real-time applications like SLAM. There comes the FAST algorithm, which is really "FAST".
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_07 SIFT uses a feature descriptor with 128 floating point numbers. Consider thousands of such features. It takes lots of memory and more time for matching. We can compress it to make it faster. But still we have to calculate it first. There comes BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate.
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_08 SIFT and SURF are good in what they do, but what if you have to pay a few dollars every year to use them in your applications? Yeah, they are patented!!! To solve that problem, OpenCV devs came up with a new "FREE" alternative to SIFT & SURF, and that is ORB.
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_09 We know a great deal about feature detectors and descriptors. It is time to learn how to match different descriptors. OpenCV provides two techniques, Brute-Force matcher and FLANN based matcher.
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv

f2d_10 Now we know about feature matching. Let's mix it up with calib3d module to find objects in a complex image.
.. toctree::
   :hidden:

   ../py_features_meaning/py_features_meaning
   ../py_features_harris/py_features_harris
   ../py_shi_tomasi/py_shi_tomasi
   ../py_sift_intro/py_sift_intro
   ../py_surf_intro/py_surf_intro
   ../py_fast/py_fast
   ../py_brief/py_brief
   ../py_orb/py_orb
   ../py_matcher/py_matcher
   ../py_feature_homography/py_feature_homography