APP下载

运动信息引导的目标检测算法

2022-10-13胡海苗沈柳青高立崑李明竹

北京航空航天大学学报 2022年9期
关键词:置信度分支前景

胡海苗 沈柳青 高立崑 李明竹

(北京航空航天大学 计算机学院, 北京 100083)

近年来,随着监控设备的不断更新换代,越来越多的便捷实惠的视频监控设备被大范围地应用于日常生活之中[1]。 这些随处可见的监控设备不仅记录着人们的生活,而且保障着人们的安全。但现实监控场景是比较复杂的,场景中目标的尺寸、姿态也是多种多样,会出现被遮挡目标、小目标等容易漏检的困难目标,降低目标检测算法的准确率。 因此,针对固定摄像机拍摄出来的监控视频进行目标检测依然是一项充满挑战的任务。

在目标检测算法的发展历程中,算法种类可以分为传统的目标检测算法和在卷积神经网络基础上发展起来的目标检测算法。

传统的目标检测算法又可以分为2 类:一类是利用手工设计特征的检测算法;另一类是利用运动变换信息的检测算法。

对于利用手工设计特征的目标检测算法,都遵循着同样的流程,分别是区域选择、特征提取和分类器分类。 首先是区域选择,也被称为候选区域提取,是为了从图像中生成大量的候选区域,用于下一步的特征提取。 在特征提取阶段,一般使用手工设计的特征,也就是纹理、颜色等底层特征,如梯度方向直方图特征(histogram of oriented gridients, HOG)[2]、局部二值模式(local binary pattern, LBP)[3]、尺度不变特征变换(scale invariant feature transform, SIFT)[4],这些底层特征经过编码学习后,能够得到更深一层的特征,包括主成分分析(principal component analysis, PCA)特征、线性判别分析(linear discriminant analysis, LDA)特征等。 总体来说,手工设计的特征在光照变化、遮挡等复杂场景下的鲁棒性较差,因此会导致目标检测的准确率不高。 进入到分类阶段,使用训练过的分类器对提取的特征进行分类,得到目标检测的结果。 另一种传统的目标检测算法是利用运动变换信息对目标进行检测。 具体来说,是利用运动目标检测算法,如帧间差分法[5]、背景差分法[6-8]等,生成运动前景图,从而得到运动目标的位置。

基于卷积神经网络的目标检测算法可以分为单阶段算法和两阶段算法,不同在于是否有明确的感兴趣区域(region of interest,ROI)提取步骤。在单阶段算法中,会将整幅图像划分为小格子,在小格子上按照预先设定的锚框直接对图像进行分类和回归,典型算法有SSD 系列算法[9]、YOLO 系列算法[10-13]、RetinaNet 算法[14]。 两阶段算法通常会使用区域建议网络(region proposal network,RPN),通过预先设定的锚框,提取出ROI,再通过全连接网络针对提取出的ROI 进行分类和回归操作,典型算法有R-CNN[15]、Fast R-CNN[16]、Faster R-CNN[17]、Cascade R-CNN[18]。 相比较而言,单阶段检测器时间效率更高,但两阶段检测器的准确率更高。

基于卷积神经网络的目标检测算法的性能很大程度上依赖于训练时所使用的数据集,而在大部分数据集中,困难目标的数量较少,导致模型分布不均衡,无法对该类目标有充分的学习;同时,困难目标由于特征不显著,很容易被检测器忽略,造成漏检;不仅如此,基于卷积神经网络的目标检测算法还要求对数据要有较高质量的标注,如果要对困难目标进行标注,需要花费较多的人力,对数据集中的目标进行仔细的辨认和精准的标注,代价比较昂贵,甚至在标注时很可能会引入干扰,反而降低了检测器的性能。 除此之外,现有的基于卷积神经网络的目标检测算法对候选目标框置信度的预测考虑不够全面,只考虑到了分类置信度,即目标属于该类别的概率。 但是,分类置信度高并不能说明该候选目标框的位置也是十分精准的,只考虑分类置信度,可能会导致定位精准的候选目标框被筛除,影响目标检测算法的准确率。

