Question

Is it normal? When I tried the brute force matcher, the result is consistent everytime, but flann is not. A small amount of keypoints will match to different places. I am writing the code using the Android wrapper, the keypoint detector and descriptor is SURF, something like this:

Mat queryDescriptors = new Mat();
Mat trainDescriptors = new Mat();
DescriptorExtractor surfDE = DescriptorExtractor.create(DescriptorExtractor.SURF);
surfDE.compute(queryImage, queryKeyPoints, queryDescriptors);
surfDE.compute(trainImage, trainKeyPoints, trainDescriptors);
DescriptorMatcher dm = DescriptorMatcher.create(DescriptorMatcher.FLANNBASED);
List<DMatch> matches = new ArrayList<DMatch>();
dm.match(queryDescriptors, trainDescriptors, matches);
Was it helpful?

Solution

According to Andrey, this is the reason! So yes, it is normal. To find more one would have to dissect the algorithms!

OTHER TIPS

FLANN stands for Fast Library for Approximate Nearest Neighbors. The approximate nearest neighbor algorithms are non-deterministic, often randomized KD-trees.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top