迭代Faster R-CNN的密集行人检测

2023-11-20 10:58贺宇哲徐光美于海港
计算机工程与应用 2023年21期
关键词:密集集上金字塔

贺宇哲,徐光美,何 宁,于海港,张 人,晏 康

1.北京联合大学 北京市信息服务工程重点实验室,北京 100101

2.北京联合大学 智慧城市学院,北京 100101

行人检测作为计算机视觉和模式识别任务中重要研究内容[1],有着非常广泛的应用场景,如自动驾驶、智能监控、智能机器人等,尤其在智能监控中发挥着极其重要的作用[2]。行人检测任务中常见的是高密度的行人检测,但密集场景下的行人检测存在大量的遮挡现象,如街道上的行人。在密集场景下,智能监控设备所能采集到的图像包含多个相同类别的重叠物体,即传感器采集密集场景的图像时,将三维信息映射为二维信息,这不可避免地会产生大量的遮挡现象。当遮挡现象发生时,行人目标的特征会出现大量干扰信息,基于深度学习的行人检测技术依据提取得到的特征进行检测,所以遮挡现象会导致检测精度大幅度下降。行人目标的各个身体部位都有可能被遮挡,当行人之间发生遮挡时,特征图中单个行人目标自身的特征虽然不会有改变。但是,由于若干个行人目标的特征重叠在一起,特征图中的高响应的区域会被连接在一起。此时,会对检测器检测每个行人目标的边界造成很大的困难,导致误检和漏检现象发生。

基于深度学习的行人检测方法把行人看作是一种特定目标,主要分为以速度占优的单阶段(one-stage)检测方法和以精度占优的双阶段(two-stage)检测方法。单阶段检测方法包括YOLO[3]系列、RetinaNet[4]等,双阶段检测方法包括Faster R-CNN[5]、Cascade R-CNN[6]等。

目前基于深度学习的绝大部分模型都难以应对密集场景下的行人检测任务[7],造成这种现象的原因有两点:第一,存在同一类别的多个行人目标的情况下,很难区分两个检测框是属于同一对象,还是对应于不同的重叠对象。第二,严重遮挡情况下,检测模型无法提取较好的特征信息。研究学者通过改进非极大值抑制(nonmaximum suppression,NMS)的算法,尽管提高了准确性,但这些方法并不能完全解决问题。这是由于基于NMS 的所有改进方法,都需要在精确度和召回率之间寻找一个平衡点,因为既要删除对同一对象的冗余检测,又需要保留难以检测的遮挡对象。

本文针对密集场景下进行行人检测普遍存在的遮挡问题,受Cascade R-CNN 中“三思而后行”思想的启发,设计了一个基于迭代Faster R-CNN 的密集行人检测模型,首先利用一种迭代方案[8]对Faster R-CNN模型进行改进,解决NMS 算法及其改进在寻找精确度和召回率之间平衡点的难题。同时,为了能够进一步提高模型提取特征的能力,利用递归金字塔结构(recursive feature pyramid,RFP)[9]替换原始Faster R-CNN 模型中使用的特征金字塔。本文模型相比其他行人检测架构,仅需对通用检测模型做很小的改动,便可获得更优的检测结果。本文在具有挑战性的WiderPerson数据集[10]和CrowdHuman 数据集[11]上对所提出的模型进行验证,实验结果表明,本文模型相比Faster R-CNN 在两个数据集上,行人检测的精度和召回率都能够带来显著提升,同时漏检率也有较大的降低,并且在WiderPerson 数据集上获得SOTA结果。

1 相关工作

