融合二维姿态信息的相似多目标跟踪

2020-11-02 11:53雷景生李誉坤杨忠光
计算机工程与设计 2020年10期
关键词:检测器姿态卷积

雷景生,李誉坤,杨忠光

(上海电力大学 计算机科学与技术学院,上海 200090)

0 引 言

近年来,计算机视觉技术发展迅速,其中多目标跟踪算法的研究备受国内外学者的关注。在这些研究中,主要方式是用度量学习提取目标核心特征,根据特征差异完成多目标跟踪,例如Person Re-ID[1];或者基于深度神经网络提取目标特征并引入滤波器与匹配算法以此关联相邻帧的目标身份信息实现多目标跟踪,如POI[2]、SORT[3]、Deep SORT[4]。上述主流的目标跟踪方式在道路、商场等大多数生活场景中都能完成精确度较高的实时移动目标跟踪任务,但在移动目标较为相似的工厂工作场景中,传统的跟踪算法大多不能发挥良好的效果,其算法局限性在于工厂工作环境下,工作人员被要求穿着统一的工作服,佩戴安全帽,这样不同目标间的特征不能明显被区分,因此仅根据外观特征无法完成正确的跟踪任务。

为解决相似多目标场景下的跟踪难题,本文在传统的跟踪算法之上融入其它维度的信息辅助判定目标身份完成跟踪,其主体流程分为目标检测和跟踪两个阶段,通过对比fast R-CNN[5]、faster-RCNN[6]、SSD[7]、YOLO V2[8]、YOLO v3[9]等算法选择高效精确的目标检测器并对Deep SORT算法进行改进,根据相邻帧之中相同目标的姿态相似,不同目标的姿态特征区分度较高这一特性将目标的人体姿态特征信息与跟踪算法相融合,在姿态的维度放大目标特征,消除相似目标外观特征区分度低造成的消极影响,提高多目标跟踪的准确度。

本文以相关理论介绍、算法实现和实验分析对比3个方面阐述相似多目标场景下的多目标跟踪方案,本文的主要贡献包括:①对存在相似多目标场景提出新颖的跟踪方案。②在目标跟踪算法的目标检测阶段,对比多种算法,筛选出最高效的检测框架。③多目标跟踪过程中减少了目标身份互换次数,并解决目标短暂遮挡后无法继续跟踪的问题。

1 相关理论

1.1 二维人体姿态识别

本文中使用的人体姿态信息根据OpenPose[10]算法计算得出,该算法由美国卡耐基梅隆大学提出,并开源为学者提供研究,OpenPose是首个基于深度学习实现的多人实时姿态识别算法,其主要做法是利用PAFs(part affinity fields)将人体图像划分为13个关键信息点并将其链接,从而进行人体动作、面部表情、手指运动等姿态估计。

OpenPose中采用的网络结构如图1所示,该网络分上下两个分支,每个分支都有t个阶段,每个阶段都会将feature maps进行融合。

图1 OpenPose网络结构

1.2 Deep SORT算法

Deep SORT算法采用传统的单假设跟踪方法,采用递归卡尔曼滤波和逐帧数据关联来进行多目标的检测跟踪。系统核心组件如下:

轨道处理和状态估计:该算法使用一个标准的卡尔曼滤波器并采用线性观测模型和匀速模型。算法的跟踪场景定义在包含目标状态(u,v,γ,h,x,y,γ,h)的八维状态空间上,其参数表示检测框的中心位置信息、纵横比信息、高度信息,以及速度信息。

目标分配:用匈牙利算法求解卡尔曼预测状态与测量值之间的分配问题。算法通过结合两个度量方式来整合运动和外观信息。① 马哈拉诺比斯距离简称马氏距离,表示数据的协方差距离,它能够有效计算两个不同维度不同特征样本集间的相似度,马氏距离度量的优势是它是可学习的,以数据为驱动,通过对样本进行训练,得到能够满足用户给定的约束条件和反映样本特性的距离度量矩阵。② 对于每个边界框检测,计算目标外观特征与每个轨迹中目标的外观特征的最小余弦距离。③ 采用融合度量学习的方法,设置权重系数,对两种度量方式进行加权平均,使用匈牙利算法对track和detect进行最优分配。最终算法结合两种度量方式的优势,及考虑到了目标的运动信息又可将外观信息加以辅助判断。

