基于Cascade-Rcnn的行人检测
2020-04-09刘博文彭祝亮范程岸
刘博文 彭祝亮 范程岸
摘 要:Faster Rcnn是目标检测领域中精确度较高、使用范围较广的一个经典算法,而Cascade Rcnn是借鉴Faster Rcnn改进的。文章将Cascade Rcnn的方法应用于行人检测中,利用深层卷积神经网络提取图像特征,通过RPN提取可能含有行人的区域,利用多层级联的检测器对目标区域进行判别和分类,在数据集中进行了检测验证。实验结果表明,相比基于Faster-rcnn的行人检测方法,在测试集上检测准确度达到了66.2%,其检测效果更好。
关键词:行人检测;深度学习;目标检测;深层卷积神经网络
行人检测算法一般分为基于背景建模、基于轮廓建模、基于底层特征和基于统计学习4大类。传统方法里面比较好的是NAVNEET D等[1]提出的用梯度方向直方图(Histogram of Oriented Gradient,HOG)特征描述,并采用与支持向量机相结合的策略,使得行人检测效果取得了重大的突破。后来基于HOG算法改进的DPM算法进一步提高了行人检测的精确度,改善了行人遮挡的问题。传统的行人检测方法有以下几个缺点:(1)使用底层特征,对行人特征的表达能力不足。(2)行人的特征可分性比较差,导致分类错误率较高。(3)行人的场景比较复杂,一般只能针对某些特定的场景,但是到了另外一个场景检测效果就不好。
深度学习强大的特征学习能力,使得基于深度学习的目标检测算法在目标检测领域中占据了主导的地位。目前基于深度学习的目标检测算法有两大类:一类是以Faster R-CNN[2]为代表的基于区域建议的目标检测算法,如SPP-Net[3],Fast R-CNN[4]等。另一类是以YOLOv3[5]为代表的基于回归的目标检测算法,如SSD[6],RetinaNet[7]等。由于行人检测任务对精确度要求比较高,所以,大部分研究人员使用区域建议的目标检测算法,其中Faster R-CNN算法在行人检测中广泛应用,精确度非常高,实际应用效果比起传统方法要好很多。
本文是基于Cascade R-CNN[8]模型的,与Faster R-CNN做对比试验,数据是自制的数据集,使用静态行人数据集,其中很大一部分都是在游泳池背景下的行人。
1 Cascade R-CNN介绍
1.1 算法简述
Cascade Rcnn网络跟Faster Rcnn网络很相似,主要分成两步,首先是定位目标的位置,然后对目标进行分类。具体步骤:首先,输入一张图片,通过特征提取网络得到图像的特征图;然后,区域生成网络(Region Proposal Network,RPN)在特征图上定位候选目标,通过级联不同的IOU阈值检测模型挑选对应质量的样本进行训练和回归。因此,Cascade Rcnn与Faster Rcnn的不同之处为前者级联了几个检测模型,后者只有一个检测模型。每个检测模型都是基于不同IOU的正负样本训练得到,并且前一个检测模型的输出是后一个检测模型的输入,越靠后的检测分支其检测的政府样本IOU越不断提升,导致每个检测模型的IOU尽量与输入proposal的IOU接近,让每一个检测模型都专注于检测IOU在某一范围内的proposal,从而提高检测的精度。
1.2 网络结构
如果使用Faster Rcnn网络的VGG16去提取特征,会导致存在一个很大的感受野,不利于检测小物体,但是在行人检测里面,图片中的行人通常是比较小的,所以,用VGG16对于小物体进行检测的效果并不好。
为了克服VGG16对小物体检测不好的缺陷,选用ResNet50和FPN相结合的网络结构去提取特征。ResNet网络主要通过残差学习来解决深层网络训练出现的退化问题,能很好地解决梯度消失的问题。FPN网络主要是从网络不同层抽取不同尺度的特征进行预测,能提取足够底层的特征,而且底层的特征对于检测小物体是有帮助的。
1.3 RPN网络
RPN的输入是特征提取网络提取出来的特征图,输出是目标区域候选框的集合。RPN网络主要是在特征图上利用滑动窗口通过3×3的卷积后,得到一个数目是256的特征图,尺寸和输入的特征图相同。具体的原理为一种映射的关系,特征图是一个锚点会产生k个框(一般k=9),然后映射到原图也会有k个框,这k个框可能会覆盖研究人员想要检测的目标。可以看出RPN网络在提取候选框的效率上是非常高的,比一般的传统方法高很多。
1.4 级联网络
Cascade Rcnn最核心的部分是用級联网络的检测模型去训练。由于每个检测模型都是基于不同IOU的正负样本训练得到,前一个检测模型的输出作为后一个检测模型的输入,越往后的检测模型其界定的正负样本IOU阈值越不断提升,反过来也能使RPN网络输出更优质的候选框,从而减少假正样本出现的次数,提高检测网络的精确度。
2 实验与结果分析
2.1 数据集
实验的训练样本主要是来自于游泳池的监控视频,按照voc2007数据集的要求进行分配训练集、测试集和验证集,每张图片中行人个数有1~30人不等,包含各种尺度。
2.2 训练
本文的实验是在Pytorch框架下进行的,操作系统是Ubuntu18.04,硬件是CPU为i7-7820x,显卡是NVIDIA RTX2080Ti,内存为32 G。
训练的时候,由于初始数据集图片偏少,所以研究人员对数据集进行数据增广。采用3层级联和Faster Rcnn作对比,3层级联的IOU分别设置为0.5,0.6和0.7。用的是SGD优化器,学习率为0.02,momentum是0.9,weight_decay是0.000 1。
2.3 实验结果分析
基于Cascade Rcnn模型改进的算法在游泳池下行人检测的结果如表1所示,可看出,基于Cascade Rcnn改进的模型的結果是平均精确度AP为66.2%。基于VGG16的模型的Faster Rcnn在此数据集上的测试结果是平均精确度AP为48.1%。从上面的实验结果可以得到Cascade Rcnn在PFN和ResNet50网络结构各方面表现更加优异,尤其在平均精确度AP上有着18.1%的提升。
Cascade Rcnn+FPN+ResNet50的实验效果如图1所示,对比试验Faster Rcnn的试验效果如图2所示。用基于Cascade Rcnn改进的模型精确度非常高,在比较复杂的夜晚环境下的游泳池去检测行人,其精确度也是比Faster Rcnn高很多,且漏检率少。尤其是对比图1和图2中右上角和左上角的远距离行人检测效果,可以看到在右上角和左上角,由于距离比较远、水面上环境比较复杂以及反光,导致行人在图片上看上去比较小,使得基于VGG16的Faster Rcnn会丢失该部分的信息导致漏检,因此图1的模型检测效果明显好于图2的模型。从上述描述可总结得到:基于Cascade Rcnn改进的模型对于小物体的检测以及复杂场景的检测效果很好。
[参考文献]
[1]NAVNEET D,BILL T.Histograms of oriented gradients for human detection[C].Las Vegas:IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2005.
[2]SHAOQING R,KAIMING H,ROSS G,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015(6):1137-1149.
[3]KAIMING H,XIANGYU Z,SHAOQING R,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2014(9):1904-1916.
[4]ROSS G.Fast R-CNN[C].Santiago:IEEE International Conference on Computer Vision,2015.
[5]REDMON J,FARHADI A.YOLOv3:an incremental improvement[J].Computer Vision and Pattern Recognition,2018(4):511-520.
[6]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[J].Computer Vision and Pattern Recognition,2015(10):500-510.
[7]LIN T Y,GOYAL P,GIRSHICK R,et al.Focal loss for dense object detection[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2017(99):2999-3007.
[8]CAI Z,VASCONCELOS N.Cascade R-CNN:delving into high quality object detection[J].Computer Vision and Pattern Recognition,2017(6):798-802.
Abstract:Faster Rcnn is a classic algorithm with high accuracy and wide range of target detection, Cascade Rcnn is improved by using Faster Rcnn. This paper applies Cascade Rcnns method to pedestrian detection, uses deep convolutional neural network to extract image features, and extract areas that may contain pedestrians by RPN. The region uses a multi-level cascaded detector to discriminate and classify the target area, and performs verification in the data set. The experimental results show that compared with the Faster-rcnn-based pedestrian detection method, the detection accuracy on the test set reaches 66.2%, and the detection effect is better.
Key words:pedestrian detection; deep learning; target detection; deep convolutional neural network