基于深度学习的交通图像识别的研究与应用

2021-07-20 11:54章康明曹新
软件工程 2021年6期
关键词:计算机视觉目标检测深度学习

章康明 曹新

摘  要:为了克服目标检测算法在交通图像识别领域对数据集利用不充分、对小物体检测不敏感等问题,提出了一种基于SSD算法改进的检测模型。选择自动驾驶领域最重要的测试集作为模型训练的数据集,通过对比实验,选择出训练集、验证集和测试集最合适的划分比例。实验结果显示,合理的数据集划分相较于其他的对照组对于检测目标的准确率提升了13%,检测时间缩短了15%,证明合理的数据集划分能够提升模型泛化能力和检测效率。针对该算法对于小物体检测不敏感这一问题,有针对性地调整了模型的结构及参数,并修改了模型输入图像的尺寸。实验结果表明,在输入相同图片尺寸下,模型对于小物体的检测能力显著提升,整体检测能力提升了14.5%,且保证了较高的检测速率。以上均证明新算法的有效性。

关键词:深度学习;计算机视觉;目标检测;SSD

中图分类号:TP311.5     文献标识码:A

Abstract: Aiming at problems of insufficient utilization of datasets and insensitivity to small object detection in the field of traffic image recognition by target detection algorithm, this paper proposes an improved detection model based on SSD (Solid State Disk) algorithm. The most important test set in the field of autonomous driving is selected as the dataset for model training. Through comparative experiments, the most appropriate division ratio of training set, validation set and test set is selected. Experimental results show that compared with other control groups, reasonable dataset division has an increase of 13% in accuracy of detecting targets and a decrease of 15%  in detection time, which proves that reasonable dataset division can improve model generalization and detection efficiency. Aiming at the problem that the algorithm is not sensitive to small object detection, structure and parameters of the model is adjusted and size of the input image of the model is modified. The experimental results show that under the same image input size, the detection capability of small objects is significantly improved, the overall detection capability is improved by 14.5%, and a higher detection rate is guaranteed. The above all prove the effectiveness of the new algorithm.

Keywords: deep learning; computer vision; target detection; SSD

1   引言(Introduction)

近年來,随着人工智能的蓬勃发展,深度学习在越多越多场景下应用,尤其是自动驾驶领域。根据IDC最新发布的《全球自动驾驶汽车预测报告(2020—2024)》数据显示,2024年全球L1—L5级自动驾驶汽车出货量预计将达到约5,425 万辆,年均复合增长率达18.3%。在巨大的市场需求推动下,对自动驾驶技术的要求愈加严苛。驾驶环境复杂多变,对驾驶场景中的目标检测算法模型的泛化能力有很高的要求,同时也需要保证模型的检测速率。

目标检测是在图片中对可变数量的目标进行查找和分类,主要存在目标种类与数量问题、目标尺度问题以及外在环境干扰问题。目标检测算法经过长时间的发展迭代,经过从传统的目标检测方法到深度学习方法的变迁。传统的目标检测算法主要基于传统手工设计特征并结合滑动窗口的方式来进行目标检测和定位,典型的代表有Viola-Jones[1]、HOG[2]、DPM[3]等。传统目标检测算法设计出的特征鲁棒性较差,效率较低,且通过滑动窗口提取特征的方式流程烦琐。因此在2008年DPM算法提出后,传统目标检测算法遇到了较大的瓶颈。

自2012年卷积神经网络的兴起,基于深度学习的目标检测方法发展并成熟,在检测效率和精度上有了巨大的飞跃,逐渐取代传统机器视觉方法,成为目标检测领域的主流算法。目前,基于深度学习的目标检测算法分为One-Stage[4]和Two-Stage[5]。以R-CNN[6]、Faster R-CNN[7]为代表的Two-Stage检测算法具有良好的检测精度,但检测速度相对较慢,无法满足自动驾驶领域实时性需求。One-Stage采用直接回归目标位置的方法,以YOLO[8]、SSD[9]为代表,在保证检测精度的同时,提高了检测速度,但不同模型也有各自的缺陷。

本文提出了一种基于深度学习的交通图像识别算法,以SSD为目标检测模型,使用合适的数据集划分对模型进行训练,并针对模型对小目标检测性能的不足,修改模型相应的输入尺寸,在保证多数目标检测能力的同时,大大改善了模型对小目标的检测能力,辅以快速的图片检测能力,能够提升汽车行驶过程中的安全性,对于深度学习在交通图片识别以及自动驾驶应用上具有参考意义。

2   SSD模型(SSD model)

2.1   模型概述

SSD是一种One-Stage的目标检测模型,移除了region proposals[10]步骤以及后续的像素采样的步骤;借鉴了YOLO的回归思想以及Faster R-CNN的anchor机制,精度可以和Faster R-CNN匹敌,速度上远远快于Faster R-CNN。回归思想的引入降低了模型复杂度,提高了算法的检测速度;anchor机制能够检测不同尺度的目标,提高算法检测精度。

