摘 要
基于深度学习的道路场景目标检测方法研究
随着经济的发展和鼓励政策的出台,我国的汽车产业呈高速发展趋势。国内汽车保有量不断增加,汽车出行在给人们带来便利的同时,也带来了极大的安全威胁。近年来人工智能兴起,智能驾驶的概念也随之被提出。目标检测模块作为智能驾驶的首要环节,需要准确识别道路前方的汽车、非机动车和行人等目标。在实际应用场景中道路状况复杂,光照的变化、目标姿态的多样性和遮挡等多重因素,都会影响目标检测系统的精确度,进而影响智能驾驶的安全性。
基于深度学习的目标检测算法依托深层卷积神经网络,具有强大的学习能力和场景分析能力,目前主流的深度学习目标检测算法包括以 Faster-RCNN 为代表的基于区域提取的两阶段检测算法和以 SSD、YOLO 为代表的基于回归的单阶段检测算法。考虑智能驾驶场景中对检测算法的实时性有较高要求,本文以单阶段检测算法为基础进行研究。具体如下:
1. 研究了目标检测相关的基础工作,分析了传统目标检测算法和基于深度学习的目标检测方法及其原理,梳理了卷积神经网络的模型结构。传统卷积层的几何结构固定,卷积核感受野受限,缺乏内部变化机制,无法适应目标的尺度变换和形变。此外,深度神经网络模型的训练中常存在内部协变量变化问题,为了解决此问题,目标检测算法中一般使用批规范化操作来调整数据的分布,然而该方法只保留了单个样本间的区别,使得网络易受外观变化的影响。
2. 针对单阶段目标检测算法中的典型算法 YOLO 及 YOLOv2,深入分析了该算法的网络结构和优缺点,通过改进 YOLOv2 算法的基础网络来提升算法的精度。本文将计算量和性能较为合适的 Resnet101 特征提取网络与 YOLOv2 算法进行融合,通过在 KITTI 数据集上的对比,证明了融合方法的有效性,融合后网络在精度上有所提升。
3. 本文在 YOLOv2 融合网络的基础上改进了卷积层的结构和规范化的方式。使用可调制变形卷积代替深度网络中的上层卷积,使用规范化方式 IBN 对网络的底层进行特征规范化。改进后的算法在 KITTI 数据集上效果良好,提升了非机动车和行人等形变较大的目标的检测精度。将本文的算法在自行采集的驾驶视频中进行实验,结果显示该算法可以适应雾霾、隧道等光线条件较差的场景。
关键词: 深度学习,目标检测,道路场景,可调制变形卷积,IBN。
Abstract
Research on Road Scenes Object Detection Based on Deep Learning
With the development of economy and the promulgation of encouragement policies, China's automobile industry has been developing at a high speed. With thenumber of domestic car ownership increasing, traveling by car not only brings convenience to people, but also brings great security threats. In recent years, artificial intelligence has been arisen and the concept of intelligent driving has also been proposed. As the first step of intelligent driving, object detection needs to identify the targets such as vehicle, non-motor vehicle and pedestrian in front of the road accurately. But in practical application scenarios, road conditions are complex,factors which variant to the illumination, poses and truncation will affect the precision of object detection system, and then it will affect the safety of intelligent driving.
Object detection algorithm based on deep learning depend on a deep Convolutional neural networks, and has a strong learning and scenario analysis ability.
At present, the main object detection algorithm based on deep learning includes two-stage detection with region proposals represented by Faster-RCNN and asingle-stage detection with regression represented by SSD and YOLO. Considering the high-speed requirements of the detection algorithm in the intelligent driving scene, this paper studies on a single-stage detection. The details are as follows:
1. I have studied on the basic work related to object detection, and analyzed the traditional object detection algorithm and the object detection method based on deep learning, and sorted out the model structure of convolutional neural network. The geometric structure of the traditional convolutional layer is fixed, the receptive field of the convolution kernel is limited, lacking the internal change mechanism, so it cannot adapt to the scale variation and part deformation. In order to solve the problem of internal covariate shift in model training, batch normalization is often used to adjust the data distribution. However, this method only retains the difference between single samples, making the network vulnerable to appearance changes.
2. For the typical algorithms YOLO and YOLOv2 in the single-stage object detection algorithm, I have studied on it’s the network structure, advantages anddisadvantages of the algorithm and improved the accuracy of the algorithm by modifying the basic network of YOLOv2 algorithm. In this paper, I combined theYOLOv2 with the Resnet101 feature extraction network, which computational power and performance are suitable. The comparison on KITTI data set proves theeffectiveness of the fusion method, and the precision is improved.
3. Based on the YOLOv2 fusion network, this paper improves the structure of the convolutional layer and method of normalization. Modulated deformable convolution was used to replace the upper convolutional layer in the deep network, and the IBN was used for data normalization at the bottom of the network. The improved algorithm works well on KITTI dataset, improving the detection precision of non-motorized vehicles and pedestrians with large deformation objects. The algorithm of this paper is tested in the self-acquired driving video. The results show that the algorithm can adapt to the scenes with poor lighting conditions such as fog and tunnel.
Keywords: Deep Learning, Object Detection, Road Scenes, Modulated Deformable Convolution, Instance-Batch Normalization。
第 1 章 绪 论
1.1 研究背景及意义。
自 2010 年以来,随着全球经济的复苏和各国鼓励政策的出台,全球的汽车产量企稳回暖,并且在此后的几年内平稳增长。虽然,相较于发达国家,我国的汽车产业起步较晚,但伴随着国际市场需求结构的转变和产业转移,我国汽车产业在近年来呈高速发展趋势。我国汽保有量不断增加,在给人们带来便利的同时,也带来了极大的安全威胁,交通事故频发,交通问题日益突出。
随着人工智能的发展,智能驾驶的概念被提出,许多企业和研究机构在这些领域进行研究。利用人工智能、视觉计算等技术,让汽车能够部分感知周围环境并进行安全无人驾驶或者辅助驾驶,可以有效弥补人类驾驶员存在的缺陷。国际汽车工程师协会把汽车智能化分为 L0-L5 六个等级,无人驾驶是智能驾驶的最高等级。
目标检测作为计算机视觉中一个经典的问题,被广泛应用在智能驾驶系统中作为其它图像分析算法的基础。目标检测的任务,是在图片或视频中,计算机能够通过算法定位出感兴趣的目标并判断其属于哪一类。在街道场景中,智能化的算法可以检测并标注出前方车辆及行人的分类信息和位置,为后续的智能驾驶系统提供视觉信息。
街道场景中的目标检测,由于环境的复杂性,需要兼顾鲁棒性和实时性。光照的变化、姿态的多样和目标的遮挡等不利因素会影响到目标检测任务的效果,因此,将目标检测应用到智能驾驶中去是一项富有挑战性的任务。
1.2 国内外研究现状。
国外智能车的研究开始于上个世纪七十年代,多数从汽车工业发达的国家兴起。进入九十年代后,智能驾驶辅助系统的研究进入到了更加系统、深度的阶段。
随着计算机技术在智能驾驶领域中的发展,国际上引发了新一轮的科技竞争。沃尔沃、福特、奔驰等世界知名的汽车制造商分别开展了不同程度的智能汽车研发工作。Google、Apple、Intel 等互联网和信息技术公司也开始投入到汽车智能驾驶的研究领域[1]。在“中国制造 2025”和“互联网+”战略的指导下,我国自主品牌汽车企业在研发方面已经向智能交通系统方向努力。一汽、上汽、北汽等企业都制定了智能网联发展的系统战略。我国的互联网企业也依靠其计算机技术的优势,进军相关的技术研发和服务工作。百度无人驾驶车项目于 2013 年起步,2016 年百度宣布在芜湖建立无人驾驶汽车运营区域,并在 2018 年宣布全球首款L4 级自动驾驶巴士“阿波龙”量产下线。腾讯公司于 2016 年成立了自动驾驶实验室,依托高精度地图、点云信息处理等技术方面的积累进行研发,并在 2018年获得了深圳市政府颁发的首张智能网联汽车道路测试牌照。
智能驾驶[2]中需要解决的一个重要问题就是如何处理车辆前方可能出现的各种突发状况,因此,目标检测模块在车辆驾驶辅助系统中处于关键位置。目标检测在计算机视觉领域是一个核心课题,即从输入图像或视频中找到感兴趣的目标并进行自动标注。在智能驾驶辅助系统中,目标检测就是对车辆前方的道路进行检测,街道景观是背景,路面上的行人、车辆和骑车的人就是前景,是我们所感兴趣的目标。场景理解、视频监控、机器人和自动驾驶系统等无处不在的广泛应用,引发了近十年来计算机视觉领域的广泛研究[3]。从传统的提取特征算子和模板匹配为基础的架构的方法,发展到基于深度学习的目标检测,这一领域已经取得了很大的研究进展。传统的目标检测一般先使用某种算法提取出待测试图像的候选区域,再计算每个区域的特征,最后使用分类器对特征进行分类,从而识别出该区域的类别。
具体步骤如下:
第一步,各类算法中一般使用滑动窗口(Sliding Windows Scheme)遍历整张图像进行候选区提取,候选区域指目标可能存在的区域。这是一种穷举策略,提取的框尽量覆盖各种可能,所以需要手动设置提框的尺度和长宽比,而且这种方法所消耗的计算量太大、时间复杂度过高,提取的窗口大多数都是冗余的,对后续的步骤的速度和性能影响较大。
第二步,对候选区域进行特征提取,特征提取是一种降维方法,通过关注图像的纹理、边缘等特征,将图像中的候选区抽象为一个紧凑的特征向量。然而在实际应用中,目标的形态变化和环境的复杂性会使特征的鲁棒性下降,进而影响后续分类的准确性。人脸检测常场景中常用的特征是 Haar 特征、行人检测中常用特征是 HOG 特征等。
第三步,常用的分类器有支持向量机(Support Vector Machine, SVM)模型和基于级联结构的 AdaBoost 等。
多尺度形变部件模型 DPM(Deformable Part Model)算法[4]在 VOC(VisualObject Class)的比赛中连续三年获得了冠军。DPM 算法通过分析各个部件间的关系来描述目标,把一个整体分解成了多个部件。该方法可以看作是对HOG+SVM 目标检测体系的扩展,但是其设计相对复杂,检测速度较慢,许多方法[5-7]都在 DPM 的基础上进行了改进。正当大家在传统目标检测领域改进 DPM算法性能的时候,Alexnet 神经网络的出现又掀起了研究者对深度学习研究的热潮。
一系列基于深度学习的目标检测方法[8-15]在深度学习领域内被提出。当前算法大致分为两种思路,一是两级检测器,基于区域提取策略;一是单级检测器,基于矩形回归的方法。
1. 基于区域提取的深度学习方法。
候选区域法(Region Proposal)很好的解决了滑动窗口存在的问题。候选区域法利用纹理、颜色和边缘等信息,可以比滑动窗口方法提取更少的框,且仍能保持较高的召回率。比较常用的候选区域提取算法有选择性搜索算法[16](SelectiveSearch, SS),它结合了穷举搜索和分割的优点,借鉴分割思想使用图像结构来指导采样过程,借鉴穷举搜索获取所有可能的目标位置。除了 SS 算法,常见的区域提取法还有边缘方框算法(Edge Boxes, EB)算法[17]。
从 R-CNN 开始,目标检测的各个阶段逐步被统一到了深度学习框架中。R-CNN 将滑动窗口改为 SS 算法。首先,通过 SS 算法从原始图片提取两千个左右区域候选框(Region of Interest, ROI),再将区域大小归一化,把所有侯选框缩放成固定大小,最后通过 CNN 网络提取特征。在特征提取网络之后添加两个全连接层,再将特征向量输入 SVM 分类器进行识别。SS 算法得到的区域只是粗略的框,所以在输出前还需要对检测框的位置采用线性回归进行微调。R-CNN 中的 ROI 的大小不同,经过 CNN 提取特征后得到的卷积特征图的大小也不同,而全连接层的输入要求特征图的大小一致,所以需要将 ROI 的特征图进行缩放或者裁剪。SPP-Net[8]对此进行问题进行了改进,通过空间金字塔池化(SpatialPyramid Pooling, SPP)统一了所有 ROI 的特征维度,使得图片可以以任意大小输入。Fast-RCNN[9]为了解决 R-CNN 和 SPP-Net 中 ROI 的卷积特征重复计算的问题,在两者的基础上,增加了多任务损失函数(Multi-task Loss),将分类和回归的任务一起进行。Fast-RCNN 对整张图片做卷积计算,使用 SS 算法在原图上提取 ROI,并将原图上的 ROI 映射到特征图上,对映射区域做 ROI 池化,提取出固定大小的特征向量。最后通过全连接层,一路输出进行分类,另一路进行边框回归。Fast-RCNN仍然没有解决SS算法计算速度慢的问题,因此Faster-RCNN[10]提出了一种区域提取网络(Region Proposal Networks, RPN)。RPN 代替了 SS 算法进行候选框选择,直接在全图的特征层上提取 ROI,实现了端到端的计算。算法改进至此,Faster-RCNN 将所有的步骤都统一在了深度学习的框架之中,提升了检测任务的计算速度。
2. 基于回归的深度学习方法。
尽管 Fast-RCNN 的所有任务都可以在 GPU 中进行计算,大大提升检测速度,但是仍然无法达到实时的标准,因此基于回归的深度学习方法被提出。该方法的思想是直接从原图中回归出目标的位置和类别,具有代表性的两个系列分别是SSD[11]和 YOLO[15]。
YOLO 设计了单个网络,使用整张图片作为输入,用网格将全图划分为 s×s个区域,直接在每个格子上预测目标可能出现的位置和该目标的类别,在保证精度的同时达到了实时效果。YOLO 方法虽然舍弃了区域提取阶段,可以实时检测,但是定位精度比较低,影响后续的分类效果。SSD 结合了 Faster-RCNN 的锚点(Anchor)机制和 YOLO 的回归思想,将分类精度和定位精度大幅度提高。SSD与 YOLO 一样使用回归的方法,但是 SSD 预测某个位置时使用了位置周围的特征。YOLOv2[12]是 YOLO 算法的改进,没有采用更大、更深的网络结构,而是采用精确检测器的方法使其在保证速度的基础上提升准确率。v2 中全部使用批正则化( Batch Normalization, BN),引入了锚点思想,使用带锚点框的卷积直接预测目标包围盒的位置。YOLOv3[13]在 v1 和 v2 的版本上继续改进,使用了更优秀的基础网络和分类器,采用多尺度预测,对相距很近的目标和小目标有都很好的鲁棒性。
【由于本篇文章为硕士论文,如需全文请点击底部下载全文链接】
1.3 论文研究内容
1.4 论文组织结构
第 2 章 目标检测相关基础工作
2.1 传统目标检测算法
2.1.1 区域选择
2.1.2 特征提取
2.1.3 分类器
2.2 基于深度学习的目标检测算法
2.2.1 基于区域的两阶段目标检测
2.2.2 基于回归的单阶段目标检测
2.3 主流深度学习框架
2.4 本章小结
第 3 章 基于卷积神经网络的目标检测原理分析
3.1 神经元模型
3.2 卷积神经网络
3.2.1 卷积层
3.2.2 池化层
3.2.3 激活函数
3.2.4 全连接层
3.3 损失函数
3.4 训练和正则化
3.4.1 L1 和 L2 正则化
3.4.2 随机失活
3.4.3 批规范化
3.5 本章小结
第 4 章 基于深度学习的道路场景目标检测算法
4.1 算法概述
4.2 基于 YOLOv2 算法的改进
4.2.1 Resnet 基础网络
4.2.2 卷积算法的改进
4.2.3 规范化的改进
4.3 基于可调制变形卷积和 IBN 规范化的改进网络
4.4 本章小结
第 5 章 实验结果与分析
5.1 数据集及相关配置
5.2 模型评价指标
5.3 实验环境及参数设置
5.4 实验结果分析
5.4.1 融合算法在 KITTI 数据集上的效果
5.4.2 网络结构改进的效果
5.5 本章小结
第 6 章 总结
随着全球经济的复苏和各个国家对汽车制造业的政策鼓励,全球的汽车产量逐年增加,我国的汽车产业虽然较于发达国家起步较晚,但是国内汽车在近年来呈高速发展趋势。国内汽车保有量不断增加,汽车出行在给人们带来便利的同时也带来了极大的安全威胁。人工智能领域在近年来声势很大,许多行业都开始应用人工智能技术,智能驾驶的概念也随之被提出。利用人工智能、计算机视觉等技术,可以让汽车感知驾驶场景并进行安全无人驾驶或者辅助驾驶。目标检测环节作为智能驾驶的首要环节,其任务相当于驾驶员的“眼睛”,需要准确识别道路前方的汽车和行人等目标。然而,实际应用场景中存在天气不定、目标遮挡、尺度变化等多重因素,这些都会影响目标检测系统的精确度,进而影响智能驾驶的安全性。
为了同时满足道路场景目标检测的实时性和精确度的要求,本文基于深度学习领域的单阶段目标检测算法,构造一种新的卷积神经网络。
本文主要工作如下:
1. 介绍了目标检测相关的基础工作,简要阐明了传统目标检测算法和基于深度学习的目标检测方法及原理。
2. 详细分析了卷积神经网络的模型结构,分析了传统卷积运算的缺陷,对比了常见规范化方法,阐述了目标检测领域 BN 方法的局限性。
3. 研究了单阶段目标检测算法 YOLO 及 YOLOv2,深入分析了 YOLO 算法的网络结构和优缺点,通过改进 YOLOv2 算法的基础网络来提升算法的精度。本文融合了 Resnet 特征提取网络和 YOLOv2 算法,在 KITTI 数据集上进行对比证明了融合方法的有效性,融合后网络在精度上有所提升。
4. 道路场景目标检测的对模型的泛化能力要求较高,现有大型数据集和我国道路场景存在差异,且在实际应用场景中目标形态、尺度和外观变化较大,所以本文在 YOLOv2 融合网络的基础上改进了卷积层的结构和规范化的方式。使用可调制变形卷积代替卷积网络的上层卷积层,使用 IBN 方式对网络的底层进行数据处理。改进后的网络在 KITTI 数据集上对非机动车和行人等形变较大的目标检测精度有所提升,该模型在自行采集的驾驶视频中,可以适应多云、隧道等光线条件较差的场景。
参考文献
无人机是一种利用无线电进行遥控的飞行器,具有机动灵活、成本低廉等特点。目前,在军事和民用的各个领域,无人机都发挥着重要的作用。...