APP下载

基于YOLOv3与卡尔曼滤波的多目标跟踪算法

2020-05-16任珈民宫宁生韩镇阳

计算机应用与软件 2020年5期
关键词:卡尔曼滤波残差预测

任珈民 宫宁生 韩镇阳

(南京工业大学计算机科学与技术学院 江苏 南京 211816)

0 引 言

目标跟踪是计算机视觉研究领域的一个重要方向,在生产和生活中有诸多应用,例如行人监测、交通管理、人机交互等。目标跟踪一般分为单目标跟踪和多目标跟踪,对于单目标跟踪而言,一般会存在一个先验假设,因此即使只在初始位置框定范围,仍能得到一个看起来还好的跟踪结果。而通常应用于行人监测的多目标跟踪往往是一个多变量估计问题[1],不仅没有上述先验假设,而且还存在对象位置变化大,目标个数不固定的问题。因此多目标跟踪除了需要考虑物体形变、背景干扰等方面外,还需解决以下几个问题:(1) 目标的自动初始化和自动终止;(2) 目标的运动检测和相似度判别;(3) 目标之间的交互和遮挡;(4) 跟丢的目标再次出现时的再识别问题。针对上述问题中的一点或几点,研究者们提出相应的解决措施,主要可以分为两大类:基于检测的数据关联算法和网络最小代价流算法。前者将多目标跟踪看作数据关联问题,对连续两帧间的轨迹和检测进行连接,以此形成更长的轨迹。Huang等[2]提出的多层跟踪框架是该类算法的典型方法,它先根据相邻两帧间的检测形成短轨迹,再进行全局关联,最后对生成的轨迹做微调。Milan等[3]提出的基于网络最小代价流的算法则将其转化为一个能量最小问题,将每个检测都看作一个节点,而每个节点有对应的能量,算法的目的是求解能量函数的最优解,形成跟踪轨迹。

随着深度学习的快速发展,很多跟踪算法都以上述两大类方法作为基准,并加入深度学习算法。利用深度网络能够提取出更加鲁棒的图像特征,从而使后续跟踪方法的跟踪更加精准,进一步提升跟踪的准确度。Wojke等[4]使用深度网络提取检测和边界框,并通过运动匹配度和外观匹配度对轨迹进行预测,最后引入级联匹配方法进行长轨迹跟踪;Chen等[5]利用卡尔曼滤波和改进的目标检测算法将检测与分类先分开处理,再进行结合,来处理遮挡问题。Xiang等[6]利用深度网络标记目标的不同状态,然后利用匈牙利算法和马尔可夫决策过程进行匹配和跟踪;Sun等[7]考虑不同帧之间的相关性,建立深度亲和力网络进行目标关联,从而形成可靠轨迹。由于现如今大部分的研究都是基于检测的跟踪,因此目标检测算法的好坏可以对跟踪结果产生重要影响,而如何协调处理数据关联和目标遮挡的问题,也需要做进一步规划。

本文综合考虑上述问题,并借鉴其优势之处,提出如下跟踪算法:首先利用YOLOv3网络检测出当前帧中的行人目标;再采用卡尔曼滤波器对下一帧目标进行预测,减小长期跟踪所带来的误差;然后通过改进匈牙利算法进行目标分配和数据关联,形成跟踪轨迹。此外,考虑到跟踪过程中的遮挡问题,本文采用基于区域的质量评估网络(RQEN),联合之前的多帧检测结果,恢复被遮挡目标,降低标签转换误差,使结果更加精确。

1 相关工作

在设计行人多目标跟踪算法时,往往会考虑两个问题:(1) 如何测量帧内行人目标的相似性;(2) 基于此相似性如何判断帧内行人目标是否相同。前者属于建模问题,其中建模的范围包括外观、运动等,而后者则与数据关联有关。

外观建模是该问题中计算相似度的重要途径,可分为视觉表示和统计测量两部分。视觉表示一般基于单个特征或多特征来描述一个目标,如Kanade等[8]利用光流法跟踪行人,从而生成短轨迹。统计测量则是建立度量函数,计算不同目标间的相似度,如通过巴氏距离计算两颜色直方图间的距离,再将其转换成相似性[9]。运动建模可以捕捉行人的动态行为,估计其在未来帧中的潜在位置,从而减少搜索空间。线性模型是常用的运动建模方式,它假设目标匀速运动,并在此基础上对不同情况进行建模;而非线性模型则可以解决更复杂的问题,使跟踪更准确。

