Ask Your Question
4

Alternatives for SIFT, ORB and FAST

asked 2014-03-06 21:00:14 -0600

pats gravatar image

updated 2014-03-12 00:10:06 -0600

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

edit retag flag offensive close merge delete

Comments

1

What about BRISK? CensureE? BRIEF?

Are you using the ratio test to eliminate outliers?

GilLevi gravatar imageGilLevi ( 2014-03-12 10:26:10 -0600 )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 ( 2014-03-12 17:33:12 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
2

answered 2014-03-07 03:29:26 -0600

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

edit flag offensive delete link more

Comments

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

pats gravatar imagepats ( 2014-03-10 18:36:44 -0600 )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 ( 2014-03-10 21:10:12 -0600 )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 ( 2014-03-12 00:12:56 -0600 )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 ( 2014-03-12 02:49:57 -0600 )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 ( 2014-03-12 17:43:21 -0600 )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 ( 2014-03-13 01:36:46 -0600 )edit

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

pats gravatar imagepats ( 2014-03-13 17:21:56 -0600 )edit

Question Tools

Stats

Asked: 2014-03-06 21:00:14 -0600

Seen: 4,429 times

Last updated: Mar 12 '14