APP下载

基于Mask R-CNN的多目标跟踪算法

2021-05-26张彩丽刘广文史浩东李英超

吉林大学学报(理学版) 2021年3期
关键词:直方图行人轨迹

张彩丽, 刘广文, 詹 旭, 史浩东, 才 华,3, 李英超

(1. 长春理工大学 电子信息工程学院, 长春 130022; 2. 长春理工大学 光电工程学院, 长春 130022;3. 长春中国光学科学技术馆, 长春 130117)

0 引 言

目标跟踪是计算机视觉领域中的一个重要研究方向, 在军事和民用领域应用广泛, 如视频监控、 人机交互、 无人驾驶、 虚拟现实和增强现实及医学图像处理等. 目标跟踪包括单目标跟踪和多目标跟踪. 单目标跟踪可通过目标的表观建模或者运动建模, 处理光照、 形变、 遮挡等问题; 而多目标跟踪问题较复杂, 除单目标跟踪遇到的问题外, 还要考虑目标间的关联匹配问题, 且在多目标跟踪任务中经常会遇到目标的频繁遮挡、 轨迹开始终止时刻未知、 目标过小、 表观相似、 目标间交互、 低帧率等问题.

多目标跟踪主要目的为在给定的图像序列中, 找到该图像序列中的运动物体, 并将不同帧图像中的运动物体一一对应, 然后给出这些不同物体的运动轨迹. 根据是否应用检测可将多目标跟踪分为基于检测的跟踪与基于首帧图像框选的跟踪. 基于首帧图像框选的跟踪无法跟踪首帧图像外新出现的目标, 所以其应用场景有限; 随着近年检测技术的不断发展, 检测精确度与准确度都在逐步提高, 从而使基于检测的跟踪成为首选. 如连续能量函数最小化算法(MTT)[1], 其从运动的整体性出发, 将跟踪问题视为一个能量最小化问题, 先结合检测结果提出一个较贴合运动特征的能量函数, 然后求得该能量函数的最优解, 即为跟踪结果.

多目标跟踪的目标物体可以是任意的, 如行人、 车辆、 运动员、 各种动物等, 而目前研究最多的是行人跟踪, 所以本文的研究对象也设定为行人. 对于行人多目标跟踪的两个重要问题为: 行人目标可能具有相似性和行人目标可能出现被遮挡问题. 这两个问题都可由高准确率的检测器与高准确率数据关联解决.

近年来, 随着深度学习技术的发展, 其不仅应用于检测和识别中, 而且也越来越多地应用于基于检测的跟踪算法中. 利用深度学习得到精确的检测结果, 使最终的跟踪结果更准确. 如Wojke等[2]提出了结合深度数据关联度量方法的简易实时在线目标追踪算法(DeepSort), 该算法使用卷积神经网络(CNN)提取检测结果, 并通过运动信息与目标外观信息进行数据关联, 最后利用级联匹配完成长时间的多目标跟踪; Voigtlaender等[3]提出了双匹配注意网络在线多目标跟踪算法, 该算法将单目标跟踪与数据关联相结合, 使用时间注意网络对不同的目标分配不同的注意力分数, 最后使用空间注意力网络处理嘈杂检测和遮挡问题; 之后, Voigtlaender等[4]又提出了多目标跟踪与分割算法(MOTS), 该算法创建了一个像素标记的跟踪数据集, 并且提出一种新的多目标跟踪度量指标, 最终使用一种联合处理检测、 跟踪和分割与单一卷积网络的基线方法, 实现长时间的多目标跟踪. 由于目前的多目标跟踪算法大部分是基于检测的跟踪, 检测器和数据关联的优劣将对最终跟踪结果有重要影响.

基于深度学习的目标检测算法主要分为两类: two-stage算法和one-stage算法. 其中, two-stage算法是基于候选区域的目标检测算法, 经典方法包括R-CNN[5],Fast R-CNN[6],Faster R-CNN[7]和Mask R-CNN[8]等; one-stage算法是基于回归的端到端目标检测算法, 主流方法有YOLO[9],SSD[10]和DSOD[11]算法等. 这两种目标检测算法之间的主要区别在于其是否分为两个阶段进行检测, 前者由检测和分类两个阶段组成, 后者则将这两个阶段融合到一个阶段进行. 在性能上, one-stage网络速度快, 但two-stage网络准确率更高. 为了多目标跟踪结果的准确性, 本文选用two-stage网络中的Mask R-CNN作为检测网络.

