APP下载

基于自校准卷积网络的行人检测方法

2022-04-21李琦铭周勇军

计算机工程与设计 2022年4期
关键词:行人尺度卷积

强 华,李琦铭,周勇军,高 骁,李 波,李 俊+

(1.中国科学院福建物质结构研究所 泉州装备制造研究所,福建 泉州 362200;2.中北大学 电气与控制工程学院,山西 太原 030051;3.闽南科技大学,福建 泉州 362200;4.九江武警总队,江西 南昌 330000)

0 引 言

随着人工智能技术的普及,行人检测被广泛应用于自动驾驶和安防视频监控及监狱巡检等场景中。虽然行人检测方法因为深度学习的应用取得了长足的进步,但是由于小尺度行人检测问题存在,检测效果目前仍不能满足实际工业要求,因而需要对行人检测做进一步研究。

传统的行人检测方法为手工设计的特征,包括梯度直方图(HOG)、特征描述算子(Haar特征)、局部二值模式(LBP)等方法,是滑动窗口分类器的形式,但此类方法存在计算复杂度低、特征维度高、泛化能力差等缺点。随后从RCNN[1]开始提出了深度学习的检测方法,但是当前基于深度学习的主流检测器,不管是两阶段的Faster R-CNN[1-3]系列,还是单阶段的SSD[4]系列,均采用铺设锚点框的检测方法。其本质上仍是滑动窗口分类器的形式,用于判断预设的锚点框内是否存在行人。然而这些方法都需要针对特定数据集设计以及优化锚点框超参数,从而增加了训练难度。另外这些方法在分类阶段,由于高层卷积特征图分辨率降低,小尺度的行人无法得到有效的描述,会降低检测的总体性能。

为此近年来基于深度学习提出的无锚框的行人检测方法可以有效地解决此问题。例如,YOLO[5]和DenseBox[6]采用单个卷积网络来预测多个边界框和类别概率,成功地抛弃了锚点框,从而实现了训练和预测端到端的进行,缩短了训练时间。但其特征提取方法较为粗糙(如YOLO里使用7×7大小的卷积核网格),不能精确定位行人,尤其对于小尺度的行人。接着提出的CornerNet[7]和TLL[8]通过一组对角点检测或上下顶点检测,实现了基于关键点检测和配对的工作。通过一组对角点或上下顶点配对的方式,成功地抛弃了锚点框,从而实现了无锚框的行人检测,但是配对方法较为复杂。随后刘伟等提出CSP[9]行人检测算法,实现了简单的利用全卷积的方式预测中心点和尺度的检测器,将行人检测这个高层视觉任务简化为了语义特征点检测的问题。因此本文在CSP算法基础上进行改进。

1 本文算法

现有的CSP行人检测模型虽然在行人检测方面达到了较好的效果,但是由于卷积层的感受野范围有较大的限制,不能根据不同尺度的行人进行自适应的变化。本文针对小尺度行人的检测问题,对CSP行人检测模型进行改进,提高行人检测的精度。

在行人检测的深度学习框架中,卷积网络是行人检测的主干网络,许多方法通过提高网络的特征提取能力来获得更低的平均漏检率(miss rate)。因而我们从卷积网络入手,基于改进卷积网络的思想,提高行人检测的精度和速度。自从ResNet[10]残差网络的提出,极大程度上解决了由于网络层数增加而产生的梯度消失和梯度爆炸问题,这是卷积网络发展史上的一次重大转折点。随后ResNet[10]的各种改进方法(如ResNeXt[11]、SENet[12]、SKNet[13]、IResNet[14]、ResNetst[15])的提出,逐渐推进了卷积网络向前发展,但是这些方法背后的共同思想集中在调整网络体系结构来产生丰富的特征表示上,缺点是需要太多的训练时间。而SCNet[16]则在没有改变网络基本架构的情况下,通过内部通信显著扩展了每个卷积层的感受野范围,从而增强了高层卷积特征图的分辨率。