级联匹配:如果在跟踪时,目标对应的轨迹被遮挡了一段较长的时间,卡尔曼滤波预测的不确定性就会增加。如果此时有多个追踪器同时匹配同一个目标的检测结果,由于遮挡时间较长的轨迹长时间未更新位置信息,导致卡尔曼滤波预测的位置会出现比较大的偏差,使得检测结果更可能和遮挡时间较长的那条轨迹相关联,从而降低跟踪算法的性能。本文采用关联算法与优先分配策略,首先从小到大匹配消失时间相同的轨迹,保障了最近出现目标的优先权,其次将未匹配的轨迹更具IoU指标进行分配,最大程度缓解遮挡或者外观信息突变造成的不良影响。

深度外观描述符:通过使用简单的最近邻查询而不需要额外的度量学习。算法使用卷积神经网络提取目标外观特征,构建了wide ResNet,其中有两个卷积层,后面是6个剩余块。在全连接层10中计算出了尺寸为128的总体特征图。

2 融合二维姿态信息的相似多目标跟踪框架与算法

本文提出融合二维姿态信息的相似多目标跟踪框架来解决相似多目标跟踪问题,框架主要由目标检测器、姿态提取器和目标跟踪器组成,其中目标检测器包含基于YOLO v3的目标检测算法,姿态提取器包含二维人体姿态估计算法,目标跟踪器包含信息融合算法、目标指派算法和级联匹配算法。整体算法流程如图2所示。

2.1 制作与准备数据集

目标检测阶段数据集:由于本文算法采用YOLO v3作为目标检测器,因此需要制作出相似目标场景下的数据集,用于训练目标权重模型。本文实验在训练模型时准备了1000张工厂场景下的图片,利用LabelImage标注出图像中的工作人员制作出VOC数据集用来训练。由于本文算法仅对相似的工作人员做跟踪,所以在标注阶段仅仅只需对图像中的工作人员以person类进行标注。

图2 DeepSORT算法流程

多目标跟踪阶段数据集:本文使用两个数据集对算法进行分别测试,本文用此数据集验证算法是否具有可靠的跟踪能力。另一个测试集是包含相似多目标的特殊场景数据集。此数据集是4320帧组成的视频,该视频中存在3个工作人员目标,并频繁出现目标交叉遮挡,以此数据集对比本文算法与其它跟踪算法,讨论本算法在特殊场景下的跟踪优势。

2.2 目标检测算法的实现

使用Deep SORT进行目标需要先进行目标检测,目标检测的质量对于后期的目标跟踪至关重要,因此需要选择精确且高效的目标检测算法。本文在目标检测阶段先制作了以存在相似目标的工作环境为基础的图片数据集,然后在该数据集上对faster-RCNN、SSD、YOLO v3这3种目标检测框架进行对比,对比结果见实验部分。最终确定了速度与精度俱佳的YOLO v3框架,YOLO v3是基于深度卷积神经网络的目标识别和定位算法,整个网络结构只由卷积层组成,输入的图像仅仅经过一次网络就能完成目标的分类与定位,所以检测速度比较快,能够满足变电站实时性要求。它创造性的将目标候选区域选择与识别这两个阶段任务合成一个,仅仅使用一次特征提取,就能准确地检测出目标并定位其位置。算法实现部分如下:

将数据集图像70%作为训练集,30%作为验证集训练工作人员模型权重;首先对图像进行特征提取。

算法使用了darknet-53神经网络结构,如图3所示,采用残差网络的思想,交替使用3×3与1×1卷积神经网络,简化了resnet神经网络,加快训练速度。

图3 YOLO v3网络结构

由于只需对工作人员这一种类别进行检测,所以训练时需要把特征图输出张量深度设为18:每个网格单元预测3个检测框,每个检测框需要有5个基本参数和1个类别的概率。所以3*(5+1)=18。

确定检测框的方式是通过神经网络将图像划分为13×13的网格检测目标,若目标存在则每个网格生成3个检测框并计算相应的置信度,其中每个检测框有5个预测值(X,Y,W,H,Conf),X与Y是预测框的中心相对于单元边界的偏移,W和H是预测的框宽度与整个图像的比率,Conf表示检测框的置信度。Pr(class|object)代表网格预测行人的条件概率。在检测时,将条件概率乘以不同检测框置信度的预测值,以获得每个检测框工作人员类别的置信度分数。