SSD网络模型如图1所示,由主干网络和多尺度feature map预测两部分组成。主干网络由VGG-16组成,舍弃了FC6和FC7两个全连接层,用于特征提取。同时在网络后面添加八个卷积层作为多尺度feature map预测,这些卷积层在尺寸上逐渐减小,在多个尺度上对检测结果进行预测。用于预测检测的卷积模型对于每个特征层都是不同的。基于前馈卷积网络,产生固定大小的边界框集合,并对这些边界框中存在的目标类别实例进行评分,通过非极大抑制来控制噪声,确保网络保留最有效地几个预测,并产生最终的检测结果。

2.2   基本原理

2.2.1   用于检测的多尺度映射

多尺度特征映射主要为了提高检测精度。基础网络后添加的一些卷积层主要用于检测和分类。不同的特征层(Feature Layer)预测的边界框(Bounding Box)是不一样的,因此不同的特征层上的卷积模型也不一样。多尺度的特征映射可以检测不同尺度和大小的目标。

2.2.2   卷积预测器

每一个添加的特征层用于一组卷积滤波产生固定的检测预测集合。卷积预测器对这些默认框(Default Box)进行关于类别和位置的回归,然后得出一个类别的得分及坐标偏移量。

2.2.3   默认边界框与长宽比

本文一系列默认的边界框和各个不同的特征层联系在一起,即每个被选中预测的特征层,在每个位置都关联个默认框。在每个特征层的映射中,对于给定个边界框中的每一个,本文计算个类别分数以及相对原始默认边框的四个偏移量,并允许不同的默认边界框,有效地离散出可能的输出框。

2.2.4   NMS(非最大值抑制)

为了避免重复预测,过滤掉背景和得分不是很高的框,从而得到最终预测。

2.2.5   匹配策略

在训练过程中需要确定默认框和真值边界框(Ground Truth Box)之间的联系后训练网络。对于每一个真值边界框,本文计算其与默认边界框之间的杰卡德系数(Jaccard Overlap),也就是IOU,默认两者之间的阈值大于0.5,即为正样本。因此本文简化了学习过程,允许网络为多个重叠的默认边框预测高分,而不只是挑选一个边界框。

2.2.6   损失函数

2.3   网络结构

如表1所示,VGG作为模型的基础网络,用于模型的特征检测。将VGG-16中的FC7改为卷积层Conv7,同时增加了Conv8、Conv9、Conv10、Conv11几个特征层,用于在多个尺度上进行目标检测,以提高检测精度。低层特征代表局部细节特征,高层特征代表全局特征结构,相关结构如表2所示,从多个角度检测目标,提升检测效果。特征层从低到高,感受野由小到大,能够更好地检测原图中不同大小的目标。

3   数据准備及算法概述(Dataset preparation and algorithms overview)

3.1   数据集选取

训练选用KITTI[11]数据集,由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前自动驾驶领域最重要的测试集之一。KITTI数据集针对不同的用途,实验选取Object类型中“2D Object Detection”的数据集,主要是为了验证无人驾驶中有关目标检测算法而设置的数据集。该数据集一共包含7,841 张训练图和7,518 张测试图,包含80,256 个目标Label。所有图像均为彩色并保存为png格式。

3.2   数据集内容

KITTI数据集为摄像机视野内运动物体提供一个3D边框标注(使用激光雷达的坐标系)。该数据集的标注一共分为八个类别:Car、Van、Truck、Pedestrian、Person、Cyclist、Tram和Misc或Don't Care。其中Don't Care标签表示该区域没有被标注,在训练中可以被忽略。

3.3   算法概述

3.3.1   合适的数据集划分

在数据集有限的条件下,高效利用训练数据集能够训练出一个更优越的算法。将数据集按照训练集、验证集以及测试集进行划分,比例分别为30∶20∶50、40∶10∶50、45∶5∶50三种;并使用相同的SSD网络进行训练,初始学习率为0.001,动量为0.9,权重衰减为0.0005,批处理数据大小为8,训练次数均为80,000 次。对训练结果进行评估,选择最佳的数据集划分。

3.3.2   优化模型

对模型进行评估,发现模型对于较小目标检测性能较差。因为KITTI原始数据集大小为375×1242,而原始模型输入大小为300×300,对输入图片的压缩导致检测效果下降,因此将模型输入的尺寸大小修改为384×1280,以提升模型的检测精度。

4  实验与结果分析(Experiments and results analysis)

4.1   實验环境

本文实验所用的环境如下:

硬件环境:Intel(R) Core(TM) i5-6300HQ CPU @ 2.30 GHz、NVIDIA GTM965M。

软件环境:Ubuntu 18.04 LTS、CUDA 10.0 cuDNN 7.4.2、TensorFlow 1.14.0-gpu、Python 3.6.9、conda 4.9.2。

4.2   评价标准

4.2.1   FPS

4.2.2   准确率和召回率