对非极大值抑制算法的改进,往往是学者们解决行人检测遮挡问题的重要途径。标准NMS算法会选择得分较高的检测框,并舍弃得分较低的相邻检测框。因此,高的抑制参数提高了检测精度,低的抑制参数则提高了召回率。但对于抑制参数的设定一直是一个难题,较高或较低的抑制参数都会导致错误。因此,密集场景是NMS算法优劣最具挑战性的检验。学者们试图改进NMS 算法实现更高效的密集行人检测。2014 年Rothe等人[12]探讨了NMS 作为聚类问题的公式,并通过设置阈值筛选检测框。2017年Hosang等人[13]通过神经网络来代替NMS,利用一个可训练的网络来适应场景的变化,但存在使用的神经网络参数量过大问题。同年,Bodla等人[14]提出Soft NMS有效解决标准NMS抑制参数设定的难题。当检测框重叠程度达到一定阈值后,不将其直接舍弃,而是使其得分降低后进入下一次迭代重新筛选。2019 年Liu 等人[15]提出Adaptive NMS 添加了一个估计目标密度的分支,帮助NMS 的参数设定。2020 年Huang 等人[16]提出R2NMS,利用了较少遮挡的可见部分,有效去除了多余的框,而不会带来更多误报。除了对非极大值抑制算法改进这条途径外,学者们还提出了其他的行人检测架构来应对密集环境下的遮挡问题。2018年Wang等人[17]以Faster R-CNN为基础,提出Repulsion Loss 对损失函数部分进行优化,减小真实目标框和预测框的距离,增大周围非目标框的距离,有效改善行人间的遮挡问题。同年,Zhang 等人[18]在Faster R-CNN 目标检测框架的基础上,提出了OR-CNN(occlusion-aware R-CNN),并设计了一个新的聚合损失函数,同时利用遮挡感知池化层(part occlusion-aware region of interest,PORoI)替换原始的RoI池化层,解决了遮挡目标的检测问题。2020 年Ge 等人[19]提出PSRCNN的双阶段检测器,该检测器对无遮挡目标进行检测,然后对已检测到的实例进行抑制,使严重遮挡的实例特征更易被提取,再对剩下的实例进行检测,最后将两次检测得到的结果进行合并。同年,Xu 等人[20]提出Beta R-CNN通过一种Beta表示构建全身和可见框之间的关系来描绘行人目标,此外还引入了Beta NMS可以更好地区分密集场景中高度重叠的行人目标。2021 年Wang等人[21]提出DeFCN,基于FCOS(fully convolutional one-stage object detection),首次在密集场景上利用全卷积结构实现端到端的检测,即没有NMS 的后处理操作。

2 本文方法

本文针对密集场景下行人检测普遍存在的遮挡问题,设计一个基于Faster R-CNN的密集行人检测模型,骨干网络选用ResNet-50,整体结构如图1 所示,输入图像经过骨干网络(Backbone)后,利用递归金字塔与头模块(RFP&Head)得到行人目标检测框,接着将得到的检测框映射到历史特征图(history map),并进行特征融合以便之后的迭代检测。本文对Faster R-CNN检测模型进行了如下改进:(1)设计一种迭代方案,可以很好地解决NMS及其算法在寻找精确度和召回率之间平衡点的难题。(2)利用递归金字塔(RFP)提高模型的特征提取能力。

图1 基于Faster R-CNN的密集行人检测模型整体结构图Fig.1 Overall structure diagram of dense pedestrian detection model based on Faster R-CNN

2.1 迭代方案设计

针对行人检测任务中密集场景出现的遮挡导致检测精度下降问题,本文设计一种迭代方案(IterDet)对Faster R-CNN 进行改进,解决行人检测中的遮挡问题。在处理密集行人检测时,以往的方法都是一次性检测所有的目标对象,这种处理方式效果并不好,本文希望以一种迭代的方式,提高密集行人检测效果。该方案无需一次性检测图像中的所有对象,而是提供每次迭代的检测结果。首先进行第一次迭代,预测得到目标框并收集结果,在下一次迭代中将结果以特征融合的方式传递回网络,目的是在下次迭代中,可以检测到一个新的对象子集,其结构如图1所示。本文对该迭代方案的预测过程和训练过程,分别进行介绍。

