【问题标题】:What is cross check in computer vision?什么是计算机视觉中的交叉检查?
【发布时间】:2014-08-16 16:23:39
【问题描述】:

我正在查看 EMGU 和 BrutheForceMatcher 的 API。如果您创建 BruteForceMatcher(T)(DistanceType) 构造函数,它不会进行交叉检查。但是,我不知道什么是交叉检查,API中似乎也没有提到。就这个 EMGU 和计算机视觉而言,什么是交叉检查?

【问题讨论】:

    标签: c# computer-vision emgucv


    【解决方案1】:

    来自C++ API documentation:

    crossCheck – 如果为 false,当它为每个查询描述符找到 k 个最近邻居时,这将是默认的 BFMatcher 行为。如果 crossCheck==true,则 k=1 的 knnMatch() 方法将只返回对 (i,j),这样对于第 i 个查询描述符,匹配器集合中的第 j 个描述符是最近的,反之亦然,即BFMatcher 只会返回一致的对。当有足够的匹配时,这种技术通常会以最少数量的异常值产生最佳结果。这是 D. Lowe 在 SIFT 论文中使用的比率测试的替代方法。


    编辑:

    据我了解,我很确定您可以这样总结以上内容,如果您找到与功能 A 最接近的匹配 B,则元组 (A,B) 仅被视为 Consistent Pair 和因此,如果 A 也是与您的功能 B 最接近的匹配项,则返回。

    一维示例:

    -----A--------B---C

    在这种情况下,即使 B 是 A 的最佳匹配,反之亦然。相反,(B,C) 将成为您的 Consistent Pair

    -----A--B-----C

    另一方面,显然(A,B) 是更好的匹配,它将被返回。

    (文档中提到的 Loewe 的另一种方法也已经在 SO over here 上讨论过)

    【讨论】:

    • 在 API 中编写该定义的人没有校对它,哈哈。你能用外行人的话说吗?
    • 很棒的解释!谢谢
    猜你喜欢
    • 2011-01-02
    • 2018-06-14
    • 2013-11-27
    • 2023-03-04
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多