结合深度学习的多目标跟踪算法

2019-04-08 00:46王春艳刘正熙
现代计算机 2019年6期
关键词:检测器外观关联

王春艳,刘正熙

(四川大学计算机学院,成都 610065)

0 引言

随着深度学习技术的普及,使得图形图像领域的各项研究取得了一定的进步,同时带动了多目标跟踪领域的进一步发展。视频多目标在线跟踪可应用于交通实时监测、人机交互、安防和无人驾驶等益于人们社会生活的众多领域,所以仍然是计算机视觉中的研究热点,且富有挑战性。目标跟踪算法的性能好坏受到所使用的检测算法,用于匹配区分的特征以及数据关联算法的影响。针对跟踪算法中常见的诸如小目标易漏检、目标间相互遮挡、光照变化引起跟踪不稳定等研究问题,众学者都在尝试解决改进。传统的基于混合高斯背景建模的前景检测方法(Gaussian Mixture Model,GMM)[1],利用多个高斯分布去表示背景像素的分布规律,可以在一定程度上减少动态背景的干扰问题,但计算复杂对光照敏感。基于目标建模的传统目标检测方法中最具代表性的工作主要有Dalal等人提出的梯度直方图(Histogram of Oriented Gradients,HOG)[2]特征和P.Felzenszwalb等人提出的可形变部件模型(Deformable Part Based Model,DPM)[3]。HOG 通过统计目标图像局部区域的梯度和边缘信息映射成梯度直方图,形成局部区域的特征描述子,再把这些描述子串联起来形成整体图像的特征,HOG特征结合SVM分类器广泛用于行人检测。DPM使用了改进后的HOG特征,使用多个组件模型来描述目标的局部信息,使用全局模型来描述目标的全局信息,DPM是基于传统特征的目标检测中效果最好的算法之一,但是DPM特征计算复杂,计算速度慢;其次,人工特征对于旋转、拉伸、视角变化的物体检测效果差。Bar-Shalom等学者提出了联合概率数据关联算法(Joint Probabilistic Data Association,JPDA)[4-5],主要思想是认为当前扫描周期的量测和目标是一一对应的关联关系,通过计算每一个量测与其可能源于的所有目标的关联概率,视概率最高的量测为成功匹配。JPDA算法实际运用中计算量较大,且当目标平行运动或者发生小角度交叉运动时,容易产生轨迹合并问题。Donald B.Reid在1979年发表的文献中提出多假设跟踪算法(Multiple Hypothesis Tracking,MHT)[6-8],是一种在数据关联发生冲突时,形成多种假设并将假设传递以延迟做决定,利用后续量测数据解决不确定性的的方案。MHT算法在量测分配期间也是运算量过大,当目标数较多时,假设数量和计算量将呈指数型增长。针对传统方法所述缺点,本文提出一种跟踪方法,基于tracking-by-detection跟踪框架,利用深度学习技术,使用表现突出的基于深度学习的 YOLOv3(You Only Look Once version 3)检测器检测目标,卡尔曼滤波(Kalman Filter)算法[9]预测运动目标,结合深度神经网络提取出的外观特征,逐帧用匈牙利算法(Hungarian Algorithm)[10]匹配关联。

1 基于深度学习的目标检测

基于检测的跟踪中,一个好的检测器对于最终跟踪效果的影响不容小觑,本文方法中的检测器是基于YOLOv3微调而来。近几年,基于深度学习的目标检测领域的研究逐步取得显著性成果,当下主流算法基本分为两类,一类是two-stage的R-CNN(R-CNN、Fast R-CNN、Faster R-CNN)系列算法[11-13],另一类是以 Single Shot multibox Detector(SSD)[14]、YOLO 为首的 onestage算法[15-18]。相比而言,前者处理速度慢于后者,但结果平均准确度高于后者。YOLO不同于R-CNN系列的先生成推荐区域(Region Proposal),然后在Region Proposal上进行分类预测与回归这种解决方案,而是采用一个统一的端到端的设计框架,一次性遍历整个输入图像,很好地利用了图像的全局信息辅助检测,这种方法使得YOLO算法速度快于R-CNN系列,也不容易将背景误检。随着YOLO原作者的尝试与改进,现已经衍生出第三个版本,该系列算法的基础思想是:其CNN网络将输入图像分割成SxS个单元网格,每个单元格(cell)负责检测那些中心点落在该cell内的目标,每个单元格会预测B个边界框(Bounding Box,BBox)以及边界框的置信度(Confidence Score),置信度有两层含义,一是对这个边界框包含有目标的可能性大小度量,二是对这个边界框的准确度量化,因此,对于边界框可以用(x,y,w,h,c)这5个元素来表达,(x,y)为目标中心点相对于cell左上角的偏移位置,而w和h则是目标宽和高与整张图像的宽高比。同时,该cell还要预测可能包含C个类别的各类概率值,综上,每个单元格需要预测(B*5+C)个值。

