张 汇, 杜 煜, 宁淑荣, 张永华, 杨 硕, 杜 晨
(1.北京联合大学智慧城市学院,北京 100101;2.北京联合大学机器人学院,北京 100101;3.北京市信息服务工程重点实验室,北京 100101)
行人检测算法大致可以分为基于背景建模、基于轮廓模板、基于底层特征和基于统计学习四大类。基于Codebook背景建模算法提取运动前景,减少检测过程的搜索范围,构建临时块模型,结合行人检测结果更新背景模型,实现行人检测[1]。虽然该算法能应对光照突变,但是只能检测运动的行人而不能检测静止的行人。基于轮廓模板的方法是指利用图像中目标物体的边缘轮廓、纹理和灰度等信息构建模版,通过模板匹配的方法检测目标[2]。这种方法在原始图像上进行运算,方法简单易行,缺点是需要构建大量的模板才能取得比较好的匹配效果。为了更好地刻画行人图像特征,Dalal N等人[3]提出了梯度方向直方图(histogram of oriented gradient,HOG)特征描述子,并通过采用与线性分类器支持向量机(support vector machine,SVM)相结合的策略,使得行人检测效果取得了很大突破。陈芝垚提出了将可变形的组件模型(deformable part model,DPM)算法与HOG特征描述子相结合的算法,进一步提高了行人检测率,改善了行人遮挡问题[4,5]。传统的行人检测方法主要存在以下几个主要缺点:1)使用底层特征,对行人目标的表达能力不足;2)行人的特征可分性较差,导致分类错误率较高;3)行人特征针对性强,某一种特征只能适应某种特定场景,在另一种场景下很难到达同样的效果[6~8]。
在目标识别领域, 2006年Hinton G E等人[9]提出了基于深度学习的算法,并利用深度卷积神经网络从大量的数据中学习高层特征。深度卷积神经网络将特征提取、特征选择和特征分类融合在同一模型中,通过端到端的训练,从整体上进行功能优化,从而进一步增强了特征的分类。2012年,Krizhevsky A等人[10]在 ILSVRC比赛中使用卷积神经网络的方法,以15.3 %的错误率获得了第一名,远超出了第二名。Girshick R等人[11]提出了区域卷积神经网络(RCNN)模型[12],该模型利用Selective Search方法选取待检测图像中的若干个大小相同的候选区,并使用深度卷积神经网络进行高层特征提取。然后使用多个SVM对特征进行分类,从而完成目标检测。Girshick R[13]为了提高RCNN模型的检测准确度和检测速度,提出了快速RCNN(Faster RCNN)模型。
为了加快提取候选区域的速度,克服人工设计特征鲁棒性差的难题,本文借鉴了目标检测领域的Faster RCNN模型[14,15],加入K-means聚类算法提取初始候选区域,利用区域建议网络(regional proposal network,RPN)生成建议候选区域,使用检测网络对行人目标进行分类和定位。K-means聚类和RPN联合使用,减少了计算,大大节省生成候选区域的时间,实验中使用INRIA数据集训练该模型,得到Faster RCNN行人检测模型参数,验证了Faster RCNN用于行人检测耗时少,漏检、误检少。
行人检测过程如图1所示,其中Faster RCNN包括RPN和检测网络。行人检测的整个流程分为输入图像、通过ZFnet计算卷积特征、K-means聚类提取初始候选区域、利用RPN生成更加精准的候选区域、利用检测网络进行分类和回归计算得到行人矩形框等6个过程。
图1 Faster RCNN 行人检测过程
一般,行人只在一张图像中占很小的区域,如果对图像每一个区域都进行计算,无疑增加了计算时间和学习训练的难度。该方法通过RPN和检测网络共用相同卷积层的方式减少了图像中建议区域的计算时间,同时保证了图像中行人的检测准确率。此外,聚类和RPN对检测网络的检测位置提出建议,其输入是待检测图像,输出是一组可能是行人的矩形框建议区域,并且每个矩形框带有一个得分值。
该方法利用INRIA行人检测数据集对RPN区域建议网络和检测网络进行训练。如图1所示,使用ZFnet网络进行训练,其输出分别增加特定的层,从而得到RPN区域建议网络和检测网络,用于提取输入图片中可能包含行人的区域,并计算其概率。
将输入的图像划分为M×N个单元,每个单元格给定B个不同规格的初始候选区域,初始候选区域通过卷积计算提取,每幅图像的初始候选区域数量为M×N×B个。
在训练阶段,需要设置候选区域的初始规格及数量。随着迭代次数不断增加,候选区域参数不断调整,最终接近真实行人区域。为了加快收敛速度,使用K-means方法进行聚类,得到图像中与行人相近的候选区域。一般,K-means聚类采用欧氏距离衡量两点之间的距离,对候选区域的高宽与单位网格长度之比进行聚类。IOU(intersection over union)是反映候选区域与真实行人区域的重要指标,IOU值越大,表明两者差异越小,聚类的目标函数为
(1)
式中N为聚类的类别,M为聚类的样本集,Box[N]为聚类得到的候选区域宽高,Truth[M]为真实行人区域宽高。
为了得到更加精准的候选区域,将初始候选区域的卷积层特征作为RPN的输入,输出为一系列的矩形目标候选区域。为了生成候选区域,在卷积层输出特征图上进行了滑窗选择。在特征图中有若干个窗口,对于每个窗口,同时预测k个目标候选区域,每个窗口与k个目标候选区域存在联系,称为anchor。每个anchor有相对应的比例和尺度。卷积特征图中的每一个点都是 anchor的中心,有k个相对应的anchors。每个滑窗被映射到一个256维的低维向量中。该特征向量被传送到检测网络的两个子网络中:边框回归网络和边框分类网络。边框分类网络输出的是每个anchor属于行人或者非行人的概率,因而对于每个滑窗,有2k个输出,即将256维向量映射为2k维向量。行人矩形框的位置用(x,y,w,h)来表示,点(x,y)表示矩形框中心的顶点坐标,w,h分别表示矩形框的宽度和高度。边框回归网络输出的是每个anchor的平移缩放的值,根据行人矩形框的位置信息可知,对每个滑窗,有4k个输出。
图2 RPN
RPN的训练过程是端到端的,使用反向传播法和梯度下降法对区域提议网络进行调优。在训练过程中,若待检测区域与标记的正样本完全重叠或者重叠部分的面积超过正样本面积的0.7,则判定为行人,否则,判定为非行人。
L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]·Lreg(tu,v)
(2)
(3)
(4)
实验的训练样本来自INRIA数据集中的训练集,正负样本分别选取5 000张作为训练样本;测试集有21 790张图片,包含了56 492个行人,此外,测试集还包括在校园中采集的500张图片。实验硬件配置为Intel Core i7 处理器,内存16 GB,英伟达显卡GTX970M。在训练阶段,需要对训练集中每张图像中的每个行人用矩形框标记,有遮挡的行人也要标记。测试时,若识别出的行人框和标记的矩形框重叠部分达到标记的矩形框的90 %以上,则记为检测成功。实验结果如图3所示。
图3 行人检测结果
实验使用Caffe框架实现卷积神经网络模型, Faster RCNN中的Dropout、最大迭代值、批处理尺寸和非极大抑制值等参数对平均准确率值(mAP)产生较大的影响,为了得到较好的输出,需要对这些参数进行优化。实验中,最大迭代次数为8 000,区域提议阶段批尺寸为256,检测阶段尺寸为128,经过实验验证其优化结果如表1所示。可知:当Dropout从0.2升至0.6时,mAP的值在增加,当Dropout从0.6升至0.8时,mAP值在减小。当Dropout取0.6时,mAP取得最大值。
表1 不同Dropout比例的mAP的影响
在Dropout为0.6,最大迭代次数为8 000的条件下,得到的实验结果如表2所示。实验表明,区域提议阶段的尺寸越小则mAP值越大。
表2 不同区域提议阶段尺寸对mAP的影响
实验采用mAP最大时对应的Faster RCNN的参数,并与DPM方法开展了对比分析实验。实验结果如图4,表明采用Faster RCNN方法的行人检测的准确率和召回率明显高于DPM 方法。
图4 Faster RCNN方法和DPM方法的对比实验
提出了基于Faster RCNN的行人检测方法,并与DPM方法进行了对比分析实验。实验结果表明:相比基于DPM的行人检测方法,Faster RCNN方法检测准确度更高、实时性更好。