SCNet针对小尺度目标有定位精确的好处,可以有效区分小尺度目标和背景物,降低小尺度目标的漏检率。小尺度行人的处理恰恰是行人检测中重要的研究问题,可以将SCNet应用到行人检测中,提高行人检测的精度。因此,本文借鉴SCNet的网络结构对CSP行人检测模型进行改进,提出一种融合SCNet卷积网络和CSP行人检测模型的行人检测方法(SC-CSP检测算法),这种方法能有效扩大整个网络的感受野范围,使检测器更好地检测到大小不一的行人,尤其对于改善小尺度行人的检测有更好的效果。

改进后的网络结构如图1所示,SC-CSP网络结构分为3个阶段:特征提取、检测器头部和检测。

图1 SC-CSP结构

1.1 特征提取

输入图片先经过SCNet自校准卷积网络,对行人特征进行分层提取。在SCNet中,它使每个空间位置能够自适应地对不同区域高低层之间的特征进行提取,使得行人与背景物更具区分性,突出行人的中心点位置。这要归功于SCNet的SCNet Block中的异构卷积和滤波器间的通信模块,此模块是由多个卷积注意力模块组合起来,用来替换ResNet的基本卷积结构。SCNet Block自校准卷积模块在1.1.1中进行详细介绍。网络的输入是图像I,进而通过SCNet自校准卷积网络生成了具有不同分辨率的多个特征图,将其定义为

φi=fi(φi-1)=fi(fi-1(…f2(f1(I))))

(1)

其中,φi表示第i层输出的特征图,在本文的网络中,这些特征图的大小逐渐减小,fi(·)代表生成的特征图,特征图是由卷积或池化处理得到。本文将负责检测的这些特征图表示为φdet,负责检测的特征图为图1中第1层~第4层的特征图,表示为Layer1、Layer2、Layer3、Layer4。低层特征图拥有较高的空间分辨率,高层特征图则包含更多的语义信息。为了使不同层的特征图都能很好应用在最终的检测中,我们把低层和高层的特征图融合为一个特征图。具体的特征融合方法为:首先对高低层要融合的特征图进行L2归一化处理;其次利用反卷积将第2层~第4层特征图的分辨率上采样到和第1层特征图的分辨率一致的尺度下,尺度为原图的1/4;最后将处理后的特征图连接起来,得到最终用于检测的行人特征图。具体的网络流程在1.1.2中进行详细论述。

1.1.1 SCNet Block模块

SCNet Block这一概念来自SCNet中的一个模块。在不增加额外计算量的情况下,该模块能产生全局的感受野,可以有效扩大网络中每个卷积层的感受野范围,更易进行小尺度的行人检测。如图2所示,输入X先通过两个卷积分成两个特征X1、X2。对特征X1采用平均池化,下采样r倍(r=4),再经过F2卷积提取得到特征,对其特征进行上采样(采用双线性插值法),经过Sigmoid激活函数对F3卷积提取后的特征进行校准得到特征Y′1,对Y′1进行F4卷积提取特征得到输出特征Y1;对特征X2经过F1卷积提取得到特征Y2;对两个尺度空间输出特征Y1、Y2进行拼接操作,得到最终输出特征Y。可以用公式表为

图2 SCNet Block结构

T1=AvgPoolr(X1)

(2)

对T1使用卷积核K2进行特征变换

X′1=UP(F2(T1))=UP(T1*K2)

(3)

其中,UP(·)表示线性插值操作,从而实现中间参考量从小尺度空间到原始特征空间的映射。现在自校准操作可以表现为

Y′1=F3(X1)·σ(X1+X′1)

(4)

其中,F3(X1)=X1*K3,σ表示sigmoid函数,以及符号“·”表示逐元素乘运算,X′1被用作残差项来建立权重用于自校准。自校准后的最终输出可以写成

Y1=F4(Y′1)=Y′1*K4

(5)

SCNet相比传统的ResNet的优点在于,SCNet将一个标准卷积拆成4个小卷积F1、F2、F3、F4,首先在不增加额外计算量的情况下,增加了图像中小尺度行人特征的信息提取能力;其次SCNet考虑到了行人特征图通道间的信息和行人局部信息的增强,空间上的每一点都有附近区域和通道上的交互信息,使卷积层产生全局感受野,提高小尺度行人的定位精度;最后K1、K2、K3、K4为自校准卷积模块中的卷积核,每个部分负责不同的功能,这使得自校准卷积避免了背景信息的干扰,提高行人检测的速度。

