APP下载

基于深度卷积神经网络的小尺度行人检测

2018-08-06郭爱心殷保群

网络安全与数据管理 2018年7期
关键词:行人尺度卷积

郭爱心,殷保群,李 运

(中国科学技术大学 信息科学技术学院,安徽 合肥 230027)

0 引言

行人检测是计算机视觉领域的一个重要方向,在自动驾驶、智能监控和智能机器人等方面有着广泛应用。然而,环境的复杂性、行人姿态的多样性和行人遮挡等因素,使得行人检测极具挑战性。

传统的行人检测方法主要以DALAL N和TRIGGS B等提出的梯度方向直方图(Histogram of Oriented Gradient, HOG)和支持向量机(Support Vector Machine, SVM)结合的算法为代表[1],但这类方法基于手工设计特征,特征表达能力有限,难以适应复杂的场景。近年来,随着深度学习的快速发展,越来越多的研究者试着用该类方法去解决行人检测问题。在文献[2]中,SERMANET P等人首次将深度学习应用于行人检测,提出了基于卷积稀疏编码的ConvNet模型。文献[3]将特征提取、变形处理、遮挡处理和分类统一于一个深度学习框架JointDeep进行联合学习。文献[4]和[5]将行人检测与语义分割任务联系起来,实现了行人检测和语义分割的联合优化。而随着目标检测技术的发展,涌现出了很多优秀的目标检测框架,如R-CNN(Region-based Convolutional Neural Network)[6]、Fast R-CNN[7]和Faster R-CNN[8]等。有些研究者致力于改进通用的目标检测框架,使其适用于行人检测。在文献[9]中,作者将Fast R-CNN进行改进,提出了具有尺度感知的行人检测模型,该模型分为大小两个子网络,分别检测不同尺度的行人。文献[10]将Faster R-CNN框架中的区域建议网络(Region Proposal Network, RPN)与级联的随机森林分类器结合,达到当时最好的检测效果。

虽然基于深度学习的行人检测取得了很多突破性的进展,但对小尺度行人的检测效果并不理想。这主要是由于卷积神经网络的一系列卷积池化操作,使得小尺度行人的特征图变得更小,分辨率低,信息丢失严重,导致检测失败。而在智能监控和自动驾驶等应用场景,小尺度行人占了很大的比重,以车载摄像头拍摄的Caltech[11]数据集为例,高度在20~80像素的行人超过了总数的70%。所以小尺度行人的检测非常重要。

本文在Faster R-CNN框架的基础上,对RPN进行了改进,使其适用于行人检测;并提出了一种多层次特征提取和融合方式,用来提高小尺度行人的检测效果。

1 相关知识

1.1 卷积神经网络

卷积神经网络是受到猫的视觉皮层细胞工作机制的启发而提出的[12]。CNN一般由卷积层、池化层和全连接层组成。在卷积层中,下一层的神经元只与上一层的部分神经元相连接,同一特征相关的神经元之间通过卷积核来共享权值。相比于全连接神经网络,CNN大大减少了参数的数量并且降低了过拟合的概率。而池化层相当于对输入图像不同位置特征进行聚合统计,能够进一步减少计算量,简化模型。CNN在特征提取方面表现出了巨大的优势,被广泛应用于图像识别、目标检测和场景分割等领域,并取得了很多突破性的进展。

1.2 Faster R-CNN目标检测框架

Faster R-CNN是最为经典的基于候选区域的目标检测框架之一,它是R-CNN和Fast R-CNN框架的升级版。基于候选区域的检测方法一般包含三个部分:候选区域的选择、特征提取和分类器分类。R-CNN用选择性搜索(Selective Search)算法[13]来生成候选区域,用CNN提取特征,SVM作为分类器来检测目标。可以看出R-CNN的训练是分阶段的,步骤繁琐,而且每个候选区域都要用CNN提取特征,导致重复计算。Fast R-CNN改进了R-CNN框架,它将Selective Search算法产生的候选区域的坐标映射到最后一层卷积层,然后用感兴趣区域采样层(Regions of Interest Pooling Layer, ROI-Pooling层)将这些区域分别下采样为7×7的特征向量,再输入后续的全连接层。Fast R-CNN将特征提取和分类器分类都用CNN来实现,而且加入了分类和边框回归的多任务学习机制,进一步简化了模型。在此基础上,Faster R-CNN提出了RPN,用CNN来替代Selective Search生成候选区域,并且RPN和检测网络共享前端的卷积层。Faster R-CNN将候选区域的选择、特征提取和分类器分类都统一到了一个深度学习框架,实现了端到端的快速目标检测。

