OpenCV SIFT与David Lowe的SIFT实施相比,OpenCV更糟糕

时间:2013-01-18 09:46:36

标签: opencv image-recognition sift

我尝试使用David Lowe's implementationOpenCV implementation对几个不同的对象进行对象检测(刚刚更改了'SurfFeatureDetector' - >'SiftFeatureDetector'和'SurfDescriptorExtractor' - >'SiftDescriptorExtractor'码)。

似乎opencv实现更糟糕!检测到大量误报和关键点!我尝试使用sigma / contrastThreshold等'SiftFeatureDetector'参数,但结果总是远远超过原版David的版本。

  • SIFT的opencv实现与David Lowe的原始实现完全不同吗?

  • 有没有人知道'SiftFeatureDetector'的一个好的参数集,以便David的实现提供的对象图像的结果(如box.pgm / basmati.pgm ..)可能与David的版本类似。 / p>

3 个答案:

答案 0 :(得分:2)

VLFeatSIFT implementation quite close(就功能输出而言)是原始实现。

答案 1 :(得分:0)

我正在使用OpenCV对SIFT的实施,并与David Lowe在其网站上提供的实施进行比较。调整一些参数我的结果很好。

答案 2 :(得分:0)

这是我在Python中使用的:

 detector = cv2.xfeatures2d.SIFT_create(
        nfeatures = 0,  # def 0 
        nOctaveLayers = 3,  # def 3
        contrastThreshold = 0.04,  # def 0.04 
        edgeThreshold = 10,  # def 10 
        sigma = 1.6)  # def 1.6 

所有默认值。尽管执行速度很慢,但是我得到了很好的结果。