这些外观特征建模在许多方法中都有所涉猎,但对比与深度学习特征,仍然存在很大差异。利用深度网络对图像进行建模,能够更深层次地挖掘图像的空间信息特征。基于深度学习的多目标跟踪框架在以下两个方面取得较好的进展:一个是结合多目标跟踪场景进行网络的设计,如文献[10]通过训练一种孪生卷积神网络,学习编码两个输入图像块之间的局部空间特征,并结合上下文特征生成匹配概率;另一个是将循环神经网络[11-12]应用其中,讨论历史信息对跟踪轨迹特性的描述。前者利用优化的全局跟踪框架,能够得到比传统外观特征更好的图像信息,后者对于运动特征的长期匹配相似度计算很有效。

在对行人目标完成建模后,需要通过相应的算法对目标进行跟踪。根据采用方法的不同,可分为概率预测和确定性优化两种。概率预测通常将目标作为不确定分布,先根据之前的预测来估计当前状态的后验概率分布,再根据观测模型得到的测量来更新预测模型,如卡尔曼滤波[13]等。而确定性优化旨在找到最大后验概率,将满足条件的最优解依次串联起来,形成一条跟踪轨迹,一般可通过偶图匹配[14]等方法来解决。

针对建模和关联这两个问题,本文用YOLOv3网络建立图像深度特征,从而有效地检测出当前图像中的多个目标;同时考虑到行人运动的线性模型,采用卡尔曼滤波器对连续多帧的同一目标进行预测;为了在多个检测和多条轨迹之间找到最优连接,本文使用匈牙利算法进行数据的关联匹配。此外,本文还引入基于区域的质量评估网络(RQEN)[15],联合多帧检测结果,恢复被遮挡目标,提高跟踪准确率。

2 多目标跟踪算法

本文将YOLOv3作为目标检测网络,利用其多尺度预测机制,检测出大小不同的行人目标。之后采用卡尔曼滤波器根据当前跟踪结果预测目标的下一位置,并计算检测范围和预测范围的交并比和颜色直方图,并通过匈牙利算法根据得分获取最佳匹配,经过不断地迭代获得跟踪轨迹。针对跟踪过程中存在的遮挡问题,本文采用基于区域的质量评估网络(RQEN),联合多帧高质量检测结果,以加权的形式恢复被遮挡部分,使跟踪更加准确。

2.1 目标检测网络

目标检测算法可分为两类:基于区域的算法和基于回归的算法。基于区域的目标检测算法先提取候选区域,再进行分类和回归,代表算法有FasterRCNN[16]等;基于回归的算法能一步回归出坐标,同时平衡了检测精度与速度,因此应用更广泛,如YOLOv3[17]等。

(1)YOLOv3总体网络结构。如图1所示,YOLOv3在之前网络的基础上进行改进,通过构建深度残差网络进行目标特征的提取;然后采用区域推荐网络中的锚点机制,并添加相对坐标预测,解决了模型训练不稳定的问题,并能够加快检测的速度;同时引入特征金字塔结构(FPN),使网络可以进行多尺度预测,避免细小物体的漏检问题。

图1 YOLOv3总体网络结构图

该网络首先通过DBL结构(卷积层—批量归一化层—LeakyReLU激活函数)调整输入图像大小,之后通过多个残差组提取图像特征,获得多种分辨率的特征图,然后对特征图进行上采样,与原特征图拼接起来,利用特征金字塔结构获得13×13、26×26、52×52三种不同尺度的预测结果。表现在图像上就是该网络不仅能检测正常尺寸的目标,而且能检测出细小物体,这对于密集场景中的多目标跟踪具有重要意义。

(2) 深度残差网络。残差网络是由一系列残差块所组成的,每个残差块由恒等映射和残差分支两部分组成,如图2(a)所示,该结构既对输入图像进行卷积处理,又利用分支弥补丢失的信息,使提取的特征更有效。

(a) 残差块结构 (b) 残差组结构图2 深度残差网络基本结构

若设残差块的输入为x,输出为y,F(·)为转化函数,则其数学表达式为:

y=F(x)+x

(1)

YOLOv3堆叠多个残差块,形成残差单元,如图2(b)所示,其中加入了补零填充(zero padding)操作来避免因下采样过后图像尺寸变小所带来的影响,之后再接一个网络基本组件DBL对待处理图像做调整。

分析深度残差网络可知,第一层卷积将输入图像调整为256×256;再用64个3×3的卷积核对其进行下采样;然后添加残差块结构,该结构由1×1和3×3的卷积层组成,得到的特征图尺寸为128×128;接着通过2×、8×、8×、4×残差块的4组网络,分别获取64×64、32×32、16×16、8×8分辨率的特征图。这4种不同分辨率的特征图可进行后续的多尺度预测。