数据关联优化算法可在当前帧图像到来时就给出当前帧图像检测结果与已有跟踪目标轨迹的关联匹配结果, 而不利用未来帧图像的信息, 从信号处理的角度即相当于一种滤波操作. 目前常用的目标关联方法有最近邻算法、 概率数据关联算法、 多假设多帧分配算法、 匈牙利算法等. 但这些数据关联算法在面对高相似度和遮挡问题时, 效果均不佳, 可能会出现跟踪失败的结果.

本文采用改进匈牙利算法作为数据关联算法, 针对发生遮挡的物体采用级联匹配方式. 首先使用Mask R-CNN[8]检测待跟踪目标, 再利用Kalman滤波器预测下帧图像中跟踪目标的位置与边界框大小; 然后采用改进匈牙利算法进行数据关联, 确定行人目标的运动轨迹; 最后针对发生遮挡的物体加入跟踪轨迹修正方案.

1 算法设计

为提高多目标跟踪的跟踪准确度及应对遮挡问题时有较好的跟踪效果. 本文使用Mask R-CNN作为检测器, 检测出当前帧图像中不同大小的行人目标并确定对应的检测框坐标及可信度; 将检测器检测的本帧结果输入到Kalman滤波器中预测下帧图像中行人目标的位置与边界框大小; 采用改进匈牙利算法利用检测结果与预测结果做数据关联, 以做到更好的匹配; 针对发生遮挡的物体加入跟踪轨迹修正方案, 以实现最终有效准确地跟踪. 最终实现了55.1%的跟踪准确度且针对遮挡问题效果较好.

1.1 目标检测网络

Mask R-CNN深度神经网络由许多基础网络层组成, 主要有卷积层、 池化层、 激活函数层、 Batch normlization层以及全连接层等.本文选用Mask R-CNN网络作为检测器, 在Faster R-CNN的基础上, 加入Mask branch(FCN)用于生成物体的掩模(object mask), 同时把RoI pooling修改成RoI Align用于处理mask与原图中物体对不齐的问题. Mask R-CNN整体结构如图1所示.

图1 Mask R-CNN整体结构

由图1可见, 卷积神经网络(CNN)部分使用深度残差网络(ResNet101)进行一系列卷积操作提取图像特征, 与特征金字塔网络(FPN)共同构成骨干网络. ResNet有5层特征输出, FPN的作用是特征融合. 这些不同的组合特征, 一方面经过区域推荐网络(RPN)判断前景和背景进行二值分类并生成候选框, 另一方面结合生成的候选框通过RoI Align 操作与特征图中的像素对应, 随后的一个分支用于分类和回归, 另一个分支用于分割生成掩膜.

Mask R-CNN的损失函数计算过程为

L=Lcls+Lbox+Lmask,

(1)

其中:Lmask为分割误差;

(2)

(3)

掩膜分支对于每个RoI有K个m×m维的输出, 编码了K个m×m像素的二元掩膜,k为输入维度, 即类别数. 在每个维度都采用Sigmoid函数, 将Lmask定义为平均二元交叉熵损失. 对于每个与真实边界框相关联的RoI,Lmask仅在第k个掩膜上定义. 将图像输入Mask R-CNN后可得到行人目标的位置信息, 包括行人目标检测框左上角的坐标、 检测框的长宽及检测框中检测物体的置信度, 为下一步跟踪器提供信息数据.

1.2 跟踪器

当用Mask R-CNN获得每帧图像中行人目标对应的检测框坐标及可信度后, 需执行对同一行人目标的跟踪操作, 并使其形成轨迹. 本文采用Kalman滤波器[12]预测下一帧图像的目标位置, 将Mask R-CNN的检测结果输入Kalman滤波器, 得到该帧的估计值; 然后采用改进匈牙利算法进行数据关联, 利用检测框与预测框的交并比及颜色直方图, 确定行人目标的运动轨迹; 最后对运动轨迹中发生遮挡的物体加入跟踪轨迹修正方案, 从而得到更精准的跟踪轨迹.

1.2.1 Kalman滤波

Kalman滤波利用目标的动态信息去掉噪声的影响, 得到一个关于目标位置的估计[13]. 通过递归估计方法, 在已知上帧图像的估计值(上帧图像Kalman滤波所得预测结果)及当前帧图像的观测值(当前帧图像的Mask R-CNN检测结果)后, 计算当前帧图像的估计值. Kalman滤波算法通常通过状态方程和观测方程描述[14]:

xk=Axk-1+Buk-1+ωk-1,

(4)

xk=(xok,vxk,yok,vyk)T,

(5)

