基于多通道稀疏卷积神经网络的行人检测算法*
2018-09-27秦玉芳
曹 璐, 陈 明, 秦玉芳
(1.上海海洋大学 信息学院,上海 201306; 2.农业部渔业信息重点实验室,上海 201306)
0 引 言
场景多变,人体形态的多样及人与物体之间相互遮挡等因素的影响给行人检测带来了巨大的挑战[1]。目前,行人检测的常用方法包括基于统计学习和深度学习的方法。Dalal N[2]提出的方向梯度直方图(histogram of oriented gradient,HOG)特征是行人检测中最为经典的特征,其很好地描述了行人的轮廓,但在复杂背景和遮挡情况下检测效果较差。可变形部件模型(deformable part models,DPM)在HOG特征的基础上考虑了多角度多姿态,通过训练多模型提高了遮挡情况下的预测精度,但其结构复杂,运行速度较慢[3~5]。2012年,Hinton Krizhevsky A等人[6]将深度学习用于图像识别,在当年的国际视觉识别大赛中取得了最好的成绩。郑锐等人[7]利用高斯混合模型提取前景,使用传统混合特征对目标进行分类,提升了速度。黄成都[8]将传统分类器融入codebook背景建模中,解决了光照突变问题,降低行人检测误检率。邹冲等人[9]将检测任务分为两级,通过HOG结合支持向量机(HOG—SVM)进行一级粗检测,再利用LeNet神经网络进行细检测,提升了检测精度。然而上述方法直接输入图像信息,包含大量冗余信息,局部边缘和纹理不明显,且计算效率低。
为此,本文提取图像的HOG特征作为卷积神经网络的一个输入通道,充分利用HOG算子处理边缘轮廓信息和纹理信息的优势,同时为了降低来自卷积层的特征的噪点污染,利用稀疏自动编码器进行特征稀疏化。基于此,提出了基于多通道输入的稀疏化卷积神经网络的方法(multi-channel-sparse—CNN,MCS—CNN),大幅提高了行人检测的准确度和检测运行速度。
1 MCS-CNN行人检测算法
MCS—CNN深度网络结构主要分为:多通道输入层、卷积层、稀疏特征层、分类层,如图1。
图1 MCS-CNN结构
1.1 多通道输入
受文献[10]的启发,并结合HOG处理图像轮廓和边缘的特性,将图像和HOG特征图连接成3个通道:
1)原图转换到颜色空间YUV后,第1个通道为128×64的Y通道图像;
2)第2个通道分为4个大小相等的块(block),由3个64×32的YUV通道和64×32的全0矩阵组成。
3)第3个通道同样由4个大小相等的block组成,前3个block分别由YUV 3个通道经过HOG处理形成的特征图[2]组成,最后一个block取前3个block的像素最大值。
多通道处理如图2所示。
图2 图像多通道处理
考虑到第一通道使用的是Y通道信息,与其他通道信息数值差距较大,所以对3个通道的数据进行归一化处理。
1.2 卷积层
上述3个通道的信息通过卷积层提取特征。本文通过构建不同层数的结构来构建卷积层,CNN网络结构如图3。
图3 MCS-CNN卷积层结构
第一层包含卷积层,激活层,可选层包括BN,Dropout,MaxPooling,该结构可以重复叠加;第二层包含全连接层,同样可选BN,Dropout,MaxPooling。卷积层包含M个第一层和N个第二层2个部分,采用3×3的滤波器对输入信息进行卷积运算。具体层数选取参见实验与分析部分。
1.3 稀疏层
行人检测最重要的就是学习到显著有效的特征,稀疏自动编码器可以提高特征的表达能力,从而提升网络的准确率,因此本文采用稀疏层对来自卷积层的特征进行稀疏编码。训练稀疏自动编码器时,将来自卷积层的输出作为稀疏自动编码器的输入(隐含层神经元共200个),根据权重和输入向量的加权组合加上偏置量得到输出,前向过程为
(1)
定义目标损失函数
(2)
(3)
式中zi为输出层的神经元i的输出,xi为输入层的神经元i的输入,n为神经元个数,β为用于控制稀疏性惩罚的权重,式(3)最后一项为KL距离。
根据前向计算和反向传播来训练第一个隐含层的参数。同理,采用同样的方法训练第二个隐含层的参数。模型不断迭代更新权重,得到参数W,b。
1.4 MCS-CNN算法流程
输入:图像训练集和测试集。
1)多通道输入;
2)对3个通道进行归一化处理,通过卷积层和池化层,得到特征图;
3)将特征图送入稀疏自动编码器,得到参数W,b;
4)将稀疏层的输出连接全连接层,利用Softmax得到行人的分类结果;
5)根据反向传播算法,不断训练迭代更新网络的参数;
6)输入测试集,进行模型评估和模型更新。
2 实验与结果分析
2.1 数据集
本文使用的训练数据集选自MIT,PASCAL,共包含4 753张不同尺寸的图像。其中,MIT的924张图像全部作为正样本,其他正样本和负样本来自PASCAL。为防止过拟合,本文采用调节图像亮度、饱和度、对比度,随机裁剪,旋转和仿射变换,模糊处理等方法来进一步扩充数据量。
2.2 卷积层数选取
1)建立一个小型网络,卷积层数量为2。在第一个卷积层中用32个3×3的滤波器对图像进行步长为1的卷积;第二个卷积层中,采用64个3×3的滤波器进行卷积,其他参数不变,Relu作为激活函数。全连接层中有512个神经元,Softmax作为损失函数。
2)增加网络深度,建立4层卷积网络和2层全连接层,卷积层过滤器的个数分别取32,64,128,256个,在全连接层中分别取256和512个神经元。图4为4层卷积的MCS-CNN正确率和收敛曲线,与2层卷积层情况对比图像经过多通道处理和特征稀疏化之后,收敛更快,测试集的准确率更高,且不易过拟合。图5为行人图片经过网络时卷积层特征图的可视化结果,表明随着层数的增加,网络忽略背景,更加关注行人轮廓。
图4 4层卷积层MCS-CNN的正确率和收敛曲线
图5 MCS-CNN部分层的可视化结果
由表1所示,随着网络层数的增加,准确率呈现先增后降的趋势,整体变化不大,但检测时间大幅增加。由于本身输入通道的尺寸较小,不断增加卷积层的层数在初期可以去除噪声,提升提取特征的纯度,但随着层数的增加和池化等操作会损失图片信息,从而影响特征的提取和识别结果。另一方面,MCS-CNN在检测精度和速度上均优于HOG-SVM算法。综上,同时考虑准确率,召回率和检测时间,本文取4层卷积网络对样本集进行特征提取,网络模型结构确定后,使用MCS-CNN模型与其他算法进行对比实验。
表1 MCS-CNN不同卷积层数的实验结果
2.3 实验结果对比分析
图6对比了本文MCS-CNN和CNN的混合矩阵。可以看出,MCS-CNN的查准率为64.22 %,查全率为98.14 %,CNN的查准率为75.8 %,查全率为87.58 %。CNN误检了91张图像,而MCS-CNN误检了65张图像,误检测率显著降低。此外,对HOG-SVM、传统CNN和MCS-CNN 3种检测算法进行对比分析,结果如表2所示。其中测试样本分别来自Daimler的311张图像、来自INRIA的172张图像、来自PASCAL的178张图像。
图6 CNN和MCS-CNN的混合矩阵对比
算法准确率/%DaimlerINRIAPSCAL平均检测速度/(帧·s-1)HOG-SVM69.5273.1663.120.813CNN70.7381.9870.120.291MCS-CNN79.1090.1273.230.282
由表2分析可知,MCS-CNN模型对于Daimler,INRIA和PASCAL 3个数据集准确率均最高的。MCS-CNN方法的检测速度明显快于HOGSVM方法,略快于CNN。相较于传统人工提取特征HOG和单纯使用原图作为输入的CNN来说,本文算法集成了HOG的优点,利用CNN自动提取特征,同时通过稀疏自动编码器来优化特征,在整体检测性能上得到了有效提升。
3 结束语
本文在传统CNN的基础上,改变图像作为网络输入的传统形式,将图像与HOG相结合的多通道信息作为输入向量,然后利用稀疏自动编码器进行特征稀疏化,降低来自卷积层特征的噪点污染。实验表明,MCS-CNN模型不但保证了传统CNN的高效性,同时提高了检测的准确率。