目标跟踪方法的发展概述

目标跟踪是计算机视觉研究领域的热点之一,过去几十年以来,目标跟踪的研究取得了长足的发展。从Meanshift、粒子滤波(Particle Filter)和Kalman Filter等经典跟踪方法,到基于检测(Track By Detection)或相关滤波(Correlation Filter)的方法,到最近三年来出现的深度学习相关方法。每年在几个主要跟踪数据集上的竞赛非常激烈,方法也越来越多。本期阅面科技资深研究员陈正华将以“目标跟踪方法的发展概述”为主题给大家分享更多的内容。


目标跟踪是计算机视觉研究领域的热点之一,并得到广泛应用。相机的跟踪对焦、无人机的自动目标跟踪等都需要用到了目标跟踪技术。另外还有特定物体的跟踪,比如人体跟踪,交通监控系统中的车辆跟踪,人脸跟踪和智能交互系统中的手势跟踪等。


简单来说,目标跟踪就是在连续的视频序列中,建立所要跟踪物体的位置关系,得到物体完整的运动轨迹。给定图像第一帧的目标坐标位置,计算在下一帧图像中目标的确切位置。在运动的过程中,目标可能会呈现一些图像上的变化,比如姿态或形状的变化、尺度的变化、背景遮挡或光线亮度的变化等。目标跟踪算法的研究也围绕着解决这些变化和具体的应用展开。


经典目标跟踪方法


2010年以前,目标跟踪领域大部分采用一些经典的跟踪方法,比如Meanshift、Particle Filter和Kalman Filter,以及基于特征点的光流算法等。Meanshift方法是一种基于概率密度分布的跟踪方法,使目标的搜索一直沿着概率梯度上升的方向,迭代收敛到概率密度分布的局部峰值上。首先Meanshift会对目标进行建模,比如利用目标的颜色分布来描述目标,然后计算目标在下一帧图像上的概率分布,从而迭代得到局部最密集的区域。Meanshift适用于目标的色彩模型和背景差异比较大的情形,早期也用于人脸跟踪。由于Meanshift方法的快速计算,它的很多改进方法也一直适用至今。


粒子滤波(Particle Filter)方法是一种基于粒子分布统计的方法。以跟踪为例,首先对跟踪目标进行建模,并定义一种相似度度量确定粒子与目标的匹配程度。在目标搜索的过程中,它会按照一定的分布(比如均匀分布或高斯分布)撒一些粒子,统计这些粒子的相似度,确定目标可能的位置。在这些位置上,下一帧加入更多新的粒子,确保在更大概率上跟踪上目标。Kalman Filter常被用于描述目标的运动模型,它不对目标的特征建模,而是对目标的运动模型进行了建模,常用于估计目标在下一帧的位置。


另外,经典的跟踪方法还有基于特征点的光流跟踪,在目标上提取一些特征点,然后在下一帧计算这些特征点的光流匹配点,统计得到目标的位置。在跟踪的过程中,需要不断补充新的特征点,删除置信度不佳的特征点,以此来适应目标在运动中的形状变化。本质上可以认为光流跟踪属于用特征点的集合来表征目标模型的方法。


在深度学习和相关滤波的跟踪方法出现后,经典的跟踪方法都被舍弃,这主要是因为这些经典方法无法处理和适应复杂的跟踪变化,它们的鲁棒性和准确度都被前沿的算法所超越,但是,了解它们对理解跟踪过程是有必要的,有些方法在工程上仍然有十分重要的应用,常常被当作一种重要的辅助手段。

检测与跟踪相结合的方法


在2010年左右,目标跟踪的方法通常分成基于产生式模型的方法和基于鉴别式模型的方法。前面介绍的经典跟踪方法都可以归类为产生式模型的方法,而基于鉴别式模型的方法是指利用分类来做跟踪的方法,即把跟踪的目标作为前景,利用在线学习或离线训练的检测器来区分前景目标和背景,从而得到前景目标的位置。虽然此时通用物体的检测率还非常低(ImageNet的检测率不超过20%),因为物体检测主要基于手工设计的特征,但是,通过在新更新检测器的模型和各种底层特征的提出,鉴别式跟踪方法更能适应跟踪过程中的复杂变化,所以利用检测来做跟踪(Tracking By Detection)逐渐成为主流。