传统目标检测算法中的利用运动变换信息的目标检测算法[5-8],可以快速发现困难目标,并且运动前景图中的前景位置能够体现目标的空间位置信息。 而在室外监控场景下,大部分的目标都是能提取到运动信息的,同时,处于运动状态的目标是更应该关注的目标。 因此,可以考虑将运动信息与目标检测算法相结合,提升目标检测的准确性。 但是运动目标检测算法的缺点也是显而易见的,该类算法主要针对的是运动目标的检测,因此,在目标静止或运动幅度不大时,很难或不能完整提取出目标区域。

本文提出了一种运动信息引导的目标检测算法主要创新点如下:①提出一种改进的运动目标检测算法,在ViBe 背景建模算法[7]的基础上进行了改进,改进后的算法能够减少静止目标融入背景的情况;②提出一种基于运动信息的多尺度特征融合模型,将以运动前景图为主的运动信息作为空间权重与特征金字塔网络提取的特征图相融合;③提出一种运动前景图指导的定位分支模块,根据前景的位置信息学习预测候选目标的定位置信度,作为目标分类置信度的补充。

1 相关工作

目前来说,运动信息在目标检测算法中的应用分为2 种:①传统目标检测算法中利用运动变换信息的检测算法;②将运动信息(主要是光流信息)引入到卷积神经网络中,简化卷积神经网络特征的提取或进行多帧特征的融合。

深度特征流(deep feature flow, DFF)[19]方法首次将光流信息引入到了目标检测网络中,Zhu等发现,在基于卷积神经网络的目标检测算法中,最耗时的步骤是特征提取,并且对于一个连续的视频序列来说,相邻帧提取的特征差别并不大,因此,在卷积神经网络中引入了光流信息来预测特征图,减少神经网络在提取特征方面的时间开销。DFF 网络中,将视频帧分为关键帧和非关键帧。卷积神经网络对关键帧提取特征;而对非关键帧,会与关键帧一起输入到光流网络中,得到光流信息,再根据光流信息对关键帧的特征进行修正,作为非关键帧的特征进行后续的分类回归。

光流引导的特征融合(flow guild feature aggregation, FGFA)[20]网络在DFF 网络的基础上,利用光流信息聚集相邻帧上的特征,提高检测的精度。 对于当前帧,FGFA 网络会将其前后各k帧的特征按照DFF 网络的方法预测出对应的当前帧特征,再将这2k帧特征按照权值平均的方法与当前帧特征聚合,将聚合后的特征进行后续的分类回归。

光流信息可以通过深度学习方法或传统方法获取。 深度学习方法需要进行额外的标注和训练,传统方法在背景发生剧烈变化时会失效,并且光流信息对光照的变化比较敏感,也不能像运动前景图那样明确地反映出来前景的位置。 而本文的应用场景是针对固定摄像机拍摄的监控视频,不用考虑到周围环境的运动,因此,可以使用帧间差分法或背景差分法来获取运动信息,运动信息的获取更加快速,能更加准确地反映前景位置。 同时,本文引入运动信息,目的是采用一种便捷的方式为卷积神经网络提供目标的位置信息,而不用进行代价昂贵的标注,光流信息的深度学习方法需要引入额外的标注,反而违背了这一初衷。

为了提高检测器的定位精度,目前使用的改进方法大致有2 类:一类是选择更加能够反映定位准确性的定位损失函数;另一类是在检测器中加入定位置信度的预测。 一般来说,判断预测目标定位是否精准,是通过计算预测目标的检测框和标注信息中真值框的IoU 值。 但是IoU 存在一个问题,对于没有重叠的2 个框,因为IoU 值为0,所以无法进行学习训练。 在这种情况下,有学者提 出 了 GIoU ( generalized intersection over union)[21]的概念。 GIoU 同时关注了重叠区域和不重叠区域,即使两框没有重叠,也能计算出距离值,取值范围为[ -1,1],越接近1 表示两框的重叠程度越大,越接近- 1 表示两框的距离越远。而对于在检测器中加入定位置信度预测的方法,IoU-Net[22]中为检测器设计了一个独立的定位分支,在Faster R-CNN 网络的基础上,使用真值框和检测框IoU 作为定位置信度进行学习;IoUaware RetinaNet[23]是在RetinaNet 网络的基础上,在回归分支中增加了一个模块预测定位置信度。

