APP下载

改进的Cascade RCNN行人检测算法研究

2022-03-02刘艳萍

计算机工程与应用 2022年4期
关键词:浅层深层行人

刘艳萍,刘 甜

河北工业大学 电子信息工程学院,天津300401

近年来,行人检测受到了研究学者的极大关注,行人检测为行人语义分割、行人重识别、行人行为分析和步态分析等提供技术支撑,是自动驾驶和机器人技术等许多实际应用领域的基本组成部分[1-3]。随着卷积神经网络的迅速发展,涌现了许多行人检测算法,其中检测大尺寸行人的成果最为突出,但是中小尺寸行人的检测结果仍不理想。在复杂交通路况下,行人尺寸相差较大,一张图像中大尺寸行人和小尺寸行人像素差别大,导致中小尺寸行人所采集的图像像素较少[4-6]。而且随着骨干网络的加深,小尺寸行人的感受野越来越小,行人与背景相似度高,遮挡严重,检测难度逐渐加大,容易造成漏检和误检。如何提升中小尺寸行人检测算法的准确度和鲁棒性是研究行人检测的关键问题之一[7-9]。

基于深度学习的行人检测,该方法把行人看作一种特定的目标,对检测方法进行改进,使之适用于行人目标的检测。区域卷积神经网络(region convolutional neural networks,RCNN)是卷积神经网络在行人检测的重要突破。但是RCNN训练和测试花费时间较长,并且占用内存空间大。2015年,Ren等提出Faster RCNN算法,该算法采用区域建议网络(region proposal network,RPN)替代选择性搜索算法进行候选框选择,使整个行人检测实现了端到端的计算,使检测速度和检测质量得到提升[10-12]。在行人检测中,Faster RCNN 在RPN 进行回归框预测时准确率不高,导致后续边界框回归的损失变大。

对于基于深度学习的行人检测,由于骨干网络中深层特征感受野较大,小尺寸行人特征少,导致小尺寸行人检测漏检率高。为此,针对目前基于深度学习的行人检测方法中的中小尺寸行人漏检问题,提出了一种改进的Cascade RCNN 的行人检测算法。主要改进的结构有:(1)在特征金字塔网络中将浅层特征与深层特征融合,进行深层对浅层的特征增强,提高深层信息的利用率,增加了一条浅层到深层的通道,将浅层信息直接向上进行传递,提高浅层信息的利用率;(2)将行人检测的全连接层改为解耦的回归与分类分支方法,更加稳健地分类和回归整个预测框。

1 本文算法

本文采用改进的Cascade RCNN行人检测方法,输入图片经过残差网络ResNeXt101 的卷积提取特征,再经过改进的特征金字塔进行特征增强,得到特征图,将每层特征分别输入RPN 网络,对锚框所在的特征区域进行分类,区分前景和背景,并且提取建议区域,将建议区域送入RoI Alian中,候选特征映射到原图,并池化到一定大小送入解耦的回归与分类分支中,进行分类和边界框回归。改进的Cascade RCNN算法结构图如图1所示。本文将分别介绍自提取特征ResNeXt101、改进的特征金字塔结构和解耦的回归与分类分支方法。

图1 改进的Cascade RCNN算法结构图Fig.1 Improved Cascade RCNN algorithm structure diagram

1.1 自提取特征ResNeXt101

本文采用ResNeXt101 网络自提取特征,图像直接作为网络的输入,通过卷积核进行特征提取。随着网络的加深会造成极高的网络复杂度,引起梯度弥散和梯度爆炸等问题。残差网络ResNeXt101复制一个浅层网络的输出,与深层网络的输出通过元素相加得到下一层的输出,ResNeXt101 采用恒等映射。图2 为残差结构图。残差结构的输入是256维,经过1×1卷积降维成128维,再经过64组3×3卷积进行特征提取,再经过1×1卷积还原成256维的输出,最后与原始的输入进行相加。

图2 残差结构图Fig.2 Residual structure diagram