zk=Hxk+vk,

(6)

zk=(xok,yok)T.

(7)

式(4)为状态方程,xk为第k帧图像的系统状态向量(第k帧图像估计值),A和B为状态转移矩阵,uk-1为系统控制量,ωk-1是协方差为Q的零均值高斯噪声. 由式(5)可知,xk包含x和y方向及位置. 式(6)为观测方程,zk为第k帧图像的系统观测向量(第k帧图像的检测值),H为观测矩阵,vk是协方差为R的零均值高斯噪声. 由式(7)可知,zk包含x和y方向的位置.

Kalman滤波器算法由5个主要方程组成, 其流程如下:

1) 使用状态方程根据上一帧图像的状态预测本帧图像的状态. 若令图像当前帧为k, 则用第(k-1)帧状态, 可预测图像第k帧(本帧)的状态为

(8)

2) 完成图像的本帧状态预测后, 需更新系统协方差. 估计误差协方差更新方程为

(9)

3) 通过1)和2)得到了系统的预测值, 整合预测值和观测值, 第k帧图像最优解的求解方程为

(10)

(11)

(12)

Kalman滤波可去除检测结果中的噪声部分, 在无适合匹配检测框的情况下, 可使用Kalman滤波预测物体的位置. 经过Kalman滤波得到跟踪预测框的位置信息, 可为下一步应用匈牙利算法提供信息数据.

1.2.2 改进的匈牙利算法

匈牙利算法本质为一个指派问题, 是图论中寻找最大匹配的算法. 二分图也称为二部图, 是一种特殊模型[15]. 将一个图的顶点划分为两个不相交子集, 使得每条边都分别连接两个集合中的顶点. 如果存在这样的划分, 则该图为一个二分图. 在多目标跟踪中可将二分图理解为视频中连续两帧图像中的所有检测框, 第一帧图像所有检测框的集合记为U, 第二帧图像所有检测框的集合记为V. 同一帧图像的不同检测框不会为同一个目标, 所以不需要互相关联, 相邻两帧图像的检测框需要相互联通, 最终将相邻两帧图像的检测框尽量两两匹配.

传统的匈牙利算法是单纯基于交并比(iou)的算法, 即求得Mask R-CNN所得检测框与Kalman滤波所得预测框的iou, 通过匈牙利算法求得iou最大的匹配. 此时虽然速度快, 但准确度较差. 本文在原基于交并比(iou)的匈牙利算法基础上加入表观特征的颜色直方图[16]. 颜色直方图属于表观特征中的目标表示, 颜色特征可有效表示全局目标, 其通过描述不同色彩在整张图像中所占的比例表示图像特征, 且具有不受图像旋转和平移变化影响的优点. 一般颜色直方图在HSV色系下提取.

将HSV的3个分量进行量化, 量化后的取值范围为{0,1,2,…,LH-1},{0,1,2,…,LS-1},{0,1,2,…,LV-1}, 按(H,S,V)形式排列取值范围为{0,1,…,LH-1,…,LH+LS-1,…,LH+LS+LV-1}. 设颜色i的像素点有mi个, 则图像的像素点总数为

(13)

颜色i出现的概率为

(14)

pi即为颜色直方图.

将颜色直方图应用于目标跟踪时, 可采用巴氏距离计算两个直方图的相似度, 公式如下:

(15)

(16)

(17)

其中ρ(i,j)为两个直方图的巴氏系数,i(k)为Kalman滤波器预测目标图像的直方图,j(k)为Mask R-CNN检测目标图像直方图分布,d(i,j)为两个直方图的巴氏距离, 其值越小则两个图相似度越高,Cappr(i,j)为表观关联系数.

对于本文多目标跟踪中的数据关联, 首先已完成了用Mask R-CNN网络检测出当前帧图像中的n个行人目标以及边界框的坐标位置, 使用Kalman滤波根据上帧图像的跟踪结果完成了当前帧图像行人目标位置的估计, 得到m个预测结果, 即m条轨迹. 在已获得的Mask R-CNN检测和Kalman滤波获得的预测结果后, 先计算两者的交并比(iou)[17], 再获得前后帧目标图像的颜色直方图, 最后利用iou和直方图特征加权构造关联矩阵, 表达式如下:

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

(18)

其中Ciou(i,j)为检测框与预测框的面积交并比iou,Cappr(i,j)为表观关联系数,α,β为归一化权重系数. 最后将匈牙利算法的关联结果与Kalman滤波器预测结果进行匹配, 形成最终的多轨迹跟踪结果.