以上方法对于定位精度的衡量都是根据检测框和真值框来计算的,需要精确的标注信息,但是对于数据集中的困难目标,在很多时候是缺少标注的,而在运动前景图中可以显示出这类目标的位置,因此,可以通过计算运动前景图中前景的外接矩形框和预测目标检测框的匹配程度,作为候选目标的定位置信度指标。 同时,相较于采用独立的定位分支,本文在检测器中直接增加一个定位分支,使用与回归分支和分类分支相同的特征,学习候选目标的定位置信度,保证特征的一致性。

2 本文方法

在室外视频监控的环境下,针对基于卷积神经网络的目标检测算法对困难目标标注代价高和置信度预测时考虑不全面这2 个问题,本文提出了一种运动信息引导的目标检测算法。 从基于卷积神经网络的目标检测算法的特征提取和置信度预测这2 个方面展开研究,分为3 个模块:运动前景图获取模块、多尺度特征融合模块和定位分支模块。 网络结构如图1 所示。

图1 本文方法网络结构Fig.1 Network structure of the proposed method

本文所提目标检测算法以原始视频帧和视频帧对应的运动前景图作为输入。 运动前景图获取模块的作用是获取视频帧对应的运动前景图。 本文针对的是摄像机固定下的监控场景,因此选取了快速的、无监督的ViBe 背景建模算法来获取运动前景图,并对ViBe 算法进行了改进。 改进后的算法能够减少静止目标融入背景或提取前景有残缺的情况。 整个网络结构可以看作2 个阶段:①特征提取阶段。 通过ResNet 的骨架网络输出一系列的特征图,经过特征金字塔网络(feature pyramid networks, FPN)输出金字塔网络的各层尺寸不同的特征,通过本文提出的多尺度特征融合模块,将运动信息与金字塔网络的各层输出进行融合,形成各层最终的特征图。 ②检测阶段。将特征提取阶段获取的特征图输入到检测器中进行检测,经过分类分支、回归分支及本文提出的定位分支,得到检测框、分类置信度和定位置信度,再经过非极大值抑制(non maximum suppression,NMS)[24]得到最终的检测结果。

2.1 运动前景图获取模块

ViBe[7]算法是一种像素级的背景建模算法。在初始化时会对像素点建立一个邻域集合,对于之后新的图像帧,为每个像素点计算其与每个邻域像素点的欧氏距离。 如果该像素与足够多的邻域像素点(一般设置为20)欧氏距离小于设置的阈值(一般为16),则认为该像素点属于背景像素;否则认为该像素点属于前景像素,由此生成运动前景图。

运动目标检测算法存在一个问题,对于视频中运动一段时间后长时间静止的目标,会将其判断为静止目标,或在检测的前景上出现空洞。 为了减少这种情况的发生,本文对ViBe 算法进行了改进,利用历史帧与当前帧的相似度对静止目标作二次判断,避免静止目标融入到背景之中。

改进的ViBe 背景建模算法会为每个像素点设置一个前景计数器fgCount 和一个前景标志fgFlag。 初始时前景计数器fgCount 设置为0,表示该像素点被判断为前景的次数为0,前景标志fgFlag 也设置为0,表示该像素为背景。

对于输入的图像,将图像中的各个像素与初始背景模型进行匹配度计算。 如果像素点与背景模型匹配,则认为该像素点为背景点,将该像素点的fgCount 和fgFlag 都置为0,对该像素点对应的邻域背景模型进行更新;如果不匹配,则认为像素点为前景点,fgCount 值加1,fgFlag 置为1,表示该像素点为前景。

当一个像素的前景计数器fgCount 达到阈值(设置为10)时,认为该前景已经持续存在了一段时间,需要判断该前景对应的是否为静止目标。判断方法是:计算该像素与所保存的历史背景帧的对应像素的误差平方,确定相似度,如果相似,认为该点为静止目标,fgCount 置为0,fgFlag 保持为1;否则fgCount 和fgFlag 都置为0,对该像素点对应的邻域背景模型进行更新,并用当前帧的像素更新历史背景帧的对应像素。

