OpenCV ORB功能检测器如何工作?
computer-vision
opencv
4
0

我想使用ORB特征检测器和提取器来实现基于特征的对齐算法。
到目前为止,我使用OpenCV ORB orb; ORB类提取了特征ORB orb;
orb(gray_image,Mat(),features.keypoints,features.descriptors);
并使用来自openCV matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);的knnMatch函数进行匹配matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);之后,我尝试使用findHomography函数查找单应性,但是此函数在图像特征之间至少需要4个匹配项,并且在我测试的大多数图像上,我的得分都小于4。

有人使用过此功能吗?是否有任何相关文档,或者有关OpenCV中的ORB类(ORB构造函数参数的含义)的文档?

PS:这是我的第一个问题。而且我发布的链接不能超过2个。对于opencv文档,请使用this

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

更新:现在 OpenCV的文档中,在这里: http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb

有关该算法的详细说明,请参见: http : //www.willowgarage.com/sites/default/files/orb_final.pdf


OpenCV文档中未提及它,但实际上OpenCV具有:

两种类型的描述符:

  • 浮动描述符:
    • 冲浪
  • uchar描述符:
    • 天体
    • 简要

和对应的匹配器:

  • 对于float描述符:
    • FlannBased
    • BruteForce<L2<float> >
    • BruteForce<SL2<float> > //从2.3.1开始
    • BruteForce<L1<float> >
  • 对于uchar描述符:
    • BruteForce<Hamming>
    • BruteForce<HammingLUT>
    • FlannBased具有LSH索引//自2.4.0起

因此,您需要修改代码以将例如BruteForce<Hamming>匹配器用于ORB描述符。可以使用L2或L1距离来匹配uchar描述符,但结果将不正确,并且findHomography返回的结果不令人满意。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号