1.2.3 异常轨迹修正

图2 遮挡情况下的行人跟踪结果

当跟踪目标被部分遮挡时, 利用改进匈牙利算法进行数据关联, 虽然可能跟踪到目标, 但效果较差. 例如, 一个行人从开始被遮挡到遮挡结束的过程如图2所示. 由图2可见, 遮挡前后跟踪目标的ID发生了转变, 即跟踪轨迹有发生中断的情况[18]. 针对该现象, 本文提出轨迹修正算法, 以减少因遮挡出现的轨迹中断, 即跟踪目标ID变换现象.

1.3 算法流程

本文算法流程如图3所示. 先采用Mask R-CNN网络进行检测操作, 检测出视频帧图像中的待跟踪行人目标; 然后利用Kalman滤波对下一帧图像中行人目标的具体位置进行估计和预测; 最后使用改进的匈牙利算法将检测与预测进行匹配, 得到多条长时间目标跟踪轨迹.

图3 本文算法流程

步骤1) 用Mask R-CNN网络进行检测, 检测出所有图像中目标的坐标位置及其置信度;

步骤2) 根据第一帧图像的检测信息初始化Kalman滤波器, 并预测下一帧图像中各行人目标的位置和大小;

步骤3) 读入下一帧图像的检测结果, 计算此帧图像检测结果与预测结果的iou与颜色直方图, 计算加权关联矩阵, 用改进的匈牙利算法完成匹配;

步骤4) 若匹配结束后存在检测目标剩余, 则用这些剩余检测结果初始化新的Kalman滤波器; 若匹配结束后存在预测目标剩余, 则这些目标可能已消失在视野中或发生了遮挡情况, 用异常轨迹修复算法修复轨迹, 记录此时图像目标消失的帧数, 当图像目标消失帧数大于10帧时, 将该目标认定为目标已丢失并删除其对应的Kalman滤波器;

步骤5) 判断是否已遍历整个图像集, 若已处理全部图像, 则结束程序; 否则转步骤3).

2 实 验

本文实验数据集采用MOT16[19], 该数据集包括两部分: 训练集与测试集. 数据集包含多个行人目标, 且存在目标交互和遮挡现象. 这些数据集为摄像头拍摄的一组连续图像, 从第一张图片到最后一张图片, 其中包含多个目标, 不断有出有进, 不断运动. MOT16训练集与测试集中各包含7组图像集. 实验环境: 8.00 GB内存, 64位操作系统, 软件为Python 3.6.10.

2.1 对比方法

为更好证明本文算法的优势, 采用两组对比实验结果进行系统分析. 第一组为本文算法在MOT16数据集不同视频序列的跟踪结果, 分析该算法在不同场景的实验结果; 第二组为本文算法与其他4种算法在MOT16数据集上跟踪结果的对比, 4种对照算法为CppSORT[20],HCC[21],MOTDT[22]和MLT[23].

2.2 评价标准

实验采用综合评价指标跟踪准确率(MOTA)、 跟踪精度(MOTP)、 成功跟踪的目标轨迹占真实目标轨迹比例(MT)、 丢失的目标轨道占真实目标轨迹比例(ML)、 跟踪过程中发生的目标标签切换总数(ID_SW)、 误检目标总数(FP)和漏检目标总数(FN)进行定量分析[24].

2.3 实验结果及分析

2.3.1 第一组实验结果及分析

将本文算法在不同视频序列上的跟踪量化结果进行对比. 在MOT16测试集所有视频序列上进行实验, 所得量化结果列于表1. 本文主要研究跟踪准确度及当存在目标遮挡情形时的标签切换问题. 本文算法在不同测试集中的跟踪准确度与标签切换总数的性能分析如图4所示.

表1 本文算法在MOT16测试集不同序列上的量化跟踪结果

图4 本文算法在不同测试集上的性能(标记点为MOTA和ID_SW)

由表1可见, 综合各项性能指标, 本文算法在MOT16-03视频序列上的跟踪效果最佳, 在MOT16-14视频序列上的跟踪效果最差. 同时通过对图4中各标记点的观察, 在权衡MOTA和ID_SW后也可得到上述结论. 导致这种现象的原因为MOT16-03视频序列背景简单, 行人目标大小适宜且与背景对比明显; MOT16-14原视频序列背景复杂, 许多行人目标在视野中过小且与背景对比不明显. MOT16-01视频序列存在待跟踪行人目标过小的情况, 使得最终跟踪效果一般; MOT16-06视频序列的图像分辨率过低, 影响了最终的跟踪效果; MOT16-07视频序列中存在行人目标过小且在视频中存在镜面成像的现象, 这些因素都会影响最终的跟踪结果; MOT16-08视频序列存在行人目标过小且部分行人目标与背景区分度较低的现象, 影响了跟踪结果; MOT16-12视频序列中出现了相机晃动的现象且背景变化跨度较大, 导致最后跟踪效果不佳. 因此, 跟踪效果除与算法自身的性能相关外, 还与相机的分辨率、 背景的复杂度、 行人目标的大小等因素密切相关.

