Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FREAK Descriptor parameters

Tags:

opencv

I have a question about FREAK function in OpenCV 2.4.3. In the definition of FREAK, it says:

FREAK( bool orientationNormalized = true,
       bool scaleNormalized = true,
       float patternScale = 22.0f,
       int nOctaves = 4,
       const vector<int>& selectedPairs = vector<int>());

What does "patternScale" mean exactly? I couldn't find anything about "scale" in the FREAK papers. How are the kernel sizes of Gaussians in FREAK determined? I am asking this because BruteForce Matcher's matching pairs depend on the parameter "patternScale".

If I leave it as default, the matcher misses a few keypoints and they are not matched. However, if I change it to 1.0, the matcher matches every point. Is there anybody who knows why?

like image 918
Richard Han Avatar asked Dec 12 '25 09:12

Richard Han


1 Answers

So here's a little insight into the code surrounding the FREAK constructor and how it uses the patternScale parameter at OpenCV's own answers site:

http://answers.opencv.org/question/5360/freaks-patternscale-parameter-tuning/

That combined with this post about "eating" keypoints (similar to what you're experiencing, it seems)

Which seems to indicate that the patternScale is used to "scale up" the lookup keypoints of the original pattern. When they scale past the size of the image itself, they're simply dropped from the computation.

like image 90
Kyle Hale Avatar answered Dec 13 '25 23:12

Kyle Hale



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!