图2(a)为原始视频帧,图2(b)为ViBe 算法得出的前景图,图2(c)为改进的ViBe 算法得出的前景图,第1 行中目标长时间静止,消失在前景图中,改进的ViBe 算法能够得到静止目标的前景,第2、3 行中目标静止导致前景图中有空洞,改进的ViBe 算法能够填补前景中的空洞。

图2 运动前景图结果比较Fig.2 Comparison of foreground map results

2.2 基于运动信息的多尺度特征融合模块

基于运动信息的多尺度特征融合方法网络结构如图3 所示。

图3 基于运动信息的多尺度特征融合模块网络结构Fig.3 Network structure of multi-scale feature fusion module based on motion information

为了获取更多目标的信息,本文在运动前景图的基础上,将原始视频帧的灰度图与运动前景图进行通道拼接,得到引导图。 这样,不仅可以对运动前景图补充信息,而且可以将运动前景图也扩充为三通道的图像,方便后续操作。 同时,基于运动信息的多尺度特征融合模块是在特征层面进行运动信息与特征图的融合操作,因此,为了保证最终获得的运动信息和卷积神经网络产生的特征图具有相同的尺寸和通道数,会将获得的引导图也输入到相同的骨架网络中,得到最终的运动信息。

输入的原始视频帧经过骨架网络和特征金字塔网络之后得到了自上而下X1、X2、X3、X4四层特征,同样,运动前景图与原始图像灰度图通道拼接后的引导图经过骨架网络后得到了G1、G2、G3、G4四层的运动信息,这些信息是特征融合模块的输入。 下文就以第4 层的特征融合模块为例进行介绍,特征融合方式如图4 所示。

图4 多尺度特征融合模块示意图Fig.4 Schematic diagram of multi-scale feature fusion module

式中:X′1、X′2、X′3分别为将X1、X2、X3经过上采样操作处理成与X4相同大小的特征;M4为将X4与获取的引导图拼接在一起,经过一个简单的卷积网络后得 到的 注意力分布图;X1→4、X2→4、X3→4分别为特征金字塔网络前3 层特征图与注意力分布图按元素相乘后的特征;X~4为第4 层融合后的特征。

其他层的特征融合模块的操作与第4 层类似,通过这种方式将运动信息与特征金字塔网络各层特征融合,使得特征图重点关注可能存在目标的区域。

2.3 运动前景图指导的定位分支模块

本文根据计算的候选目标检测框与前景区域外接矩形框的匹配程度作为衡量候选目标定位置信度的指标。 受到IoU 计算公式的启发,考虑可以用两者区域交集的面积比上并集的面积来表示匹配程度。 但是通过对运动目标前景区域的观察发现,在目标比较密集的区域,其前景区域会粘连在一起,提取的外接矩形框也会包含多个目标,使用两者区域的并集作为分母就会得到一个比较小的值,无法正确地反映两者的匹配程度。 因此,在计算检测网络提取到的预测目标检测框与前景图中的外接矩形框匹配程度时,对IoU 的计算方法进行了改进,如下:

本文在目标检测算法的检测器中增加一个分支作为定位分支,该分支与分类分支和回归分支共享2 个全连接层,3 个分支保持特征的一致性。增加定位分支后的检测器结构如图5 所示,图中各组成结构上的数字代表该结构输出的大小,C表示使用的数据集中目标种类的数目。

图5 引入定位分支后的检测器结构Fig.5 Detection head structure after introducing localization branch

定位分支和分类分支、回归分支一样,会共同参与到对于全连接层的训练中,提升全连接层在提取特征时的定位准确率,使候选目标能够得到一个定位置信度的同时,也能够提升回归分支中检测框的定位精度。

3 个分支使用的训练损失函数各不相同,分类分支使用了交叉熵损失函数:

式中:Ltotal为整个网络的损失。

在测试阶段,通过定位分支获得每个预测目标的定位置信度,再与分类分支获得的分类置信度进行加权求和,获得目标最终的置信度:

confidencescore= ∂·clsscore+ (1- ∂)locscore(11)

式中:confidencescore为目标最终的置信度;clsscore从分类分支获得,为候选目标的分类置信度;locscore从定位分支得到,为候选目标的定位置信度;∂为权重,本文取值0.6。 得到预测目标的最终置信度后,用这一置信度指导NMS 方法进行重复候选框的筛除,获得检测结果。

