S T A P L E 目 标 跟 踪 算 法
- 格式:pdf
- 大小:241.08 KB
- 文档页数:12
基于粒子滤波算法的目标跟踪及遮挡处理算法1.1引言对运动目标物的跟踪也是视觉监控系统中的基础算法之一。
目标跟踪的任务是通过对图像序列的处理,准确估计出感兴趣目标物在每个时刻的运动参数,包括位置、大小、速度、加速度以及运动轨迹等,为行为理解等更高层的任务打下基础。
本章首先概述目标跟踪算法的基本步骤和难点,并对现有算法作分类简介;然后对实现鲁棒跟踪所必需的工具——在线贝叶斯估计算法作详细介绍;在此基础上详细论述本文使用的跟踪方法,该方法将已有的多种先进算法有机结合,使计算量显著降低,鲁棒性增强;最后对提出的算法进行总结和分析。
1.2 目标跟踪算法概述目标跟踪算法主要由两个部分组成:(1)目标物表示;(2)运动状态估计。
下面对它们分别介绍。
1.2.1目标物表示目标物表示的核心在于特征的选择和提取,即用什么特征来描述和表示感兴趣目标物。
一个好的目标物表示方法应该能够将被跟踪的目标物和背景中的物体以及其它物体区别开来,这正是目标物表示的难点所在。
运动目标物所在的环境通常是很杂乱的,其中存在许多与目标物有相似特征的物体。
例如:房间内的窗帘、家具等往往与人的皮肤颜色相近;当监控视野中存在多个行人的时候,跟踪器容易将目标行人与其他行人相混淆。
下面介绍几种常用的特征。
1.2.1.1颜色特征颜色是人类辨识物体的重要特征,也是视觉跟踪中最常用的特征之一。
颜色特征通常是在一块区域中提取出来的,因此它具有对目标平面旋转、非刚性形变、远离或靠近镜头的尺度变化以及部分遮挡等情形较为鲁棒的优点。
另外,由于图像直接由一个个像素的颜色值所表示,因此颜色特征还具有容易提取、计算简单的优点。
最常用的颜色特征是颜色直方图。
Comaniciu等人提出了基于颜色直方图的跟踪算法[1][2]。
在他们的方法中,颜色直方图受到了核函数的空间加权。
这样区域内中心附近的像素对颜色直方图有更大的贡献,使跟踪更加精确,因为区域边缘的像素可能来自背景或其它物体,其可信度较低。
学 术 论 坛210科技资讯 SC I EN C E & TE C HN O LO G Y I NF O R MA T IO N目标跟踪是根据测控设备对目标运动状态的测量信息,实时快速确定目标运行轨迹的过程。
目标跟踪的应用领域非常广泛,例如:机场进出场飞机的检测、机动车辆的跟踪预测、非人工接触的目标轨迹测量等。
机动目标跟踪技术涉及到三个因素:一是目标的状态模型,用于表征目标的动力学特征;二是目标的观测模型,用于表征目标的运动现实;三是估计算法,使得运动轨迹在某种准则下达到最优。
在现实应用中,目标观测模型是最能直接影响跟踪精度的关键因素。
为了抑制系统误差的影响,最常用的方法有两种:一是通过设备标校,从硬件上校准误差;二是通过数学手段,估计和补偿系统误差。
较第一种方式而言,数学估计方法简单、费用低廉,本文采用第一种方法进行系统误差补偿计算。
同时,为了抑制机动目标的非线性模型效应,本文采用U K F 方法对非线性问题进行求解。
和传统扩展卡尔曼滤波而言,该方法不需要求解雅克比矩阵,可以模块化处理,易于工程实现。
为此,本文设计了扩展维度的UKF机动目标跟踪预测方法,不仅能有效抑制非线性状态模型引起的截断误差,还可以估计观测模型中的系统误差。
算法简单,能模块化处理,该方法可为机动目标跟踪提供新的思路。
1 状态模型和跟踪模型机动目标跟踪状态模型可写为如下形式: 1,k k k k r f t r .其中, ,,Tk k k k r x y z 为目标的状态向量;k 为目标状态模型噪声; f 为目标运动的状态方程,当目标动力学方程明确时,该方程表示微分方程;当目标动力学方程不明确时,该方程可以用数学拟合方程表示。
机动目标测量模型可以表示为如下形式: ,k k y g r W v .其中, g 为传感器跟踪模型,用来表示跟踪数据和目标状态的关系表达式。
本文假设是距离和速度跟踪。
W 是与跟踪模型相关的其他参数,如测站信息、测量大气信息等。
⽬标跟踪算法综述第⼀部分:⽬标跟踪速览先跟⼏个SOTA的tracker混个脸熟,⼤概了解⼀下⽬标跟踪这个⽅向都有些什么。
⼀切要从2013年的那个数据库说起。
如果你问别⼈近⼏年有什么⽐较niubility的跟踪算法,⼤部分⼈都会扔给你吴毅⽼师的论⽂,OTB50和OTB100(OTB50这⾥指OTB-2013,OTB100这⾥指OTB-2015,50和100分别代表视频数量,⽅便记忆):Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015.顶会转顶刊的顶级待遇,在加上引⽤量1480+320多,影响⼒不⾔⽽喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载:,OTB50包括50个序列,都经过⼈⼯标注:两篇论⽂在数据库上对⽐了包括2012年及之前的29个顶尖的tracker,有⼤家⽐较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,⼤都是顶会转顶刊的神作,由于之前没有⽐较公认的数据库,论⽂都是⾃卖⾃夸,⼤家也不知道到底哪个好⽤,所以这个database的意义⾮常重⼤,直接促进了跟踪算法的发展,后来⼜扩展为OTB100发到TPAMI,有100个序列,难度更⼤更加权威,我们这⾥参考OTB100的结果,⾸先是29个tracker的速度和发表时间(标出了⼀些性能速度都⽐较好的算法):接下来再看结果(更加详细的情况建议您去看论⽂⽐较清晰):直接上结论:平均来看Struck, SCM, ASLA的性能⽐较⾼,排在前三不多提,着重强调CSK,第⼀次向世⼈展⽰了相关滤波的潜⼒,排第四还362FPS简直逆天了。
速度排第⼆的是经典算法CT(64fps)(与SCM, ASLA等都是那个年代最热的稀疏表⽰)。
计算机视觉中,究竟有哪些好用的目标跟踪算法(下)在介绍SRDCF之前,先来分析下相关滤波有什么缺点。
总体来说,相关滤波类方法对快速变形和快速运动情况的跟踪效果不好。
快速变形主要因为CF是模板类方法。
容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。
这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。
如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。
(举个例子,多年不见的同学,你很可能就认不出了,而经常见面的同学,即使变化很大你也认识,因为常见的同学在你大脑里面的模型在持续更新,而多年不见就是很久不更新)快速运动主要是边界效应(Boundary Effets),而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。
训练阶段,合成样本降低了判别能力。
如果不加余弦窗,那么移位样本是长这样的:除了那个最原始样本,其他样本都是“合成”的,100*100的图像块,只有1-10000的样本是真实的,这样的样本集根本不能拿来训练。
如果加了余弦窗,由于图像边缘像素值都是0,循环移位过程中只要目标保持完整那这个样本就是合理的,只有目标中心接近边缘时,目标跨越边界的那些样本是错误的,这样虽不真实但合理的样本数量增加到了大约2-3(padding= 1),即使这样仍然有1-3(3000-10000)的样本是不合理的,这些样本会降低分类器的判别能力。
再者,加余弦窗也不是“免费的”,余弦窗将图像块的边缘区域像素全部变成0,大量过滤掉分类器本来非常需要学习的背景信息,原本训练时判别器能看到的背景信息就非常有限,我们还加了个余弦窗挡住了背景,这样进一步降低了分类器的判别力(是不是上帝在我前遮住了帘。
不是上帝,是余弦窗)。
检测阶段,相关滤波对快速运动的目标检测比较乏力。
相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。
目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看:1、如果目标在中心附近,检测准确且成功。
2、如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。
3、如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。
4、如果整个目标已经位移出了这个区域,那肯定就检测失败了。
以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,但速度比较慢,并不推荐用于实时场合。
Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]-- ICCV. 2015.SRDCF基于DCF,类SAMF多尺度,采用更大的检测区域(padding = 4),同时加入空域正则化,惩罚边界区域的滤波器系数,没有闭合解,采用高斯-塞德尔方法迭代优化。
Kiani Galoogahi H, Sim T, Lucey S.?Correlation filters with limited boundaries?[C]-- CVPR, 2015.Kiani Galoogahi H, Fagg A, Lucey S.?Learning Background-Aware Correlation Filters for Visual Tracking?[C]-- arXiv preprint arXiv:1703.04590, 2017.其实这两个解决方案挺像的,都是用更大的检测和更新图像块,训练作用域比较小的相关滤波器,不同点是SRDCF的滤波器系数从中心到边缘平滑过渡到0,而CFLM直接用0填充滤波器边缘。
VOT2015相关滤波方面还有排在第二名,结合深度特征的DeepSRDCF,因为深度特征都非常慢,在CPU上别说高速,实时都到不了,虽然性能非常高,但这里就不推荐,先跳过。
This was particularly obvious in case of SiamFC trackers, which runs orders higher than realtime (albeit on GPU), and Staple, which is realtime, but are incorrectly among the non-realtime trackers.VOT2016竟然发生了乌龙事件,Staple在论文中是80FPS,怎么EFO 在这里只有11?幸好公开代码有Staple和STAPLE+,有兴趣您可以去实测下,虽然我电脑不如Luca Bertinetto大牛,但Staple我也能跑60-70FPS,而更可笑的是,STAPLE+比Staple慢了大约7-8倍,竟然EFO 高出4倍,到底怎么回事呢?首先看Staple的代码,如果您直接下载Staple并设置params.visualization = 1来跑,Staple调用Computer Vision System Toolbox来显示序列图像,而恰好如果您没有这个工具箱,默认每帧都会用imshow(im)来显示图像所以非常非常慢,而设置params.visualization = 0就跑的飞快,建议您将显示图像部分代码替换成DSST中对应部分代码就可以正常跑和显示了。
再来看STAPLE+的代码,改进包括额外从颜色概率图中提取HOG特征,特征增加到56通道(Staple是28通道),平移检测额外加入了大位移光流运动估计的响应,所以才会这么慢,而且肯定会这么慢。
所以很大可能是VOT举办方把Staple和STAPLE+的EFO弄反了,VOT2016的实时推荐算法应该是排第5的Staple,相关滤波结合颜色方法,没有深度特征更没有CNN,跑80FPS还能排在第五,这就是接下来主要介绍的,2016年最NIUBILITY的目标跟踪算法之一Staple (让排在后面的一众深度学习算法汗颜,怀疑人生)。
颜色特征,在目标跟踪中颜色是个非常重要的特征,不管多少个人在一起,只要目标穿不同颜色的衣服就非常明显。
前面介绍过2014年CVPR 的CN是相关滤波框架下的模板颜色方法,这里隆重介绍统计颜色特征方法DAT?Learning, Recognition, and Surveillance @ ICG,帧率15FPS:Possegger H, Mauthner T, Bischof H.?In defense of color-based model-free tracking?[C]-- CVPR, 2015.Bertinetto L, Valmadre J, Golodetz S, et al.?Staple: Complementary Learners for Real-Time Tracking?[C]-- CVPR, 2016.前面分析了相关滤波模板类特征(HOG)对快速变形和快速运动效果不好,但对运动模糊光照变化等情况比较好;而颜色统计特征(颜色直方图)对变形不敏感,而且不属于相关滤波框架没有边界效应,快速运动当然也是没问题的,但对光照变化和背景相似颜色不好。
综上,这两类方法可以互补,也就是说DSST和DAT可以互补结合:两个框架的算法高效无缝结合,25FPS的DSST和15FPS的DAT,而结合后速度竟然达到了80FPS。
DSST框架把跟踪划分为两个问题,即平移检测和尺度检测,DAT就加在平移检测部分,相关滤波有一个响应图,像素级前景概率也有一个响应图,两个响应图线性加权得到最终响应图,其他部分与DSST类似,平移滤波器、尺度滤波器和颜色概率模型都以固定学习率线性加权更新。
另一种相关滤波结合颜色概率的方法是CSR-DCF,提出了空域可靠性和通道可靠性,13FPS性能直逼C-COT:Luke?i? A, Vojí? T, ?ehovin L, et al.?Discriminative Correlation Filter with Channel and Spatial Reliability?[C]-- CVPR, 2017.CSR-DCF中的空域可靠性得到的二值掩膜就类似于CFLM中的掩膜矩阵P,在这里自适应选择更容易跟踪的目标区域且减小边界效应;以往多通道特征都是直接求和,而CSR-DCF中通道采用加权求和,而通道可靠性就是那个自适应加权系数。
采用ADMM迭代优化。
相关滤波还有第一名的C-COT,和DeepSRDCF一样先跳过。
Long-term就是希望tracker能长期正确跟踪,我们分析了前面介绍的方法不适合这种应用场合,必须是short-term tracker + detecter配合才能实现正确的长期跟踪。
用一句话介绍Long-term,就是给普通tracker配一个detecter,在发现跟踪出错的时候调用自带detecter重新检测并矫正tracker。
Ma C, Yang X, Zhang C, et al.?Long-term correlation tracking[C]-- CVPR, 2015.LCT在DSST一个平移相关滤波Rc和一个尺度相关滤波的基础上,又加入第三个负责检测目标置信度的相关滤波Rt,检测模块Online Detector 是TLD中所用的随机蕨分类器(random fern),在代码中改为SVM。
第三个相关滤波类似MOSSE不加padding,而且特征也不加cosine窗,放在平移检测之后。
?接下来介绍跟踪置信度。
跟踪算法需要能反映每一次跟踪结果的可靠程度,这一点非常重要,不然就可能造成跟丢了还不知道的情况。
有两种指标可以反映相关滤波类方法的跟踪置信度:前面见过的最大响应值,和没见过的响应模式,或者综合反映这两点的指标。
LMCF(MM Wang的目标跟踪专栏:目标跟踪算法 - 知乎专栏?)提出了多峰检测和高置信度更新:Wang M, Liu Y, Huang Z.?Large Margin Object Tracking withCirculant Feature Maps?[C]-- CVPR, 2017.高置信度更新,只有在跟踪置信度比较高的时候才更新跟踪模型,避免目标模型被污染,同时提升速度。