2.3.2 第二组实验结果及分析

将本文算法与MLT,MOTDT,HCC,CppSORT算法在MOT16数据集上的量化跟踪效果进行对比, 结果列于表2. 目标跟踪准确率及标签切换总数的性能分析如图5所示.

表2 不同算法在MOT16数据集上的量化跟踪结果

图5 不同算法的跟踪性能(标记点为MOTA和ID_SW)

由表2可见: 本文算法的MOTA=55.1%, 比排在第二位的MLT算法(MOTA=52.8%)高2.3%; 本文算法的MT=24.6%为5种算法中的最大值, 比排在第二位的MLT算法(MT=21.2%)高3.4%; 且本文算法在数据集MOT16中的误检数目和漏检数目最少, 为2 992个和78 187个. 上述结果证明了本文算法有良好的跟踪准确度且可有效解决目标被遮挡问题的轨迹丢失问题及标签切换问题. 由图5可见, 本文算法与MLT算法在跟踪准确度和遮挡后的标签切换问题中均取得了较好效果.

图6 不同算法在跟踪目标被遮挡情形下的跟踪效果

为直观显示本文算法在处理目标遮挡问题时的优势, 在MOT16-01视频序列上用本文算法与MLT,MOTDT,HCC,CppSORT算法进行对比实验, 部分截图结果如图6所示, 其中: 第一行为第413帧图像目标遮挡发生前; 第二行为第425帧图像目标遮挡正在发生; 第三行为第435帧图像目标遮挡已结束. 对比5种算法对同一帧图像的跟踪效果可知, 本文算法与MLT算法在如图6所示的图像中, 遮挡前后不仅可准确地跟踪到行人目标, 且未发生标签切换; 而MOTDT算法在第435帧图像出现了漏检行人目标的问题且存在跟踪到的目标出现了标签切换问题; HCC算法虽然在如图6所示的3帧图像中都框选到了行人目标, 但存在遮挡前后行人目标标签切换问题; CppSORT算法在3帧图像中均出现了漏检情况, 跟踪精确度较低. 实验结果表明, 本文算法与MLT算法在具有遮挡问题的跟踪实验中均可很好地恢复被遮挡目标的标签, 完成持续的跟踪操作.

为进一步对比本文算法与MLT算法的优劣, 对比分析两种算法在MOT16-03数据集上的跟踪结果, 部分截图结果如图7所示. 对比两种算法在第670帧、 第1 016帧、 第1 165帧图像目标的跟踪结果可知, 当行人目标存在部分遮挡问题、 姿态问题和光线问题时, 本文算法的效果更好; 而MLT算法易出现漏检现象. 实验结果表明, 本文算法对不同姿态的、 存在部分遮挡的、 存在光线问题的目标跟踪均有较好的效果.

图7 本文算法与MLT算法目标跟踪效果对比

综上所述, 本文使用Mask R-CNN作为检测器, 实现了基于检测的多目标跟踪. 当检测结果输入跟踪器后, 通过Kalman滤波器预测下一帧图像的目标位置, 得到先验概率; 在已知检测结果与预测结果的同时, 计算两种结果的交并比及颜色直方图, 通过加权和的形式生成关联矩阵, 然后利用匈牙利算法完成匹配; 最后利用迭代完成对整个视频序列的处理. 针对待跟踪视频序列中的遮挡问题引入了异常轨迹修正机制, 即根据跟踪框的高宽及中心位置的对比, 修正异常跟-踪轨迹. 实验结果表明, 本文算法在MOT16数据集上的跟踪准确率达55.1%且减少了标签转换总数. 但由于本文算法基于Mask R-CNN实现, 算法的速度还有待进一步提高.

猜你喜欢

直方图行人轨迹
符合差分隐私的流数据统计直方图发布
毒舌出没,行人避让
轨迹
轨迹
路不为寻找者而设
用直方图控制画面影调
轨迹
进化的轨迹(一)——进化,无尽的适应
我是行人
中考频数分布直方图题型展示