Ask Your Question
4

Alternatives for SIFT, ORB and FAST

asked Mar 7 '14

pats gravatar image

updated Mar 12 '14

I used several methods to extract features and then identified the card in the right in other images.

The results of (ORB+FREAK),(FAST + FREAK) and SIFT is as follows. The question is how do I improve first two methods to achieve the results of SIFT. Or what can I use in a commercial product, which gives good results

FAST settings FastDetector fastCPU = new FastDetector(10, true); Freak descriptor = new Freak(true, true, 22.0f, 4);

ORB settings ORBDetector descriptor = new ORBDetector(400); Freak descriptor = new Freak(true, true, 22.0f, 4);

image description

KAZE

image description

Preview: (hide)

Comments

1

What about BRISK? CensureE? BRIEF?

Are you using the ratio test to eliminate outliers?

GilLevi gravatar imageGilLevi (Mar 12 '14)edit

BRISK and BRIEF didn't do much different with FAST. I am bit new to this field, I am not sure about ratio test. This is the algo I used, which corresponds to OpenCV example. Thank you http://www.emgu.com/wiki/index.php/FAST_feature_detector_in_CSharp

pats gravatar imagepats (Mar 12 '14)edit

1 answer

Sort by » oldest newest most voted
2

answered Mar 7 '14

You could try Pablo F. Alcantarilla's KAZE features: http://www.robesafe.com/personal/pablo.alcantarilla/kaze.html

Preview: (hide)

Comments

Is this available on Open CV. ? Is it possible to find executable from some where?

pats gravatar imagepats (Mar 11 '14)edit

It is not part of OpenCV (yet) but it is implemented using OpenCV underneath, so it is not difficult to use. You can just download the source code from github, compile it and test it.

Martin Peris gravatar imageMartin Peris (Mar 11 '14)edit

Thanks for your response. I have updated the post with Kaze now. However the issue is time consumed. On a highend PC, it takes around 3 mins to compile this static Image. I want to run this in a phone if possible. Any idea why its taking this long.

pats gravatar imagepats (Mar 12 '14)edit

@pats Did you filter your matches? If not, it might be a lot of outliers. For example you can check knnMatch output: if it finds more than one correspondence, you can compare distance ratio between these correspondences and, if it's bigger than some threshold, it will be an outlier. This should help. Also there is a lot of keypoints on shirt - this can be due to low detector's thresholds. Tune them or try GFTTDetector, which has a lot of parameters to tune.

Daniil Osokin gravatar imageDaniil Osokin (Mar 12 '14)edit

Thank you for the help. I am bit new to this area, so I am not sure about the ratio test. This is the algo I used. https://github.com/pablofdezalc/kaze/blob/master/src/kaze_match.cpp, I tried GFTTDetector with default parameters. Did not give good fit. It's very very fast though. GFTTDetector fastCPU = new GFTTDetector(1000,0.01,1,3, true,0.04);

pats gravatar imagepats (Mar 12 '14)edit

Without filtering it's usually hard to achive good results with FAST, GFTT detector's. For ratio test check this http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html (it's in python, but you can catch the idea).

Daniil Osokin gravatar imageDaniil Osokin (Mar 13 '14)edit

Yes, I have done Ratio test with 0.8 threshold. In all these cases

pats gravatar imagepats (Mar 13 '14)edit

Question Tools

Stats

Asked: Mar 7 '14

Seen: 4,696 times

Last updated: Mar 12 '14