通用目标检测和行人检测之间有一定的关联性,深度神经网络在目标检测任务中学习到的知识可以迁移到行人检测。对经典的训练充分的深度神经网络进行改进和微调,使其适用于新的任务,是深度学习中常用的手段之一。本文以Faster R-CNN目标检测框架为基础,根据行人检测任务的特点,对其进行了改进,提出了兼顾小尺度行人检测的网络SP-CNN(Convolutional Neural Network for Small-size Pedestrian)。

2 检测方法

2.1 网络结构

本文提出的SP-CNN的网络架构如图1 所示,它包含两个部分:行人区域建议网络和检测网络。行人区域建议网络是在对RPN进行改进的基础上提出的。在检测网络部分,本文从不同的层提取不同层次的特征并进行融合,提出了适用于行人检测的ROI-Pooling方式。如图1所示,conv1~conv5是VGG-16[14]网络的一部分,是行人区域建议网络和检测网络的共享卷积层部分。行人区域建议网络在RPN的基础上进行了改进,可以生成不同大小的行人参照框,进而生成候选区域。这些候选区域的坐标再映射到卷积特征层,用来提取相应位置的特征。SP-CNN将这些候选区域坐标映射至conv3_3、conv4_3和conv5_3多个卷积层的特征图上,用ROI-Pooling层将对应位置的特征采样为5×10(区别于Fast R-CNN的7×7)的特征图。由于不同层的特征尺度不同,SP-CNN引入了L2范数归一化层[15]对其进行归一化,然后用连接层将不同层的特征进行连接和融合。之后用1×1的卷积层将其转化为512×5×10的格式输入到后续的全连接层。由于SP-CNN是在Faster R-CNN的基础上提出的,更多细节可参考文献[8]。

图1 SP-CNN网络结构图

2.2 行人区域建议网络

在RPN中,候选区域是根据“锚”(Anchor)机制提供的参照框生成的[8],参照框的设计对于候选区域的生成和后续的训练至关重要。在Faster R-CNN中,RPN能够提供3种尺度(128, 256, 512)和3种宽高比(1:1, 1:2, 2:1)共9种大小的参照框。显然,这些参照框并不适用于行人检测任务,因为行人的尺度分布范围比较大而其宽高比较为固定。本文就是从这方面出发改进了RPN,使其适用于行人检测,改进后的RPN称为行人区域建议网络。行人区域建议网络将提供1种宽高比和12种尺度共12种大小的参照框。本文将宽高比设置为行人平均宽高比0.41[11]。行人区域建议网络提供12种尺度的参照框,但具体的尺度大小可根据数据集中行人高度分布来调整。本文在Caltech数据集上进行实验,而Caltech中行人高度主要分布在20~128像素之间,故本文设计的参照框的高度从25像素起,以1.25倍递增,得到12种尺度的行人参考框。图2展示了RPN提供的参照框和行人区域建议网络提供的参照框,可以看出,行人区域建议网络的参照框可以和行人进行更好的对齐,进而提供质量更高的候选区域。

图2 RPN网络和行人区域建议网络提供的参照框对比图

2.3 多层次特征融合

2.3.1多层次特征的选择

Faster R-CNN只从conv5_3卷积层提取候选区域特征,这对于小尺度行人来说,所提供的特征信息是远远不够的。为此,本文提出了多层次特征融合策略来丰富行人特征信息。低层特征分辨率高,对精准定位有帮助,而高层特征包含丰富的语义信息,对目标识别有帮助,将低层特征和高层特征相融合,有利于小尺度行人的检测。但随之而来的一个问题是选择哪几个层去进行融合。在Fast R-CNN中,包含conv1~conv5共5个卷积部分,每个部分包含2~3个卷积层,并且同一部分的卷积层特征图分辨率相同。考虑到在特征图分辨率相同的情况下,越深层的特征其语义信息越丰富,故本文将conv2_2、conv3_3、conv4_3和conv5_3作为特征融合的候选层。考虑到过多的底层信息可能会降低融合后特征的效果,本文将从conv3_3、conv4_3和conv5_3来提取特征进行融合。