预测过程:传统的目标检测模型D是将输入图像I∈Rw×h×3映射到一组边界框B={(xk,yk,wk,hk)}nk=1 的过程。每个边界框由左上角的坐标(x,y)、宽度w和高度h共同表示。对于给定的一组边界框B,定义一个与输入图像大小相同的历史图像H,其中每个像素记录覆盖该像素已检测到的边界框数,如公式(1):

该迭代方案的设计需要考虑两方面问题:(1)如何将传统检测模型D改进为对历史图像敏感的D′。(2)如何强制D′在每次迭代t的过程中预测不同的对象集Bt。

检测模型D′结构设计。基于深度学习的目标检测模型,首先将图像传入已经预训练好的骨干网络中。接着,获得的多层级特征被送入附加的特征提取网络,如RPN(region proposal network)、FPN(feature pyramid networks)[22]等。最后,通过头模块转换为预测的边界框,并进行非极大值抑制。本文试图在传统检测模型中做出较小的改动,同时达到最好的效果。

具体改进方法如下:将经过一个卷积层的历史特征图与骨干网络的第一卷积层的输出相加。本文选用ResNet-50作为骨干网络,在添加图像之前,先通过一个7×7 步长为2,通道数为64 的卷积,然后利用BN 层和ReLU 层进行处理,再通过一个3×3 步长为2,通道数为64的卷积,得到历史图像特征图与对应图像的特征图进行融合,实现检测模型D′结构的设计。在预测过程中提到,历史图像中的像素记录的信息为覆盖该像素已检测到的边界框的数目,因此像素被越多的边界框覆盖,该像素值越大,意味着历史图像中像素值大的区域,遮挡程度越严重。将历史图像特征图与对应图像特征图进行融合,可以使检测模型更加关注遮挡程度大的区域。因此,在上一次迭代输出的结果误报对下一次迭代的负面影响并不大。该设计可以使检测模型在进行下一次迭代检测时,获取之前迭代过程得到的信息,从而检测出之前迭代过程中因遮挡严重而未被检测到的目标对象。

训练过程:D′在每次迭代t的过程中预测不同的对象集Bt可以通过对训练过程改动来实现。在训练过程中,将真实目标框B′随机分成两个子集Bold和Bnew,并且同时满足Bold⋃Bnew=B′和Bold⋂Bnew=0。本文将Bold映射到历史图像,并强制D′预测历史图像中缺失的边界框Bnew。因此,通过计算预测框B和目标框Bnew之间的误差,通过反向传播来优化D′的损失。一方面,这种训练方法迫使模型利用历史图像,并在每次推理迭代过程中只预测新的对象。另一方面,通过对Bold和Bnew的不同组合进行采样,对样本数据进行了扩充。

2.2 递归金字塔结构

在密集场景的行人检测任务中,对特征提取的要求更高。为了能够提高特征提取能力,如图1 所示,本文利用递归金字塔结构替换原始Faster R-CNN模型中使用的特征金字塔。该结构受Cascade R-CNN 中“三思而后行”思想的级联结构启发,将特征金字塔的输出结果重新反馈回骨干网络。如图2 所示,注意,此图为递归金字塔在递归次数为2 时的展开形式。网络主要分为三个模块,特征金字塔模块(图2中FPN)、ASPP模块(图2中ASPP)、特征融合模块(图2中Fusion)。递归金字塔结构的递归过程如下,在特征金字塔生成多尺度特征表达后,通过ASPP 模块对特征进行转换便于反馈回骨干网络,再利用特征融合模块将两次特征金字塔输出特征进行融合,实现一次递归。

图2 递归金字塔结构图(递归次数为2的展开形式)Fig.2 Recursive pyramid structure diagram(expanded form with recursion 2)

在特征金字塔网络中,其算法流程可用公式(2)表示,其中Bi表示骨干网络自底向上的第i个阶段操作,Fi表示特征金字塔网络自顶向下的第i层操作,生成的多尺度特征表达用{fi|i=1,2,…,S}表示,S为特征图层数。