输入ResNeXt101 网络的行人图像为RGB 形式的三维矩阵,尺寸为640×480×3,卷积运算使用的卷积核为二维矩阵,尺寸为3×3,卷积层的运算公式为:

式中,y(i,j,k)为输出特征图矩阵中索引为(i,j,k)的值,Wk表示第k个卷积核的权重,X为输入矩阵,bk为第k个卷积核的偏置;Hc、Wc和Lc为第k个卷积核的维度,s表示卷积核步长。f为激活函数,用ReLU作为ResNeXt101网络的激活函数,公式为:

1.2 改进的特征金字塔网络

在行人检测中,行人与环境相似度高而且尺寸变化较大,大尺寸行人特征相对较多,像素高,漏检率低,小尺寸行人因为特征少,漏检率相对较高,特征金字塔网络(feature pyramid networks,FPN)可以同时利用深层和浅层特征预测尺寸不同的行人[13-15]。浅层特征包含更多行人的细节信息和更丰富的空间信息;深层特征含有丰富的语义信息,这些语义信息有利于检测出行人,将深层特征通过自顶向下和横向连接与浅层特征进行融合[16-17],可以更好地检测小尺寸行人。

为了充分利用浅层特征信息,增加小尺寸行人特征映射的分辨率,先将深层特征通过双线性插值逐元素加到浅层特征,进行深层特征对浅层特征的特征增强。深层特征含有丰富语义信息,但浅层到深层的位置信息越来越难以准确定位。为了缩短浅层到深层特征的信息路径,增加位置信息流,准确定位深层位置信息,增加了一条浅层到深层的路径增强通道,这样可以减少深层到浅层的信息流穿过的卷积层,还可以将浅层信息传递到深层中。改进的FPN结构如图3所示。

图3 改进的FPN结构图Fig.3 Improved FPN structure diagram

在图3左侧,原来的自底向上的卷积输出层上的特征是C0、C1、C2、C3,首先在输入的图像上进行卷积,然后对C1、C2、C3进行降维操作。C3降维得到C4,并对C4进行上采样,使得它与C2具有相同的尺寸,然后使对应元素相加,将获得的结果输入到C5中,C6和C7采用相同方式获得。将C4、C5、C6、C7特征采用双线性插值的方式加到浅层特征中,对应元素相加,增加深层对浅层信息的利用率。其中,双线性插值的f(x,y)公式如下:

式中,(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2)是已知的4 个点。经过双线性插值之后得到Pi层的特征,公式如下:

在此基础上再增加一条浅层到深层的通道,将浅层信息直接向上进行传递,提高浅层空间信息的利用率,使行人检测能力提高,如红线标出。最终生成的特征层是P2、P3、P4、P5。通过融合这些不同层的特征将深浅层特征进行充分利用,以达到更好的预测的效果。

1.3 解耦的回归与分类分支

基于RCNN的两种头部检测器,分别为全连接层和卷积层,这两种头部结构用于分类和回归任务[18-19]。Faster RCNN在单层特征图上使用卷积层,而特征金字塔在多层特征图上使用全连接层[20]。全连接层在分类分数和候选框交并比(intersection over union,IoU)之间表现出更多的相关性,因为全连接层在空间上更敏感,全连接层的空间灵敏度有助于区分一个完整的物体,并且在输入特征图的不同位置应用非共享转换,全连接层的缺点是定位表现差。相比之下,卷积层在输入特征图的所有位置上使用共享转换,定位比全连接层敏感。因此全连接层更适合分类任务,卷积层更适合定位任务。

Cascade RCNN[21-23]的提出主要针对不同阶段界定正负样本的输入IoU阈值,检测器因为每个阶段输入的IoU不同,更关注阈值之内的正样本,输出的IoU阈值比输入的IoU阈值更好,这样为下个阶段提供更好的正样本。每个阶段是递进关系,这样可以使检测器效果逐渐变好。

