基于SSD算法的室外小目标检测方法研究
2019-08-21宋建辉
于 洋,王 晴,宋建辉
(沈阳理工大学 自动化与电气工程学院,沈阳 110159)
随着计算机和传感器技术的迅速发展,室外移动机器人在军事、科研等领域都得到了成功的应用,既可以代替士兵完成战场侦查、巡逻等危险任务,也可以帮助人类完成外星和某些考古遗迹的勘探、样本采集和分析工作[1],室外障碍物检测技术成为研究者日益关心的研究方向。
针对室外环境的障碍物检测,Gao等提出了以可行性区域检测为任务的检测方法[2];Kong等提出了以消失点检测为任务的检测方法[3];这些方法以检测任务为导向,识别目标明确,不需要人为标记的训练数据,但环境理解的内容有局限[4-5];Bischof等提出条件规则产生(Conditional rule generation,CRG)方法[6]。但这些方法不能满足复杂环境下的障碍物检测,检测效率较低。
在目前常见的深度学习目标检测方法[7]中,基于区域候选的神经网络模型准确率相对较高,但速度较慢,不能满足实时性的需求;基于回归的目标检测算法可以满足实时的复杂环境障碍物检测,然而在小物体目标检测方面效果较差。
本文针对基于回归的网络模型算法中小目标障碍物漏检严重的问题进行改进,通过在基础网络层中增加扩张卷积[2]、使用K均值聚类[8]等方式,在保证障碍物检测实时性的同时,降低小目标障碍物的漏检率,对于深度学习技术进一步应用于室外障碍物检测具有重要意义。
1 SSD算法
SSD(Single Shot Multi-Box Detector)算法[9]的原理是在基础网络后添加多个卷积特征层,用卷积滤波器产生固定的预测集合,预测不同尺度预测框对于默认边界框的置信度。同时对标签的位置和类别信息进行处理后,使预测框与相应的默认框对应,并根据两者的杰卡德相似性系数来寻找对应的预测框。
(1)
式中Lconf为多类别置信损失,定义如式(2)所示。
(2)
函数损失的值仅由正样本计算得到。SmoothL1的计算如式(4)所示。
(4)
原算法在PASCAL VOC数据集上进行训练,平均检测准确率mAP为74.3%,检测速度为45FPS。
2 网络结构的改进
2.1 原算法网络结构
原SSD算法的网络框架如图1所示。
图1 SSD算法网络结构图
使用VGG-16网络模型的前5层进行特征抽取,输入数据进入各个卷积层的变化如表1所示,conv4_3特征图的分辨率缩小到1/8,在conv5_3缩小到1/16,导致输入图片的特征信息有较大的损失。
因对小目标检测需要较高的图像分辨率,而SSD算法主要在语义信息不够丰富的底部特征层进行检测;另一方面,卷积神经网络结构的最底层特征图过小,之后的检测和回归都无法满足要求,故对此进行改进。
表1 VGG-16各网络层参数
2.2 改进的网络结构
扩张卷积[10]是增加了名为膨胀率的超参数的卷积模型。感受野经过普通卷积层和扩张卷积层后的变化对比效果如图2所示,左边为经过普通卷积层稀疏特征提取得到的感受野,分辨率仅为原图的1/4;右边为经过扩张卷积后的稠密特征提取过程,输入数据经过更大的延拓和卷积运算,输出的分辨率提高,降低了特征图的信息损失。
图2 感受野的变化对比
然而扩张卷积的加入会导致信息连续性的损失。由较大膨胀率所得到的信息只对一些大物体分割效果明显,对于在高速条件下的小物体检测有弊无利。根据文献[11],混合空洞卷积框架(Hybrid Dilated convolution,HDC)结构可以缓解图像网格化所产生的影响,使输出的感受野没有任何空洞和边缘丢失,完全覆盖整个图像区域,比普通扩张卷积获取更宽阔的区域信息。本文在前端网络中加入一种膨胀率满足式(5)的HDC卷积,增强对小物体的检测效果。
Mi=max[Mi+1-2ri,Mi+1-2(Mi+1-ri),ri]
(5)
式中:ri为第i层的膨胀率;Mi为两个非零点间的最大距离,即在第i层最大的膨胀率。
HDC可使用任意的扩张率,扩大了接收野且不需要添加额外的模块。使用不同扩张率的扩张卷积,能同时满足小目标和大目标两者的分割要求。
结合经典SSD算法网络框架和HDC型扩张卷积的工作原理,具体改进措施如下。
(1)在步长分别设置为4和8的conv3-3和conv4-3两个卷积层同时提取特征,并将得到的特征进行归一化处理;
(2)使用膨胀率分别为(1,2,3)的H型扩张卷积替换VGG-16网络的fc-6、fc-7层和池化层,从中进行采样得到参数;
(3)将网络的最大池化层均转换成感受野为3×3、扩张率为2的扩张卷积层,并增添HDC卷积结构。
上述改进措施可以在保证感受野的同时使得特征图的分辨率变化较小,精细网络输出结果。改进后的前置网络结构如图3所示。
图3 前置网络结构
改进后的基础网络参数如表2所示。
3 目标框维度比例
3.1 SSD算法预测原理
SSD算法引入默认框来预测目标物体的位置信息。网络中的目标预选框通过softmax分类和目标框回归获得真实目标的位置。前置网络后的每一张特征图将按照不同的大小和长宽比生成k个默认框,每个默认框的大小计算如式(6)所示。
(6)
表2 各网络层参数对比
3.2 K均值聚类实验
原SSD算法的目标框维度宽高比为一组人为选取的固定的数值比例,样本数据在网络的训练过程中得到的预选框维度往往不具有足够的代表性。本文提出基于K均值聚类生成预选框的改进方法,即不使用人为取值的目标预选框,而是通过K均值算法对目标数据集的位置标签进行聚类实验,确定预选框的维度宽高比,使改进后的网络更易学习到准确的预测位置。
对目标框维度的聚类操作如下:首先根据输入标签数据的位置信息计算出预选框的维度值,由式(7)将其转换为相对于栅格边长的比例i(i∈(0,1));其次取k个对象作为初始聚类中心,进行聚类实验;最后把得到的聚类中心的维度比例值作为预选框比例值,由改进SSD算法通过预选框直接预测坐标。
(7)
式中:md表示降采样倍率;wr表示预选框的宽度;wk表示输入图像的宽度;hr表示预选框的高度;hk表示输入图像的高度。
原算法中,预选框的比例共5种,实验选取k=5,以数据集中车、人和自行车三类数据目标框作为初始数据输入,进行目标框维度聚类实验,得到的预选框比例如表3所示。
表3 预选框比例值
根据表3中数据可知,标签为车的样本目标框宽高维度比例大概为(3.5,3,2.3,1.5,1);标签为人的样本目标框宽高维度比例大概为(1,0.8,0.7,0.5,0.2);标签为自行车的样本目标框宽高维度比例大概为(2,1.6,1.3,1,0.5)。选择其中最大、最小和出现频率较高的四个数据作为改进算法的预选框的宽高比,即使用更符合样本的(7/2,2,3/2,1,1/2,1/4)作为改进SSD算法的预选框的宽高比,提高算法对特定障碍目标的预选框生成速度,进一步提高算法的检测速度。
3.3 默认框尺寸
SSD算法中多级别的物体基本尺寸比例大小为0.1至0.8,即当输入为1024×1024时,最小网格大小为102×102,对于分辨率较低的小目标障碍物仍然过大。
为了多级别障碍物在网络模型中能具有较好的输入,综合各类别的数据集的预选框宽高比聚类结果,使用(7/2,2,3/2,1,1/2,1/4)作为改进SSD算法的预选框的宽高比,调整默认框与原始图像的比例为[1/32,1/16,1/8,1/4,1/2,1],增加网络对小目标障碍物的敏锐性、减少漏检情况,使改进算法对小目标障碍物的定位更加精确。
4 实验
实验硬件配置:Intel Xeon E5-1603 v4处理器、2x GeForce GTX1080显卡,32GBRAM的服务器。软件环境配置:Ubuntu16.04系统、CUDA、OpenCV、tensorflow框架。
改进网络模型在训练过程主要超参数的设置如表4所示。
表4 超参数设置
实验选取PASCAL VOC数据集进行训练和测试,训练数据集与测试数据集比例为9∶1。训练损失图像如图4所示。其中横坐标为迭代次数,纵坐标为训练loss值。
图4 改进算法损失曲线
从图4中可以看出,使用Momentum SGD算法进行模型的训练实验,迭代次数在4000次以内时,使用较大的学习率,损失函数曲线下降速度较快;当迭代次数达到8000次,损失函数曲线波动变小;减小训练使用的学习率数值,继续对网络模型的训练,直到损失曲线的波动更加平缓,且趋近于零,得到针对室外障碍物检测的网络权重数据。
4.1 小目标检索率对比
为证明在小物体目标检测上改进SSD算法的检索能力更强,选取一系列具有代表性的样本图片进行针对性对比,测试数据中人、车、自行车三种类别的目标障碍物数量基本平均,定义分辨率小于70×70的障碍物为小目标,测试样本中标注物体共1142个,属于小目标的标注物体共972个。
以其中较易观测的样本作为代表,两种算法的检测效果对比如图5所示。
图5 检测效果对比
图5a、图5c为原算法检测效果,图5b、图5d为改进算法的检测效果。图5a、图5b中共5个目标物体,其中人、自行车以及存在部分遮挡的汽车3个目标物体可被认做小目标障碍物;原算法均未对图像中的小目标障碍物做出准确检测;改进算法检测出2个小目标物体,漏检图中存在部分遮挡的汽车障碍,且检测出的类别置信度较原算法均有提高。图5c、图5d中共7个目标物体,被大车遮挡的2人和远处的3车和1人可被视作小目标障碍物;原算法检测出1个小目标障碍;改进算法检测出3个小目标障碍;漏检被大车严重遮挡的1人和远处分辨率过低的1车1人。实验结果表明,在输入图像分辨率较好的情况下,改进SSD算法能检测出更多的小目标障碍物,且类别置信度和定位精确度皆高于原算法。
检索能力由F表示,其表达式如式(8)所示。
(8)
式中:P为准确率;R为召回率。
由于同一目标检测算法对不同的数据类别的识别差异较大,分别把三类数据样本分为六组进行实验比较,并根据多数据输入得到的F值绘制原算法与改进SSD算法的小目标检索能力对比,结果如图6所示。
图6 小目标检索能力对比
综合所有小目标数据集实验结果,原算法的F值为0.51,改进算法的F值为0.62,提高了21.5%。
4.2 目标检测指标对比
在多类别目标检测中,存在检测目标的样本被称为正样本(P),存在非检测目标的为负样本(N)。通常由平均准确率(mean Average Precision, mAP)衡量检测器在所有类别上的性能好坏,其计算方式为计算完每个类别的平均检测精度(AP)后再取所有类别的平均值。mAP的计算方式见公式(9)。
(9)
每个类别的AP值为PR(precision,recall)曲线的线下面积。PR曲线根据F1获得,F1的计算方法如式(10)所示。
F1=2×p×r×(p+r)
(10)
式中:p为准确率;r为召回率。
IoU(Intersection over Union)是指模型预测得到的目标框和真值框之间交集与并集的面积比值,使用IoU作为判定目标是否被检测到的依据,实验选取0.5作为IoU阈值对算法的检测精度进行评估,以PASCAL VOC2007中测试数据集中的车、自行车、人标签的数据为测试样本,分别对本文改进算法与原SSD算法、YOLO算法、Faster R-CNN等目前流行的目标检测算法进行比较,计算其关于室外障碍物相关类别的mAP值和算法的检测速度(FPS),实验结果如表5所示。
表5 各目标检测算法对比
从表5中可以看出,在输入图像的尺寸为300×300的情况下,四种检测算法中,Faster R-CNN、原SSD算法和本文的改进算法在检测准确率上表现较好,但Faster R-CNN算法模型的速度过慢,不能满足场景所需的实时检测需求。本文提出的改进算法mAP为78.0%,和原SSD算法相比提高了3.9个百分点,且在针对各个类别的检测上皆有一定程度的提升。由于改进模型在前置网络上增加了多尺度的HDC提取特征,模型的检测速度相较原SSD算法下降了8FPS,但仍可满足室外环境下的实时检测的需要。
5 结论
针对室外小目标障碍物检测提出一种以SSD算法为基础的改进算法。本算法通过在网络结构中增添HDC新型卷积、fc层转换为HDC卷积网络层进行采样,减少图像经过卷积层后的信息损失,精细网络的输出结果;使用K-means聚类法提取数据集图像目标框的维度,计算预选框的长宽比例,并调整默认框与原始图像比例值,增加网络对小目标障碍物的敏锐性,精确本算法对目标的定位。实验结果表明,改进SSD算法相比于传统目标检测算法在小目标的检索能力和检测准确率上均有较大进步,能够在图像分辨率较低的情况下对小目标障碍进行准确迅速的检测,满足实时检测的需求。