一种在线实时多目标跟踪算法的设计与实现
2021-09-27沈阳理工大学信息科学与工程学院周志海郝向凯顾净鑫杨大为
沈阳理工大学信息科学与工程学院 周志海 郝向凯 刘 智 顾净鑫 杨大为
传统的目标跟踪算法很难实现行人多目标的在线跟踪,并且在于目标遮挡方面有很大问题,针对该问题,本文提出一种在线实时多目标跟踪算法,即使用Faster R-CNN系列检测器得到检测结果。根据卡尔曼滤波通过检测框进行预测、更新得到预测框。将得到的预测框与检测框通过IOU(交并比)算法,进行目标消失与新目标出现的确定,再使用匈牙利算法进行数据关联。本文所提出的算法可以很大程度的提高多目标追踪与遮挡问题的实时性、准确性。
在大部分应用计算机视觉领域以及图像处理的场景中,运动目标跟踪MOT(Moving Object Tracking)都是其不可或缺的一部分。目前单目标跟踪技术已然趋于成熟,而多目标跟踪还有很大的发展空间,且目前仍处在不断发展的阶段。多目标跟踪还需要解决以下几个问题:多个目标之间的重叠与遮挡;目标的运动检测与相似度判别;目标的自动初始化与自动终止;目标跟丢后的再识别等问题。
数据关联算法将目标跟踪看做数据关联问题,对邻帧间的检测和轨迹进行连接,从而使轨迹有更长的连续。根据C.Huang等人提出观点,即可将MOT问题转化为三层逐步细化的数据关联问题逐步解决。
近年来,深度学习被应用于基于检测的数据集实现的多目标跟踪中,从而使后续的跟踪效果更为准确。目前较为普遍的检测器分为两种,分别是以YOLO为代表的one-stage的检测算法和以Faster R-CNN为代表的two-stage检测算法。目前国内的研究人员大多使用R-CNN系列检测算法或是YOLO系列检测算法与跟踪算法相结合的目标跟踪方法。比如Wang Chun-yan等人采用YOLOv3检测算法检测目标,再使用卡尔曼滤波算法根据检测结果预测目标的运动轨迹,最后使用匈牙利算法进行数据关联,对每个候选目标进行匹配。
考虑到计算复杂性以及内存限制,本文使用较为经典的在线跟踪处理模式,tracking-by-detectiong策略,以便于提高多目标跟踪算法的实时性。以Faster R-CNN为检测算法,提出一种在线实时多目标跟踪算法,即在检测过程中,使用Faster R-CNN检测算法得到检测结果,在跟踪过程中,使用卡尔曼滤波算法根据通过检测器检测出来的检测框进行预测、更新得到跟踪目标的运动轨迹(预测框),最后在数据关联过程中,将得到的预测框与检测框通过IOU算法,判断旧目标是否有消失与是否有新目标的出现,再使用匈牙利算法进行数据关联。
1 多目标跟踪算法
在本文提出的算法中,使用FrRCNN为检测器进行目标检测网络的建立,利用FrRCNN所建立的多尺度预测机制对大小不同的目标行人进行检测。并根据一些目标状态量对目标进行表达,建立合理的目标模型,即目标的表示及用于传播目标标识进入下一帧的运动模型。然后使用卡尔曼滤波结合上一帧的跟踪结果预测跟踪目标的下一帧位置,对预测框和检测框交并比进行计算。然后根据匈牙利算法得分进行最佳匹配,在一次次的迭代中获得跟踪轨迹。针对目标遮挡问题,当目标被遮挡住时,检测框消失,目标跟踪判断容易出现错误,本文采用基于区域的质量评估网络(RQEN)技术,再联合多个帧的检测结果用加权的形式恢复被遮挡部分,提高跟踪结果的准确率。
1.1 目标检测
本文采用先进行目标检测后进行目标跟踪的基本框架。FrRCNN包含了两个阶段,第一阶段为特征抽取阶段,第二阶段为将特征进行区域分类。该框架的优点是两个阶段的参数是共享的,从而得到了一个有效的检测框架。
FrRCNN检测框架检测到的结果包括图像的帧号、目标的id、目标位置、检测目标的置信度信息、以及实际行人目标的3D坐标等信息。
1.2 跟踪预测(卡尔曼滤波)
卡尔曼滤波主要用来处理目标的运动预测问题,算法通过本帧匹配到的目标检测box来更新卡尔曼跟踪器,并不断重新计算卡尔曼增益来进行状态更新和协方差更新,最终输出得到最符合本帧观测情况的跟踪box。
在进行卡尔曼滤波状态预测时,设上一状态为xk-1=(Pk-1,vk-1),其中包含的目标状态量分别为位置和速度,在高斯分布状态下进行研究时,往往需要引入两个常量均值和协方差,用和Pk-1表示,并在考虑到外部控制量和外部噪音干扰问题,可得到下面关于卡尔曼滤波的状态控制方程,如下式:
其中FK为运动系数矩阵;BK为控制矩阵,uK为外部控制量,QK为协方差矩阵,用来表示外部的噪声。此时可以看出最优的估计是由上一帧的最优估计值结合对外部控制量进行预测得到的,而系统中的不确定行由上一次预测的不确定性加之外部噪音的干扰而得到。卡尔曼滤波器的原理图如图1所示。
图1 卡尔曼滤波器原理图
在本文算法的具体实践中,对卡尔曼滤波算法的一些参数进行了更新,以追求更高的实时性和鲁棒性,然后进入下一个预测方程和更新方程中不断迭代进行跟踪。
1.3 数据关联
数据关联的目的是实现当前帧的观测值与前者可能的跟踪目标之间的多个目标的匹配。数据关联的方法基本采用运筹学方法,比如匈牙利算法和KM算法等,本文进行数据关联所采用的算法是匈牙利算法。
匈牙利算法是部分图匹配最常见的算法,其核心是寻找增广路径,利用增广路径求二分图最大匹配的算法。
匈牙利算法其根源,实际上可以说是一个递归的算法,尽量使邻帧之间单独匹配。该算法最好由置信度较高的边开始匹配,才能更快更准地得到结果,而本文所用的FrRCNN检测器,刚好满足这一点,故而选择匈牙利算法进行数据关联。
1.4 质量评估网络
多目标跟踪中不可避免会存在目标进入和离开画面的情况。本文通过质量评估网络,可以补全遮挡信息,更有效识别目标状态。
输入网络的是一组集合,按两种方式处理,一种依靠全卷积神经网络形成轮廓的描绘;另外通过关键点检测人体的关键点,根据关键点划分几个区域。质量预测器对中间表示的不同区域的质量“打分”,各区域同时会提取出具有代表性的特征值。网络通过训练,能自提取特征、分辨人像完整的区域给予高分,即分配较高的权值,之后线性叠加各区域,补充被遮挡的部分。
2 实验结果与分析
为了验证算法的有效性,做了实验分析,部分实验结果如图2所示。行人在各种动作,如行走,转身,都可以被准确捕捉;当行人为儿童或是成人时,也都可捕捉到;当行人被遮挡,仅部分身体露出时,本文算法也可通过前几帧来预测当前帧行人位置,实现准确跟踪。
图2 行人多目标跟踪结果
为验证跟踪行人的准确率,本次测试从3段视频中检测跟踪行人,且帧数与行人数量递增,检测的详细数据如表1所示。
表1 测试结果
本文算法能跟踪检测到的人数明显大于实际人数,原因是,同一行人由于遮挡等因素影响,在未来几帧都没有检测到,当丢失的帧过多超过阈值后,当该行人再度出现时,本算法会判定该人为新出现目标,从而导致检测到的人数高于实际人数。
结语:本文提出了一种在线实时行人多目标跟踪算法,可以在实时在线应用程序中关联目标对象发挥更有效的作用。使用FrRCNN检测器来检测当前帧的跟踪目标位置,根据当前帧的位置利用卡尔曼滤波来预测下一帧位置。使用匈牙利算法,根据检测的目标位置和预测的目标位置方框位置的交并比进行数据关联和目标匹配,在不同目标的出现与消失期间使用了质量评估网络恢复被遮挡部分来提高跟踪的准确率,从而完成在线的实时跟踪。