(聊城大学计算机学院,山东聊城 252000)
目标检测技术是计算机视觉领域的核心问题之一,该技术在追踪车辆,以及辅助驾驶等领域起着重要作用。那么如何快速高效准确的实现对车辆的目标检测成为目前的主要问题。
目标检测算法主要包括传统方法和深度学习方法,其中传统方法由不同尺度和宽度的区域选择,特征提取和目标分类3部分组成。文献[1]采用HOG算法进行特征提取,将卷积神经网络多层的特征与HOG特征进行融合,对卷积核采用相关系数法优化,使得检测时间缩短并且检测精确率也有将大的提高;文献[2]设计了一种基于级联DPM模型的图像视觉目标识别改进算法,不仅有效优化了目标检测实时能力,也进一步改进了目标识别的准确性。传统目标检测方法存在的最大问题就是时间复杂度高、鲁棒性低、准确度和实时性差等缺点。而深度学习的目标检测算法则不同,深度学习的目标检测算法主要分2类,双阶段目标检测和单阶段目标检测。其中,双阶段目标检测算法主要分为2个阶段,提取候选区域和对候选区域中的目标进行检测。该类算法的典型代表是Faster R-CNN。而单阶段目标检测算法由于不需要提取候选区域,输入图像就能得到检测结果。因此,该类算法相比双阶段目标检测算法速度上有明显提升,但是精度有所下降。该类算法主要代表有SSD、YOLOv3等。已有学者对上述算法进行了改进并应用在了各个领域,如:文献[3]利用改进的Faster R-CNN提高了远距离小目标的低层信息的特征提取和表达能力,不仅保留了原本该算法对大目标和中等目标的检测优势还克服了本身对小目标物体检测不精确的缺点;文献[4]采用改进的SSD算法,利用对图像第Conv4-3层特征映射图进行超分辨率重建,使得该算法检测重叠目标物体以及小物体时检测精度大大提高;文献[5]采用改良的YOLOv3算法通过改进其骨干Darknet-53网络,不仅小幅提高了检测精度还大大增快了检测速度。与传统方法相比,深度学习主要是数据驱动进行特征提取,根据大量样本的学习能够得到深层的、数据集特定的特征表示,其对数据集的表达更高效和准确,所提取的抽象特征鲁棒性更强,泛化能力更好。但在该过程中可能会出现显著特征不突出,从而造成泛而不优的情况。
本文为测试不同深度学习目标检测算法在车辆目标检测中的性能,选取Faster R-CCN、SSD和YOLOv3 3种算法进行车辆目标检测实验,在公开的车辆数据集上进行测试,并对实验结果进行对比分析。
Faster R-CNN是一类基于分类的目标检测算法。它采用VGG16为基础特征提取网络,并添加了卷积层、池化层等结构,再经过RPN网络生成更加准确的候选区域,最后采用ROI池化,将特征图和RPN网络的输出结果进行判决。该算法是基于区域建议的目标检测算法,准确率较高,但速度不快。
SSD是一种单阶段目标检测算法,它的主网络结构是VGG16,用卷积层替换最后2个全连接层,然后添加4个卷积层来构建网络结构,采用了YOLO算法中的回归思想,利用多尺度特征图进行分类和位置回归。
2016年YOLO算法由Redmon等提出,该算法是基于回归的目标检测算法;2017年改进后的YOLOv2诞生;紧接着在2018年提出了由YOLOv2改进后的YOLOv3。YOLOv3相较于YOLOv2有着较大的性能提升,它使用Darknet-53作为基础网络,并使用了多尺度预测方法,提高了检测的精确度。
本文所用数据集为车辆检测数据集,数据集中的图片有2000张,主要包括轿车,卡车和公交车等。
实验在Intel Xeon(R) CPU E5-2699、64G内存、Windows10系统下搭建的Pytorch环境下进行,显卡为Geforce GTX1080TI。
在本次实验中,我们使用mAP(Mean average precision)值和FPS(Frames per second)值来评估算法的性能。其中mAP值是所有类别的AP平均值,该值在目标检测算法中主要用来衡量算法精确度;FPS值即是每秒的帧率,该值用来评估目标检测的速度。分别利用Faster R-CNN、SSD和YOLOv3 3种算法在本文车辆数据集上进行实验,实验结果如表1所示。
表1 不同算法性能对比
从表1可以看出:3种算法中SSD的FPS值最大,为28;其次为YOLOv3,为22;Faster R-CNN最小,为13。对于mAP值的比较:Faster R-CNN的mAP值最大,为0.853;SSD其次,为0.831;YOLOv3最小,为0.531。因此可以得出结论:在检测速度方面,SSD算法最快,其次是YOLOv3算法,而Faster R-CNN的速度在三者中是最慢的。在检测精度方面Faster R-CNN的精度值最高,SSD算法排在第二,YOLOv3的精度最低。在表中不难看出SSD算法的综合性能都要优于其他两种算法,Faster R-CNN算法虽然在速度方面不占优势,但是在检测进度方面要优于其余两种算法。在日常应用中,应根据不同的情况不同的要求选择合适的算法。
目标检测是计算机视觉中的一个重要领域,本文为了测试不同深度学习算法在车辆目标检测中的应用效果,选取了3种目前应用较多的目标检测算法,主要有Faster R-CNN、SSD和YOLOv3,在本文车辆数据集上进行了实验,并对结果进行了分析,其中,精度最高的是Faster R-CNN,mAP为0.853,但是由于其是双阶段检测算法,需要先选取候选区域,因此速度较慢,FPS为13;YOLOv3精度最低,但是速度有所提升;而SSD算法的精度与Faster R-CNN相当,mAP值为0.831,而且它拥有最快的速度,FPS达到了28。由于本文实验数据集较小,实验结果可能还存在一定的误差,后续还应继续扩充数据集,为车辆目标检测提供更好的数据基础。