Cascade RCNN 全连接层的级联形式如图4 所示。其中RoI Alian 表示将候选区的特征池化为固定大小。FC1、FC2和FC3表示全连接层。B0、B1和B2表示候选区边界框,B3是结构中的预测边界框。C1和C2表示预测分类结果,C3是最终预测分类结果。

图4 Cascade RCNN分类器的级联形式Fig.4 Cascade form of Cascade RCNN classifier

在此基础上,本文提出了解耦的回归与分类分支,在分类和边界框预测时,一个专注于分类的全连接层和一个专注于边界框回归的卷积层。解耦的回归与分类分支如图5所示。

图5 解耦的回归与分类分支Fig.5 Decoupled regression and classification branches

在图5 中,FC1、FC2和FC3是解耦的回归与分类分支中的全连接层,经过两个全连接层进行分类,Conv1、Conv2和Conv3是卷积层,经过两个卷积层和一个平均池化层进行边界框的回归。

2 实验与结果分析

2.1 实验数据

为了证明方法的有效性和合理性,本文在Caltech和ETH 行人数据集进行行人检测的训练和测试。ETH行人数据集中训练集共1 805 幅图像,其中含有标注行人14 167人,测试集共2 230幅图像,其中含有标注行人5 484 人[24]。Caltech 是一个10 小时左右车载视频库,分辨率640×480 像素,将视频切分成帧进行训练和测试,训练数据集共42 782 幅图像,标准测试集中的4 024 幅图像用于在不同的设置下进行评估。这些设置用于测量的准确性和健壮性,检测器针对不同的行人规模[25-26]。

按行人高度H划分[27-28]:

(1)合理子集(Reasonable):H≥50;

(2)所有子集(All):

①远子集(Far):20 ≤H<30;

②中子集(Medium):30 ≤H<80;

③近子集(Near):H≥80。

2.2 实验环境与实验参数

本文实验是在Pytorch1.3.0 框架下进行的,操作系统是Ubuntu16.04。输入图像大小为640×480 像素。使用随机梯度优化器,并将动量设置为0.9,权重衰减因子设置为0.000 1。训练时初始学习率设置为0.002 5,在训练16个批次和19个批次后分别衰减,在20个批次之后停止训练。图6展示了Caltech数据集中All子集的损失曲线。从损失曲线中可以看出在开始时迅速下降,并随着学习率的降低,损失曲线缓慢且稳步地下降,在迭代次数达到500 000 时,训练损失曲线损失值稳定在0.055左右。该数据充分说明本文改进的Cascade RCNN收敛速度快,且收敛效果好。

图6 损失曲线收敛过程Fig.6 Convergence process of loss curve

2.3 评价指标

本文采用的评价指标是漏检率(miss rate,MR)和平均精度均值(mean average precision,mAP)。漏检率越低越好,平均精度均值越高越好。

漏检率公式如下:

其中,TP(true positive)是被检测为正样本,实际也是正样本;FN(false negative)是被检索为负样本,实际是正样本。

平均精度均值公式如下:

其中,C为类别。AP(average precision)的计算公式如下:

其中,P(precision)为查准率,R(recall)为查全率。

查准率公式:

查全率公式:

其中,FP(false positive)是被检测为正样本,实际是负样本。

2.4 实验结果与分析

2.4.1 特征提取结果可视化

(1)ResNeXt101特征提取结果

ResNeXt101共有101层运算,分为5个阶段(stage),每个阶段的残差单元中3×3 卷积核分别是128、256、512、1 024 和2 048 个,分别得到了通道数为128、256、512、1 024和2 048的特征,因此每个阶段分别输出128、256、512、1 024 和2 048 幅图像,将每阶段的小图相加,得到每个阶段的可视化结果如图7所示。

图7 ResNeXt101提取特征结果Fig.7 ResNeXt101 feature extraction results