根据特征金字塔网络的算法思路,即公式(2),本文可以得到递归金字塔输出特征fi,如公式(3)所示。其中Ri表示反馈连接到骨干网络前的特征转换。

本文用t表示迭代次数,得到公式(4)。在本文的实验中,统一设置t=2。

本文对骨干网络ResNet 中的B进行了修改,使它能够同时接收x和R(f)作为输入。ResNet 有四个阶段,每个阶段由若干个残差块组成。本文对ResNet 中每个阶段的第一个残差块进行修改,如图3所示。为了使用R(f),对其进行1×1的卷积操作后,与骨干网络各阶段第一个残差块输出的特征进行融合。

图3 RFP特征与ResNet特征融合示意图Fig.3 Schematic diagram of RFP feature and ResNet feature fusion

本文使用ASPP 模块来实现特征f t i到图3 中递归金字塔特征(RFP Features)的转换,如图4 所示。在该模块中,有四个并行分支接收输入特征,然后沿通道维度将其输出串联在一起,形成R的最终输出。其中三个分支使用卷积层,后面跟ReLU层,输出通道数为输入通道数(256)的1/4,即输出通道数为64 的特征图,这三个分支中的卷积层按如下设置:卷积核大小为[1,3,3],空洞卷积率为[1,3,6],填充大小为[0,3,6]。最后一个分支使用全局平均池化,然后利用1×1 卷积层和ReLU层将特征通道转换为输入特征通道的1/4。最后,将四个分支的特征按照通道进行连接,即图4中的Concat。

图4 ASPP模块结构图Fig.4 ASPP module structure diagram

本文使用一个特征融合模块,对每次迭代后输出的特征进行融合,实现更好的多尺度特征表达,如图5所示。将f t+1i作为输入,通过1×1卷积和Sigmoid操作得到不同迭代次数特征的权重,分别用σ和1-σ表示,由此计算f t+1i与f t i的加权和,进一步增强多尺度特征表达。

图5 融合模块Fig.5 Fusion module

3 实验结果与分析

3.1 密集行人检测数据集

密集行人检测的实验分别在WiderPerson 数据集和CrowdHuman 数据集上进行训练和验证。以下是对这两个数据集的介绍。展示了WiderPerson 数据集和CrowdHuman数据集的遮挡程度,如表1所示。

表1 WiderPerson数据集和CrowdHuman数据集的遮挡程度Table 1 Occlusion degree of WiderPerson dataset and CrowdHuman dataset单位:%

WiderPerson数据集是拥挤场景的行人检测基准数据集,其图像从多种场景中选择,不再局限于交通场景。其包含13 382 张图片,共计40 万个不同遮挡程度的人体。其中训练集8 000张图片,测试集1 000张图片。

CrowdHuman 数据集在每张图像包含行人数量方面及交并比IoU>0.5 的边界框数量方面,与其他行人检测数据集相比都是最复杂的。其中包含从Internet收集的15 000、4 370和5 000张图像,分别用于训练、验证和测试。与之前具有挑战性的行人检测数据集,如与CityPersons数据集[23]相比,该数字提高了10倍以上。在CrowdHuman训练子集中,总人数也明显大于其他行人检测数据集,约340 000人和约99 000人忽略区域注释。

3.2 评估指标

在WiderPerson 数据集和CrowdHuman 数据集上采用AP值、Recall值和mMR作为评估指标。AP和Recall遵从MS COCO 数据集的计算方式,mMR 表示在9 个FPPI值下(在值域[0.01,1.0]内以对数空间均匀间隔)的平均Miss Rate 值,FPPI 表示平均每张图片上的FP,如公式(5)所示,其中N表示N张图片;Miss Rate表示丢失率,如公式(6)所示:

3.3 实施细节

