近年来,随着与人工智能产业的兴起以及交通运输等行业的不断发展,行人检测技术在智能监控、智能驾驶等领域得到了广泛的关注。传统行人检测方法中,通过人工设计的特征提取器,例如Haar、方向梯度直方图(histogram of oriented gradient, HOG)、局部二值模式(local binary pattern,LBP)等从训练样本中提取行人特征,再用提取的行人特征训练支持向量机(support vector machine,SVM)等分类器,进行行人检测任务[1]。例如可利用HOG+LBP特征处理行人遮挡问题,提高行人检测的准确率[2]。随着积分通道特征(integral channel features,ICF)、聚集信道特征(aggregated channel features,ACF)、梯度幅值特征,LUV颜色特征等提出,行人特征获得了更好地表达,在行人检测任务中也取得了较好的成果[3]。但通过手动设计的行人特征有着泛化性差、难以适应行人形态变化等缺点,在实际应用中困难重重。
随着深度学习的迅速发展,硬件计算能力不断增强,相应的数据集不断构建,深度神经网络在不同的视觉任务中取得了巨大的成功,深度网络模型也在行人检测领域得到了广泛的运用[3]。深度神经网络模型可以从图像像素中学习特征,提高行人检测器性能。在目标检测方面,基于区域建议(regional proposal,RP)的目标检测算法如基于区域的卷积神经网络[4](region based convolutional neural networks,RCNN)、Faster−RCNN[5],基于回归(regression)的目标检测算法如单镜头多盒检测器[6](single shot multibox detector,SSD)、You Only Look Once[7](YOLO)系列算法,不仅大大加快了目标检测的速度,也维持了较高的准确率。
然而,现有的目标检测算法中,R−CNN、Faster R-CNN由于实时性难以得到保证而较难实现应用;YOLO系列算法在经过不断地改进后,在检测的实时性方面性能十分突出:YOLO V2[8]、YOLO V3[9]虽然具有较好的检测准确率,但是需要较大的GPU显存(>4 GB),资源消耗量大,在部署方面存在一定的困难。因此,需要设计一种具有较好的实时性且对GPU等硬件配置要求不高的网络。我们选择Tiny−YOLO[10]网络,这是YOLO系列网络的简化版,拥有更少的卷积层、更快的检测速度以及较好的检测精度。对Tiny−YOLO网络进行改进,使其满足行人检测的实际需求。
1 Tiny−YOLO原理 1.1 Tiny−YOLO网络结构Tiny−YOLO主干网络拥有7个3×3的卷积(convolution)层,6个池化(maxpooling)层,前5为个步长为2的池化层,最后一个为步长为1的池化层。模型输入为416 pix×416 pix,在经过5个步长为2的池化层后,最终特征图大小为13×13。网络结构如图1所示。
在神经网络中,输入的图片中目标大小不同,不同尺寸的目标在最终输出时获取的特征信息量不同。神经网络中较浅的卷积层可以很好地表征小尺寸目标,而较深的卷积层的特征能更好地描述大尺寸目标。因此,根据目标尺寸的不同,选择不同的卷积层特征获取更多的语义信息,对目标进行预测[11],这样对不同尺寸的目标有更好的适应性。在Tiny−YOLO网络中使用了2种尺度对目标进行预测:
1)在基础网络之后添加一些卷积层进行预测,此时特征图大小为13 pix×13 pix。尺度1)对大尺寸目标有较好的预测能力。
2)从尺度1)中的倒数第2层的卷积层进行2倍上采样,上采样可以帮助网络学习细粒度特征,与最后一个尺寸为26 pix×26 pix的特征图相加,再次通过多个卷积后输出预测信息,特征图大小为26 pix×26 pix。尺度2)使用了较大的特征图,对较小尺寸的目标有更好的预测能力。
Download:
|
|
在YOLO系列网络中,损失函数由坐标误差、交并比(intersection over union,IOU)误差和分类误差3部分组成。
$ E = \sum\limits_{i = 0}^{{s^2}} {{E_{{\rm{cood}}}} + {E_{{\rm{IOU}}}} + {E_{{\rm{class}}}}} $ |
在行人检测训练时,训练损失函数可表示为:
$ \begin{aligned} & {\lambda _{{\mathop{\rm coord}\nolimits} }}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\prod {\sum {I_{ij}^{{\rm{person}}}[{{({x_i} - {{\hat x}_i})}^2} + {{({y_i} - {{\hat y}_i})}^2}]} } } } {\rm{ + }}\\ & \quad \quad {\lambda _{{\rm{coord}}}}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\prod {\sum {I_{ij}^{{\rm{person}}}[{{(\sqrt {{w_i}} - \sqrt {{{\hat w}_i}} )}^2} + } } } } \\ & \quad \quad {(\sqrt {{h_i}} - \sqrt {{{\hat h}_i}} )^2}] + \sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\prod {\sum {I_{ij}^{{\rm{person}}}{{({c_i} - {{\hat c}_i})}^2}} } } } {\rm{ + }}\\ & \quad \quad {\lambda _{{\rm{noperson}}}}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\prod {\sum {I_{ij}^{{\rm{noperson}}}{{({c_i} - {{\hat c}_i})}^2}} } } } + \\ & \quad \quad \sum\limits_{i = 0}^{{S^2}} {{{\prod {\sum {I_i^{{\rm{person}}}\sum\limits_{c \in {\rm{classes}}} {({p_i}(c) - {{\hat p}_i}(c))} } } }^2}} \end{aligned} $ |
式中:S代表最终特征图的网格尺寸;B代表每个网格的预测框个数;(x,y)代表代表框的中心坐标,w、h代表框的宽和高;c代表框的置信度(confidence);p代表行人置信度;λcoord为候选框损失权重,λnoperson为分类损失权重;
在卷积神经网络中,需要引入非线性函数作为激活函数。引入激活函数可以增加神经网络模型的非线性,使神经网络模型具有更好的表达能力。在卷积神经网络中,常用的激活函数有Sigmod函数、tanh函数、ReLU函数等。Tiny-YOLO网络采用了leaky ReLU函数作为激活函数,这样可以有效地避免在训练阶段Sigmod、ReLU等函数出现的梯度消失问题[12]。leaky ReLU激活函数公式为:
$ f(x) = \max (x,0.1x) $ |
Tiny-YOLO使用由维度聚类得到anchor box作为先验框来预测边界框(bounding box):
$ \left\{ \begin{aligned} & {b_x} = \sigma ({t_x}) + {c_x}\\ & {b_y} = \sigma ({t_y}) + {c_y}\\ & {b_w} = {p_w}{{\rm{e}}^{{t_w}}}\\ & {b_h} = {p_h}{{\rm{e}}^{{t_h}}} \end{aligned} \right. $ |
式中:cx、cy是网格的坐标偏移量;ph、pw是预设的anchor box的边长,最终得到的(bx,by)为边界框的中心坐标;bw、bh为边界框宽度和高度;tx、ty为边界框中心坐标的学习目标;tw、th为边界框宽度和高度的学习目标;σ表示预测的边框的置信度。
2 改进的Ped−YOLO网络Tiny−YOLO网络作为针对多类别目标检测的一种简化网络,已经取得了较好的检测效果和实时性,但并不完全适合行人检测任务,因此,需要针对具体问题进行相应的改进。
在现有的行人检测模型如HyperLearner[13]中,一方面,利用额外的通道特征改善行人检测模型的性能;另一方面,通过采用更小的卷积核以及更多的采样获得更全面的行人特征表达。文中用于行人检测的Ped−YOLO模型相对于Tiny-YOLO模型改进主要体现在以下3个方面:
1)改变训练时输入图像的分辨率;
2)对行人检测数据集的目标框进行聚类,确定anchor参数;
3)改进网络结构,使用更深的卷积神经网络对行人特征进行提取。
2.1 优化输入图像分辨率行人识别研究表明,图像中行人身高和宽度为一定值,行人的横向特征表达比纵向特征表达少,增加横向特征表达有助于行人识别。文中采用改变网络模型输入的长宽比例,利用矩形输入网络提取更多的横向特征[14],考虑到原网络输入图像尺寸为416×416,为避免输入图像分辨率对网络的影响,选择了608×288分辨率图像作为网络输入。一方面可以有更好的横向特征提取效果;另一方面二者具有相近的像素数,不会影响检测实时性。
2.2 K-means聚类分析YOLO系列算法引入了Faster R−CNN中的anchor boxes的思想[15],在数据集上进行聚类确定anchor boxes。YOLOv2的初始候选框anchor参数针对PASCAL VOC数据集进行聚类确定,聚类结果为5,因此其anchor数目为5;YOLOv3初始候选框anchor参数针对COCO数据集聚类确定,聚类结果为9,因此其anchor的数目为9,分属3个不同预测尺度;Tiny-YOLO的anchor参数同样针对COCO数据集聚类确定,聚类结果为6,因此其anchor的个数为6,分属2个不同预测尺度。由于PASCAL VOC数据集与COCO数据集中类别较多,得到的anchor参数具有普适性,但是并不适用于行人检测。在行人检测中,行人的长宽比不会因行人的背景、姿态等发生大的改变,往往是一个相对固定的比值,因此需要对数据集进行聚类分析,重新选择最优的anchor个数和宽高维度。文中采用K-means聚类方法获得先验框的尺寸,得到anchor的个数和宽高维度。
通过设置先验框,可以提高预测框与ground truth之间的交并比。IOU是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。传统的K-means聚类方法对两点间距离进行计算常用的是曼哈顿距离、欧式距离等。如果使用欧式距离函数,这会导致较大的框比较小的框产生更多的错误,考虑到行人检测数据集中行人尺寸问题,采用IOU来衡量聚类结果。
聚类中的距离函数为:
$ d({\rm{box,centroid}}) = 1 - {\rm{IOU}}({\rm{box,centroid}}) $ |
式中:centroid代表簇的中心;box代表样本聚类结果;IOU(box, centroid)代表簇中心框和聚类框的交并比。
选择608×288作为模型输入大小,对行人检测数据集进行聚类分析,使用递增的方法选择k值。通过计算不同k值下的IOU值,选择k的最优值。IOU与k的关系如图2所示。
Download:
|
|
根据图中的折线可知,在k=6之后,IOU值的增加逐渐变得平缓。考虑到网络的计算量,且改进的Ped-YOLO网络中使用原Tiny-YOLO网络在2种尺度上进行跨尺度预测的方法,最终采用k=6的聚类结果。
2.3 网络结构改进在卷积神经网络中,更多的卷积层与更深的网络结构往往对目标特征有更好的提取效果。而原Tiny−YOLO网络的层数较少,主干网络中只有7层卷积层,很难对行人目标特征有较好的提取效果,因此需要对网络结构进行改进,增加的卷积层如图3所示。一方面,考虑到行人区域相对较小,为了获得更高分辨率的信息,常用的7×7卷积层和5×5卷积层不适用于行人检测,因此选取3×3卷积核对原Tiny−YOLO网络进行加深。相对于原Tiny−YOLO网络,Ped−YOLO在主干网络中增加了额外的3个3×3卷积层。
Download:
|
|
另一方面,在网络加深的同时,额外的卷积层会造成网络模型参数过多,从而增加网络的运算量。通过借鉴Resnet[16]与Densenet[17]的思想,我们在网络中引入1×1卷积核。引入1×1卷积核的作用有两方面:一方面是卷积核通道数的降维,减少卷积核参数,简化神经网络模型;另一方面,引入1×1的卷积核,在前一卷积层的学习表示上添加了非线性激励,提升了网络的表达能力,同时也增加了模型深度,一定程度上提升了模型的表征能力。Ped−YOLO最终网络结构如图4所示。
Download:
|
|
文中采用的行人检测数据库为PASCAL VOC与INRIA混合数据集。INRIA数据集是目前使用最广泛的静态行人检测数据集,INRIA数据集分为训练集和测试集,训练集中包含了正负样本,其中正样本614张,正样本中有2 416人,负样本1 218张;测试集中包含正样本288张,正样本中有1 126人,负样本453张。INRIA数据集中图片的清晰度较高,背景也较为复杂,拍摄条件多样,存在光线变化、人体遮挡等情形,图片中人体大部分为站立姿势,高度大于100个像素[18]。考虑到INRIA数据集训练样本较少,实际应用时泛化能力较差且容易出现过拟合现象,本文提取了PASCAL VOC数据集中行人图片6 383张,与INRIA数据集进行数据融合,提高Ped−YOLO网络的泛化能力。
3.2 实验平台本文实验平台配置如表1所示。在该实验环境下,本文中的Ped−YOLO模型在720 p的mp4视频上检测速度可达到66.8 f/s,满足实时性要求。
在开源的深度学习框架Darknet上,搭建与训练Ped−YOLO模型。作为一种广泛应用的深度学习框架,Darknet可适用于多种格式的图片输入,其中INRIA数据集的图片为PNG格式,PASCAL VOC数据集的图片为JPEG格式。训练时学习率采用均匀分布策略(polynomial decay),模型的初始学习率(learning rate)设为0.001,在25 000和30 000次迭代后,学习率乘以0.1,动量系数为0.9,权值衰减系数为0.001 0,训练中采用了图像随机调整曝光、饱和度、色调等方法对数据进行扩充。此外,在训练时,每迭代10次改变模型的输入尺寸,使模型对于不同尺寸的图像具有更好的检测效果。
3.4 实验结果与分析 3.4.1 混合数据集测试分别在INRIA数据集和PASCAL VOC混合数据集上训练Ped−YOLO网络,并使用INRIA测试集进行测试。评价指标为召回率(recall)与平均精确值(mean average precision,mAP),召回率指正确识别出来的行人个数与测试集中所有行人的个数的比值。
实验结果如表2所示。结果表明,使用PASCAL VOC+INRIA混合数据集训练与使用INRIA数据集训练相比,在混合数据集上,mAP提高了1.07%,召回率提高了0.05。
为了验证文中设计的Ped−YOLO网络的定位准确性,利用平均交并比作为指标进行评测。本文在混合数据集上分别训练了Tiny−YOLO系列网络中的YOLOv2−tiny网络和YOLOv3−tiny网络作为Ped−YOLO网络的对照,并使用INRIA数据集中测试集测试平均交并比。
对比结果如表3所示。结果表明,相比较于YOLOv2−tiny网络,Ped−YOLO网络平均交并比提高了10.03%;相比较于YOLOv3−tiny网络,Ped−YOLO网络平均交并比提高了5.41%。这说明,在测试集上,Ped−YOLO产生的预测框与原标记框的交叠率更高,对行人定位的精度更好。原因在于,通过对数据集的K−means聚类分析选择先验框以及网络结构的改进,可以更好地提升模型的定位精度。
使用INRIA数据集中测试数据集进行精度测试。本文选择LAMR[19](log−average miss rate)指标作为评判的标准。LAMR指标表示的是平均每张图片误检数(false positive per image,FPPI)在[10−2,102]上与漏检率之间的关系。在FPPI=0.1时,将本文的方法与传统的HOG+SVM、Latent SVM+HOG方法以及YOLOv2−tiny、YOLOv3−tiny的检测效果进行比较。
实验结果如表4所示。Ped−YOLO相对于SVM+HOG[20]方法漏检率减少32.74%,相对于Latent SVM+HOG[21]方法漏检率减少6.72%,相对于YOLOv2-tiny网络漏检率减少4.40%,相对于YOLOv3-tiny网络漏检率减少4.07%。原因在于,采用人工设计的特征提取器(如HOG、LBP等特征提取算法),行人特征表达不够充分;而YOLOv2−tiny、YOLOv3−tiny虽然通过卷积网络学习行人特征,但卷积网络层数相对较少;而Ped-YOLO网络解决了这个问题,因此对行人特征的表达能力优秀。
为了更加直观地检验Ped−YOLO网络的有效性,本文选取INRIA测试集中图像以及私有图像进行了检测效果测试,从中挑选了3张不同行人尺寸以及存在遮挡情况的图像在Tiny−YOLO和Ped−YOLO这2个不同的模型上分别进行检测,其结果如图5、6所示。
Download:
|
|
Download:
|
|
可以看出,对于图像中较大尺度的无遮挡行人,2种网络具有相近的检测能力;对于较小尺寸的行人,改进的Ped−YOLO网络有着较好的检测结果,而Tiny−YOLO网络则会对小尺寸行人存在漏检的情况。此外,对于图像中存在的部分互相遮挡的目标行人,Tiny−YOLO的定位精度较差,且存在漏检的情况;而Ped−YOLO网络在存在部分互相遮挡的行人情况下,表现出了非常好的性能,有着更好的定位精度,漏检率更低。这说明,改进了训练时的分辨率,并针对行人检测数据集重新聚类;加深了卷积神经网络结构,使用混合数据集,对行人的特征提取更加充分,对不同尺寸的行人以及部分遮挡的行人有更好的检测效果。
4 结论本文以Tiny−YOLO网络为基础,通过改变网络输入尺寸、维度聚类分析、改进特征提取网络的方法,提出了一种改进的Ped−YOLO的行人检测网络。
1)与传统算法和Tiny−YOLO相比,Ped−YOLO网络具有更低的漏检率,Ped−YOLO网络在保持了较高的检测速度的同时,对不同尺寸、存在互相遮挡的行人有更好的检测效果。
2)本文提出的网络仍然存在一些问题,如训练受限于PASCAL VOC与INRIA数据集,行人训练样本偏少,对小目标行人检测效果偏差,行人被较大范围遮挡时,模型的检测效果也不强。因此,可以通过融合多类行人检测数据集进行网络训练,改善网络对不同尺寸、不同环境下行人的检测效果,增强模型的泛化能力。
3)在行人检测中,由于光照、遮挡等问题的存在,漏检率和误检率仍然达不到理想的水平。因此,需要提取更多的信息提升检测效果,如光流信息、语义信息等,提高特征表达能力,这也将成为行人检测的重要发展方向。
[1] | SABZMEYDANI P, MORI G. Detecting pedestrians by learning shapelet features[C]//Proceedings of 2007 IEEE Conference on Computer Vision and Pattern Recognition. Minneapolis, MN, USA: IEEE, 2007: 1−8. (0) |
[2] | WANG Xiaoyu, HAN T X, YAN Shuicheng. An HOG-LBP human detector with partial occlusion handling[C]//Proceedings of the 12th International Conference on Computer Vision. Kyoto: IEEE Press, 2009: 32−39. (0) |
[3] | 高宗, 李少波, 陈济楠, 等. 基于YOLO网络的行人检测方法[J]. 计算机工程, 2018, 44(5): 215-219. (0) |
[4] | GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA: IEEE, 2014. (0) |
[5] | REN Shaoqing, HE Kaiming, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[C]//Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal, Canada: ACM, 2015: 91−99. (0) |
[6] | LIU Wei, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016: 21−37. (0) |
[7] | REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]// Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016: 779−788. (0) |
[8] | REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA: IEEE, 2017: 6517−6525. (0) |
[9] | REDMON J, FARHADI A. YOLOv3: an incremental improvement[J]. arXiv: 1804.02767, 2018 . (0) |
[10] | REDMON J. Darknet: open source neural networks in C[DB/OL]. [2017-10-25]. http://pjreddie.com/darknet/. (0) |
[11] | 刘辉, 彭力, 闻继伟. 基于改进全卷积网络的多尺度感知行人检测算法[J]. 激光与光电子学进展, 2018, 55(9): 91504. (0) |
[12] | 冯帅, 张龙, 贺小慧. 基于Jetson TK1和深度卷积神经网络的行人检测[J]. 信息技术, 2017(10): 62-64. DOI:10.3969/j.issn.1674-2117.2017.10.025 (0) |
[13] | MAO Jiayuan, XIAO Tete, JIANG Yuning, et al. What can help pedestrian detection?[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA: IEEE, 2017: 6034-6043. (0) |
[14] | 郝旭政, 柴争义. 一种改进的深度残差网络行人检测方法[J/OL]. 计算机应用研究, 2019, 36(6). [2018-05-22]. (2018-03-16) http://www.arocmag.com/article/02-2019-06-057.html. DOI: 10.3969/j.issn.1001-3695.2017.12.0836. (0) |
[15] | DAI Jifeng, LI Yi, HE Kaiming, et al. R-FCN: object detection via region-based fully convolutional networks[C]//Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelona, Spain: ACM, 2016: 379−387. (0) |
[16] | HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep residual learning for image recognition[C]// Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016: 770−778. (0) |
[17] | HUANG Gao, LIU Zhuang, VAN DER MAATEN L, et al. Densely connected convolutional networks[C]// Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA: IEEE, 2017: 2261-2269. (0) |
[18] | 刘建国, 罗杰, 王帅帅, 等. 基于YOLOv2的行人检测方法研究[J]. 数字制造科学, 2018, 16(1): 50-54. (0) |
[19] | DOLLAR P, WOJEK C, SCHIELE B, et al. Pedestrian detection: an evaluation of the state of the art[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 34(4): 743-761. DOI:10.1109/TPAMI.2011.155 (0) |
[20] | DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]//Proceedings of 2015 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, CA, USA: IEEE Computer Society, 2005: 886−893. (0) |
[21] | FELZENSZWALB P F, GIRSHICK R B, MCALLESTER D, et al. Object detection with discriminatively trained part-based models[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(9): 1627-1645. DOI:10.1109/TPAMI.2009.167 (0) |