gpt4 book ai didi

OpenCV - 特征匹配与光流

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:33 26 4
gpt4 key购买 nike

我对使用 OpenCV 制作运动跟踪应用程序很感兴趣,网上有大量信息可用。但是,我在使用 Lucas-Kanade 等稀疏光流算法的特征匹配和跟踪特征之间有点困惑。考虑到这一点,我有以下问题:

  • 如果我指定了要跟踪的像素区域,两者(特征匹配和光流)之间的主要区别是什么?我对实时跟踪不感兴趣,如果这有助于澄清任何假设。
  • 此外,由于我没有进行实时跟踪,使用密集光流 (Farneback) 来跟踪我指定的感兴趣区域中的像素是否更好?

  • 谢谢你。

    最佳答案

    我想补充一些关于该主题的想法,因为我也发现这是一个非常有趣的问题。
    如前所述 特征匹配是一种基于以下技术的技术:

  • 一个特点检测 step 返回一组所谓的特征点。这些特征点位于具有显着图像结构的位置,例如如果您使用 SIFT 或 SURF,则使用 FAST 或 blob 类结构时的边缘状结构。
  • 第二步是匹配 .从两个不同图像中提取的特征点的关联。匹配基于本地视觉描述符,例如梯度或二进制模式的直方图,在特征位置周围局部提取。描述符是一个特征向量,相关的特征点对是最小特征向量距离对。

  • 大多数特征匹配方法都是尺度和旋转不变的,并且对光照变化(例如由阴影或不同对比度引起的)具有鲁棒性。因此这些方法可以应用于 图像序列但是是 更频繁 习惯 对齐图像对 从不同 View 或使用不同设备捕获。特征匹配方法的缺点是难以定义特征匹配的产生位置,并且特征对(在图像序列中是运动矢量)通常非常 稀疏 .此外,匹配方法的亚像素精度非常有限,因为大多数检测器都被精分割级到整数位置。

    根据我的经验, 主要优势特征匹配方法的优势在于它们可以计算非常 大运动/位移 .

    OpenCV 提供了一些特征匹配方法,但网上有很多更新、更快、更准确的方法,例如:
  • DeepMatching它依赖于深度学习,通常用于初始化光流方法以帮助它们处理长距离运动。
  • Stereoscann这是一种非常快速的方法,最初是为视觉里程计提出的。

  • 光流相比之下,方法依赖于亮度恒定性和附加约束的最小化,例如平滑度等。因此,他们根据连续帧序列的空间和时间图像梯度导出运动矢量。因此他们更适合 图像序列而不是从非常不同的视点捕获的图像对。 主要挑战 在用光流向量估计运动中是 大 Action , 闭塞 , 强光照变化物体外观的变化主要是 低运行时间 .然而,光流方法可以非常准确并计算 密集运动场 这与场景中对象的共享运动边界有关。

    但是,不同的光流方法的准确率是非常不同的。 本地 诸如 PLK (Lucas Kanade) 之类的方法通常不太准确,但只允许计算预选的运动矢量,因此速度非常快。 (近年来,我们做了一些研究来提高局部方法的准确性,请参阅 here 了解更多信息)。

    OpenCV 主干提供全局方法,例如 Farnback。但这是一种相当过时的方法。试试 OpenCV 贡献 主干里面比较新的方法。但是要对最新方法有一个很好的概述,请查看公共(public)光流基准。在这里您还可以找到代码和实现,例如:
  • MPI-Sintel光流基准
  • KITTI 2012光流基准。两者都提供链接,例如git 或一些较新方法的源代码。如FlowFields .

  • 但从我的角度来看,我不会在早期阶段拒绝特定的方法匹配或光流。尽可能多地尝试可用的在线实现,看看什么最适合您的应用程序。

    关于OpenCV - 特征匹配与光流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47465570/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com