视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义。在军事制导、视频监控、机器人视觉导航、人机交互、以及医疗诊断等许多方面有着广泛的应用前景。随着研究人员不断地深入研究,视觉目标跟踪在近十几年里有了突破性的进展,使得视觉跟踪算法不仅仅局限于传统的机器学习方法,更是结合了近些年人工智能热潮—深度学习(神经网络)和相关滤波器等方法。本文主要介绍以下几点:什么是视觉目标跟踪(单目标跟踪)、单目标跟踪的基本结构(框架),目标跟踪存在的挑战,目标跟踪经典相关方法及研究趋势等。
目标跟踪是计算机视觉领域的一个重要问题,目前广泛应用在体育赛事转播、安防监控和无人机、无人车、机器人等领域。下面是一些应用的例子。
视觉目标(单目标)跟踪是指对图像序列中的运动目标进行检测、提取、识别和跟踪,获得运动目标的运动参数,如位置、速度、加速度和运动轨迹等,从而进行下一步的处理与分析,实现对运动目标的行为理解,以完成更高一级的检测任务。
其具体任务即根据所跟踪的视频序列给定初始帧(第一帧)的目标状态(位置、尺度),预测后续帧中该目标状态。基本结构(框架)如下:
基本流程:输入初始帧并指定期望跟踪的目标,通常用矩形框标定(
Input Frame
),在下一帧中产生众多候选框(
Motion Model
)并提取这些候选框的特征(
Feature Extractor
),观测模型(
Observation Model
)对这些候选框评分。最后在这些评分中找一个得分最高的候选框作为预测的目标(
Prediction A
),或者对多个预测值进行融合(
Ensemble
)得到更优的预测目标。至此算法完成了根据第一帧的信息对第二帧的预测,后续帧以此类推,同时根据指定规则更新模型(
Model Updater
)。
根据如上的框架,将目标跟踪划分为五项主要的研究内容,流程图下图所示:
-
运动模型(Motion Model):如何产生众多的候选样本。
-
特征提取(Feature Extractor):利用何种特征表示目标。
-
观测模型(Observe Model):如何对众多候选样本评分。
-
模型更新(Model Updater):如何更新观测模型使其适应目标的变化。
-
集成方法(Ensemble):如何融合多个决策获得一个更有的决策结构。
下图的总结可以帮助更好的理解目标跟踪算法是如何完成跟踪任务的。
大多数的跟踪方法主要集中对
观测模型
的设计,根据观测模型的不同可分为两类:
生成式
模型(Generative Model)和
判别式
模型(Discriminative Model)。
举例:跟踪器从当前帧知道了目标区域80%是红色,20%是绿色,在下一帧中搜索算法回去找最符合这个颜色比例的区域。
举例:在训练时告诉跟踪器,目标80%是红色,20%是绿色,同时背景中有桔红色,要格外注意,这样分类器知道更多信息,效果也相对较好。
虽然目标追踪的应用前景非常广泛,但还是有一些问题限制了它的应用,主要问题例举如下:
-
形态变化 - 姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时, 会导致它的特征以及外观模型发生改变, 容易导致跟踪失败。例如:体育比赛中的运动员、马路上的行人。
-
尺度变化 - 尺度的自适应也是目标跟踪中的关键问题。当目标尺度缩小时, 由于跟踪框不能自适应跟踪, 会将很多背景信息包含在内, 导致目标模型的更新错误:当目标尺度增大时, 由于跟踪框不能将目标完全包括在内, 跟踪框内目标信息不全, 也会导致目标模型的更新错误。因此, 实现尺度自适应跟踪是十分必要的。
-
遮挡与消失 - 目标在运动过程中可能出现被遮挡或者短暂的消失情况。当这种情况发生时, 跟踪框容易将遮挡物以及背景信息包含在跟踪框内, 会导致后续帧中的跟踪目标漂移到遮挡物上面。若目标被完全遮挡时, 由于找不到目标的对应模型, 会导致跟踪失败。
-
图像模糊 - 光照强度变化, 目标快速运动, 低分辨率等情况会导致目标模糊, 尤其是在运动目标与背景相似的情况下更为明显。因此, 选择有效的特征对目标和背景进行区分非常必要。
下图是上述问题的一些实例。
严谨的数据集是驱动算法的关键,前几年目标跟踪方向的数据库资源相对匮乏,这也是目标跟踪的发展相对落后于目标检测的重要原因之一。下面简要介绍了两个权威的目标跟踪方向的数据库。
OTB可以说是做单目标跟踪必跑的数据库了,2013年的OTB50包含50个人工标注的视频序列。由于在此之前目标跟踪方向没有比较公认的数据库,所有的单跟踪算法没有一个统一的衡量,所以这个数据库的意义非常重大,直接促进了单目标跟踪算法的发展。后来又扩展为OTB100发送到TPAMI,有100个序列,难度更大更加权威。如果想要了解近年来比较厉害的跟踪算法,可以参考吴毅老师的论文(附后)。
VOT Challenge是目标跟踪领域的赛事,类似于图形识别领域中的ImageNet挑战赛。这些赛事通常都是标准数据集的来源,所以VOT数据集是一个常用的目标跟踪数据集,所有序列支持免费下载。VOT竞赛已经举办了9届,每年竞赛都会出现很多新的算法和别致的思路,2022年的VOT竞赛也即将开启,由于每年的评测序列都会更新,且标注的精确度逐年提高,VOT竞赛也被视为视觉跟踪领域最难的竞赛,所以结果相对更可靠。
OTB和VOT区别:OTB包括25%的灰度序列,而VOT都是彩色序列,这也是造成很多颜色特征算法性能差异的原因。两个库的评价指标不尽相同,具体请参考论文和竞赛官网。
前几年最热门的生成式跟踪方法是稀疏编码(Sparse Coding), 而近来判别式跟踪方法逐渐占据了主流地位,以
相关滤波
(CF:Correlation Filter)和
深度学习
(DL:Deep Learning)为代表的判别式方法取得了令人满意的效果。本节按年份顺序对经典算法进行一个简单地梳理,其中各个算法的年份以论文发表的年份或者参加benchmark的年份为依据,帮助理解单目标跟踪算法的演变和发展趋势。针对于不同的跟踪任务的挑战各个算法所提出的解决思想值得我们学习体会,跟踪算法的发展趋势可见一斑。
LK Tracker应该是最早的目标跟踪工作,它使用了光流的概念,如下图所示,不同颜色表示光流不同的方向,颜色的深浅表示运动的速度。光流的计算非常简单也非常快,但是它的鲁棒性不好,基本上只能对平移且外观不变的物体进行跟踪。
Mean Shift采用均值漂移作为搜索策略,这是一种无参概率估计方法,该方法利用图像特征直方图构造空间平滑的概率密度函数,通过沿着概率密度函数的梯度方向迭代,搜索函数局部最大值。在当时成为了常用的目标跟踪方法,简单易实现,但鲁棒性较低。
MOSSE(Minimum Output Sum of Squared Error)使用相关滤波来做目标跟踪(不是第一个,但由于思路清晰、算法完整称为相关滤波跟踪算法的鼻祖),其速度能够达到600多帧每秒,但是效果一般,主要是因为它只使用了简单的原始像素特征。
大致流程:
-
再入初始帧的groundtruth(包括中心点和矩形框的高宽)
-
对当前目标框进行随机仿射变换生成128个样本,每个样本经过高斯函数计算得出响应值,最终结合公式得出滤波器模版(图13中的FILTER)。
-
根据模版计算得出第二帧的响应图,其中响应值最大的点为第二帧目标的中心点,并以此画出目标框(图13中的OUTPUT)。
-
根据第二帧的目标区域更新滤波器模版
-
重复3-4步
CSK的作者针对MOSSE做出了一些改进,作者认为循环移位能模拟当前正样本的所有的转换版本(除边界以外),因此采用循环矩阵进行密集采样(对比MOSSE的随机仿射采样),并通过核函数将低维线性空间映射到高维空间,提高了相关滤波器的鲁棒性。
循环矩阵是一种特殊的矩阵,它的一维形式就是由一个n维向量每次向右循环移动一个元素,直到生成一个n×n的矩阵,具体效果如下图所示。
CSK的特征输入是单通道的灰度像素,而KCF利用的是HOG多通道特征,核函数利用了高斯核函数。
可以说CSK和KCF的结合才是完整的核化相关滤波器的演变趋势,既有循环矩阵及傅立叶对角化简化计算,又有对单通道特种应用的拓展,可以适应更多优秀的特征描述。
DSST作者将跟踪分为两个部分——位置变化和尺度变化。在跟踪过程中,作者定义了两个滤波器分别用于确定新目标的位置和尺度评估,提高了算法的鲁棒性。
MDNet设计了一个轻量级的小型网络学习卷积特征表示目标。作者提出了一个多域的网络框架。
在离线训练时,特征提取网络是共享的,同时针对每个视频序列构建一个新的检测分支进行训练。这样特征提取网络可以学习到通用性更强的与域无关的特征。
在跟踪时,保留并固定特征提取网络,针对跟踪序列构建一个新的分支检测部分,用第一帧样本在线训练检测部分之后再利用跟踪结果生成正负样本来微调检测分支。
此外,MDNet在训练中负样本的生成用到了难例挖掘技术,随着训练的进行增大样本的分类难度,从而使得网络的判别能力越来越强。
如下图所示,负样本越来越难分。
SRDCF的作者考虑到若仅使用单纯的相关滤波会导致边界效应,也就是相关滤波采用循环移位采样导致当目标移位到边缘时会被分割开,此时得到的样本中就没有完整的目标图像从而失去效果。
于是,作者的思路是既然边界效应发生在边界附近,那就忽略所有移位样本的边界部分像素,或者说限制让边界附近滤波器系数接近0,具体做法是加入空间正则化,惩罚边界区域的滤波器系数,效果如下图。
HCF的主要贡献是把相关滤波中的HOG特征换成了深度特征,它使用的是VGG的3、4、5三个层来提取特征,针对每层CNN训练一个过滤器,并且按照从深到浅的顺序使用相关滤波,然后利用深层得到的结果来引导浅层从而减少搜索空间。
上图是使用卷积可视化得到的,如图中所示,在conv3中的特征能够比较清晰的看到目标的轮廓,但是在conv5中已经很难看到细节所在,但是,在conv5当中能够看到的是,本层特征包含了较多的语义信息,左半部分的高亮区域就是目标位置的所在的大概区域范围,所以在高层特征当中,能够很容易的找到目标所在的大概区域范围,然后逐步使用较低层次的特征对目标进行精确定位。
Staple提出了一种互补的方式。考虑到HOG特征对形变和运动模糊比较敏感,但是对颜色变化能够达到很好的跟踪效果,color特征对颜色比较敏感,但是对形变和运动模糊能够有很好的跟踪效果,因此作者认为若能将两者互补就能够解决跟踪过程当中遇到的一些主要问题。于是,Staple使用HOG-KCF与color-KCF结合算法对目标进行跟踪。
此算法的创新思路简单直白,但效果很惊艳。
TCNN使用一个树形的结构来处理CNN特征。作者利用可靠性来分配预测目标的权重,采用的更新策略是每10帧删除最前的节点,同时创建一个新的CNN节点,选择能够使新节点的可靠性最高的节点作为其父节点。这样一直保持一个active set,里面是10个最新更新的CNN模型,用这个active set来做跟踪。但由于要更新网络结构,速度较慢。
SiamFC方法的核心思想很简单,就是将跟踪过程规划为一个相似性学习问题。即学习一个函数 f(z, x) 来比较样本图像 z 和搜索图像 x 的相似性,如果两个图像相似度越高,则得分越高。为了找到在下一帧图像中目标的位置,可以通过测试所有目标可能出现的位置,将相似度最大的位置作为目标的预测位置。
在深度学习中处理相似度问题最典型的是采用Siamese架构,SiamFC的网络结构如下图:
CFNet采用孪生网络的架构,训练样本(这里指用来匹配的模板)和测试样本(搜索的图像区域)通过一个相同的网络,然后只将训练样本做相关滤波操作,形成一个对变化有鲁棒性的模板。为了抑制边界效应,作者施加了余弦窗并在之后又对训练样本进行了裁剪。