朱玉刚
摘 要:目标检测是目前计算机视觉领域非常热门的研究方向,是无人驾驶技术重要环节。为提高行车过程中目标检测精度并改善基于单发多目标检测器在训练时出现的正负样本失衡问题,基于车载视频,运用深度学习算法中具有强大性能的SSD模型,通过引入Focal Loss函数设计新的损失函数,解决样本失衡问题;同时在不降低检测速率的情况下,提高检测精度。基于自行采集的车载视频数据集进行实验,结果表明,改进后SSD模型的mAP相较于原始SSD模型提高了3%,达到74%。
关键词:深度学习;无人驾驶;SSD;目标检测;Focal Loss
DOI:10. 11907/rjdk. 191064 开放科学(资源服务)标识码(OSID):
中图分类号:TP312文献标识码:A 文章编号:1672-7800(2019)009-0042-05
Multi-Object Detection Algorithm for Unmanned Driving Based on Deep Learning
ZHU Yu-gang
(School of Electronics and Communication,Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: Object detection is a very popular direction in the field of computer vision, especially in the field of unmanned driving technology. In order to improve the detection accuracy of objects encountered in the driving process and improve the imbalance of positive and negative samples based on single Shot MultiBox Detector (SSD) in training, based on vehicle video, this paper uses SSD model which has strong performance in deep learning algorithm, and designs a new loss function by introducing Focal Loss function to solve the problem of sample imbalance. In this way, the detection accuracy is improved without reducing the detection rate. This method is more effective and convenient. Based on the self-collected vehicle video data set, the experimental results show that the mAP (mean Average Precision) of the improved SSD model is 3% higher than that of the original SSD model, up to 74%.
Key Words: deep learning;?unmanned vehicle; SSD; object detection; Focal Loss
0 引言
随着科技的发展,目标检测成为计算机视觉研究热门课题,可应用于无人驾驶、视频监控、行人检测、海面舰船检测等多个方面[1]。传统目标检测方法通常采用机器学习方法,即特征工程结合分类器。首先使用算子(如HOG[2]、SHIFT[3]、Haar[4])提取特征,然后选择合适的分类器(如SVM[5]、Fisher[6]、Adaboosting[7])依据特征进行分类,得到目标检测结果。但是传统方法存在两个致命缺点:①选择的算子不适应所有特征的提取,即提取的部分特征没有很强的代表性;②算子选择依赖于大量人工经验。随着硬件和大数据的发展,基于深度学习的目标检测算法克服了以上两个缺点,逐渐替代了传统方法,并且提升了目标检测精度和鲁棒性,使特征更丰富、表达能力更强。
目前,基于深度学习的目标检测方法主要分为两类:一类是基于建议框+分类的目标检测方法,典型代表有R-CNN系列(R-CNN[8]、SPPnet[9]、Fast R-CNN[10]以及Faster R-CNN[11]),其检测效果佳,但是在速度方面还远不能满足实时检测需求。因此在提高平均精度均值(mean Average Precision,mAP)的同时兼顾速度逐渐成为目标检测研究方向;另一类是基于回归思想的深度学习目标检测模型,典型代表有YOLO[12]、SSD[13]。YOLO虽然能够达到实时效果,但是其mAP与第一类方法的结果存在较大差异,且YOLO存在两个缺点:①只用到最后的特征层,所以对于多尺度目标检测效果较差;②YOLO仍然使用全连接层进行最后分类,准确性较差。相比而言,SSD網络采用图像金字塔结构,多尺度目标检测效果较好,适合本文多目标数据集。另外SSD使用卷积层替代了最后全连接层,故定位更准确,在具有较好实时性的同时mAP更高,其速度可与YOLO媲美,mAP与Faster RCNN保持在相同水平,但是以上方法都存在正负样本失衡问题。
本文综合考虑检测速度和精度,采用SSD网络进行研究,并引入Focal Loss损失函数[14]设计新的损失函数,替换原有在线难分样本挖掘(Online Hard Example Mining,OHEM)[15]机制,更高效地解决了正负样本失衡问题,提高了整体检测平均精度。
1 SSD目标检测网络
SSD是目前综合性能最好的网络。它使用3×3的卷积核替换VGGNet最后全连接层[16]进行分类回归,可利用目标周围信息进行预测,而不是利用全局信息,使定位更加准确。另外其使用特征金字塔结构,将不同特征层用于最后结果预测,可涵盖不同维度、保证特征丰富性,并且使用浅层特征层负责小目标检测,深层特征层负责大目标检测,可进一步提高检测效果。特征金字塔设计如图1所示。另外,SSD在多个特征层上生成不同尺度、不同长宽比的锚框,产生良好的多尺度目标检测效果。
1.1 网络架构
SSD模型思想仍然延续了传统目标检测思想,前面的卷基层用于特征提取,后面的Softmax层用于分类。SSD模型采用VGG16基础网络结构。SSD网络有两种架构,一种适合于图片分辨率为300×300的输入(SSD300),另一种适合于分辨率为512×512的输入图片(SSD512),结构如图2所示。
从图2可以看出,SSD网络构建了特征金字塔,充分利用特征层信息,整合Conv4_3、fc7、Conv6_2、Conv7_2、Conv8_2、Conv9_2和Conv10_2七层特征层信息进行训练。
1.2 默认框
SSD中每个层上的候选框生成方法如下:
特征层每个单元均会生成K个默认框,默认框有不同的长宽比,假设用m个特征层进行预测,则每个特征层默认框尺寸可由式(1)得到。
其中,[Smin=0.2],[Smax=0.9],分别表示最底层默认框基础尺寸是0.2,最高层默认框基础尺寸是0.9。按照基础尺寸生成一个正方形,但默认框数量太少且类型单一,所以引入5种长宽比为:[r=1,2,3,1/2,1/3]。
然后按照基础尺寸和长宽比,生成默认框,则一个特征点对应多个默认框。随后训练内容是在这些默认框中筛选与坐标框重合较多的框,并进行回归,得到预测框,其中宽的计算公式为:
因此,每个特征点对应6种默认框。这样定义默认框尺寸的优势是使不同特征层有不同尺寸,在同一个特征层有不同的长宽比,因此可以覆盖输入图像中各种形状和大小目标。本文根据采集的数据集目标尺寸,将[Smin]设置为0.3,[Smax]设置为0.7,长宽比设置为{1,1/3,2/3,3,3/2}。
1.3 正负样本
产生候选区域框后需要进行筛选,并打上相应标签。在SSD中筛选步骤如下:
(1)计算各框与真实框的重合度(Intersection over Union,IoU)[17],保留与真实框重叠度最高的候选框,并给该候选框打上与之匹配的真实框类别标签,即可保证每个真实框均有唯一一个最相似的候选区域框与之对应。
(2)设置一个阈值,将没有配对的候选区域框与任意一个真实框尝试配对,若两者IoU大于阈值,则该候选框为正样本且打上对应标签。在SSD中该阈值设置为0.5。
(3)将仍没有配对到真实框的候选框设置为负样本。
通过上述方法得到的负样本数量远远大于正样本。负样本和正样本的不平衡将导致在训练时难以收敛,而且负样本太多,已经可以主导损失函数的大小,所以正样本存在的意义不大。利用在线难分样本挖掘(Online Hard Example Mining,OHEM)的方法提升对难分样本的处理效率,同时控制正负样本比例。其实现方法是将所有目标框对应的损失排序,选出损失较大的候选框进行训练,通过该筛选方法,将正负样本比例控制在1∶3[18]。但是该方法缺点明显:首先需要额外的时间和内存进行损失存储及排序,另外由于剔除易分样本,即完全忽略易分样本对网络参数微调效果,会导致易分样本无法进一步提升训练质量。
针对以上算法缺陷,本文考虑删除网络原始OHEM机制,将焦点损失(Focal Loss)函数引入SSD损失函数以解决样本失衡问题,同时提高检测精度。
2 模型优化
2.1 原始损失函数
SSD损失函数包括目标置信度损失和位置坐标损失两部分,其表达式如下:
c是由Softmax产生的每一类的概率,根据实际标签的值计算对应的损失函数值。训练目的是求得使损失函数最小的参数。
2.2 新损失函数设计
SSD网络中正负样本失衡问题具体包括:①负样本太多,造成样本损失太大,淹没了正样本,不利于目标收敛;②大多数负样本不在正样本和负样本的过渡区,分类很明显,传入损失函数的分数很大,因此单个样本损失与反向传播梯度很小,对参数收敛作用有限。虽然SSD在正负样本采集中采用了1∶3的比例控制样本失衡[19],但是完全去除了易分样本的作用,不利于进一步提高网络精度。Focal Loss损失函数通过引入调制系数,降低了负样本对整个损失的影响,加大了难分样本对整个损失的影响,其公式如下:
2.3 Focal Loss反向传播
本文在SSD分类回归和损失函数设计中运用了Softmax函数。Softmax函数常用于多分类过程中,它将多个神经元输出映射到(0,1)区间内,可以作为概率理解,其函数如下:
可根據式(25)求得梯度,按照反向传播梯度下降法进行整个网络的权值更新,同时可看出,本文引入的调制系数可控制梯度大小,避免淹没难分样本对梯度的调节作用。
3 实验
3.1 数据集制作
本实验通过行车记录仪采集车载视频,每隔3s取一帧,得到的图片如图3所示。可以看到图中包含许多干扰因素,比如左上角的行车记录仪标签及车内图像,这些噪声可以剪切掉以避免造成干扰。另外待检测目标不可能在图片上方,所以图片靠上的部分像素也可以剪切掉,缩减图片尺寸,有利于提高训练速度,减少显存占用。数据集处理前后对比如图3所示。
通过上述方法最终得到1 600张图片,并将其按5∶2∶1的比例随机分配给训练集、测试集和验证集。所以最终训练图片为1 000张,测试图片400张,验证图片200张,图片分辨率为1 920*400;接着在数据集中标注8个目标分别为car、person、bus、minibus、truck、minitruck、elemotor、tricycle。由于数据集中大卡车和公交车样本不是很充足,所以导致相关检测效果较差,因此本文从KITTI数据集中提取对应类别的样本,处理后加入了本数据集。最后统计数据集中包含各个目标的数量,如图4所示。
3.2 实验结果分析
目前有多种深度学习框架,比如:Caffe、Caffe2、TensorFlow、Torch、Theano等。本文实验是基于Ubuntu16.4操作系统的Caffe深度学习框架[20]。Caffe(Convolutional Architecture for Feature Embedding)是基于C++/CUDA/Python实现的,由伯克利视觉和学习中心(Berkeley Vision and learning Center,BVLC)开发的卷积神经网络框架[21]发展而来。实验显卡为NVIDIA GeForce GTX1080GPU。
由于实验采用的激活函数是ReLU函数,所以如果一个较大的梯度经过一个神经元并更新参数后,这个神经元很容易“死掉”。因此在训练时需设置一个较小的学习率。这个学习率将随着训练过程发生变化。本文设置的初始学习率为0.000 1,每两万次迭代,则学习率缩小10倍。总共进行120 000次迭代。在表1中展示本实验初期结果。从实验结果可以看出将SSD损失函数换为Focal Loss函数可以提高mAP。
从表1可发现,引入Focal Loss损失函数模型SSD300+Focal和SSD512+Focal之后,整体mAP得到了提升,且根据图4各个类别数目可发现,Focal Loss的引入对于数量较少的目标检测效果提升更为明显,这是由于Focal Loss加强了对于难分样本的重视度。如图5展示了SSD512和SSD512+Focal两个模型基于本文数据集的识别效果对比。
观察图5可以发现,新损失函数通过解决样本失衡问题,提高了整体检测效果。原始网络没有检测出的许多目标以及错检目标均被检测出来。
mAP是用于评判目标检测网络的标准[22]。一个模型质量不能仅靠准确率或者召回率进行判断,所以根据准确率和召回率画出每个类的P-R曲线。曲线下面包络的面积为AP,所有AP平均值为mAP[23]。本文用其判断模型优劣。召回率和准确率的公式分别为:
4 结语
本文介绍了一个端对端的多分类器SSD,并将其应用在自主采集的行车数据集上,实现了多目标实时检测,且优化后提高了检测效果。SSD原始OHEM机制在解决正负样本失衡问题时存在种种不足,因此本文设计新的损失函数解决该问题,同时也提高了对于难分样本的挖掘能力与整体模型检测精度。通过在自主采集的数据集上训练和测试实验,证明SSD在行车视频中进行目标检测的實用性及本文改进算法的有效性。虽然本文解决了正负样本严重失衡的问题,但SSD等类似目标检测网络在重合度较高的目标检测中仍存在漏检或误检问题,需进一步研究。
参考文献:
[1] 赵伟,李欣,王鹏. 复杂环境下的车辆目标检测方法研究[J]. 森林工程,2014,30(3):74-79.
[2] BLAZ B. Histograms of oriented gradients[C]. San Diego:IEEE Conference on Computer Vision and Pattern Recognition,2005.
[3] LINDEBERG T. Scale Invariant Feature Transform[C]. Scholarpedia,2012.
[4] 许庆,高峰,徐国艳. 基于Haar特征的前车识别算法[J]. 汽车工程,2013,35(4):381-384.
[5] HEARST M A, DUMAIS S T, OSUNA E, et al. Support vector machines[J]. IEEE Intelligent Systems & Their Applications, 1998, 13(4):18-28.
[6] 崔扬,周泽魁. 基于Fisher准则的分类器在皮革正反面分类中的应用[J]. 江南大学学报:自然科学版, 2004, 3(4):374-377.
[7] 胡雄心,潘柏松. 基于Adaboosting算法的表面裂纹图象检测[J]. 机械设计与制造, 2010(3):211-213.
[8] OQUAB M,BOTTOU L, LAPTEV I , et al. Learning and transferring mid-level image representations using convolutional neural networks[J]. '14 Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition,2014:1717-1724.
[9] HE K,ZHANG X,REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9):1904-16.
[10] GIRSHICK R. Fast R-CNN[DB/OL]. https://arxiv.org/pdf/1504. 08083.pdf.
[11] REN S,HE K,GIRSHICK R,et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 39(6):1137-1149.
[12] REDMON J,DIVVALA S,GIRSHICK R, et al. You only look once: unified, real-time object detection[DB/OL]. https://arxiv.org/pdf/1506.02640.pdf.
[13] LIU W,ANGUELOV D,ERHAN D, et al. SSD: single shot multibox detector[C].European Conference on Computer Vision,2015:21-37.
[14] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal Loss for Dense Object Detection[C]. IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:2999-3007.
[15] HE K,ZHANG X,REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9):1904-16.
[16] MAURER M, BEHRINGER R, FURST S, et al. A compact vision system for road vehicle guidance[C]. International Conference on Pattern Recognition, 1996:313-317.
[17] NOWOZIN S. Optimal decisions from probabilistic models: the intersection-over-union case[C]. IEEE Conference on Computer Vision & Pattern Recognition, 2014.
[18] LONG J,SHELHAMER E,DARRELL T. Fully convolutional networks for semantic segmentation[C].Computer Vision and Pattern Recognition, 2015:3431-3440.
[19] SUBBURAMAN VB,DESCAMPS A,CARINCOTTE C. Counting people in the crowd using a generic head detector[C]. IEEE Ninth International Conference on Advanced Video and Signal-Based Surveillance,2012,470-475.
[20] CHAUDHURI D. A simple least squares method for fitting of ellipses and circles depends on border points of a two-tone image and their 3-D extensions[J]. Pattern Recognition Letters, 2010, 31(9):818-829.
[21] HAN S,MAO H,DALLY W J, et al.Deep compression:compressing deep neural networks with pruning, trained quantization and Huffman coding[C]. International Conference on Learning Representations, 2016:1-14.
[22] SZELISKI R.計算机视觉-算法与应用[M]. 艾海舟,兴军亮,译.北京:清华大学出版社,2012.
[23] 宋焕生,张向清,郑宝峰,等. 基于深度学习方法的复杂场景下车辆目标检测[J]. 计算机应用研究,2018(4):1270-1273.
[24] 敖道敢. 无监督特征学习结合神经网络应用于图像识别[D].广州:华南理工大学,2014.
(责任编辑:江 艳)