Ask Your Question

jav_rock's profile - activity

2019-09-17 08:32:24 -0600 received badge  Popular Question (source)
2016-03-07 08:36:42 -0600 received badge  Taxonomist
2015-09-10 08:32:05 -0600 received badge  Good Question (source)
2014-10-28 13:39:50 -0600 received badge  Nice Answer (source)
2013-03-12 04:33:44 -0600 commented answer FREAK compute() speed up

And could also be that every time I call freak-> compute(image, keyp, desc); internally buildpattern() is called? Is it possible to use the same pattern always if the image size doesn't varies, I guess. Maybe by modifying that...

2013-03-12 03:37:51 -0600 commented answer FREAK compute() speed up

Nice!, thanks, many good ideas, lets see what can I do.

2013-02-06 08:56:14 -0600 asked a question FREAK compute() speed up

Is it possible to reduce FREAK extraction time below 70ms?

I am using FAST in pyramids for detection and it takes 1ms to detect. FREAK extraction never takes less than 70 ms. I tried to reduce points passed to the algorithm but never gets below that time, so it is not point-dependent. I am just doing one

extractor = new FREAK();

and then call the method, so it is not a constructor problem I guess. Maybe is something that FREAK does always when you call compute and it is slowing down all the process.

Is there any way of calling the extractor in a static way, like with FAST?

2013-02-06 08:53:34 -0600 received badge  Necromancer (source)
2013-02-06 05:57:27 -0600 answered a question Why is FREAK so slow?

In my application The times are more or less like this in the PC:

detection 1ms
extractor with FREAK 80ms
matching 20ms

FREAK is still slower than I expected even if I only create the object once. It doesn't change that much for android as I use native JNI libraries.

I think if you are getting times of 6 seconds for detection you may have a LOT of things wrong. Check all memory leaks, size of of frames you are processing, check that you create objects once (detector, extractor, matcher). Put timers just for the process of freak extraction to see the real time.

2012-12-20 09:53:35 -0600 asked a question FREAKs patternScale parameter tuning

For rotated and scale dimages I just achieve good matching results using FREAK when adjusting the patternScale parameter and downsampled the traingin image like this:

pyrDown(training, training);

FREAK extractor(true, true, 40, 4);

extractor.compute( training, keypointsA, descriptorsA );
extractor.compute( img, keypointsB, descriptorsB );

Which is the relation of the patternScale parameter and the size of the training image? Is there a way to tune it for all cases of rotations and scalings?

2012-12-17 13:30:36 -0600 commented question FREAK descriptor: scaleNormalized parameter

I have the same problem as you and I am ging to mail the author of the codes to see if I can learn more. I have been playing with different scales of the training image (with cv::pyrDown(source, dest)) and the scaleNormalized parameter. I think it is very sensitive and dependent on the training image, its size and the number of keypoints.

2012-11-29 02:01:56 -0600 received badge  Nice Answer (source)
2012-11-05 15:47:33 -0600 received badge  Good Answer (source)
2012-09-26 06:46:58 -0600 received badge  Good Answer (source)
2012-09-20 16:18:10 -0600 received badge  Nice Answer (source)
2012-09-20 08:06:13 -0600 received badge  Good Question (source)
2012-09-20 06:27:24 -0600 received badge  Nice Question (source)
2012-09-20 06:24:01 -0600 received badge  Famous Question (source)
2012-09-20 05:06:55 -0600 received badge  Notable Question (source)
2012-09-20 04:55:39 -0600 received badge  Popular Question (source)
2012-09-20 03:29:52 -0600 received badge  Nice Question (source)
2012-09-20 03:04:05 -0600 commented answer object detection using SURF & FLANN

BFMatcher is also the matcher to use with new FREAK descriptor, using NORM_HAMMING as type because it is a binary descriptor.