实验基于PyTorch、CUDA 10.2和mmdetection 2.0目标检测库下进行,以基于ResNet-50作为预训练权重,在单个NVIDIA RTX2080Ti 上进行训练。在WiderPerson数据集和CrowdHuman数据集上使用Adam优化器进行了24 个epochs 的训练,起初learning rate 设为1.25E-5,分别在第16 和22 个epochs 后将其降低1/10,输入图片尺寸为1 000×600 和1 666×1 000。统一设置动量因子为0.9,权重衰减因子为0.000 1,防止模型过拟合。

3.4 WiderPerson数据集实验结果分析

本文在具有挑战性WiderPerson数据集上对提出基于Faster R-CNN的密集行人检测模型进行验证。实验结果表明,相比作为baseline 的Faster R-CNN 模型,本文模型不仅能在行人目标的检测精度和召回率带来提升,值得注意的是,行人存在大量遮挡情况下漏检率mMR有所降低。如表2所示,相比Faster R-CNN模型,在相同条件下,该模型的行人检测精度可以获得2.4 个百分点的提升,召回率可以获得4.05 个百分点的提升,同时漏检率mMR可以降低5.63个百分点。这是由于一方面采用IterDet迭代方案,将行人间遮挡的复杂问题简单化。无需一次性将所有对象进行检测,而是在新的迭代过程中以上一次的检测结果作为基础,检测新的对象子集,这样一些被严重遮挡的行人目标也可以通过之后的迭代过程被检测到,从而大幅降低漏检的情况。另一方面在加入递归金字塔结构后,能够增强模型的特征提取能力,进一步提高检测性能。同时,本文模型相比RetinaNet 漏检率mMR 降低7.89 个百分点。相比行人检测模型PS-CNN检测精度提升1.33个百分点,召回率提升2.94 个百分点。相比Adaptive NMS 召回率提升2.78 个百分点,检测精度提升2.06 个百分点,漏检率mMR降低3.1个百分点。同时,本文方法相比Repulsion Loss也有更好的表现。将原始的Faster R-CNN与本文的模型在WiderPerson 数据集上的检测效果进行对比,如图6所示。相比原始的Faster R-CNN检测模型,在利用迭代方案和递归金字塔进行改进后,在行人目标存在大量遮挡的情况下,检测效果更好且鲁棒性更强。

表2 不同方法在WiderPerson数据集性能对比Table 2 Performance comparison of different methods in WiderPerson dataset 单位:%

图6 Faster R-CNN与提出模型检测效果对比Fig.6 Comparison of Faster R-CNN and proposed model

3.5 CrowdHuman数据集实验结果分析

本文将所提出的基于Faster R-CNN的密集行人检测模型在CrowdHuman 数据集上进行验证。如表3 所示,相比作为baseline 的Faster R-CNN 模型,本文模型的行人检测精度提升2.32 个百分点和召回率提升3.65个百分点,并且漏检率mMR 降低2.1 个百分点。同时,本文提出的模型与其他行人检测模型相比仍有很大的优势。其中,与Adaptive NMS 相比行人检测精度提升2.56 个百分点,召回率提升2.62 个百分点,并且漏检率mMR 降低1.34 个百分点。与Repulsion Loss 相比行人检测精度提升1.56 个百分点,召回率提升3.15 个百分点。与最新的行人检测方法DeFCN相比,漏检率mMR可以降低0.51 个百分点。本文展示了所提出模型在CrowdHuman数据集上的检测效果,如图7所示。

表3 不同方法在CrowdHuman数据集性能对比Table 3 Performance comparison of different methods in CrowdHuman dataset 单位:%

图7 模型在CrowdHuman数据集上检测效果图Fig.7 Model detection effect on CrowdHuman dataset

3.6 消融实验

