计算机视觉 特征检测与匹配 特征跟踪

        在所有候选图像中独立查找特征然后匹配它们的替代方法是在第一张图像中找到一组可能的特征位置,然后在后续图像中搜索它们的对应位置。这种先检测后跟踪的方法更广泛地用于视频跟踪应用,其中相邻帧之间的预期运动量和外观变形量预计较小。

        选择好的特征进行跟踪的过程与为更一般的识别应用选择好的特征密切相关。在实践中,在两个方向上都包含高梯度的区域,即在自相关矩阵中具有高特征值的区域,提供了找到对应关系的稳定位置。

        在随后的帧中,搜索相应补丁具有低平方差的位置通常效果很好。但是,如果图像正在经历亮度变化,则明确补偿这种变化或使用归一化互相关可能更可取。如果搜索范围很大,使用分层搜索策略通常也更有效,该策略在较低分辨率的图像中使用匹配提供更好的初始猜测,从而加快搜索速。 该策略的替代方案包括了解被跟踪的补丁的外观应该是什么,然后在其预测位置附近搜索它。

        如果在更长的图像序列上跟踪特征,它们的外观可能会发生更大的变化。 然后,您必须决定是继续与最初检测到的补丁(特征)进行匹配,还是在匹配位置重新采样每个后续帧。前一种策略容易失败,因为原始补丁可能会发生外观变化,例如变小(可能距离远了)。后者存在特征从其原始位置漂移到图像中其他位置的风险。(从数学上讲,小的配准错误会产生马尔可夫随机游走,从而导致更大的漂移超时。)

        一个更好的解决方案是使用仿射运动模型将原始补丁与后来的图像位置进行比较。使用平移模型比较相邻帧中的补丁,然后使用此步骤产生的位置估计来初始化当前帧中的补丁与首次检测到特征的基本帧之间的仿射配准(下图)。在通常情况下,使用增量配准算法搜索特征当前预测位置周围的区域。 生成的跟踪器通常称为(KLT) 跟踪器。

使用仿射运动模型进行特征跟踪,顶行:跟踪特征位置周围的图像补丁。 底行:使用仿射变形向第一帧弯曲后的图像补丁。 即使速度符号从帧到帧变大,仿射变换在原始帧和后续跟踪帧之间保持良好的相似性。

         自从他们最初的特征跟踪工作以来,Shi 和 Tomasi 的方法已经产生了大量的后续论文和应用。 以及其它学者使用扩展特征跟踪结合运动结构从视频序列逐步建立稀疏 3D 模型。以及将相邻(规则网格化)补丁的角连接在一起,为跟踪提供一些额外的稳定性,但代价是遮挡处理较差。1998的论文为基本 Shi 和 Tomasial 算法提供了更好的虚假匹配拒绝标准,Collins 和 Liu (2003) 为特征选择和处理随时间发生的较大外观变化提供了改进的机制,Shafique 和 Shah (2005) 开发了特征匹配算法(数据关联)用于具有大量移动对象或点的视频。 Lepetit 和 Fua (2005) 以及 Yilmaz、Javed 和 Shah (2006) 研究了更大的对象跟踪领域,其中不仅包括基于特征的技术,还包括基于轮廓和区域的替代技术。

        特征跟踪的最新发展是使用学习算法来构建专用识别器,以快速搜索图像中任何位置的匹配特征。通过花时间在样本块及其仿射变形上训练分类器,可以构建极其快速和可靠的特征检测器,从而支持更快的运动(下图)。 将这些特征与可变形模型(Pilet、Lepetit 和 Fua 2008)或结构-运动算法(Kleinand Murray 2008)相结合可以产生更高的稳定性。

使用快速训练的分类器进行实时头部跟踪。

         基于特征的跟踪广泛用于实时应用,如 SLAM、自主导航和增强现实,目前有很多关于跟踪的工作专注于整个对象跟踪。

        快速特征跟踪最引人注目的应用之一是性能驱动动画,即基于跟踪用户动作的 3D 图形模型的交互式变形。

性能驱动的手绘动画:(a)手绘草图的眼睛和嘴巴部分及其重叠的控制线; (b) 叠加了跟踪特征的输入视频帧; (c) 不同的输入视频帧及其 (d) 对应的手绘动画。

        Buck, Finkelstein等人(2000) 提出了一个系统,该系统可以跟踪用户的面部表情和头部动作,然后使用它们在一系列手绘草图中变形。 动画师首先提取每个草图的眼睛和嘴巴区域,并在每个图像上绘制控制线(上图)。 在运行时,面部跟踪系统确定这些特征的当前位置(上图b)。动画系统根据最近邻特征外观匹配和三角形重心插值来决定要变形的输入图像。它还根据跟踪的特征计算头部的全局位置和方向。 然后将生成的变形眼睛和嘴巴区域合成回整个头部模型,以产生一帧手绘动画(上图d)。

        在最近的工作中,Barnes、Jacobs 等人(2008) 观看用户在桌面上制作剪纸动画,然后将生成的动作和绘图转换为无缝的 2D 动画。 基于特征的面部跟踪器在视觉效果行业以及实时智能手机增强现实效果(如 Facebook 的 Spark AR 面罩)中继续被广泛使用。

        一些基于opencv的关于跟踪的参考代码

Opencv学习笔记 背景对比、帧差进行移动物体检测_bashendixie5的博客-CSDN博客_opencv 移动检测移动检测和绘制:主要用absdiff函数,将两个矩阵的绝对值差计算结果存在Mat中https://skydance.blog.csdn.net/article/details/107853991Opencv学习笔记 Meanshift算法_bashendixie5的博客-CSDN博客学习 Meanshift 和 Camshift 算法来查找和跟踪视频中的对象。https://skydance.blog.csdn.net/article/details/108810191

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/124672468