(3) 锚点机制。该机制最早由Faster RCNN提出,用来选取物体的边界框。Faster RCNN在每个滑动位置上采取3个尺度与3个纵横比的组合,共产生9个锚点来选取边界框。YOLOv3考虑到手工获取锚点尺寸会产生误差,故采用改进的k-means聚类算法,利用IoU得分作为评判标准,选取最合适的先验框。具体如下式所示:

(2)

在获得一系列锚点边框后,需要进行边框回归操作,使得输出结果尽可能地接近真实边框。在Faster RCNN中并未对输出边框的位置进行约束,使得早期模型训练不稳定,因此YOLOv3将输出框的坐标控制在负责预测该目标的区域内,大大提高了检测速度。

如图3所示,cx和cy表示预测框的中心坐标所在网格距离左上角第一个网格的网格数;bx、by、bw和bh表示预测框的绝对位置;tx、ty、tw和th表示预测框的相对位置;pw和ph表示先验框的宽和高;σ(·)表示Sigmoid函数。其计算方式如下:

(3)

图3 相对坐标预测

(4) 多尺度预测。若模型提取的特征较少或训练拟合过高,则容易产生误检和漏检,因此之前的目标检测算法在密集场景下容易漏检细小事物。为了解决这个问题,YOLOv3引入特征金字塔结构(Feature Pyramid Network,FPN),如图4所示。

图4 特征金字塔结构

这种多级特征结构中,高层特征分辨率低但语义信息丰富,低层特征则相反,所以这种结构的设计优势就在于将这些特征连接起来,使得整个模型在所有尺度下都能获得丰富的语义信息,从而检测大范围尺度的图像。

该结构的左侧为自下而上的前馈网络,其由多组卷积网络组成,用于特征提取;右侧是一个自顶向下的过程,通过与左侧路径侧向连接,增强高层特征。该路径具体是利用上采样来保持与左侧尺寸一致的。

2.2 目标跟踪算法

在利用YOLOv3获得每帧的多个检测目标后,需要对连续帧中的同一目标进行跟踪,并依次生成轨迹。本文利用卡尔曼滤波模型预测出下一帧该目标的位置,然后利用匈牙利算法[18]进行数据关联,但考虑到若目标之间位置较近时仅将面积的交并比作为匹配依据会使匹配结果产生错误,因此本文对原始的匈牙利算法进行改进,引入颜色直方图对相近的不同目标做区分,使结果更精确。

(1) 卡尔曼滤波。卡尔曼滤波的优势在于该模型可以应用在任何含有不确定信息的动态系统中,对系统下步走向作出有根据的预测,并且即使伴随有噪声干扰,也总能指出真实发生的情况。

(4)

式中:Fk为运动学系数矩阵;Bk为外部控制矩阵;uk为外部控制量;Qk为外部噪声的协方差矩阵。

式(4)表明当前新的最优估计是根据上一最优估计并加上已知外部控制量预测得到的,而新的不确定性是由上一不确定性加上外部环境干扰得到的。

图5 卡尔曼滤波器

(5)

① 矩阵A中的每个元素减去A中最小的元素得到至少有一个零元素的非负矩阵A1(每行或每列都减去该行该列的最小元素)。

② 找到线条的最小集合S1,线条数m1,包含A1中所有的非零元素。如果m1=n,则有n个独立零元素,A中这n个位置就构成解决方案。

③ 如果m1

④ 重复步骤2和步骤3,并用A2代替A1。每次完成步骤3的操作后,矩阵所有元素之和会减少n(n-nk)hk,经多次迭代即可找到解决方案。

对于多目标跟踪中的数据关联来说,YOLOv3先检测出当前帧中的多个目标m以及它们的坐标和边界框范围,而卡尔曼滤波又根据上一帧的跟踪结果对当前帧的目标位置进行了估计,得到n个预测结果,或称为n条轨迹。在获得所有的检测和预测结果后,先计算二者面积的交并比,再获得检测图像的颜色直方图,然后用交并比和直方图特征加权生成关联矩阵,如下式所示:

Cij=αCpos(i,j)+βCappr(i,j)

(6)

式中:Cpos为二者交并比,Cappr为外观关联系数,可通过巴氏距离得到,且α和β为权重系数,和为1。

最后用匈牙利算法对检测结果与预测结果进行匹配,完成数据关联,在多帧图像中形成跟踪轨迹。