1.1.2 SC-CSP的网络流程

本文在CSP的基础上,将CSP原有的主干网络ResNet换成了SCNet,不但扩大了网络的感受野范围,而且达到了降低网络参数的目的。结合图3简述SC-CSP的网络流程,以输入尺寸为640×1280,3通道的图像为例。阶段一:图像依次经过Conv、BN、Relu、MP层,尺寸变为(160,320,64)。阶段二:进入SCB(SCNet Block)自校准卷积模块。SCB模块分为4层特征图处理,每一层分别处理相对应尺度大小的行人。经过Layer1特征图尺寸变为(160,320,256),经过Layer2特征图尺寸变为(80,160,512),经过Layer3特征图尺寸变为(40,80,1024),经过Layer4特征图尺寸变为(20,40,2048),这里设置4层特征图的作用是可以缓解多尺度行人的检测问题,相比CSP行人检测算法的Layer4来说,CSP中的Layer4特征图尺寸是原输入图像尺寸的1/16与Layer3特征图尺寸一致。而我们的SC-CSP行人检测算法将其特征图尺度下采样到原图的1/32,这样做的好处在于使多尺度行人的检测范围更广,提升小尺度行人的检测精度。阶段三:首先对所有要融合的特征图进行L2归一化,其次将第2层~第4层特征图反卷积到第1层的尺寸下。阶段四:进行不同层之间的特征融合。最终将得到的特征图送入检测器头部进行行人检测,本文主要检测的是行人的中心点和尺度。

图3 网络流程

1.2 检测器头部

基于以上提取得到的特征图,首先附加一个3×3的卷积层将其通道数减小到256。其次添加两个并联的1×1卷积层,用于生成行人中心点特征图和行人尺度特征图,这样极大地简化了检测器模块。然而,本文在特征提取过程中采用的是下采样的方法来产生特征图,这样会造成定位不佳的问题。因而,我们需要稍微调整行人的中心位置,来缓解下采样方法的局限性。最后我们再额外附加一个2×2的卷积层,用于生成行人偏差特征图。

1.3 检 测

在SC-CSP检测器中,仅对一组特征图φdet进行检测,表示为

Dets=H(φdet)={cls(φdet),regr(φdet)}

(6)

其中,Η(·)代表检测器的头部,通常Η(·)包含两个元素cls(·)、regr(·),cls(·)预测分类器分数,regr(·)预测边界框的尺度和偏差。

在测试过程中,SC-CSP只是涉及FCN的单个转发,并带有多个预测机制,将保留中心点热图中置信度高于0.01的位置及其在比例图中的相应比例。然后会自动生成边界框,每个边界框都需要预测5个参数(x、y、wide、height、置信度),其中(x、y)为边界框左上角的坐标、wide为边界框的宽、height为边界框的高。接着将其重新映射到原始图像大小。最后使用非极大值抑制算法(NMS)去除多余的窗口,其阈值为0.5,最终找到最佳的行人检测位置。

1.4 训 练

1.4.1 真实值

1.4.2 损失函数

对于行人的中心点预测,本文首先通过交叉熵损失将其转化为分类任务,这样做还存在不足,比如很难确定更为精确的中心点;其次由于正负样本的模糊性会导致训练过程很难进行。为了减少正样本附近负样本的模糊性,本文应用了二维高斯掩模G(·),并以每个正样本的位置为中心。可以用公式表示为

(7)

(8)

(9)

(10)

其中,Pij∈[0,1]是网络的估计概率,指示位置(i,j)中是否存在行人的中心,yij∈{0,1} 是真实值的标签,其中yij=1表示正样本的位置,aij和γ是聚焦超参数,我们的实验设置γ=2。为了减少正样本附近负样本的模糊性,使用高斯掩模M的aij来减少负样本的模糊性,其中超参数β控制惩罚,实验中β=4可以获得最佳性能,对于正样本aij设置为1。

对于行人的尺度预测,我们使用L1平滑损失将其转化为回归任务

(11)

其中,sk和tk分别代表网络的预测和每个正样本的真实值。

如果附加了偏移预测分支,类似Smooth L1损失,表示为Lo。