整个训练过程中激活函数选用leaky ReLU;损失函数为坐标误差、IoU误差和分类误差的总方误差

(1)

其中,i代表网格单元,最大值是S的平方,j为边界框预测值,最大值为B,w和h是边界框的宽度和高度,x和y代表边界框中心坐标。

其它参数选择方面,本文通过实验结果对比进行不断调优,最终对比发现epoch为500时loss达到全局最优值12.4。

2.3 二维人体姿态估计

执行二维姿态估计模块:本文将OpenPose算法进行修改,对移动目标的姿态进行识别,分析得出图像中人体的二维姿态信息,并以18个人体关键点作为展示。具体算法流程如下:

(1)改进原始网络:本文算法的核心是将二维姿态信息与跟踪算法相结合,为提高算法的执行效率需优化姿态识别模块的运行速度。本文将原来的7*7的卷积替换成1*1,3*3,3*3的卷积级联。为了让这个级联结构与7×7的卷积核有同样的感受野,使用dilation=2的空洞卷积。因为越大的卷积核,计算量也就越大,就感受野的大小来看,3个3*3的卷积等价于一个7*7的卷积,但是计算量却少了很多。卷积核替换如图4所示。

(2)输入原始图像,图像经过构造好的卷积神经网络生成一组特征映射集合F,网络采用VGG pre-train network作为骨架,有两个分支分别回归L(p)和S(p)。每一个步骤算一次loss,之后为了区分左右结构,需要将L和S输入连接层,继续下一个步骤的深入训练。loss用的L2范数,S和L的ground-truth需要从标注的关键点生成,如果某个关键点在标注中有缺失则不计算该点,最终完成part confidence maps和part affinity fields的提取。

(3)得到上述两个信息后,使用图论中的偶匹配求出部件关联,将同一个人的关节点连接起来,最终合并为一个人的整体框架。

(4)最后基于PAFs求解多人姿态检测。

图4 OpenPose卷积核替换

2.4 融合二维姿态信息的跟踪算法

本文从人体姿态归一化的行人重识别方法中获得启发,将二维人体姿态信与Deep SORT跟踪算法相结合并进行改进,算法流程如图4所示。

(1)执行目标检测:使用训练好的YOLO v3针对工作人员的目标检测模型作为Deep SORT算法的目标检测部分。

(2)做状态估计:将当前帧检测到的目标坐标信息存入detection集合中,将历史检测到的目标坐标信息存入track集合中,如果detection集合为空集,就将丢失帧计数加1,若丢失帧计数超过设定阈值时,就认为该目标已消失,然后将该目标的历史坐标信息从track中删除,重新进行检测。如果detection集合不为空,将丢失帧数计数置为0,继续下一步。此外使用一个基于匀速模型和线性观测模型的标准卡尔曼滤波器对目标的运动状态进行预测,也即对track 集合进行预测得到包含预测结果的track_pre集合;采用卡尔曼滤波方法来跟踪目标时,过程为:首先对输入视频帧中的目标采用YOLOv3 算法进行检测,检测得到目标当前时刻的状态,包括目标的位置、宽高、速度加速度等信息,而后将这些参数作为卡尔曼滤波器的输入,得到目标下一时刻的状态估计;通过观察得到下一时刻目标的观测值并且通过观测值对目标的跟踪区域进行确定,最后结合下一时刻目标的观测值与当前时刻目标的估计值,对当前时刻目标状态的后验估计值、状态矩阵及相关参数进行更新。通过此过程对Kalman滤波器中的相关参数进行反复的更新,使得Kalman滤波器的估计值与实际值间的误差越来越小。经过长时间的处理,卡尔曼滤波器能够很好预测出目标的状态,从而最终预测出移动目标的轨迹。

(3)融合姿态维度信息进行目标指派:使用马氏距离计算物体检测框dj和物体跟踪框yi之间的距离d,公式为

d(1)(i,j)=(dj-yi)TSi-1(dj-yi)

(2)

使用余弦距离来度量各个轨道的外观特征r(128维)和检测目标外观特征之间的距离,来更准确地预测ID,公式为

di,j(2)(i,j)=min{1-rjTrk(i)|rk(i)∈Ri}

(3)