在第二阶段网络中3×3 卷积层中有256 个卷积核,特征中有256 个通道,因此该阶段的输出为256 幅图像。图8是256幅图像中的6幅,正如图中所示,在提取特征时,分别提取了行人关键特征的腿部和背部线条、脚的特征、上半身特征(包括脸部特征)、上衣边角特征、行人腿部特征和背包特征、行人四肢特征。因此,ResNeXt101自提取特征提取了行人的边缘、颜色、纹理和细节信息等。

(2)改进的FPN特征提取结果

在改进的FPN 中,C0、C1、C2和C3通道数分别是256、512、1 024 和2 048,C0~C3、Pi、P2~P5通道数都是256。将每层通道图像相加的可视化结果如图9 所示。从可视化特征图看出:浅层网络提取的是行人纹理、细节特征,深层网络提取的是行人轮廓等特征,将深层特征与浅层特征融合,融合后的特征更具有代表性。

图9 改进的FPN特征可视化Fig.9 Improved FPN feature visualization

2.4.2 消融实验

为了证明改进的FPN 和解耦的回归与分类分支的有效性,本文以Cascade RCNN 为基准,骨干网络使用ResNeXt101。在Caltech 和ETH 行人数据集的消融实验中,输入IoU 分别采用0.4、0.5 和0.6。为了验证哪几个IoU的输入值组合对行人数据集更有效,分别对数据集进行实验,同时增加改进的FPN。在Caltech 行人数据集下行人检测的消融实验结果如表1所示。

表1 Caltech消融实验结果Table 1 Caltech ablation experiment results %

由表1可以看出,在解耦的回归与分类分支中,IoU的输入值为0.5 和0.6 时,行人的漏检率更低,平均精度均值更高。尤其在Medium 和Far 子集,漏检率分别降低7.2 个百分点和8.2 个百分点。在增加改进的FPN 之后,两个子集的漏检率分别降低了11.4 个百分点和9.1个百分点。实验证明在解耦的回归与分类分支中,IoU的输入值为0.5和0.6对行人检测的效果最好,同时表明改进的FPN对行人检测也同样有效。

在ETH行人数据集下行人检测的消融实验结果如表2所示。消融实验结果表明,IoU输入在0.5和0.6时,相较其他两种IoU输入,漏检率降低最多,降低了2.9个百分点。增加改进的FPN,漏检率降低5.6 个百分点,mAP提升2.3个百分点。

表2 ETH消融实验结果Table 2 ETH ablation experiment results %

解耦的回归与分类分支中,IoU 为0.5 和0.6 上漏检率降低比其他两种多,原因是当IoU=0.7时,小尺寸行人尺寸小,与背景相似度高,容易把正样本误判为负样本,漏检率高。当IoU=0.4时,容易把负样本判为正样本,假阳性高,导致平均精度均值不高。因此,当输入IoU 为0.5和0.6时,行人检测效果最好。

ETH 行人数据集中,行人有不同程度的遮挡,在ETH 行人数据集上的提升效果证明本文算法在遮挡行人中也有一定应用价值。图10 中(a)是IoU 输入为0.5和IoU输入为0.6时级联检测结果,(b)是IoU输入为0.4和IoU 输入为0.5 时级联检测结果,(c)是IoU 输入为0.4、0.5和0.6时级联检测结果。为了更清楚地观察漏检情况,将图10中(a)(b)(c)中预测框与真实框的IoU>0.5的结果输出,如图(d)(e)(f)所示。其中图(d)是图(a)中预测框和真实框的IoU>0.5的预测结果,图(e)是图(b)中预测框和真实框的IoU>0.5 的预测结果展示,图(f)是图(c)中预测框和真实框的IoU>0.5 的预测结果。从这些结果中可以看出,级联IoU=0.4、0.5 和级联IoU=0.4、0.5、0.6 对图像中的行人有漏检的情况,但是级联IoU=0.5、0.6 的结果对行人没有漏检,因此IoU=0.5、0.6是效果最好的输入IoU。

图10 解耦的回归与分类分支消融实验效果图Fig.10 Ablation experiment effect of decoupled regression and classification branch

