DOI:10.12086/oee.2021.200175
基于YOLOv3和ASMS的
目标跟踪算法
吕晨1*,程德强1,寇旗旗2,庄焕东1,李海翔1
1中国矿业大学信息与控制工程学院,江苏徐州 221000;
2中国矿业大学计算机科学与技术学院,江苏徐州 221000
摘要:为了解决传统算法在全自动跟踪过程中遇到遮挡或运动速度过快时的目标丢失问题,本文提出一种基于YOLOv3和ASMS的目标跟踪算法。首先通过YOLOv3算法进行目标检测并确定跟踪的初始目标区域,然后基于ASMS算法进行跟踪,实时检测并判断目标跟踪效果,通过二次拟合定位和YOLOv3算法实现跟踪目标丢失后的重新定位。为了进一步提升算法运行效率,本文应用增量剪枝方法,对算法模型进行了压缩。通过与当前主流算法进行对比,实验结果表明,本算法能够很好地解决受到遮挡时跟踪目标的丢失问题,提高了目标检测和跟踪的精度,且具有计算复杂度低、耗时少,实时性高的优点。
关键词:目标跟踪;目标丢失;YOLOv3;模型剪枝;ASMS
中图分类号:TP181;TP391 文献标志码:A
吕晨,程德强,寇旗旗,等. 基于YOLOv3和ASMS的目标跟踪算法[J]. 光电工程,2021,48(2): 200175
Lv C, Cheng D Q, Kou Q Q, et al. Target tracking algorithm based on YOLOv3 and ASMS[J]. Opto-Electron Eng, 2021, 48(2): 200175
Target tracking algorithm based on YOLOv3 and ASMS
Lv Chen1*, Cheng Deqiang1, Kou Qiqi2, Zhuang Huandong1, Li Haixiang1
1School of Information and Control Engineering, China University of Mining and Technology, Xuzhou, Jiangsu 221000, China; 2School of Computer Science & Technology, China University of Mining and Technology, Xuzhou, Jiangsu 221000, China
Abstract:In order to solve the problem of loss when the target encounters occlusion or the speed is too fast during the automatic tracking process, a target tracking algorithm based on YOLOv3 and ASMS is proposed. Firstly, the target is detected by the YOLOv3 algorithm and the initial target area to be tracked is determined. After that, the ASMS algorithm is used for tracking. The tracking effect of the target is detected and judged in real time. Reposi-tioning is achieved by quadratic fitting positioning and the YOLOv3 algorithm when the target is lost. Finally, in order to further improve the efficiency of the algorithm, the incremental pruning method is used to compress the algorithm model. Compared with the mainstream algorithms, experimental results show that the proposed algorithm can solve the l
ost problem when the tracking target is occluded, improving the accuracy of target detection and tracking. It also has advantages of low computational complexity, time-consuming, and high real-time performance.
Keywords: target tracking; target loss; you look only once v3; model pruning; robust scale-adaptive mean-shift
——————————————————
收稿日期:2020-05-18;收到修改稿日期:2020-09-24
基金项目:国家自然科学基金资助项目(51774281)
作者简介:吕晨(1994-),男,硕士研究生,主要从事模式识别,目标跟踪的研究。E-mail:****************
版权所有○C2021中国科学院光电技术研究所
1 引言
目标跟踪一直是计算机视觉的重要应用领域和研究热点。随着硬件设施的完善和人工智能技术的发展,目标跟踪技术也变得愈发重要。目前目标跟踪已在智能人机交互[1]、交通领域和军事领域占据重要地位。然而目标跟踪也面临着外观形变、光照变化、尺度变化、快速运动的运动模糊和目标遮挡等[2]导致的目标丢失问题。
目标跟踪方法就工作原理[3]可分为生成式模型和判别式模型,生成式模型有光流法[4]、粒子滤波[5]、Meanshift[6]算法等,判别式模型包括MIL[7](multiple instance learning)、TLD[8](tracking learning detection)、支持向量机[9]等经典的目标跟踪算法。传统Meanshift 算法采用目标的颜概率直方图作为搜索特征,通过不断迭代Meanshift向量使得算法收敛于目标的真实位置,因其计算量不大,具有较好的实时性。但由于在跟踪过程中窗口尺度保持不变,当目标尺度有所变化时,跟踪就会失败。ASMS[10](adaptive scale meanshift)算法在经典Meanshift框架下加入了尺度估计,引入尺度不剧变和可能偏最大两个先验作为正则项,从而实现了尺度自适应,同时增强了算法的鲁棒性。但是ASMS算法仍需手动圈取感兴趣区域,属于半自动跟踪算法且缺失在目标丢失后的后续处理。
为了实现跟踪的有效性和鲁棒性,深度学习算法已广泛应用于目标跟踪领域。常见的算法主要分为两种,一种是基于候选区域,这种方法需要先获取候选区域,然后进行分类,如R-CNN[11](region convolutional neural networks)、Fast R-CNN[12]、Faster R-CNN[13]等算法。另一种是单次目标跟踪算法,该方法直接在网络中提取特征来预测物体分类和位置,如YOLO[14](you only look once)和SSD[1
5](single shot multibox detector)。相比较于基于候选区域的算法,单次目标跟踪算法的实时性更高,可以避免背景错误,学习到物体的泛化特征。YOLOv3[16](you only look once version 3)是基于YOLOv1和v2[17]的改进版本,采用Darknet-53作为新的主干网络,借鉴了ResNet的残差结构,去掉池化层和全连接层,通过改变卷积核的步长来实现张量的尺寸变化,在保持速度优势的前提下,提升了预测精度,尤其是加强了对小物体的识别能力。在SSD的基础上衍生出DSSD[18](deconvolutional single shot detector)和FSSD(feature fusion single shot multibox detector)算法[19]。DSSD是利用反卷积将特征图进行上采样,与原始的特征图进行融合,然后混合后的特征图输入感知器网络进行预测,解决了SSD对于小目标物体的检测效果依然不够理想的缺点。FSSD 算法提出了一种特征融合的方式,利用得到的特征图重新进行下采样得到不同的特征图尺度,输入感知器网络进行预测。
YOLOv3算法相较DSSD和FSSD算法具有更高的精确性和实时性,所以本文选择YOLOv3算法与ASMS 算法相结合,并引入实时跟踪效果判断机制,以解决目标受到物体遮挡或快速运动而导致的丢失问题。并且为了提升算法运行速度,降低算法对于硬件的要求,对YOLOv3进行剪枝。
2 相关工作
2.1 YOLOv3前景检测算法介绍
YOLOv3保留了前两代算法用网格来划分输入图片区域,每块区域单独检测目标的思想;延续了v2版本
使用BN(batch normalization)做正则化的方法,把BN层和LeakyReLU层连接到每一层卷积层之后;采用端到端训练,省去了在每一个独立学习任务执行之前所做的数据标注。
YOLOv3的检测框架图如图1所示。
YOLOv3对边界框进行预测时采用逻辑回归,在预测进行之前,对锚框包围的部分进行一个目标性评分以去掉不必要的锚框,减少计算量。
由于在进行目标跟踪时,只需要判断出前景和背景即可,无需对目标进行更进一步的种类划分,所以本文将逻辑回归Softmax的输出由80个种类更改为前景和背景两种。
2.2 ASMS跟踪算法介绍
ASMS是基于Meanshift算法的一种改进算法,加入了尺度估计,引入尺度不剧变和可能偏最大两个先验作为正则项,主要解决了Meanshift预测边框不能自适应的问题,并且使得范围估计更加具有鲁棒性。
图1 YOLOv3的检测框架图
Fig. 1 Block diagram of YOLOv3
ASMS 算法通过最小化候选区域与目标区域颜特征的Hellinger 距离并使用Meanshift 迭代候选区域使得两者匹配从而完成跟踪。
候选区域和目标区域的Hellinger 距离计算如下:
ˆˆ[()]H p y q =, ,      (1) 其中:
ˆˆ[()]m
u ρp
y q ==, 。      (2) 上式中目标区域特征{1,...,}u m ∈的概率为ˆu q
,候选区域的特征概率为ˆ()u p
y 。  本文为了使距离度量结果更加直观以及便于对候选区域和目标区域的相似度展开分析和对目标丢失条件进行评判,使用Bhattacharyya 距离(即上式(2))作为距离度量公式,使式(2)最大化,并通过Meanshift 迭代得到新的候选区域坐标和边框尺度。
3  基于YOLOv3和ASMS 的目标跟
踪算法
本文所研究的是在摄像头和背景均固定的情况下运动物体的跟踪问题,由YOLOv3算法检测出的前景区域通过非极大抑制确定目标框,将运动目标直接作为ASMS 算法的初始目标区域,并对目标进行跟踪,即可实现算法的全自动运行。在跟踪过程中实时判断跟踪效果,当候选区域与实际目标产生较大偏差或发生遮挡时,使用YOLOv3算法对目标进行更新从而提升算法跟踪精度,解决了目标丢失的问题。在对YOLOv3和ASMS 算法进行联合时,为了提升算法的运算速度,实现实时性要求,减少算法的参数量以及体量,本文对YOLOv3算法进行模型剪枝。 3.1 YOLOv3剪枝
模型压缩是一种重新调整深度模型所需资源消耗的有效工具,该方法可以精简网络结构,减少参数,压缩网络体量,提升算法的运行速度。现有的模型压缩方法主要包括模型剪枝[20-21]、参数量化[22]、动
态计算[23]等。模型剪枝可在权重[24]、核、通道和层这些不同级别实现。本节将具体讨论YOLOv3模型剪枝方法。
通道剪枝虽然是一种粗粒度的压缩方法,但较其他方法来说十分有效且不需要专用的软件和硬件与之匹配。本文采用该方法来精简网络,对YOLOv3算法进行压缩,直接在批量归一化(BN)层选用尺度因子作为信道放缩因子并且通过在这些放缩因子上使用L1正则项训练网络以实现通道稀疏化,减少YOLOv3模
型尺寸及计算复杂性。
通过通道剪枝可得到一个更紧凑和有效的卷积通道配置,从而减少参数,提升算法运行效率。且卷积神经网络的计算量主要来自卷积层,减少卷积层通道可节约运行时间同时降低算法对于硬件的要求。按图2所示的步骤获得剪枝后的YOLOv3。
剪枝主要分为以下几个迭代步骤:1) 对YOLOv3网络进行稀疏训练;2) 剔除对模型推理不重要的成分即得分较少的部分,本文使用的方法主要是指卷积层通道;3) 微调剪枝模型,以弥补潜在的暂时性能下降。
1) 稀疏训练
为了对深度模型的通道进行剪枝,需要为每个通道分配一个放缩因子对通道进行选择。对于YOLOv3网
络而言,除了输入卷积层没有BN 层以外,其他卷积层均包含BN 层,BN 层的计算式:
out z β= ,          (3)
其中:B μ和B σ分别是输入特征的均值和标准差,γ代表可训练的比例因子,β表示偏差,本文直接将γ参数作为通道的放缩因子和重要性评估指标。为了更好地判别通道的重要性,本文通过对γ使用L1正则化来进行通道稀疏化训练。稀疏训练的目标:
Γ
∈=+∑loss ()γL L αf γ ,          (4)
式中:loss L 为YOLOv3网络的训练损失函数,α为式
(4)前后两项的平衡因子,()f ⋅是在放缩因子上的惩罚项,本文选择L1正则化即()f γγ=,选择次梯度下降法作为L1惩罚项的优化方法。
2) 通道剪枝
在引入放缩因子正则项进行稀疏训练之后,引入全局阈值ˆγ
来决定需要剪枝哪些特征通道,ˆγ表示所有缩放因子值的一个比例,在具体操作中,本文剪枝掉所有小于全局阈值的通道。YOLOv3中的最大池化层和上采样层因为没有通道,所以在进行网络压缩时
图2  通过稀疏训练和通道剪枝获得
剪枝后的YOLOv3
Fig. 2  YOLOv3 pruned through sparse
training and channel pruning
不对其进行考虑。接下来通过全局阈值为YOLOv3网络所有卷积层构建剪枝掩码。对于route 层,将其输入层的剪枝掩码按顺序拼接,并将拼接后的掩码作为其剪枝掩码;对于shortcut 层,为了与其相连层的通道数匹配,本文迭代所有和shortcut 相连的卷积层掩码,并对其进行或计算从而得到最终的掩码。
3) 微调和迭代
为了补偿通道剪枝带来的算法精度下降,对剪枝后的网络进行微调。为了防止过度剪枝造成网络的退化,本文使用增量剪枝策略。 3.2 目标丢失的判断和目标重识别
传统ASMS 算法在目标丢失后无后续解决方案,基于此问题,本文引入巴氏距离衡量候选区域与目标区域的相似程度,将巴氏距离作为判断跟踪效果和目标发生遮挡丢失的依据,并结合YOLOv3算法进行目标丢失后的重识别。
在跟踪时,ASMS 算法以采样点为中心计算相邻区域的局部颜概率密度,并沿概率密度梯度方向逼近梯度的最大值,直到移动的距离小于阈值,认定此时搜索框的区域为候选区域。已知候选区域的颜概率特征为1,...,{}u u m q =,目标区域的颜概率特征为1,...,{}u u m p =,计算候选区域与目标区域的相似度如式
哪种正则化方式具有稀疏性
(2),所得结果ˆˆ[()]ρp y q ,越大则表示两者距离越相近。
对照跟踪效果和实际巴氏距离数值,当巴氏距离>0.8时可取得较好跟踪效果,此时ASMS 算法跟踪框能紧密贴合检测目标;当巴氏距离<0.5时跟踪框与检测目标发生较大偏移或尺度过大从而包含过多的背景信息。本文将0.7作为判断目标丢失的阈值,这样可以保证较高的跟踪精度又不会过多调用剪枝后的
YOLOv3算法,影响算法实时性。当>ˆˆ[()]0.7ρp y q ,时,则判断在当前帧下目标跟踪成功,下一帧继续使用
ASMS 算法进行跟踪;若<ˆˆ[(),]0.7ρp y q 则为跟踪失败。
考虑到一般情况下目标的速度不会发生突变,而是处于匀速运动或匀加速运动中,利用被遮挡前的序
列图像中目标的位置信息可二次拟合出位置和帧数的关系,并对被遮挡的目标进行位置预估,与剪枝后的
YOLOv3算法所检测的前景进行比较进而重新定位跟踪框的位置。 3.3 算法步骤
本文提出基于YOLOv3和ASMS 的跟踪算法,实现了ASMS 算法的全自动跟踪,并且解决了目标发生遮挡后丢失的问题,提升了ASMS 的跟踪精度和鲁棒性。具体算法步骤如下:
输入:视频帧 输出:目标位置
1) 开始;
2) 获取视频序列帧图像,并使用剪枝后的YOLOv3算法对首帧图像进行前景检测,将检测出的目标区域信息保存;
3) 选取下一帧,执行后续操作;
4) 使用ASMS 算法读取前景目标信息并进行目标跟踪,同时通过巴氏距离判断跟踪效果和目标是否发生遮挡;
5) 判断巴氏距离计算结果是否>=0.7;
6) 如果>=0.7,则认为跟踪成功,读取下一帧视频并用ASMS 算法继续跟踪;
7) 若<0.7,则认为跟踪失败,使用遮挡前的序列图像中目标位置信息二次拟合出位置和帧数的关系,并对被遮挡的目标进行位置预估,与剪枝后的
YOLOv3算法所检测的前景进行比较,重新定位前景区域并将前景区域信息传递给ASMS 算法进行跟踪;
8) 反复执行3)∼7),直到视频结束; 9) 结束。
算法流程图如图3所示。
4  实验仿真对比
实验硬件平台采用Intel(R) Core(TM)i5-7500 3.40
Hz CPU ,GPU 为GTX1060,PC 机内存为16 GB 。实
图3  基于YOLOv3和ASMS 的跟踪算法流程图
Fig. 3  The tracking algorithm flow chart based on YOLOv3 and ASMS
验先对改进后的YOLOv3算法进行了验证,通过对YOLOv3、YOLOv3-tiny和剪枝的YOLOv3算法进行对比,说明了改进后YOLOv3算法的优越性。之后选用在有遮挡和无遮挡情况下的视频进行实验仿真以检测联合跟踪算法。在对比算法方面,本文分别尝试了YOLOv3、YOLOv3-tiny和联合剪枝YOLOv3算法与ASMS算法,并与KCF(kernelized correlation filters)算法[25]、VITAL(visual tracking via adversarial learning)算法[26]和SANet(structure aware network)算法[27]进行了对比。测试视频帧率为30 f/s,视频帧大小为1960×1080,视频时长均为10 s。实验结果将从精确度和实时性两个方面进行量化对比。
4.1 实验1
在本实验中,数据库采用YOLOv3作者使用的COCO数据库。主要在0.5交并比(IOU)时对YOLOv3、YOLOv3-tiny和剪枝的YOLOv3算法针对目标检测在精确度、mAP、速度(f/s)方面进行了验证,并对网络的体量进行比较。本文在对YOLOv3进行稀疏训练时迭代次数设置为100,平衡因子α的值需由网络搜索得到,本文设置为0.0001。其余超参数与正常训练无异,本文选用DarkNet中的默认配置,动量参数设置为0.9,权重衰减正则项为0.0005,初始学习率为0.001,在40000到45000的迭代步骤中衰减10倍。进行剪枝时,分别将ˆγ设置为50%、80%和95%对应的剪枝率分别为50%、80%和95%。通过剪枝得到更紧凑的模型后进行微调[20],本文使用与正常训练相同的超参数对剪枝模型再训练,即将迭代次数设置为100,动量参数设置为0.9,权重衰减正则项为0.0005,初始学习率为0.001,在40000到45000的迭代步骤中衰减10倍。并将微调后得到的模型分别称为YOLOv3-50、YOLOv3-80和YOLOv3-95(如表1所示)。
在本文实验中,分别通过剪枝得到了YOLOv3-50、YOLOv3-80和YOLOv3-95,对应剪枝率分别是50%、80%和95%。在只使用CPU运算的情况下,剪枝后的运行时间比YOLOv3减少了39.7%,42.8%和49.9%。YOLOv3-95在与YOLOv3接近的精确度的情况下,实时性达到了27 f/s,是YOLOv3算法的2倍,在加入GPU计算后,YOLOv3-95达到了57 f/s,可完全满足实时性的要求,实现在线检测。剪枝后的模型参数量分别比YOLOv3减少60.2%、79.7%和92.0%,体量比YOLOv3减少60.3%、79.8%和91.9
%。随着剪枝率的提升,网络的检测精确度有一定程度下降,但是YOLOv3-95在参数和体量远小于YOLOv3-tiny的情况下,精确度比其提升51%。由于YOLOv3-tiny的网络较浅,就运行时间来说YOLOv3-tiny要短。根据实验对比及以上分析,可得出YOLOv3-95在保证精度基本不下降的情况下,运行时间最短,参数量和体量最小,剪枝效果达到最优,所以本文在下面的实验中将YOLOv3-95算法与ASMS 算法相结合以提升联合算法的性能。
4.2 实验2
为了检测联合算法的效果,采用行人视频对不同算法进行对照,本文使用跟踪区域与前景目标之间的巴氏距离来表示算法的跟踪精度,巴氏距离数值越大说明目标框圈定区域与前景目标区域重合度越高,进而表明算法的跟踪准确率越高,实时性通过有效跟踪时间内的每帧平均运行时间来衡量。分别用传统ASMS算法、KCF算法、基于YOLOv3和ASMS算法、基于YOLOv3-95和ASMS算法共四种算法进行实验。算法均采用矩形框来对前景进行跟踪,传统ASMS算法和KCF算法在手动圈动目标后进行跟踪,基于YOLOv3和ASMS算法、基于YOLOv3-95和ASMS算法可自动检测前景目标进行跟踪。
视频选取前景无遮挡的情况,由于实验各算法均能实现对移动前景目标的实时跟踪,只是在跟踪过程中跟踪框的大小和位置有一定差异,本文仅对联合
表1 对比模型和剪枝模型评价结果
Table 1 Evaluation results of comparison model and pruning model
模型精确度mAP
速度/(f/s)
参数体量CPU GPU
YOLOv3-tiny 32.7 24.1 48 120 8.9M 33.1MB YOLOv3 55.8 57.9 13 27 60.6M 231MB YOLOv3-50 57.6 56.6 22 48 19.8M 91.7MB YOLOv3-80 51.7 52.4 23 50 12.3M 46.6MB YOLOv3-95 49.4 46.5 27 57    4.8M 18.7MB

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。