其中外观使用的是当前帧目标的二维姿态信息;最后使用联合距离来作为代价矩阵进行度量各个轨道和检测目标之间的距离。在轨道处理方面,本文对传统DeepSort算法进行了改进,传统方法认为单独使用马氏距离最为匹配度度量会导致身份转换等情形严重,因此计算检测目标和轨道的最新的100个目标进行计算最小余弦距离,选择轨道中最近多个目标是因为同一个轨道中存放的是同一个目标的特征,而在本文实验中,姿态特征代替了外观特征,相同目标仅在相邻帧中姿态特征相似,为此实验中将轨道中100个目标更换成最新的1个目标,来计算姿态特征的余弦距离。

(4)进行级联匹配:物体被遮挡一段时间后,卡尔曼滤波预测的不确定性大大增加并且状态空间上可观察性变得很低,并且马氏距离更倾向于不确定性更大的轨道,因此这里引入级联匹配,优先匹配检测目标与最近出现的轨道。

(5)进行跟踪优化:实验发现,相似多目标跟踪过程中常出现身份转换问题,此类问题的出现是因为检测目标匹配了错误的轨道,因此在算法中记录每一个目标上一帧的位置,在完成级联匹配后计算检测目标与上一帧此身份目标检测框的欧氏距离,当距离大于检测框宽度的1/4时认定匹配错误,进行重新匹配身份。

经过使用融合二维姿态信息的DeepSORT算法之后,可以完成在模拟存在相似目标的工作场景监控视频下的多目标跟踪。

3 实验与分析

实验硬件环境:CPU:Intel Core i7-6700HQ,内存:8 GB,GPU:RTX2080 8 GB显存,操作系统:Linux Ubuntu18.04,硬盘空间:80 GB。

软件环境:pycharm集成开发环境、anaconda 3.7、python 3.6、keras 2.0.8、opencv 4.0和tensorflow 1.12等。

数据集见表1,1000张存在工作人员的场景照片制作的VOC格式数据集训练YOLO模型,MOT16 CHALLENGE标准数据集,4320帧模拟存在相似移动目标的工作场景监控视频。

表1 测试数据集

3.1 检测阶段算法分析

本文算法在目标检测阶段选用YOLO v3框架,用脚本文件生成损失函数的变化曲线与IoU变化曲线如图5所示,其中loss随训练次数的增加呈现梯度下降趋势,并在训练300次左右下降趋势逐渐趋于平缓,500次达到局部最优值12.4。IoU随着训练次数增加不断提高。详细结果如图5所示。

图5 YOLO v3 损失函数变化与IoU变化曲线

本实验与YOLO V2检测算法进行对比,见表2,在精确度方面提升1.2%,召回率提高1.9%,IoU提高1.7%。

表2 YOLO v3与YOLO v2对比

本文还对比了在单目标工作场景下,YOLO v3,YOLO v2,SSD这3种检测算法作为DeepSort检测器,检测框中心点和实际目标中心的欧式距离,其中实际目标中心点为OpenPose人体姿态躯干的中心。绘制出的距离对比如图6所示,其中折线图断点说明检测算法在该帧未检测到目标;此图反映出YOLO v3作为检测器能够更准确检测出目标。

3.2 相似多目标跟踪实验结果分析

本文评估了跟踪器在MOT16 CHALLENGE数据集上的效果,见表3,基准测试包括由7个序列组成的训练和测试集,比较了其它已发表的方法,全表结果[11]可以在MOT16 CHALLENGE网站上找到。

表3 MOT16 CHALLENGE数据集上测试结果对比

由于MOT16 CHALLENGE数据集上多目标之间差异较大,每个行人都穿着不同服装,这使得在此环境中外观信息的作用大于二维姿态信息,故在跟踪效果上略优于本文算法;其次计算二维人体姿态估计算法计算量巨大,十分依赖GPU运算性能,所以在处理频率略慢,fps维持在3.4左右。实验结果表明本文算法在多目标跟踪的精确性(MOTP)和准确度(MOTA)上与传统的Deep SORT跟踪算法相似,具备较为精确的目标跟踪能力。

图6 目标检测框中心与目标中点距离