3 实验结果与分析

3.1 实验设置

本文实验在Ubuntu 系统下进行,整体神经网络框架基于Pytorch 构建而成。 程序编写中使用的主要编程语言为Python3,同时为了方便程序的管理和使用,通过anaconda 搭建了一个虚拟环境,全部实验都在虚拟环境下进行。 除此之外,在硬件方面,使用了GPU 加速训练过程。

本文使用的基线方法是Cascade R-CNN[18]网络,包括ResNet-50 骨架网络、特征金字塔网络、RPN 网络和级联检测网络。 在训练策略上采用联合训练方法,使用随机梯度下降法(stochastic gradient descent, SGD)训练策略,初始学习率设置为0.001,使用step 方法进行学习率的调整,动量设置为0.9,权值衰减系数为0.000 1。

本文在进行实验时选用了3 个数据集:①笔者所在实验室自建的且已经公开发表的数据集DML_det[25];②DukeMTMC[26]数据集中的一部分数据;③PETS09[27]数据集中的部分数据。 其中,DML_det 数据集来自于笔者所在实验室,拍摄于北京航空航天大学,时间跨度较长,数据集中的目标较小。 训练阶段使用了DML_det 中的18 段视频段,测试阶段使用了其中10 个视频段,并且对视频段进行了采样间距为100 帧的采样。 Duke-MTMC 数据集拍摄于杜克大学校园。 本文选择了Cam1 和Cam9 两个场景进行实验,同样使用了采样方法,每隔100 帧选取一张图像,共获得了2 556帧图像,其中一半图像作为训练集,另一半图像作为测试集。 PETS09 数据集拍摄于英国雷丁大学,选择了S0 作为训练集,S2 中的L2 难度的测试集作测试。 S0 中共包含7 163 张训练图像,S2 的L2 中共包含1 131 张测试图像。 针对使用的3 个数据集,在训练测试时只对其中的行人目标进行检测,骑自行车或三轮车的行人也归属于行人类别。

评价标准方面,本文采用了与COCO 数据集相同的评价方式,即通过平均精确率(average precision, AP)和召回率(Recall)来评价模型[28]。

对于网络给出的检测框,只有当其与真值框计算出的IoU 大于设定的阈值时,才认为检测结果是正确的。 这个目标被成功地检测出来,则属于正确的正样本(true positive, TP),而如果有一个被标注的目标,没有检测框与其对应,就认为这是一个错误的负样本(false negtive, FN),当一个没有被标注过的区域出现了检测框,就认为这是一个错误的正样本(false positive, FP)。 基于上述对不同检测结果的定义,精确率(Precision)和召回率(Recall)的计算公式如下:

式中:Recall 表示正确检测出来的目标占所有目标的比率。

本文采用了多个IoU 阈值对提出的算法进行评估,其中AP@ [0.5:0.95]代表选取了从0.5、0.55 到0. 95 的IoU 阈值,计算这些阈值下的平均精确率,再求这些平均精确率的平均值,Recall@ [0.5:0.95]代表从0.5、0.55 到0.95 的IoU 阈值下的平均召回率。

3.2 对比实验

本文提出了一种基于运动信息的多尺度特征融合方法。 利用运动目标检测算法可以获得目标位置信息,尤其是困难目标信息的特点,并对运动目标检测算法进行改进,将运动前景图作为空间权重融合到卷积神经网络提取的特征图中。 同时,提出了一种运动前景图指导的定位分支模块,根据运动前景图中前景的空间位置,衡量卷积神经网络候选目标的定位置信度。

为了说明本文算法对目标检测算法准确率的提升,选取了几种近年提出的目标检测算法,同样在 DML _ det 数 据 集、 DukeMTMC 数 据 集 和PETS09 数据集上进行了训练和测试,与本文算法做对比,实验结果如表1 ~表3 所示。

从表1 ~表3 的实验结果可以看出,YOLOX、YOLOF、Sparse R-CNN、Deformable DETR 等算法对于本文所使用的数据集表现不好。 一方面,本文选用的数据集数据量远小于COCO 数据集;另一方面,如Sparse R-CNN 算法需要多个轮次的训练才可以达到最好的效果。 整体的实验结果表明,对于固定摄像机拍摄的监控视频场景下的行人检测,本文算法表现较好。