人们开始采用一种在线学习的方法来训练跟踪的检测器,比如,在第一帧目标出现的位置建立初始的检测模型,并在后续帧更新模型以适应目标的变化,这里介绍当时Surrey大学博士生Z.Kalal提出的一种长效跟踪的TLD(Tracking-Learning-Detection)方法。


TLD方法的整个框架有三个模块,其中跟踪器(Tracking)负责用经典的方法跟踪目标,论文中采用基于光流的特征点统计方法确定目标在下一帧的跟踪位置,检测器(Detection)负责在一定的范围内检测目标,并且与跟踪结果综合得到最终的输出结果。在确定目标的最佳位置之后,学习模块(Learning)负责对跟踪结果和检测器进行修正,在目标的周围选取更多的正负样本在线更新检测器的模型。

作者利用了多级分类器的方式来提高检测器的检测能力,降低误检,级联了一个在线学习的随机森林分类器和最近邻的分类器。为了平衡整个检测器的稳定性和学习能力,作者提出了一种半监督的学习方法,利用P-N限制条件更新模型,使检测器能够收敛到一个稳定的状态。从整个框架的设计上看,TLD的工程意义要大于算法本身,作者对每个模块都做了很多细节上的调整,比如利用Backward-Forward来过滤不可靠的光流特征点,对物体的变化做了尺度上的估计,利用P-N样本集更新随机森林分类器等。


TLD的代码也公开了,人们可以很容易重现论文的结果。这种跟踪和检测相结合的框架和思想,极大地推动了跟踪算法的发展。那时对于跟踪算法的评测还没有公认的数据集和评测标准,很难对不同跟踪方法的进行比较。所以,在2013年左右,人们开始建立公共的测试视频集,定义了跟踪的初始条件和评价指标,比如OTB数据集(Object Tracking Benchmark)和VOT竞赛(Visual Object Tracking),其中OTB数据集至今已经有100多段视频,以短时跟踪为主,里面包含了各种复杂的变化场景,VOT竞赛每年举办一次,迄今已经举办了4年,自此跟踪的模型和算法日新月异,比如2013年的冠军Struck,利用结构化SVM方法在线学习的一个分类器,2014年的冠军DSST,一种改进的基于相关滤波的多尺度跟踪方法,之后陆续又出现了很多基于深度学习的方法。

基于相关滤波的跟踪算法


相关滤波的跟踪算法始于2012年P.Martins提出的CSK方法,作者提出了一种基于循环矩阵的核跟踪方法,并且从数学上完美解决了密集采样(Dense Sampling)的问题,利用傅立叶变换快速实现了检测的过程。在训练分类器时,一般认为离目标位置较近的是正样本,而离目标较远的认为是负样本。回顾前面提到的TLD或Struck,他们都会在每一帧中随机地挑选一些块进行训练,学习到的特征是这些随机子窗口的特征,而CSK作者设计了一个密集采样的框架,能够学习到一个区域内所有图像块的特征。


密集采样的过程可以通过作者提出的循环矩阵来实现,并且整个分类器的学习过程可以用快速傅立叶变换转化成频域内的计算,不受SVM或Boost等学习方法的限制。无论是用线性分类还是核分类,整个学习过程十分高效,证明过程完备,易于理解。在论文中作者给出的算法实现只需要十几行代码。利用快速傅立叶变换,CSK方法的跟踪帧率能达到100~400fps,奠定了相关滤波系列方法在实时性应用中的基石。

相关滤波系列的方法发展很快,比如CSK作者引用的MOSSE方法,后续他又提出了基于HOG特征的KCF方法。后续还有考虑多尺度或颜色特征(Color Name表)的方法以及用深度学习提取的特征结合KCF的方法(比如DeepSRDCF方法)等。从它的发展过程来看,考虑的尺度越来越多,特征信息也更加丰富,当然计算时间也会相应增加,但总体上说,相关滤波系列的跟踪方法在实时性上优势明显,采用哪种改进版本的方法视具体的应用而定。相关滤波的方法也有一些缺陷,比如目标的快速移动,形状变化大导致更多背景被学习进来等都会对CF系列方法造成影响。虽然后续的研究也有一些针对性的改进,比如改进边界效应,改善背景更新策略或提高峰值响应图的置信度等,但普适性还需要进一步研究,特别是对不同的应用针对性地调整。

基于深度学习的跟踪方法