综上,对目标函数的优化是

L=λ1Lc+λ2Ls+λ3Lo

(12)

其中,λ1、λ2、λ3分别表示中心分类损失、尺度回归损失和偏移回归损失的权重,通过实验分别设置为0.01、1和0.1。

1.4.3 数据增强

为了增加本算法训练数据的多样性,本文采用了标准数据增强技术。首先,将输入图片在[0.4,1.5]范围内随机缩放。其次,通过零填充对图片进行裁剪和扩展,以使宽度具有固定数量的像素(对于CityPersons为640,Caltech为336),在此过程中将保持图像的长宽比。

2 实 验

2.1 实验设置

2.1.1 数据集

为了验证所提出方法的有效性,本文对两个最大的行人检测基准进行了评估,即CityPersons[17]数据集和Caltech[18]数据集。选择这两个数据集的原因是它们通过中心体线标注和标准化长宽比来提供边界框,这种标注过程有助于保证框体与行人中心的良好对齐。CityPersons数据集是一个大规模行人检测数据集,我们用2975幅图像在官方训练集上训练模型,并用500幅图像在验证集上进行测试。Caltech数据集是由加州理工学院等高校组成的视觉小组整理的,他们从10小时的车载摄像头视频中选取了137分钟(约250 000张图像),2300个行人,标注了350 000个边界框。其次Caltech数据集标注了小尺度行人的情况,这有利于进一步研究小尺度的行人检测问题。

2.1.2 评价标准

为了检验本文提出的SC-CSP方法的性能,对于City-Persons数据集,选用平均漏检率(average miss rate)作为检验的综合指标。对于Caltech数据集,选用ROC(receiver operating characteristic)曲线作为评价标准,ROC曲线的横、纵坐标轴分别对应的是log尺度下的每幅图像的平均误检率(false positive per image,FPPI),其范围为[10-2,100]和对数平均漏检率,我们将其评价指标表示为MR-2。所有的检测结果图都利用Caltech数据集提供的工具箱得到,我们还利用了该工具箱中提供的其它行人检测方法的实验结果作为对比方法。

2.1.3 训练细节

我们在PyTorch中实现了该方法,卷积网络是在ImageNet上预训练得到的SCNet-50网络。对于CityPersons数据集,我们在4个GPU上优化网络,每个GPU上有两个图像用于一个小批量,学习率设置为2×10-5。对于Caltech数据集,我们同样在4个GPU上优化网络,设置每个GPU上有16个图像用于一个小批量,学习率设置为1×10-4。

2.2 在CityPersons数据集上的对比实验

在本节中,我们在CityPersons数据集上对大小为(1024×2048)的原始图像进行测试。

2.2.1 不同卷积网络在CSP框架下的对比实验

为了验证本文所提出的SC-CSP网络结构的性能,选取近两年的CVPR会议文章中4种最新的卷积神经网络:ResNest、IresNet、VovNet、ResNet与SCNet卷积网络作对比,对比实验结果见表1,实验结果表明在合理遮挡、严重遮挡、少量遮挡的情况下SCNet均达到了最低的平均漏检率,分别为10.97%、47.84%和7.57%。只有在部分遮挡情况下SCNet的平均漏检率为10.13%,略大于IresNet的平均漏检率,却低于CSP原框架的主干网络ResNet及ResNest和VovNet的平均漏检率。如表2所示,行人在不同尺度的情况下所做的对比实验,在合理尺度、小尺度、中尺度、大尺度的情况下SCNet均达到了平均漏检率最低、速度最快的效果。通过实验结果与其余4种卷积网络对比,发现SCNet对行人的特征提取效果更好,因此我们选择SCNet作为CSP框架的主干网络。

表1 不同遮挡情况下的不同卷积网络在CSP框架下的平均漏检率

2.2.2 SC-CSP算法与现有技术的比较