为探究两部分改进对本文模型检测性能的影响,本文在WiderPerson 数据集上进行消融实验,如表4 所示。首先,单独将迭代方案引入Faster R-CNN,召回率和检测精度分别能够显著提升3.7 和2.0 个百分点,并且漏检率mMR 降低3.75 个百分点,模型运算量增加22.8 FLOPs,存储参数量增加了34.7 MB。这说明通过迭代方案,在每次的迭代过程检测新的对象子集,相比一次性检测所有的对象子集的方式,可以更好地应对密集场景下存在大量行人间遮挡的情况。接着,单独将递归金字塔(RFP)引入Faster R-CNN,召回率和检测精度分别能够带来3.71和2.11个百分点的显著提升,并且漏检率mMR 降低3.25 个百分点,模型运算量仅增加3.7 FLOPs,存储参数量仅增加了3.9 MB。说明了递归金字塔相比传统特征金字塔网络的特征提取效果更好,能够使模型发挥更好的性能。最后,本文将这两部分改进同时引入,Recall、AP 和mMR 分别能达到97.65%、91.29%和40.43%。

表4 在WiderPerson数据集上各部分消融实验结果Table 4 Experimental results of each part of ablation on WiderPerson dataset

3.6.1 迭代方案

为了探究迭代方案最优的迭代次数,本文分别进行了迭代次数为1、2、3、4 的实验,并对结果进行比较分析,如表5 所示。实验结果表明,在迭代次数为2 时,模型的综合表现性能达到最优,召回率、检测精度和漏检率分别能够达到97.3%、90.9%、42.3%,相比第一次的迭代结果均有提升,漏检率带来0.6 个百分点的降低。这说明了改进的模型对历史图像敏感,并利用历史图像在第二次迭代时提高了密集行人检测的准确性。同时,展示了在WiderPerson数据集上第一次迭代和第二次迭代的结果,在第一次和第二次迭代中找到的框分别用绿色和黄色标记,如图8 所示。可以发现第二次迭代,模型在利用历史图像后,可以找到第一次迭代未发现的行人目标。在进行第三次迭代时,虽然召回率有少量提升,但关键评估指标漏检率反而升高。在第四次迭代时,召回率和检测精度均开始出现降低趋势,同时漏检率出现增高趋势。

表5 不同迭代次数在WiderPerson数据集上实验结果Table 5 Experimental results on WiderPerson dataset with different iterations 单位:%

图8 第一次和第二次迭代检测效果图Fig.8 First and second iteration detection effect

3.6.2 递归金字塔

为探究递归金字塔各模块对其性能的影响,本文在WiderPerson数据集上进行消融实验,如表6所示。首先将整个递归金字塔(RFP)引入Faster R-CNN,召回率达到97.31%,行人检测精度能够达到52.3%,漏检率mMR达到42.81%,相比原始Faster R-CNN+FPN检测结果提升显著,这说明递归金字塔相比传统特征金字塔结构有更好地特征提取能力。在此基础上去掉了ASPP 模块(RFP-ASPP),召回率下降0.5 个百分点,行人检测精度下降1.17 个百分点,漏检率mMR 升高0.81 个百分点。在去掉特征融合模块(RFP-fusion)后,召回率下降0.3个百分点,行人检测精度下降0.63个百分点,漏检率mMR升高0.68个百分点。这也验证了ASPP模块和特征融合模块对RFP有积极影响。

表6 RFP各模块消融实验结果Table 6 Experimental results of ablation of each module of RFP单位:%

4 结束语

本文针对行人检测在密集场景下普遍存在行人间遮挡问题,提出基于迭代Faster R-CNN的密集行人检测模型,利用一种迭代方案对Faster R-CNN 模型进行改进,解决NMS 算法及其改进在选择精确度和召回率之间平衡点的难题。利用递归金字塔结构进一步增强模型特征提取能力。实验证明,本文模型在WiderPerson和CrowdHuman 数据集上都获得了具有显著提升性能的结果。

猜你喜欢
密集集上金字塔
“金字塔”
耕地保护政策密集出台
A Study of the Pit-Aided Construction of Egyptian Pyramids
密集恐惧症
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
海上有座“金字塔”
基于5G超密集组网的规划与设计
复扇形指标集上的分布混沌
神秘金字塔