2012-09-20 01:57:49 -0600 received badge  Civic Duty (source)
2012-09-20 01:54:25 -0600 received badge  Organizer (source)
2012-09-20 01:10:48 -0600 received badge  Nice Answer (source)
2012-09-19 06:45:21 -0600 received badge  Critic (source)
2012-09-18 10:39:28 -0600 received badge  Necromancer (source)
2012-09-18 10:22:41 -0600 answered a question Does FREAK eat keypoints when it can't find any descriptors?

I came across with this comment in the compute code:

/*
 * Compute the descriptors for a set of keypoints in an image.
 * image        The image.
 * keypoints    The input keypoints. 
 *              Keypoints for which a descriptor cannot be computed are removed.
 * descriptors  Copmputed descriptors. Row i is the descriptor for keypoint i.
 */
CV_WRAP void compute( const Mat& image, CV_OUT CV_IN_OUT vector<KeyPoint>& keypoints, 
                   CV_OUT Mat& descriptors ) const;

Pay attention to the line after keypoints. It says keypoints are removed if no descriptor is found. I think this answer the question of why they are zeroed.

2012-09-18 08:58:08 -0600 received badge  Necromancer (source)
2012-09-18 08:46:00 -0600 answered a question How to handle inappropriate editing habits?

I think that "flagging as duplicate/low quality" is needed as an extra to "flag offensive" in order to call moderators attention. Maybe it is not necessary to copy all the tools from SO as this site is still small, but I am missing this tool right now.

The flag duplicate will make possible to remove questions on the same topic and make it easier the search for users.

As a coment, IMHO, I think that it wouldn't be a good idea to copy the policy of SO regarding theoretical questions or tutorial-like questions with no codes (where they usually close them), as this OpenCV sometimes requires kind of tutorials or suggestions/discussions. OpenCV is not only programing related, is also researching, thats why I think discussions/suggestions should be admited (following the Q&A format, always argumented).

2012-09-18 05:29:01 -0600 asked a question Clarifying FREAK: Fast Retina Keypoint descriptor

I have been reading information about FREAK descriptor and I understand it is a binary descriptor that claims to be more robust than previous descriptors.

Reading the publication I noticed that they use a scale-space FAST (that works in pyramids with the image scale) detector for evaluation of FREAK. That means that they detect keypoints with FAST and then compute descriptors with FREAK.

QUESTION

I don't understand then which is the aim of the OpenCV function

FREAK::selectPairs(images, keypoint, corrTresh, verbose);

Is this supossed to be a kind of detector for FREAK? Which are the input/output parameters of the function?

2012-09-18 05:08:45 -0600 received badge  Necromancer (source)
2012-09-18 05:06:35 -0600 answered a question Is FREAK scale and rotation invariant?

SURF is a detector like FAST. FREAK is a descriptor extractor. It has more sense to compare it with SIFT.

Actually, in the paper they say they use FREAK descriptors together with a pyramidal FAST detector that is called AGAST.

So answering your question:

  • It is rotation and scale invariant.

  • It is supposed to be a more robust descriptor than SIFT. I am going to test it but still don't have results.

2012-09-18 01:11:11 -0600 answered a question How do I install OpenCV with IPP and TBB?

There is a cool video that if you pay attention to every step there is no chance to get lost.

The key is to download the TBB package to a folder (in the video is called "dep"), and when you click configure in CMake the route will be NOT FOUND, so you have to set it manually and click configure again. The same for IPP.

I think this video tutorial is what you need, there is no chance to fail.

2012-09-17 12:18:12 -0600 received badge  Nice Answer (source)
2012-09-17 12:17:33 -0600 received badge  Student (source)
2012-09-17 12:16:33 -0600 marked best answer Replacing SIFT by FREAK

I have an application using FAST detector and SIFT descriptors. I want to try the new FREAK descriptor.

  • Is it enough by replacing SIFT functions by FREAK and keep using FAST detector or do I need to apply major changes?
2012-09-17 12:15:51 -0600 received badge  Teacher (source)