为突出本文算法在存在相似目标环境中的跟踪优势,使用模拟存在相似目标的视频作为数据集,将本文算法和其它算法进行了详细对比,如图7所示。由于本文实验在建立在DeepSORT跟踪算法之上,并融合二维人体姿态信息进行改进,所以对比算法选用Deep SORT。其中在Deep SORT跟踪算法中,目标检测算法对跟踪的精确度有着直接影响,所以本文将使用YOLO v3作检测器并融合二维姿态的多目标跟踪算法与基于SSD、YOLO v2、YOLO v3作检测器的传统Deep SORT算法在MOTA(multiple object tracking accuracy)和MOTP(multiple object tracking precision)两个指标上进行对比

(4)

(5)

图7 相关算法对比

当前帧预测的轨道和检测目标没有匹配上的这类错误预测轨道点称为FP,未被匹配的Ground Truth点称为FN,IDSW为Ground Truth所分配的ID发生变化的次数,GT为Ground Truth目标的数量。

本文采用模拟存在相似多目标工作场景下的视频进行实验,其中存在最多移动目标为4人,视频共4320帧。算法1是SSD作检测器的DeepSort算法;算法2是YOLO v2作检测器的DeepSort算法;算法3是YOLO v3作检测器的传统DeepSort算法,本文算法是YOLO v3作检测器融入姿态信息的改进DeepSort算法。

实验结果表明,在模拟的存在相似多目标的数据集中,本文算法与对比算法相比有着很大的优势,这归功于YOLO v3精确的目标检测和二维姿态信息的辅助跟踪。实验中,以SSD和YOLO v2作为检测器的Deep SORT算法一有严重的目标丢失和目标身份互换现象,在已检测的目标中,检测框与实际目标有一定的距离偏差,如图8所示。而采用YOLO v3的Deep SORT算法中跟踪目标未匹配和错误匹配的次数明显降低,这反映出YOLO v3框架更适合作为跟踪算法的检测器;本文算法与同样使用YOLO v3作检测器的传统算法相比MOTA与MOTP均有上升,约提升3%,也有更低的FP、FN、IDSW。随着视频时长的增加,这一优势会更加明显。

图8 YOLO v2算法、SSD的算法缺陷

如以上实验结果所述:Deep SORT算法检测阶段的准确度对跟踪结果有着决定性的影响。在YOLO v2和SSD识别框架中,其准确率的差距被放大,频繁出现目标丢失及目标身份转换等问题,两帧图像中共有两个移动目标,第一张图像右侧目标检测框与目标存在一定偏差,第二张图像未能检测到目标。此外使用YOLO v2检测器的跟踪算法在未检测到目标之外还出现了误检测现象,检测框内没有目标。以上错误均是因为检测器没有准确将移动目标识别,故滤波器不能获取目标正确位置,不能进行预测后续目标位置完成准确跟踪。

由于存在相似目标,传统的DeepSORT算法的外观信息没能良好地发挥效能,因此在目标重合再分离之后会出现身份交换问题。对比实验结果表明,本文使用的融合了姿态信息的DeepSORT算法,在包含相似目标的场景下均优于对比实验中的3种算法,YOLO v3识别框架具有更高的识别精度,采用二维姿态信息代替外观信息有效提高跟踪算法的性能,改进的跟踪算法有效减少了目标丢失概率且降低了身份互换次数如图9所示。

图9 本文算法最终跟踪结果

4 结束语

本文针对传统多目标跟踪算法在存在相似目标的场景下精度不高、效率不足的问题,提出了以DeepSORT算法为基础融合二维姿态信息的相似多目标跟踪算法,并对算法进行了实验。算法先进性体现为:① 实验结果验证了本文算法在相似多目标工作场景下跟踪的准确性;② 算法具有较高的鲁棒性,在目标出现短暂遮挡和消失时仍然能完成跟踪;③ 与其它算法相比降低了目标身份转换的情况;但另一方面,本文算法的适应性受场景中移动目标数量的影响,场景中存在的目标越多,目标间的遮挡越多,二维场景中的相似姿态多,跟踪难度就越大。为此在未来的工作中,我们打算采取构建三维模型,融合多视点信息进行多目标跟踪的思路,致力于通过场景重建将二维姿态转化为三维姿态信息,以全面提高算法准确度与场景适应性。

猜你喜欢
检测器姿态卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
攀爬的姿态
卷积神经网络的分析与设计
从滤波器理解卷积
基于二次否定剪切选择的入侵检测方法*
全新一代宋的新姿态
跑与走的姿态
基于傅里叶域卷积表示的目标跟踪算法
车道微波车辆检测器的应用
一种柱状金属物质量检测器的研究