表1 DML_det 数据集上本文算法与其他目标检测算法对比Table 1 Comparison of the proposed algorithm with other object detection algorithms on DML_det dataset %

表2 DukeMTMC 数据集上本文算法与其他目标检测算法对比Table 2 Comparison of the proposed algorithm with other object detection algorithms on DukeMTMC dataset %

表3 PETS09 数据集上本文算法与其他目标检测算法对比Table 3 Comparison of the proposed algorithm with other object detection algorithms on PETS09 dataset %

3.3 消融实验

将本文提出的多尺度特征融合方法和定位分支模块,分别应用于基线方法Cascade R-CNN 中,在DML_det 数据集、DukeMTMC 数据集和PETS09数据集上对算法进行了消融实验,得到的结果如表4 ~表6 所示。

表4 DML_det 数据集性能评价指标Table 4 Performance evaluation indexes of DML_det dataset

表5 DukeMTMC 数据集性能评价指标Table 5 Performance evaluation indexes of DukeMTMC dataset

表6 PETS09 数据集性能评价指标Table 6 Performance evaluation indexes of PETS09 dataset

从表4 ~表6 实验结果可以看出,引入多尺度特征融合模块和定位分支都可以在基线方法上带来精确率和召回率的提升,并且将2 种方法整合之后,在精确率和召回率方面有更近一步的提升,可以说明本文算法的有效性。 同时,对改进的ViBe 算法进行了实验验证,从表4 ~表6 中的结果可以看出,使用改进后的算法获取运动前景图,能够提升目标检测的准确率。

图6 ~图11 分别展示了3 个数据集上基线方法和引入了本文算法后的部分结果示意图,绿框代表真值框,红框代表检测框。 图6 中的第1幅图和第4 幅图中,环境中存在与行人目标相似的物体,因此产生了误检。 在引入本文算法后,增加了运动前景图的信息,误检的物体在前景图中没有对应的前景,因此特征响应值降低,从而去除误检。 图8 中的第1、3、4 幅图和图10,因为测试数据中的目标被遮挡或目标太小,而没有被检测器检测出来,引入本文算法后,这些困难目标在前景图中可以反映出来,提升了特征图的响应值,因此能够被检测到。 图6 中的第2、3 幅图和图8 中的第2 幅图,使用基线方法检测框的位置偏离目标,而引入本文算法后,能够使检测框位置更加准确。

图6 DML_det 数据集基线方法结果Fig.6 Baseline method results of DML_det dataset

图7 DML_det 数据集本文算法结果Fig.7 The proposed algorithm results of DML_det dataset

图8 DukeMTMC 数据集基线方法结果Fig.8 Baseline method results of DukeMTMC dataset

图9 DukeMTMC 数据集本文算法结果Fig.9 The proposed algorithm results of DukeMTMC dataset

图10 PETS09 数据集基线方法结果Fig.10 Baseline method results of PETS09 dataset

图11 PETS09 数据集本文算法结果Fig.11 The proposed algorithm results of PETS09 dataset

4 结 论

本文提出了一种运动信息引导的目标检测算法,适用于固定摄像头下的监控视频场景,包括改进的运动前景图获取方法、基于运动信息的多尺度特征融合方法和运动前景图指导的定位分支模块。 所提算法在设计时没有引入复杂的先验信息或需要进行精细的标注,并且通过在3 个固定监控视频行人检测数据集上所作的实验,验证了本文算法可以提升目标检测算法的准确率。

猜你喜欢

置信度分支前景
基于数据置信度衰减的多传感器区间估计融合方法
一种基于定位置信度预测的二阶段目标检测方法
流苏树与美国流苏树园林绿化前景探讨
一类离散时间反馈控制系统Hopf分支研究
天基物联网关键技术及应用前景
软件多分支开发代码漏合问题及解决途径①
粉煤灰综合利用进展及前景展望
“新零售咖啡”前景几何?
含有二阶幂零鞍点的双同宿环附近的极限环分支
校核、验证与确认在红外辐射特性测量中的应用