相比于前两个版本,YOLOv3最明显的改进是采用了类似Feature Pyramid Networks for Object Detection(FPN)架构来实现多尺度预测(YOLOv3预测3种不同尺度的框),除此之外,还改进了基础网络,混合残差网络,并使用连续的3×3和1×1卷积,设计了一个包含53个卷积层的更深的网络DarkNet-53。由于新的多尺度预测方法的运用,YOLOv3在小目标的检测上表现比以往有明显改进,虽然该网络更大,但是速度依然很快,准确度也可观。如图1所示,是YOLOv3检测器与SSD等检测器的速度与精度对比效果,可以看到,YOLOv3的运行速度明显快于其他具有可比性能的检测方法,且准确度也相差不大。

网络训练过程中,由于我们的研究主要是针对行人目标,所以在基于ImageNet预训练基础之上,我们使用Caltech行人数据库对模型进行微调,得到合适的模型。该数据库是目前规模较大且应用教广的行人数据库,采用车载摄像头拍摄,视频分辨率为640×480,帧率为30FPS,共对250,000帧图像进行标注,包含350000个矩形框和2300个行人,还对遮挡的情况进行了标注。经多次实验,最后在训练中将参数权重衰减因子设为0.0005,动量系数设为0.9,训练批次取64。

图1 YOLOv3检测器与其他经典检测器的对比效果

2 深度外观特征

目标的不同特征在不同场景下对于区分目标产生的效果影响各异,在稍复杂的实际场景中,综合考虑各种因素,最有效的办法是融合各种特征一起用于识别区分目标。本实验中,是以深度外观特征为主,形状特征为辅实现目标匹配区分。使用卷积网络提取目标的外观特征有两点好处,第一是因为卷积网络可以从图像原像素中提取目标的深层语义特征,所提取的目标特征具有非常强大的表达能力。第二是因为通过卷积网络提取深度特征不需要依靠先验知识提前设计,而是让卷积网络从海量的数据集中自动学习特征,免去了手动选取特征的复杂步骤,使得特征提取工作变得简单有效。对于深度特征的提取,我们在CaffeNet上进行微调,首先用ImageNet数据集预训练模型初始化网络权值,再结合行人重识别数据集[19]对网络进行离线微调。行人重识别数据集有1501个不同的人,每个人至少有2张不同的照片,总共涉及32668个包围框。该网络包含5层卷积层和3层全连接层,接受的输入尺寸是227×227,第一个卷积层的卷积核大小为11×11,第 2层为5×5,后3层都是3×3的大小,最后全连接层得到4096维目标特征,同一帧中目标深度外观特征相似度表示为:

其中 featdeti表示第i个检测框的深度特征向量,feattrkj为跟踪器 j的深度特征向量,cos表示对两个向量进行余弦距离运算。Sapp值越大,说明两个目标是同一目标的概率越大。而形状相似度则表示为:

其中Wdeti和Hdeti为检测响应矩形框的宽和高,Wtrkj和Htrkj为跟踪对象的宽和高。Sshp(deti,trkj)的值越大说明相似度越高,反之越小。

3 数据关联

在目标跟踪部分,本文实验中采用卡尔曼滤波算法进行目标运动轨迹预测,使用匈牙利算法对数据进行关联。卡尔曼滤波算法是一种利用线性系统状态方程,针对观测值(经验知识推算)的不确定性,以及测量值(由于受到相关因素干扰,很可能导致测量数据发生偏差)的误差,进行加权求和,对预测值进行修正,从而得到一个最优解的算法,运算速度快,效果卓越,目前被广泛用于通信系统、航空航天、工业控制、图像处理等众多领域。卡尔曼滤波主要包含两个步骤:预测和更新。在多目标跟踪系统中,预测指的是卡尔曼滤波器根据目标的上一帧的状态信息估计目标在当前帧的状态信息,更新指的是卡尔曼滤波器根据目标检测器提供的观测值矫正目标在当前帧的最优值。数据关联本质上是一种多对多的线性指派问题,我们使用匈牙利算法解决该类指派问题,其核心是不断寻找增广路径,可用于二分图匹配、得到最小点覆盖集或者最大独立集,能在O(n3)的时间复杂度内得到最优解,其中n为检测响应和目标跟踪器的较大值,因此适用于对时间要求较高的实时跟踪系统中。该算法求解过程包括以下步骤:

(1)找到每一行中值最小的元素,然后使该行的所有元素减去该最小值。

(2)找到每一列中值最小的元素,然后使该列的所有元素减去该最小值。

(3)用横线或者竖线覆盖矩阵中的所有0元素,并且使得直线的数量尽量少。若此时直线总数等于矩阵的行数或者列数,则指派成功,否则执行下一步。

(4)找到未被直线覆盖的元素的最小值,所有未被直线覆盖的行的元素减去该最小值,所有被直线覆盖的列的元素加上该最小值,并转步骤(3)。

匈牙利算法旨在得到一个全局最优的结果集,然而在实际的目标跟踪视频中,可能会出现运动目标间相互遮挡、被其他静止物遮挡,或者目标外观发生变化等情况,导致检测效果不理性,从而影响最终跟踪效果。针对这个问题,我们将数据关联部分分为两层进行:第一层匹配当前帧的检测集目标和上一帧的稳定的跟踪集目标,所谓稳定的跟踪集,是指在最近连续的几帧中都有被成功跟踪的目标集合,当目标外观没有发生较大变化,且没有被其他物体遮挡时,相邻帧中属于同一个目标的候选对象外观相似度值会非常大,这时我们仅使用深度外观相似度就能取得好的关联结果;第二层则匹配第一步中未分配出去的剩余检测集目标和目标,所谓临时丢失的跟踪集,是指由于长期遮挡等问题造成跟踪丢失的连续帧数达到阈值K(一般取35左右)的跟踪目标集合,当外观发生变化或者发生遮挡时,相邻帧中的同一个目标的外观相似度可能会变得很小,这时我们就要引入形状特征来辅助判断相邻帧目标的相似性。

4 实验成果

4.1 实验对比

我们取MOT16的7个测试数据集作为输入,经本文跟踪系统处理后的输出结果提交至MOT Challenge官网,与其他公开方法进行比较,本文仅选取与几个经典方法的对比结果进行展示说明,具体数据如表1所示。其中,Avg Rank指标表示经过当前所采用的所有评价指标度量后的一个平均度量值,MOTA表示目标跟踪的精确度,该指标是综合考虑误检、漏检和身份交换三个方面而得到,MT表示目标被成功跟踪的轨迹与真实轨迹的占比,ML表示目标被跟丢的轨迹与真实轨迹的占比,FP表示目标误检数量,FN表示目标漏检数量,ID Sw表示跟踪过程中目标发生身份交换的总数量,向上箭头↑表示该指标对应的值越大越好,向下箭头↓则表示对应的值越小越好。从表中可以看到,本文方法在大部分指标中都相对表现较好,在其他指标上也具有一定可比性。

表1 与其他方法的对比结果

4.2 成果展示

基于OpenCV库、CUDA库、Caffe深度学习框架和Darknet深度学习框架,在英伟达1060显卡以及Win10系统支持,我们使用C++语言集成实现整个跟踪系统。本文方法的最终运行效果如图2所示,图片左下角的数字为视频序列帧号,从图中可以看到10号目标和11号目标在被0号和5号目标全遮挡后重新出现时能被正确关联,且图中的小朋友即1号目标能够被正确检测和跟踪。实验证明,本文方法在一定程度上解决了跟踪中存在的目标遮挡问题,具有一定实用价值和研究价值。

图2 实验结果展示

5 结语

本文的跟踪方法中,重点在于研究高性能检测器对于跟踪的影响,以及尽可能合理利用提取的深度特征和形状特征对目标进行分层关联,一定程度上解决了由于遮挡等问题对目标跟踪造成的干扰,且对小目标的跟踪表现可观。在接下来的研究中,我们会继续改进。

猜你喜欢
检测器外观关联
外观动作自适应目标跟踪方法
鸟类能识别植物的外观等
A Shopping Story to Remember
基于高速公路事故黑点的检测器优化布设
参数可调的联合子空间目标检测方法 *
不论外观还是声音,它都很美 Yamaha(雅马哈)A-S3200合并功放
海杂波背景下雷达目标贝叶斯检测算法
“一带一路”递进,关联民生更紧
用于录井专用气相色谱仪的FID检测器
奇趣搭配