2.3 基于区域的质量评估网络

在遮挡较为严重的情况下,如果采用一般的池化会造成特征图的效果变差,这样会丢失很多有效信息。同时考虑到信息的表示在帧与帧之间不是独立的,故利用互补信息可以有效地提高识别性能。因此RQEN提出对每一帧进行一个质量判断,考虑之前的连续5帧检测结果,利用其对图像缺失部分进行弥补。

如图6所示,设质量评估网络的输入为一组集合S={I1,I2,…,In},其中每幅图像都属于同一个人,将集合分别送入两个部分,一个部分利用全卷积神经网络生成输入图像的中间表示;另一个通过关键点检测器标记人体的关键点,并根据关键点将人体划分成不同区域。设u、m、l分别为图像的上、中、下部分,每部分对应一个区域,一方面生成特征向量FIi={fu(Ii),fm(Ii),fl(Ii)},另一方面,将图像的中间表示输入基于区域的质量预测器中,生成对应区域的质量估计μIi={μu(Ii),μm(Ii),μl(Ii)},并用不同区域的每个分数μ*(Ii)来估计相应的区域特性f*(Ii),最后将得分与区域特性输入到集合聚合单元,生成特征表示Fw(S)={ξu(S),ξm(S),ξl(S)}。其中ξ(·)表示集合聚合函数,它通过加权的方式合并所有帧,为不同大小的序列生成具有固定维数的特征表示,其数学表达式为:

(7)

图6 基于区域的质量评估网络

(8)

式中:d(·)表示L2范数,[·]+表示max(·,0);τ表示损失边缘。从而总损失函数为L=Lsoftmax+Lt。

首先输入一系列图像,在经过卷积层获得特征图后,一方面利用全局特征提取计算归一化损失,另一方面在三元损失的监督下,提取有效区域,进一步增强类间差异,减少类内差距。通过联合训练,可以提取出更鲁棒的特征。

2.4 算法流程

如图7所示,本文首先用YOLOv3网络检测出当前帧中待跟踪目标,再利用卡尔曼滤波器对下一帧目标的位置进行估计和预测,然后通过改进的匈牙利算法将检测与预测进行匹配,得到跟踪轨迹。而对于跟踪过程中产生的被遮挡,本文引入基于区域的质量评估网络(RQEN),联合多帧高质量特征恢复被遮挡部分,提高跟踪准确率。

图7 算法流程图

本文的算法流程描述如下:

(1) 获取视频的第一帧图像,并用YOLOv3检测出图像中的待跟踪目标。

(2) 利用第一帧图像中的每个目标初始化卡尔曼滤波器,并对下一帧图像中目标的位置和大小进行预测。

(3) 读入下一帧图像,进行目标检测,并将检测结果与预测结果根据面积交并比与颜色直方图的加权和建立关联矩阵,然后利用改进匈牙利算法找到最佳匹配。

(4) 若匹配完成后有剩余检测,则用多余的检测结果初始化新的卡尔曼滤波器;若当前帧有剩余预测未被匹配,则认为目标可能被遮挡或丢失,此时采用基于区域的质量评估网络恢复被遮挡目标,同时记录被遮挡的帧数,若总帧数大于10帧,则认为目标丢失,移除该卡尔曼滤波器。

(5) 结合检测和预测,更新卡尔曼滤波器的相关参数,然后返回步骤3,多次迭代直至所有图像被处理完。

3 实 验

3.1 实验说明

本文采用2D MOT2015数据集[19]进行实验,该数据集分为训练集和测试集,包含了多个行人目标,并存在目标交互与遮挡。其中训练集和测试集各有11段视频。实验环境:内存为4GB,编写软件为Python3.6,GPU为RTX2080Ti。

实验中采用的评判标准为跟踪准确度(TA)、跟踪精度(TP)、命中的轨道假设占实际总轨道的比例(MT)、丢失的目标轨道占实际总轨道的比例(ML)、标签切换总数(IDS)以及误报总数(FP)。

3.2 实验结果与分析

为了更好地分析算法的性能,本文对两组实验结果了进行对比分析。通过将本文算法在不同视频序列上进行测试来分析本文算法在不同应用场景中的实验结果;同时将本文算法与其他算法进行对比,从而对优势和不足做进一步分析和研究。

(1) 本文算法在不同序列上的对比。本文在测试集所有序列上进行实验,所获得的数据如表1所示。

表1 不同序列上的测试结果

