【发布时间】:2021-09-18 19:34:44
【问题描述】:
在 1080x1080 图像上测试来自 openCV 的 sift 提取器的性能得到了一些意想不到的结果:
img = cv.imread("myImage.jpg", 0) # gray
mser = cv.MSER_create()
sift = cv.SIFT_create()
kp = sift.detect(img) # len(kp) == 5804
des = sift.compute(img, kp) # time: 0.22s
kp = mser.detect(img) # len(kp) == 2511
des = sift.compute(img, kp) # time: 1.62s
与 SIFT 检测到的关键点相比,为什么 sift.compute() 在 MSER 检测到的关键点上速度较慢?请注意,MSER 检测到的关键点比 SIFT 少。
【问题讨论】:
-
使用检测+计算时高斯尺度空间的差异是否只计算一次或两次?也许 sift 描述符正在使用预先计算的信息,而在 mser 中没有预先计算的信息,所以在描述期间必须完成那部分?
标签: python performance opencv sift mser