我们在CityPersons数据集上与现有技术进行比较。除了合理情况,还在具有3个不同遮挡水平的情况下评估了此方法。并且还在行人的大中小3个不同尺度范围的情况下进行实验。如表3所示,本文提出的SC-CSP方法的平均漏检率低于专门针对遮挡处理的RepLoss[19]和OR-CNN[20]方法,可见SC-CSP在没有任何遮挡处理策略的情况下表现良好。在合理的情况下,精度相比原CSP算法提升了0.6%,在相同的运行环境下,速度较快,每张图片检测速度为0.33 s,相比CSP检测方法每张图片的检测速度提高了0.05 s。如表4所示,我们在行人的大中小3个不同尺度范围的情况上与现有最新技术进行对比实验,在各个尺度范围上,行人的平均漏检率均有提升,尤其是在小尺度范围上,行人的平均漏检率相比CSP方法提升了1.1%。

表4 SC-CSP算法与现有技术在尺度方面的比较情况

2.3 在Caltech数据集上的对比实验

在本节中,我们在Caltech数据集上对大小为(480×640)的原始图像进行测试。继Caltech旧标注之后,所有实验均在最新提出的Caltech新标注上进行。使用42 782幅图像在官方训练集上训练模型,并用4024幅图像在测试集上进行测试。所提方法在合理和全部遮挡的情况下与现有技术进行了广泛的比较。如图4所示,图4的横坐标为每幅图像被错误地分类为正样本的负样本数量,纵坐标为漏检率,分类器所漏检的正样本数占所有正样本数的比例。正样本是包含行人的图像,负样本是不包含行人的图片,如图4(a)所示,我们的方法SC-CSP在合理遮挡情况下ROC曲线达到了最低,为4.3%的MR-2, 比最具竞争力的CSP行人检测算法的4.7%降低了0.4%。显而易见,如图4(b)所示,在严重遮挡情况下,我们的方法ROC曲线也达到了最低。ROC曲线越低代表行人检测的准确度越高。

在Caltech数据集上的对比方法包括:FasterRCNN、RPN+BF、ALFNet、Hyperlearner、RepLoss、CSP等都是行人检测领域最新的算法。从图4可以看出我们的方法SC-CSP在所对比的检测算法中取得了最低的平均漏检率。图4中虚实线条没有特殊含义的区分,均代表漏检率和被错误分类为正样本的负样本数量的关系曲线。

图4 SC-CSP方法在Caltech数据集上与最新技术的比较情况

图5给出了SC-CSP算法与CSP算法在Caltech数据集中部分测试图像的检测结果对比,图5(a)为CSP算法检测结果,图5(b)为SC-CSP算法的检测结果。箭头指示的是漏检的行人,显而易见小尺度行人不易被检测到。针对小尺度问题这个难点,SC-CSP方法仍然能表现出较好的鲁棒性。同时SC-CSP方法在漏检方面得到了很好的控制。从漏检的结果可以看出,漏检主要出现在光线较暗,行人尺度较小以及遮挡严重的情况下。

图5 SC-CSP方法与CSP算法在Caltech数据集中部分测试图像的检测结果对比

3 结束语

为了解决小尺度行人的检测问题,本文基于CSP和SCNet提出一种自校准卷积网络的行人检测模型,有效扩大了网络的感受野范围;利用特征融合技术,融合了高低层的行人特征信息,使小尺度行人信息得到充分的描述。通过无锚框检测方法直接预测出行人的尺度大小进而判断出行人的具体位置。在公开行人检测数据集CityPersons和Caltech上对SC-CSP网络模型进行了训练和测试,并通过一系列的对比实验。得出本文SC-CSP算法与CSP行人检测模型相比,在合理情况下平均漏检率降低了0.6%,尤其在小尺度的行人方面平均漏检率降低了1.1%,同时在检测速度上每张图片提高了0.05 s。实验结果表明,本文提出的SC-CSP方法在改善小尺度行人检测上具有很强的优势。然而,由于行人检测中光线对比度差,小尺度行人的检测问题以及行人的遮挡问题还没有完全得到解决。因此,通过解决上述问题从而进一步提升检测精度将是下一步的研究重点。

猜你喜欢

行人尺度卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
毒舌出没,行人避让
财产的五大尺度和五重应对
卷积神经网络的分析与设计
从滤波器理解卷积
路不为寻找者而设
基于傅里叶域卷积表示的目标跟踪算法
我是行人
曝光闯红灯行人值得借鉴
宇宙的尺度