TP:正确划分为正例的个数,即实际为正例且被分类器划分为正例的实例数。

FN:错误划分为正例的个数,即实际为负例但被分类器划分为正例的实例数。

FP:被错误划分为负例的个数,即实际为正例但被分类器划分为负例的实例数。

TN:被正确划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

TP、FP、FN、TN可用来计算表示目标检测模型精度的多个指标。

本文中的实验使用mAP评价模型的精度。

4.3   实验结果

4.3.1   改进数据集的划分比例

按照3.3.1中的算法描述对模型进行训练,初始学习率为0.001,动量为0.9,权重衰减为0.0005,每次批处理数据大小值设置为8,训练次数均为80,000 次。训练过程中部分loss图像得到结果如表3所示。

4.4   结果分析

根据4.3.1的实验结果所示,充分利用数据集对模型进行训练,能够显著提升模型的泛化能力。实验结果显示,合理的数据集划分,相对于其他对照组对于检测目标的mAP提升了13%,检测时间缩短10%,证明本文提出的数据集划分能够有效提升模型的泛化能力和检测速率,且在几个重要的检测目标上具有较高的AP,能够胜任一般交通场景的目标检测需求。

本文使用的KITTI数据集分辨率较高,而SSD本身对于小物体识别的准确率并不高,为了解决模型对小物体检测不敏感这一问题,本文对模型进行修改,将模型的输入尺寸提升为384×1280。根据4.3.2的实验结果所示,Cyclist类别的AP从0.2311提升到了0.4179,Pedestrian类别的AP从0.0909提升到了0.3709,Car类别的AP从0.6754提升到0.6942等,整体的mAP提升了接近14%,证明使用本文提出的算法对小物体的检测能力提升显著,同时还微弱提升了其余物体的检测能力,均证明了本文提出新算法的有效性。模型的部分检测过程和检测结果如图2和图3所示,本文实现的算法模型通过使用分辨率较大的KITTI数据集更真实地模拟现实场景,同时通过对模型的优化,在提升对小物体检测精度的情况下,依旧保持较佳的检测速率,大大提升了模型的整体检测效率。

5   结论(Conclusion)

为了进一步模拟真实驾驶场景下目标检测的性能,本文提出一种基于SSD的深度学习交通检测识别算法。实验结果显示,利用本文提出的算法检测准确率和检测效率明显优于未经过本文算法优化的检测算法。在KITTI数据集上的mAP达到0.47,FPS为26.76 fps,不影响其余检测类型的前提下,提升了模型对小物体的检测精度,同时保证了模型的检测速率,满足了目标检测中对检测速度和检测精度的一般要求,证明本文提出的算法在交通图像识别领域具有实用和参考价值。

参考文献(References)

[1] WANG Y Q. An analysis of the Viola-Jones face detection algorithm[J]. Image Processing On Line, 2014, 104(4):128-148.

[2] TORRIONE P A, MORTON K D, RAYN S, et al. Histograms of oriented gradients for landmine detection in ground-penetrating radar data[J]. IEEE Transactions on Geoscience and Remote Sensing, 2013, 52(3):1539-1550.

[3] OUYANG W, ZENG X, WANG X, et al. DeepID-Net: Object detection with deformable part based convolutional neural networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39(7):1320-1334.

[4] CHEN L L, WEN L F, BIAN X, et al. Fast single shot multibox detector and its application on vehicle counting system[J]. IET Intelligent Transport Systems, 2018, 12(10):1406-1413.

[5] GE Z, JIE Z, HUANG X, et al. Delving deep into the imbalance of positive proposals in two-stage object detection[J]. Neurocomputing, 2021(425):107-116.

[6] HAN X F. Modified cascade RCNN based on contextual information for vehicle detection[J]. Sensing and Imaging, 2021, 22(1):1-10.

[7] 闫新庆,杨喻涵,陆桂.基于改进Faster-RCNN目标检测算法研究[J].中国新通信,2021,23(01):46-48.

[8] 孙乾宇,张振东.基于YOLOv3增强模型融合的人流密度估     计[J].计算机系统应用,2021,30(04):271-276.

[9] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detector[J]. Computer Vision, 2016, 9905(12):21-37.

[10] 王冠,耿明洋,马勃檀,等.基于孪生区域候选网络的目标跟踪模型[J].小型微型计算机系统,2021,42(04):755-760.

[11] GEIGER A, LENZS P, STILLER C, et al. Vision meets robotics: The KITTI dataset[J]. The International Journal of Robotics Research, 2013, 32(11):1231-1237.

作者简介:

章康明(1998-),男,本科生.研究领域:软件开发,计算机视觉.

曹  新(1980-),女,硕士,教授.研究领域:车联网,无线传感器网络.

猜你喜欢
计算机视觉目标检测深度学习
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
机器视觉技术发展及其工业应用
危险气体罐车液位计算机视觉监控识别报警系统设计
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于计算机视觉的细小颗粒团重量测量的研究
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
移动机器人图像目标识别