最近三年是深度学习技术的高速发展期,深度学习技术也被成功应用在计算机视觉的各个应用领域,跟踪也不例外。在大数据背景下,利用深度学习训练网络模型,得到的卷积特征输出表达能力更强。在目标跟踪上,初期的应用方式是把网络学习到的特征,直接应用到相关滤波或Struck的跟踪框架里面,从而得到更好的跟踪结果,比如前面提到的DeepSRDCF方法。本质上卷积输出得到的特征表达,更优于HOG或CN特征,这也是深度学习的优势之一,但同时也带来了计算量的增加。目前很多研究跟踪的框架和方法往往会同时比较两种特征,从而验证跟踪方法或框架的改进提高,一种是传统的手工特征,另一种就是深度网络学习的特征。网络不同层的卷积输出都可以作为跟踪的特征,对于如何有效地利用深度学习的特征,Martin.D也做了大量的工作,提出了一系列相关的方法,比如C-COT和ECO等。


深度学习的另一大优势是端到端的输出,我们认为这为跟踪开辟了一片光明的前景,这里以GOTURN方法为例,介绍来自斯坦福大学的D.Held发表ECCV2016上的文章,目前GOTURN方法已经集成在OpenCV 3.2.0的开发版本中。


GOTURN方法利用ALOV300+视频序列集和ImageNet检测数据集训练了一个基于图像对输入的卷积网络,输出在搜索区域内相对于上一帧位置的变化,从而得到目标在当前帧上的位置。为了得到网络训练所需的大数据集,作者不仅利用了视频序列集中的随机连续帧对图,而且利用了更多的单张图片集进行数据增强。对于数据的扰动分布,作者也做了大量的实验,使得跟踪的位置变化更加平滑。


从网络结构中可以看出,GOTURN先从输入的图像对中分别提取前一帧和当前帧的卷积特征,再送入三个全连接层,最后得到预测的位置变化。其中卷积层是通过ImageNet预训练得到,并且在跟踪网络训练中固定这部分参数(防止过拟合),学习全连接层的参数。本质上说,GOTURN也利用了深度学习强大的特征表达能力,但是,它建立了第一个基于深度学习的端到端输出的跟踪框架,而且在GPU GTX680上跟踪速度在能达到100fps。


基于深度学习的跟踪框架目前还在不断发展中,比如牛津大学的Luca Bertinetto提出的端到端的跟踪框架,从SiameseFC到今年的CFNet。虽然相比于相关滤波等传统方法,在性能上还非常慢,但是这种端到端输出可以与其他的任务一起训练,特别是和检测分类网络相结合,在实际应用中有着十分广泛的前景。


特定目标的跟踪


前面介绍的跟踪方法都是对通用目标的跟踪,没有目标的类别先验。在实际应用中,还有一个重要的跟踪是特定物体的跟踪,比如人脸跟踪、手势跟踪和人体跟踪等。特定物体的跟踪与前面介绍的方法不同,它更多地依赖对物体训练特定的检测器。人脸跟踪由于它的明显特征,它的跟踪就主要由检测来实现,比如早期的Viola-Jones检测框架和当前利用深度学习的人脸检测或人脸特征点检测模型。手势跟踪在应用主要集中在跟踪特定的手型,比如跟踪手掌或者拳头。设定特定的手型可以方便地训练手掌或拳头的检测器。


实际上,跟踪和检测是分不开的,比如传统TLD框架使用的在线学习检测器,或KCF密集采样训练的检测器,以及当前基于深度学习的卷积特征跟踪框架。一方面,跟踪能够保证速度上的需要,而检测能够有效地修正跟踪的累计误差。不同的应用场合对跟踪的要求也不一样,比如特定目标跟踪中的人脸跟踪,在跟踪成功率、准确度和鲁棒性方面都有具体的要求。


另外,跟踪的另一个分支是多目标跟踪(Multiple Object Tracking)。多目标跟踪并不是简单的多个单目标跟踪,因为它不仅涉及到各个目标的持续跟踪,还涉及到不同目标之间的身份识别、自遮挡和互遮挡的处理,以及跟踪和检测结果的数据关联等。从2015年开始,MOT竞赛每年会举办一次,在基于深度学习的目标检测成功率大幅提高的背景下,MOT的成功率也处于快速发展的通道中。


原文地址:https://mp.weixin.qq.com/s?__biz=MzAwNjcyOTIwNA==&mid=2659250125&idx=1&sn=eefc90328f4bcd4e34b948ae96f98002


  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值