分析表1可知,从平均各项性能来看,本文算法在序列TUD-Crossing上表现最佳,在Venice-1上表现最差,部分原因是Venice-1中行人与背景的颜色对比不够明显,使得跟踪产生较大的误差,而TUD-Crossing中图像清晰且对比明显,因此行人交错的处理效果更好,由此可见图像的质量对于跟踪结果也有很大影响。对于其他视频序列存在的相机晃动情况,如ETH-Jelmoli、ETH-Crossing等,会使跟踪结果产生漂移,降低跟踪准确率;或者图像模糊情况,如KITT-16等,也对检测与跟踪产生一定影响。而PETS09-S2L2中标签切换总数最多,原因是目标数量较多且行人衣着颜色较相近,所以区分不同目标时产生误差。总的来说,除了对算法本身的跟踪性能做出改进外,还应该采用固定相机拍摄,或对移动拍摄镜头做运动补偿,并需要对采集的序列进行相应预处理。

(2) 本文算法与其他算法的对比。本文算法在2D MOT 2015测试集上与其他算法的实验结果对比如表2所示。

表2 不同算法实验结果

由表2可知,SMOT[20]仅依靠表观特征的相似度进行跟踪,其跟踪结果易出现漂移,故准确率只有18.6%;RMOT[21]使用贝叶斯框架根据图像序列的上下文进行目标预测与跟踪,准确率有所提升,但遮挡时的处理效果不理想;MotiCon[22]考虑基于图像检测的结果达到跟踪的目的,但由于未考虑目标预测的问题,使得跟踪时定位往往不够准确;SiamCNN[10]结合深度神经网络和上下文特征预测目标位置,通过梯度增强与跨帧检测进行数据关联,效果有了较大提高,不过该方法仅利用线性规划做性能验证,且对于遮挡问题没有实施相应的措施;而MDP[6]将强化学习与深度学习相结合,通过马尔科夫决策过程,进一步提升了跟踪准确率,达到了30.3%,但该算法在考虑遮挡问题仅利用模板进行比对,而没有结合目标当前的具体状态进行分析,因此准确率有待提高。

本文算法利用YOLOv3网络检测视频中的行人目标,能够得到精准的边界框;同时利用卡尔曼滤波器进行预测和更新,使跟踪更精确;在获得当前帧的检测和估计后,利用改进的匈牙利算法进行目标匹配。而针对跟踪过程中产生的遮挡问题,本算法引入基于区域的质量评估网络,联合之前5帧检测结果恢复被遮挡目标。实验结果表明MOTA达到了34.4%,MT为13.4%,并将标签切换总数IDS降低到了653,平均各项指标来看,跟踪性能较其他算法有明显提升。

为了直观地比较处理遮挡问题的实验数据,本文在序列TUD-Crossing上进行对比实验,结果如图8和图9所示。对比同一帧图像可知,第112帧中两个算法都能很好地完成跟踪,如图中实线框所示。第113帧开始出现遮挡,到第115帧遮挡结束,由于本算法联合多帧检测能够恢复被遮挡目标,进行持续跟踪,如图中虚线框所示。而MDP算法不能很好地框定目标,这在目标数量多、交错遮挡频繁的场景中容易产生跟踪误差。相比较而言,本文算法更好。

图8 本文算法跟踪结果

图9 MDP跟踪结果

4 结 语

本文考虑使用YOLOv3进行多尺度的行人目标检测,不仅能保证检测精度,而且可以做到实时检测。检测到当前帧中的目标后,本文通过卡尔曼滤波器根据上一帧跟踪结果进行预测,以此获得当前帧的先验假设,从而降低该帧图像跟踪结果产生漂移的概率。在获得检测和预测后,一方面计算二者的面积交并比,另一方面计算目标的颜色直方图,然后结合两项结果生成关联矩阵,并利用匈牙利算法找到最佳匹配。最后系统在不断迭代后形成跟踪轨迹。针对跟踪过程中产生的遮挡问题,本文引入基于区域的质量评估网络,先划分被遮挡目标,再联合之前多帧完整的检目标测结果,恢复被遮挡的部分,降低了标签切换数量,提高跟踪准确度,达到了34.4%。之后的研究工作将围绕进一步提高跟踪准确度和降低标签切换总数展开。

猜你喜欢

卡尔曼滤波残差预测
无可预测
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
基于无迹卡尔曼滤波的室内定位系统
基于残差-注意力和LSTM的心律失常心拍分类方法研究
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
融合上下文的残差门卷积实体抽取
脉冲星方位误差估计的两步卡尔曼滤波算法