2.4.3 对比实验

本文算法与Faster RCNN、Faster RCNN+PAFPN、Guided-Anchoring和基础网络Cascade RCNN等四种方法做对比,骨干网络都采用ResNeXt101,分类损失函数采用交叉熵损失,回归损失采用SmoothL1,其他参数均相同。在ETH 和Caltech 行人数据集的消融实验中,输入IoU 在0.5 和0.6 时的效果最好,因此在对比实验中,本文算法在解耦的回归与分类分支中输入IoU 分别是0.5和0.6,同时加入改进的FPN。四种方法在Caltech和ETH行人数据集对比结果如表3所示。

从表3 中可以看出,与目前较新的一些方法相比,本文算法的性能在各个尺寸子集上均处于前列,在Caltech 行人数据集中,与Faster RCNN 相比,在Far 子集上效果明显,漏检率降低了17.2个百分点,在Medium子集上漏检率降低了10.7 个百分点,在Near 子集上漏检率降低了7.3个百分点,mAP提高了4.1个百分点。在Reasonable子集上漏检率降低了7.5 个百分点,mAP 提高了2.7个百分点。在ETH行人数据集上,漏检率降低了8.5 个百分点,mAP 提高了7.9 个百分点。与其他算法相比,漏检率也有不同程度的降低,并且平均精度均值有一定提升。实验结果表明,本文提出的改进的特征金字塔网络和解耦的回归与分类分支对大中小尺寸行人检测结果漏检率有一定降低,平均精度均值有一定提升,同时在解决行人遮挡问题上效果也很理想。

表3 Caltech和ETH行人数据集对比结果Table 3 Comparison results of Caltech and ETH pedestrian datasets %

Caltech 行人数据集中有许多远处小尺寸和模糊的行人会漏检。ETH行人数据集含有大中小尺寸行人,行人之间有不同程度的遮挡。为了展示本文算法对小尺寸行人和遮挡行人都有一定的效果,从测试结果中挑选具有代表性的行人检测结果,比较Cascade RCNN与本文算法的行人检测效果。Cascade RCNN 算法与本文算法在Caltech和ETH数据集上的实际检测效果对比图如图11 和图12 所示。红色框为图片中需要检测的行人,绿色框为算法检测到的行人。证明了本文算法在改进Cascade RCNN上效果的优越性。

图11 Caltech行人数据集中的结果对比Fig.11 Comparison of results in Caltech pedestrian dataset

图12 ETH行人数据集中的结果对比Fig.12 Comparison of results in ETH pedestrian dataset

3 结论

随着自动驾驶技术的不断发展,保障行人安全是自动驾驶的重要内容,为了降低复杂交通场景下行人检测算法中小尺寸行人的漏检率,本文提出了一种改进的Cascade RCNN 的行人检测算法。本文算法基本框架采用Cascade RCNN,骨干网络采用ResNeXt101,改进了特征金字塔和增加了解耦的回归与分类分支,能充分利用深层特征的语义信息和浅层的空间位置信息,并且增加了解耦的回归与分类分支可以充分利用全连接层进行分类,卷积层回归边界框。本文算法在Caltech 和ETH 行人数据集上均取得了较低的漏检率和较高的平均精度均值。尤其在行人尺寸较小的Far 子集上,效果十分突出,验证了算法的有效性。本文提出的两点创新实现简单,具有很好的通用性。

猜你喜欢

浅层深层行人
深层搅拌桩在水利工程地基处理中的应用分析
毒舌出没,行人避让
浅层换填技术在深厚软土路基中的应用
四川盆地太阳背斜浅层页岩气储层特征及试采评价
基于浅层曝气原理的好氧颗粒污泥的快速培养
考虑各向异性渗流的重力坝深层抗滑稳定分析
路不为寻找者而设
SAM系统对TDCS数据的优化处理与深层应用
基于层次分析法的马鞍山地区浅层地热能分区评价
我是行人