2.3.2改进的ROI-Pooling

确定了选择哪些层的特征进行融合后,下一步则是要从这些层提取特征。在Faster R-CNN中,映射在卷积层的不同大小的候选区域需要提取为同样尺寸的特征才能输入后续的全连接层。Faster R-CNN是通过7×7的ROI-Pooling来实现这一操作的。但7×7的ROI-Pooling并不适用于行人检测任务,对于映射在conv5_3层的宽或高小于7的候选区域,它会直接抛弃,使得很多小尺度的行人得不到训练,进而导致小尺度行人检测效果不好。在SP-CNN中,结合行人的特点,改进了ROI-Pooling方式,将映射在不同层特征图上的候选区域分别下采样为5×10的特征图。改进的ROI-Pooling的采样机制为:对于输入到ROI-Pooling层的特征图,首先将其划分为5×10个块,然后对每个块取最大值,得到ROI-Pooling之后的5×10的特征图。可以看出,改进的ROI-Pooling充分考虑了行人的形状和尺度等因素。

2.3.3归一化

3 实验结果与分析

考虑到Caltech数据集中小尺度行人比较多,且环境比较复杂,具有挑战性,故本文在Caltech上进行实验。

行人检测算法一般用漏检率(Miss Rate, MR)和平均每张图片上错误正例(False Positive Per Image, FPPI)的关系曲线来评估。本文用FPPI的对数在区间[10-2, 100]上时MR的对数平均值作为量化评估标准,简称为对数平均漏检率(Log-average Miss Rate, LAMR)。本文先用文献[11]提出的Reasonable 指标来衡量算法的综合性能,然后用行人高度在20~80像素的行人检测结果来衡量算法对小尺度行人的检测效果。Reasonable 指标只考虑高度大于50像素且遮挡小于35%的行人。

3.1 行人区域建议网络的作用

相比于RPN,行人区域建议网络可以提供更适合行人的参照框,从而生成质量更高的候选区域。表1显示了在Reasonable 指标下,行人区域建议网络对检测结果的影响。

表1 行人区域建议网络的作用

3.2 不同层次特征融合的影响

多层次特征融合的一个首要问题就是选择哪些层的特征进行融合,表2显示了SP-CNN不同层特征融合对行人检测结果的影响,证明了SP-CNN网设计的合理性。

表2 不同层次特征融合的影响

3.3 与其他行人检测算法的比较

为了验证所提算法的有效性,本文将SP-CNN与一些具有代表性的行人检测算法如HOG[1]、ACF[15]、SpatialPooling[16]、JointDeep[3]和Faster R-CNN等进行了比较。实验分为Reasonable 指标下的行人检测和小尺度行人检测两个部分,它们分别用来评估算法的综合性能和对小尺度行人的检测效果。

3.3.1在Reasonable指标下的比较

如图3所示,在Reasonable 指标下,SP-CNN取得了优于其他算法的检测效果。SP-CNN的对数平均漏检率低至14.37%,表明SP-CNN的算法综合性能很好。特别是与Faster R-CNN相比,SP-CNN的对数平均漏检率降低了约10%,充分体现了本文对Faster R-CNN 所做改进的有效性。

图3 不同行人检测算法在Reasonable 指标下的比较

3.3.2小尺度行人检测的比较

图4为不同行人检测算法在小尺度行人(高度在20~80像素)检测上的结果比较。SP-CNN的对数平均漏检率为48.52%,比Faster R-CNN低18.92%,而其他算法的对数平均漏检率都超过了70%。由此可知,SP-CNN的结果远优于其他方法,表明了SP-CNN在小尺度行人检测方面的优越性。

图4 不同行人检测算法在小尺度行人检测上的比较

4 结论

本文将Faster R-CNN通用目标检测框架迁移到了行人检测领域,在RPN的基础上,提出了行人区域建议网络,同时为了进一步提高小尺度行人检测效果,提出了一种适合于行人检测的特征提取和融合方式。实验结果表明,本文的方法具有良好的综合性能,并且在小尺度行人检测上有明显的优势。

猜你喜欢

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