




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录前言 3第一章 绪论 41.1 研究背景及意义 41.2 卷积神经网络概述 51.3 本文的主要工作及创新点 61.4 文章结构 6第二章 交通信号灯检测与识别技术 82.1 研究现状分析 82.1.1 颜色空间 82.1.2 交通信号灯的检测技术 102.1.3 特征提取 112.1.4交通信号灯的识别技术 112.1.5目标追踪算法 112.2 交通信号灯检测与识别技术难点 122.3 本章小结 12第三章 基于FasterR-CNN的交通信号灯检测技术 133.1 基于RegionProposal的深度学习目标检测算法的演进 133.1.1 R-CNN目标检测算法 133.1.2 SPP-NET目标检测算法 153.1.3 FastR-CNN目标检测算法 163.1.4FasterR-CNN目标检测算法 183.2 本文使用的目标检测模型PVA-Net 213.3 本章小结 22第四章 基于CNN的交通信号灯识别技术 244.1 预处理过程 244.1.1交通信号灯的类型判定 244.1.2基于HSV空间的图像阈值分割 254.1.3基于局部最小值的图像切割 264.2 卷积神经网络 274.2.1 卷积层 274.2.2激活函数 284.2.3 池化层 304.2.4全连接层 304.2.5Dropout层 314.3 本文使用的卷积神经网络识别模型 314.4 本章小结 33第五章 交通信号灯检测与识别结果分析 345.1CalmCar交通标识数据集 345.1.1 CalmCar交通信号灯检测数据集 355.1.2CalmCar交通信号灯识别数据集 355.2 运行环境 365.3 实验结果分析 365.3.1 交通信号灯检测模型结果分析 365.3.2 交通信号灯状态识别模型结果分析 375.4 本章小结 38第六章总结与展望 396.1 本文总结 396.2 后续工作展望 40参考文献 41致谢 41 摘要 目前,关于智能汽车和辅助驾驶系统(ADAS,AdvancedDriverAssistanceSystem)的研究非常热门。为了实现智能化的驾驶,要求设备能够进行实时的驾驶环境分析和驾驶行为分析,进而由分析所得的结果执行辅助或者控制操作。交通信号灯,是道路交通必不可少的驾驶信号之一,对有效地指引车辆行驶,维持交通秩序,有着至关重要的作用。因此,智能汽车和辅助驾驶系统想要能够实现自身的功能,交通信号灯的检测与识别是必不可少的组成部分。 本文深入地研究了交通信号灯的检测和识别方法,分别提出了采用深度学习进行检测和识别的实现方式,对现实环境中的交通信号灯进行实时地检测和识别。本文采用基于FasterR-CNN的检测模型,实时检测交通信号灯;采用基于局部最小值的预处理方法,对检测出的交通信号灯进行切割,得到特征明显的单个的信号灯图案;最后采用基于卷积神经网络的识别模型,进行交通信号灯状态的识别。本文所用到的数据都来自于CalmCar交通标识数据集,采集自真实的中国典型城市的道路交通环境中,适合于分析中国交通道路状况的相关应用。 关键词:深度学习;图像识别;目标检测;卷积神经网络
AbstractAtpresent,theresearchonSmartCarandAdvancedDriverAssistanceSystem(ADAS)isverypopular.Inordertorealizeintelligentdriving,thedeviceisrequiredtoperformreal-timedrivingenvironmentanalysisanddrivingbehavioranalysis,andthenperformassistanceorcontroloperationsfromtheresultsoftheanalysis.Trafficlightsareoneoftheessentialsignalsforvehicles.Theyplayacrucialroleinguidingvehiclesandmaintainingtrafficorder.Therefore,toachievethefunctionsofSmartCarandADAS,thedetectionandrecognitionoftrafficlightsisanintegralpart.Thispaperdeeplyresearchesonthedetectionandrecognitionoftrafficlights,andproposesamethodofdetectionandrecognitionbasedonDeepLearningtodetectandrecognizetrafficlightsinreal-time.Inthispaper,thedetectionmodelbasedonFasterR-CNNisadoptedtodetecttrafficlightsinrealtime.Thepreprocessingmethodbasedonlocalminimumisusedtocutthedetectedtrafficlightstoobtainseveralsignalpatternswithuniquefeatures.Finally,theConvolutionalNeuralNetworkisusedtoidentifythestatusesoftrafficlights.ThedatasetusedinthispapercomesfromCalmCarTrafficSignalDataset.CalmCarTrafficSignalDatasetiscollectedfromrealroadenvironmentintypicalcitiesofChinawhichissuitabletobeappliedtoanalysetrafficconditionsinChina.Keywords:Deeplearning;Imagerecognition;Targetdetection;Convolutionalneuralnetwork
前言 随着科技的发展,交通运输和驾驶安全问题得到了越来越多的关注。目前,智能汽车和先进辅助驾驶系统是目前工业市场上非常热门的研究重点,通过采用计算机视觉和雷达等技术实时有效地分析驾驶环境驾驶行为,为驾驶人员提供智能化的帮助。在实际的驾驶场景中,交通信号灯通过一系列的不同图案和颜色的指示灯的信号引导车流,维护交通秩序,确保行车安全,避免了交通拥堵和交通事故。因此,在智能汽车或者辅助驾驶系统中,对交通信号灯的检测和识别是不可或缺的。交通信号灯的检测和识别技术也因为工业需求而有着重要的意义和良好的前景。 随着深度学习的不断研究和发展,深度学习在图像识别专业领域内取得的成果显著,对交通信号灯的检测和识别的方法带来了影响。交通信号灯的检测和识别正在逐步从传统的方法走向深度学习的方法。传统检测和识别方法的局限性显而易见,由于特征的局限性,不能够适用于复杂多变的环境,缺乏灵活性和适应性。随着样本数据量的增长,深度学习方法可以灵活地学习不同环境下的特征,满足目标检测和物体识别的需求。采用深度学习的方法进行交通信号灯的检测和识别,能够有效地增强检测和是识别能力,增加灵活性和扩展性。 本文以交通信号灯为研究对象,研究了交通信号灯的检测和识别方法。通过分析已有的交通信号灯的检测和识别的技术,分析对比已有的检测和识别技术的优缺点,提出本文设计的基于深度学习的交通信号灯检测和识别方法,并在采集于中国典型城市的CalmCar交通标识数据集上进行训练,最后对模型进行了实验验证。 本文主要工作及创新点如下: (1)基于FasterR-CNN的交通信号灯检测技术的应用。 (2)提出了基于局部最小值的信号灯切割方法,这是本文的创新点之一。 (3)基于CNN的交通信号识别技术的研究。
第一章 绪论 在本章绪论中,首先介绍了交通信号灯检测和识别技术的研究背景和意义,其次简单地介绍了卷积神经网络的原理,并介绍了本文所采用的方法的主要工作和贡献以及创新点,最后介绍了论文的结构框架。研究背景及意义 城市不断地发展扩大,汽车的拥有量也在持续增加,随着道路的不断开发,交通状况日益复杂,交通中存在的问题也在不断的增加并加剧,比如不断发生的交通事故以及严重影响人们生活和通行质量的交通拥堵。随着科技的发展,在图像识别和控制领域的深入研究,越来越多的技术被应用到汽车领域。近年来,处于研究重点和热点的智能汽车和辅助驾驶系统就是一个典型的例子。 通过安装多种传感器和摄像头,实时采集驾驶环境中的各种数据信息,智能汽车和辅助驾驶系统可以进行各种信号的检测或识别,从而实现诸如行车线检测、偏离预警、疲劳驾驶警示等功能。无论是在智能汽车还是辅助驾驶系统中,对行驶过程中遇到的交通信号灯的检测和识别的研究都是必不可少的。 通过实时地获取并分析摄像头捕捉的驾驶环境数据,检测并识别交通信号灯的指示状态,可以及时的提醒驾驶人员前方的交通信号灯状态,从而一定程度上弥补驾驶人员的疏忽,避免因为驾驶人员主观判断不正确而引起的交通事故。因此,交通信号灯的检测和识别必须具有较高的准确性,具有实时识别能力,能够在复杂的外部环境下,识别多种类型的交通信号灯。 交通信号灯检测和识别的研究非常具有现实意义。交通信号灯向交通参与者们输出重要的交通指示信号,提前识别交通信号灯有利于驾驶人员提前采取措施并提前规划路线,可以有效地防止交通交叉路口的事故的发生,弥补驾驶人员的不足。另一方面,信号灯的检测和识别可以有效地给色盲和色弱群体提供帮助,通过交通信号灯检测和识别系统帮助他们识别道路上的交通信号灯让弱势群体在科学技术的支持下能够进行安全的驾驶。 因此,交通信号灯检测和识别技术具有重要的意义,在智能汽车和辅助驾驶的发展中,有良好的应用推广前景,对有颜色分辨障碍的群体也充满了人文关怀。1.2 卷积神经网络概述 深度学习在多个领域中都有着出色的成绩,其中就包括了图像识别、语音识别以及自然语言处理等领域。其中,卷积神经网络(CNN,ConvolutionalNeuralNetwork)是研究最深入,应用最广泛的一中神经网络模型。早期,由于数据的缺乏,卷积神经网络取得的结果不令人满意,易产生过拟合的现象。随着数据集的扩充和完善和计算能力的不断提升,卷积神经网络在各种大赛上以优异的结果获得关注,也得到了更加深入的研究。目前,卷积神经网络获得了广泛的认可,各种功能完善,性能出色的网络,也不断的出现,其中包括LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。 卷积神经网络的基本结构是相似的,主要由卷积层(Conv,ConvolutionalLayer)、池化层(Pool,PoolingLayer)和全连接层(FC,Fully-ConnectedLayer)组成。在卷积神经网络中,每一层提取前一层输入数据的特征,得到对应的特征图,实现对特征的提取和加工。 一个典型的卷积神经网络的结构可以表示为:InputImage→Conv→Pool→Conv→Pool→FC→FC(式1.1) 卷积神经网络通过卷积层和池化层的卷积和池化操作进行输入数据的特征提取,通过梯度下降以及最小化损失函数的方法调节网络中的权重,然后通过不断地迭代来提高网络的精度。在卷积神经网络中,低层的网络主要由卷积层和池化层组成,用来得到输入数据的特征图,不断提取和浓缩特征;高层的网络由全连接层和分类器组成,其中分类的方法逻辑回归,Softmax回归和支持向量机。 在卷积神经网络中,卷积层、池化层、全连接层的主要功能如下:卷积层卷积层通过卷积运算,可以增强原图的特征并且降低噪音。卷积层中包含了多个卷积核(ConvolutionalKernel),不同的卷积核计算不同的特征图。池化层池化层对传入的数据进行下采样,从而较少参数个数并减少计算量。同时,池化保持图像的平移、旋转和尺度不变性,有效地避免产生过拟合,从而增强泛化能力。最大池化(MaxPooling)和均值池化(MeanPooling)是常用的池化方法。全连接层 全连接层对特征进行提炼,接着将特征传输到分类器,最终实现输入数据的分类。1.3 本文的主要工作及创新点 本文以交通信号灯为研究对象,研究了交通信号灯的检测和识别方法。通过分析现有的各种交通信号灯的检测识别技术,对比各种检测识别技术的优缺点,提出了基于深度学习的交通信号灯的检测和识别方法,并在采集于中国典型城市的CalmCar交通标识数据集上进行训练,最后对模型进行了实验验证。 本文主要工作及创新点如下: (1)基于FasterR-CNN的交通信号检测技术的应用。通过分析FasterR-CNN目标检测技术的发展过程,从最初的R-CNN,到SPP-Net,再到FastR-CNN,最后到FasterR-CNN,分析了FasterR-CNN在目标检测方法中明显的优势。本文最终采用的是基于FasterR-CNN的网络PVA-Net,实现复杂的城市环境中的交通信号灯的检测。 (2)提出了基于局部最小值的信号灯切割方法,这是本文的创新点之一。本文通过切割检测到的交通信号灯,得到单个独立的交通信号灯图案。切割所得的信号灯图案,特征明显,类型明确,降低了后续的识别的难度和复杂度。实验结果表明,进行图像切割的预处理后,增加了分类的灵活性,只需要增加模型的分类,就可以使得算法适用于各种各样的交通信号灯图案的识别,增加了算法的通用性。 (3)基于CNN的交通信号识别技术的研究。经过预处理后,所得的信号灯图案特征明显且易于分类。通过卷积神经网络的识别方法,将信号灯图案根据颜色和形状进行分类。实验表明,相比于传统的识别方法,基于CNN的识别方法在特征提取方面灵活简单,可以根据实际环境的需求增加信号灯的类型,或增加新环境下的样本,增强了适应性,有着明显优势。1.4 文章结构 全文总共六章,各章的主要内容安排如下: 第一章:绪论。本章介绍了交通信号灯检测和识别的研究背景和意义、卷积神经网络的概述、本文主要工作及主要创新点以及文章结构。 第二章:交通信号灯检测识别技术。本章首先介绍了现有的交通信号灯检测识别技术,分析了目前信号灯检测和识别的研究现状,并总结了交通信号灯检测和识别过程中的难点。 第三章:基于FasterR-CNN的交通信号灯检测技术。本章从基于RegionProposal的深度学习目标检测算法的演进着笔,详细阐述了从R-CNN到SPP-Net到FastR-CNN再到FasterR-CNN的发展过程,总结了FasterR-CNN在目标检测方法中的优势,介绍了本文所采用的基于FasterR-CNN的交通信号灯检测方法PVA-Net。 第四章:基于CNN的交通信号灯识别技术。本章提出了一种新颖的交通信号灯预处理方法,对检测得到的交通信号灯进行基于局部最小值的信号灯图案切割,并对切割后的图案进行识别,对卷积神经网络进行了详细的介绍,最后提出了基于CNN的交通信号灯识别方法。 第五章:通过实验分析本文在第三章和第四章所提出的交通信号灯的检测和识别方法。 第六章:总结全文,对后续的工作进行展望。
第二章 交通信号灯检测与识别技术 本章介绍了交通信号灯检测和识别流程各个步骤的实现方法以及研究现状,并分析了交通信号灯检测和识别的难点。2.1 研究现状分析 关于交通信号灯的检测和识别的研究在不断地发展和进步。交通信号灯作为一种交通标识,有着醒目和简洁的特点,颜色鲜艳,图案含义直观明了。通过信号灯图案的特点,可以从环境中分析定位出交通信号灯。随着深度学习的深入研究,深度学习方法也逐渐运用在信号灯检测和识别领域。目前,交通信号灯的检测和识别主要分为两种方法:基于模型的识别算法和基于学习的识别算法。 本小结通过分析和总结大量现有文献中的实现方法,从颜色分割、检测、特征提取、识别和追踪,这五个方面介绍了现有的技术。下面就从这五个方面依次介绍通信号灯检测和识别的研究现状。2.1.1颜色空间 颜色是交通信号灯最明显的特征之一,对于图像颜色的提取和分析可以有助于检测和识别图像中交通信号灯。一张图片默认存储的颜色空间是RGB颜色空间,但是由于RGB颜色空间中三个通道的颜色相互联系,不利于有效提取出某一种颜色,因此,在实际应用中往往将图像从RGB空间转换到其他的颜色空间中,再进行后续的处理。除此以外,在具体的操作中,不仅限于只用一种颜色空间,也可以通过不同颜色空间的组合的运用来实现更好的颜色提取的效果。 下面介绍两种常用的颜色空间模型:(1)HSV色彩空间模型 HSV分为三个通道,分别是色调(Hue)、饱和度(Saturation)、明度(Value)。在HSV色彩空间模型中,色调(Hue)的取值范围是0°到360°。由于HSV空间中各个通道各司其职,控制着不同的因素,三个通道之间相互独立,提取颜色的效果好,因此,在图像处理方面有着有着广泛的应用。图2.1HSV颜色空间模型(2)CIELAB色彩空间模型CIELAB色彩空间模型采用的是一种非常符合人的视觉感受的颜色表示方式,是一种基于生理的颜色表达方式。其中L表示亮度信息,A表示由红色到绿色的颜色变化范围,B表示由黄色到蓝色的颜色变化范围。CIELAB所能表达的颜色空间是最大的,包含了RGB颜色空间,所以将图片从CIELAB空间转换到RGB空间时,不会损失颜信息。图2.2CIELAB色彩空间模型 在交通信号灯检测和识别的算法中,RGB,HSV,CIELAB是常用的颜色空间,同时多种颜色空间的混用也是常用的方法。 CaiZ使用了RGB和YCbCr两个颜色空间[1],在定位信号灯背板时采用RGB空间,在检测箭头形交通信号灯时采用YCbCr空间。HaltakovV使用CIELab空间来提取用于检测信号灯的特征,用RGB空间来提取用于识别信号灯的特征[2]。Gomez用灰度空间来寻来候选区域,随后转化到HSV空间来识别状态[3]。 在交通信号灯检测和识别的研究中,没有偏向某一种颜色空间的趋势,但是颜色和强度分开的颜色空间由于更容易区分颜色而更受欢迎。在近期的一些研究中,为了更好的将交通信号灯从环境中分割出来,GomezAE使用了结合多种颜色空间中的通道以获得更好的颜色特征的方法[4]。2.1.2交通信号灯的检测技术 交通信号灯检测系统,通常是通过寻找图像中交通灯的组成部分来实现的,组成部分包括灯泡,背板,以及灯柱。交通信号灯的检测方法可以被分为两类,基于模型的方法和基于学习的方法,除此以外,还有一种基于先验知识的辅助的检测技术。基于模型的检测方法 一个简单易用的颜色模型包含了颜色强度阈值,但是基于这种简单模型的检测器容易产生基于特定数据集的过拟合现象,其中,表现最好的是通过人工标注的图像得到的高斯像素分类器[5]。 亮斑检测具有对抗颜色干扰的鲁棒性,也是一种常用的检测方法。常用的方法是提取灰度图上的亮斑[6],提取HSV颜色空间中的V通道满足阈值的区域也有相同的作用[7]。 在使用颜色模型之后,可以使用形状模型做进一步的过滤。环形霍夫变换可以找到封闭的圆形,进一步优化的实心环形霍夫变换在交通信号灯检测中取得了更好的效果[8]。大多数方法都会使用区块(BLOB)分析的方法来降噪或是计算BLOB属性,比如NienhüserD使用区块的大小,长宽比,环形(是否封闭)和在世界坐标系中的高度来分析区块是否满足特征要求[9]。基于学习的检测方法 早期,基于学习的检测方法有基于Haar特征的级联分类器[5],但是它甚至没有高斯颜色分类器的效果好。后来,比较成功的检测方法有基于HoG特征的SVM分类器[10]和基于颜色、纹理和像素位置的JointBoot分类器[11]。 随着深度学习的发展,近年来用深度学习方法实现目标检测的方法越来越受到关注。常用于信号灯检测的深度学习方法有SSD,FastR-CNN,FasterR-CNN和YOLO[12]。 基于学习的检测方法的特点是需要大量的数据和计算,对数据量和运行设备的要求较高,同时,它们的优势也非常明显,在面对变化的环境时,鲁棒性更高。辅助检测 为了降低误检率,可以使用交通信号灯的GPS位置信息,在有信号灯的交叉路口处激活检测系统[13]。此外,还可以在地图上添加更多准确的先验位置信息,例如人工标注出有交通信号灯的地方,让路过的行驶车辆可以提前感知环境数据。辅助使用GPS信息的方法使得算法的检错率大大地降低了,但是过于依赖地图信息会降低检测算法的灵活性。 总的来说,基于模型的检测方法通过设置阈值分割颜色,从而得到感兴趣的区域,再由区块来筛选候选区域;基于学习的方法更加灵活,可以用更多的特征信息来进行检测;通过获取道路的先验知识能够排除错误的候选区域,从而较少计算损耗并降低检错率。2.1.3特征提取 颜色是最显著地特征,色密度和颜色直方图就常被提取作特征;形状特征包含了长宽比,大小和面积;结构特征是指交通信号灯组成部件的相对位置;通过信号灯的灯柱和背板,容易将其与背景环境区分开来,因此形状和结构特征也是很常用。 ZhangY采用了将颜色,形状和结构特征相结合的方法[7]进行交通信号灯的检测。其他常用的特征还有,2DGabor小波特征和LBP特征等。 单独依赖颜色或形状或结构特征的系统会受到环境变化的极大影响,通过将多种特征进行融合,可以增强算法的鲁棒性。2.1.4交通信号灯的识别技术 一种极其简单的对检测出的信号灯进行分类方法是,计算哪个颜色阈值内的像素点个数最多,并依据颜色分布确定其所属的类[14]。除此以外,还有基于2DICA降维的Gabor特征的最近邻分类方法对箭头形交通信号灯分类[1],基于HoG的SVM分类器[15],基于CNN的分类器[16]等方法。 成功的分类器非常依赖特征的质量,为了获得鲁棒性,基于机器学习方法的需要训练大量的不同种类的数据。随着深度学习的发展,基于CNN的识别算法获得广泛的应用。2.1.5目标追踪算法 追踪算法常用来降噪或者处理丢失的候选区域。短暂的追踪算法被用来检查前面的帧,并且判断其是否在先前帧内出现过,是否与当前帧内的候选区域有相同的特征。总的来说,常用的追踪方法有两种,相关性追踪和点追踪。在大多数情况下,相关性追踪依赖和检测器相同种类的特征,所以对检测器没有辅助作用;点追踪能够应用额外的特征信息,对完善检测器有帮助。2.2 交通信号灯检测与识别技术难点 虽然交通信号灯的设计的初衷是为了易于辨认,但是由于诸多物理、环境因素和摄像头的影响,使得交通信号灯难以辨认,给后续的检测和识别带来了很大的困难。 交通信号灯检测和识别的难点包括: (1)交通信号灯的检测目标小。当距离相对较远时,交通信号灯的画面中尺寸就很小,特征变得模糊,加大了检测的难度。 (2)交通信号灯受光线影响大。当处在迎光位置时,由于交通信号灯的颜色变暗,图案的轮廓变得模糊,特征变得不明显,不利于检测。 (3)背景环境复杂。特别是在城市中,交通信号灯所安装和设置的环境复杂,受到复杂的房屋、树木、广告牌的影响,对交通信号的检测十分不利。 (4)颜色范围大。由于曝光过度的现象和摄像头素质的问题,使得检测到的画面上,交通信号灯的颜色会有很大的差异性,对颜色分割的操作步骤产生了很大的影响。2.3 本章小结 一个普遍的完整的交通信号灯检测识别的流程主要由颜色分割、检测、特征提取、识别和追踪这五部分组成。其中检测和识别的方法都分为基于模型的和基于学习这两类。基于模型的方法,适应性较差;基于学习的方法,需要大量的数据来进行训练。颜色、形状和结构是信号灯的主要特征,可以利用颜色信息在色彩空间对图像进行颜色分割,利用形状信息对交通信号灯候选区域进行过滤,利用交通信号灯背板是一个黑色矩形框这一特点对候选区域进行确认,进而对候选区域进行状态识别。采用目标追踪算法有利于去噪,降低算法的误检率。随着数据集的不断扩大和计算能力的不断提升,研究人员在深度学习领域进行了越来越多的探索。
第三章 基于FasterR-CNN的交通信号灯检测技术 在计算机视觉领域,目标检测一直是一个研究热点和研究难点。由于计算机面对的是抽象的数字图像信息,所以不能直接从图像中得出物体的概念。此外,物体由于所处的光线环境和放置的角度的不同,在计算机中所呈现的样子存在很大的差异性。传统目标检测算法由于滑动窗口的高冗余和特征提取的局限性,正在逐步被采用深度学习的方法取代。与传统方法相比,深度学习的方法有着较强的特征提取能力和学习能力。随着卷积神经网络和候选区域(RegionProposal)思想的发展,深度学习的目标检测取得了重大的突破。本章介绍了基于FasterR-CNN的目标检测算法的发展,以及本文所应用的PVA-Net目标检测框架。3.1 基于RegionProposal的深度学习目标检测算法的演进 目标检测的难点是,目标的大小、长宽比、位置不能确定。所以通过滑动窗口对整幅图像进行遍历的方法,需要设置可能出现的所有大小和长宽比,必然会导致较高冗余。 采用提出RegionProposal的方法,可以利用图像本身的纹理、颜色和边缘等特征,预先估计目标可能出现的位置,确保在选取较少窗口的条件下,有较高的召回率,这种方法大大减少了计算量,节省了时间。常用的提取候选区域的方法是SelectiveSearch。 提取出候选窗口后,需要对候选框区域进行特征提取和识别。卷积神经网络在图像识别和分类问题上,有着较高的灵活性和强大的学习能力,是解决识别问题最主要最有效的方法。因此,在提取出候选框后,用卷积神经网络进行分类是不错的选择。 RossB.Girshick在2014年提出了“RegionProposal+CNN”的算法框架,在目标检测领域获得了巨大的突破和成果,引领了基于深度学习进行目标检测的潮流。3.1.1 R-CNN目标检测算法 R-CNN[17]是最早提出的结合了提取候选区域和卷积神经网络的目标检测方法。R-CNN算法的检测流程如下: (1)输入图像 (2)采用SelectiveSearch方法提取候选区域 SelectiveSearch方法的原理是:基于颜色、纹理和边缘特征将图像分为很多个小块,然后通过合并小块的方法,提取出候选窗口,合并前后的每一块都对应着一个窗口,最后挑出所有窗口中最有可能是目标的窗口作为最终候选窗口。用SelectiveSearch的方法提取出2000个左右的候选窗口,基本可以涵盖图像中目标可能出现的位置。 (3)提取特征 首先对提取到的每个候选区域进行尺寸归一化,接着将图片送入卷积神经网络中进行特征的提取,卷积神经网络的输出作为最后的特征向量。经过卷积神经网络,每一个候选区域都对应着一个特征向量。 (4)分类和边界回归 首先,使用线性SVM分类器,对从上一步输入的特征向量进行分类。 其次,通过边界回归(Bounding-BoxRegression)的方法得到更精确的目标区域。检测目标时,会产生多个子区域,边界回归的方法可以对检测目标进行精确的定位和合并,避免多个检出,提高检测的准确率。图3.1R-CNN算法整体检测流程R-CNN在将卷积神经网络运用到目标检测问题上取得了重大的突破,但是同时由于R-CNN的思想不太完善,还存在着几个明显的缺点: (1)重复计算量大。由于是先提取候选区域再将每一个候选区域分别送入卷积神经网络,而候选区域之间存在着大量重叠的区域,这就使得其中必然存在着大量的区域的重复计算,导致训练耗时长,速度慢。 (2)图象变形。在进入卷积神经网络之前,需要对候选区域进行归一化,归一化的操作会使得图像拉伸变形,可能会导致特征信息的丢失。 (3)SVM分类器效果差。在样本充足的情况下,传统的SVM分类器效果不如深度学习网络中的分类器。 (4)分段训练缺少整体性。由于特征提取、卷积神经网络和SVM分类器都是分开单独训练的,训练过程繁琐。图3.2R-CNN算法整体检测流程3.1.2 SPP-NET目标检测算法 SPP-NET[18]在R-CNN后被提出,SPP(SpatialPyramidPooling)表示空间金字塔池化,对R-CNN的发展有很大的贡献作用。图3.3传统CNN结构(上)和空间金字塔池化网络结构(下)SPP-NET有两个主要的特点和改进:通过采用SPP的方法实现卷积神经网络的多尺度输入 一般的卷积神经网络由于后接全连接层和分类器,需要进行图像的归一化,满足规定尺寸的输入。将SPP加入到卷积神经网络中可以拜托图像尺寸的限制,实现图像的多尺度输入。 如图3.4所示,金字塔池化网络结构在卷积层与全连接层中间插入了SPP层,解决了输入图像尺寸限制的问题。当向SPP层输入特征图时,通过使用不同的尺度对特征图进行划分的金字塔池化的方法可以最终得到一个相同尺度的特征向量。例如,利用(4*4,2*2,1*1)这3个尺度对特征图进行划分,最终可以得到16+4+1=21个块,从这21个分块中分别提取一个特征,就得到了统一的21维的特征向量。金字塔池化的具体操作如图3.4所示,图3.4SPP的具体结构(256是conv5的卷积核数)只对原图提取一次卷积特征 不同于R-CNN中的对每个候选区域做一次卷积运算,SPP-Net只对原图进行一次卷积得到整张图的特征图。找出每个候选框在特征图上的映射块,将映射块区域内的特征作为候选区域的卷积特征输入到SPP层中,这样做减少了冗余的计算,节省了大量时间。 SPP-Net在R-CNN的基础上有了很大的提高,对后续的发展有着深远的影响。3.1.3 FastR-CNN目标检测算法 FastR-CNN先将原图送入卷积神经网络后,再进行区域的划分和后续的操作,提高了模型的检测效率。同时还对R-CNN的数据传输方法做了一定整合,提升了性能。图3.5FastR-CNN框架FastR-CNN检测流程如下:(1)输入任意尺寸的图片到卷积神经网络中,得到特征图;(2)在输入图片上用SelectiveSearch区域提取算法,获得约2000个候选区域;(3)根据候选区域和特征图的映射关系,提取出每个候选区域对应的特征图,接着在RoI(RegionofInterest)池化层中,生成每个候选区域对应的特征向量。(4)将候选区域的特征向量输入全连接层,输出用于多任务学习的特征,并计算多任务的Loss。(5)通过非极大值抑制修整建议框,将修正后的窗口作为检测结果。FastR-CNN的主要的两个改进点如下:RoI池化层SPP层包括多个不同的划分尺度,RoI池化层只包含一种尺度,所以RoI池化层其实是SPP池化层的一个简化的方法。先设定一个固定的空间尺度(例如,7*7),然后通过最大值池化的方法,将任意尺度的特征图转化成一个固定尺度的特征向量。 (2)多任务Loss层 全连接层的输出包括两个分支:一个是SoftmaxLoss,另一个是RegressionLoss。在FastR-CNN中,使用SoftmaxLoss函数替代了原本的线性SVM分类器,同时通过多任务损失函数将边框回归也加入到网络之中,使得除去特征区域提取外的训练过程是端到端的。 然而,要将FastR-CNN应用于实际中,还需要解决的是算法耗时长的问题。FastR-CNN的时间瓶颈在候选区域提取算法SelectiveSearch上,同时也未能实现真正意义上的端到端的训练和测试。3.1.4FasterR-CNN目标检测算法 在“RegionProposal+CNN”的这种目标检测算法框架中,所提取的候选区域的质量至关重要。FastR-CNN采用的SelectiveSearch来选取候选区域,提取速度不够快,使得应用受到很大的限制。如果能够实现一种只提取几百个或者更少且质量高,召回率高的预选窗口,可以提高目标检测的效率和性能。RPN(RegionProposalNetworks)网络满足这样的需求。图3.6RPN网络结构 RPN的核心思想是使用卷积神经网络产生候选区域,使得提取候选区域几乎不会给检测网络的计算带来消耗。只需要在最后的特征图上用3*3的卷积核进行卷积,由Anchor机制和边框回归的算法映射原图得到多尺度多长宽比的候选区域。 RPN的核心要点内容: (1)Anchor机制 Anchor的思想是由相同尺寸的输出,倒推出不同尺寸的输入。对所得的特征图用一个3*3的卷积核再进行一次卷积操作,对于每个3*3卷积核滑动得到的窗口,假设它来自9种不同的原始区域的池化,其中这9个区域在原图中的中心是相同的。因此,可以根据不同的长宽比和不同的面积的9个Anchor,根据推导映射出它所对应的原图中的区域,这些区域就是我们想要提取的候选区域,这种映射的机制称为Anchor。 图3.7示意了对于3*3滑窗对应的每个特征区域,预测3种输入图像尺度(1282,2562,5122),3种长宽比(1:1,1:2,2:1)的候选区域。图3.7Anchor示意图 (2)Softmax判定是否为候选区域 经过该卷积的输出图像大小为W*H*18,对应了特征图上每一个点都有9个Anchor,同时每个Anchor可能是前景区域和背景区域两种可能,所有这些信息都保存在W*H*(9*2)大小的矩阵。通过Softmax分类获得对应前景区域的Anchor,并初步提取检测目标候选区域框。 由步骤(1)(2)可知,RPN网络中利用Anchor和Softmax初步提取出前景区域。(3)边框回归(BoundingBoxRegression) 用向量(x,y,w,h)表示窗口,(x,y)表示窗口的中心点坐标,w和h分别表示宽和高。在图3.8中,红框A表示的是前景区域的Anchor,绿框G表示的是目标真实的位置(GroundTruth)。通过寻找一种关系,使得A经过映射得到的回归窗口G',与真实窗口G更接近。定义A=(Ax,A图3.8边框回归示意图 将图3.8中的A变换为G的有一种比较简单的思路: 先平移: Gx'=Aw Gy'=Ah∙d 再缩放: Gw'= Gh'= 通过观察上面的式子,可以发现需要学习的是dx(A),dy(A),dw(A), tx=(x-x ty=(y-ya tw=log(w/w th=log(h/h 线性回归的问题是通过学习一组参数W,使得经过运算后输入的特征X与真实值Y非常接近,即希望能够满足Y=WX。定义Φ为输入X经过卷积所获得的特征图,定义(tx,ty,tw, d*A= 其中Φ(A)是由对应Anchor的特征图组成,W表示的是需要学习的参数,d*(A)表示预测值(*表示x,y,w, Loss=iN( 综上,函数优化目标就是: w*=argminw (4)Proposal层 在Proposal层,通过综合[d 在上面所述的RPN的核心要点内容基础上,总结RPN的处理过程如下:(1)生成Anchor;(2)利用Softmax;分类器分类出前景Anchor;(3)利用边界回归的方式回归精准前景Anchor;(4)利用Proposal层生成用于后续操作的候选区域。 在结构上,FasterR-CNN将特征提取、候选区域提取、边界框回归、分类这几步操作整合在一个网络中,提高了网络的综合性能,明显加快了检测速度。图3.9FasterR-CNN网络架构 FasterR-CNN[19]分为以下四个主要部分: (1)卷积层。FasterR-CNN采用“Conv+Relu+Pooling”的网络结构来提取图像的特征,计算所得的特征图被后续RPN层和RoI池化层共享。 (2)候选区域提取网络(RPN)。RPN用于生成候选区域,通过Softmax判断Anchor属于前景还是背景,再利用边界框回归的方法修正Anchor,从而获得更加精确的候选区域。 (3)RoI池化层。通过综合图像的特征图和候选区域的信息,提取候选区域的特征图,将其送入后续全连接层判定目标类别。 (4)分类。利用候选区域的特征图计算候选区域的类别,同时再次进行边界框回归,从而获得候选框的精确位置。3.2 本文使用的目标检测模型PVA-Net PVA-Net[20]是在FasterR-CNN基础上改进的深度学习目标检测模型,继承FasterR-CNN“CNN+RegionProposal+RoIClassification”的思想。在PVA-Net中,最大的改变是在卷积神经网络提取特征的过程中添加了很多小技巧,从而使得整体效果有了显著的提升。 PVA-Net的表示的含义是“PerformanceVSAccuracy”,意为在加速模型的性能,同时保持检测的正确率,其性能的提升主要来源于在卷积神经网络中添加高效的基础网络,从而优化模型,例如,C.ReLU、Inception、HyperNet以及深度网络训练模块。图3.10PVA-Net网络及结构示意图C.ReLU 在卷积神经网络的前几层,神经元的激活值恰好相反。C.ReLU通过把输出通道减半,直接通过取反数的方法得到另外的一半激活值,从而使得运算效率增加了一倍。(2)Inception 在Inception中,1*1的卷积核可以增强网络的非线性,同时保持了跟上一层相同的感受野,对于目标比较小的物体有较好的检测效果;3*3的卷积核来、可以实现较大的物体目标检测。(3)HypeNet 通过将不同卷积阶段不同尺度的卷积层级联起来有助于进行多尺度的目标检测。(4)深度网络训练 在Inception层间加入Residual模块,在ReLU激活层前加入BatchNormalization层,加速网络收敛。同时根据PlateauDetection动态控制学习率。3.3 本章小结 R-CNN的思路是一个比较基础朴素的思路,先选定候选区域,然后利用卷积神经网络对每个候选区域进行分类;SPP-Net运用金字塔池化的方法,避免了输入图像的归一化操作,防止在拉伸过程中图像特征信息的丢失;FastR-CNN巧妙之处在于它回避了R-CNN中要对每个候选区域的卷积运算,直接对全图进行卷积来提特征,获得特征图,再将候选区域的位置映射到特征图中从而得到每个候选区域所对应的特征,同时采用ROI池化层对特征维数归一化。 FasterR-CNN针对FastR-CNN的局限进行了改进,主要优化是在候选区域的提取操作上。Faster-RCNN采用RPN网络进行候选区域的提取,节省了在提取候选区域阶段的时间开销,RPN是一个多任务的网络,在分类的同时也完成了边界框回归的任务。 最后,介绍了本文所采用的基于FasterR-CNN的目标检测模型PVA-Net。PVA-Net通过在卷积神经网络阶段的改进,使得模型的检测效率明显上升,满足应用场景的需要。
第四章 基于CNN的交通信号灯识别技术 通过上一章节基于FasterR-CNN的检测模型,可以从复杂的环境中检测出一整块交通信号灯区域(包含亮灯图案和黑色背景板)。由于交通信号图案组合复杂且多变,所以直接识别一整块背景板中的状态极其繁琐。通过图像预处理的方法,将检测所得的信号灯组合进行图案分割,分割成一块块近似正方形的单个信号灯图案后,每一块图案的特征明显易于识别。通过一个简单的CNN,就可以有效地进行信号灯状态的识别,大大降低了识别模型的难度和复杂度。4.1 预处理过程 交通信号灯的检测结果是以黑色背景板为边界的区域,包含着一个或者多个待识别的交通信号灯图案。为了降低识别的复杂度,首先通过图像预处理的方法,在HSV颜色空间中的局部极小值处对黑色背景板进行切割,获得多个单独的信号灯图案,再由卷积神经网络模型进行状态识别。4.1.1交通信号灯的类型判定 为了加强交通秩序的管理,减少交通事故的发生,道路交通信号灯被发明出来,以改善交通状况。通过发出不同的颜色和图案信号,交通信号灯有效地维持着交通秩序,提高行车安全。 在道路中,交通信号灯随处可见,它们由一个个发光的信号图案组成。为了进行图像的分割,需要先确定切割的方向。由于交通信号图案的组合方式不同,有的较宽,有的较长,所以先将检测到的交通信号灯,按照宽度(W)和高度(H)比分为两种类型,竖型交通信号灯(W/H<1.5)和横型交通信号灯(W/H>1.5)。图4.1交通信号灯类型示意图 交通信号灯的类型决定了切割的方向。竖型的交通信号灯由多个交通信号图案在垂直方向组合而成,因此将水平横向切割;横型的交通信号灯由多个交通信号灯图案在水平方向组合而成,因此将按垂直方向竖直切割。4.1.2基于HSV空间的图像阈值分割 HSV颜色空间中,每个通道控制着不同的因素,三个通道之间相互独立,提取颜色的效果好,因此,在图像处理方面有着广泛的应用。此外,由于交通信号是发光体,在HSV中亮度(V)空间进行特定的限制,更容易从环境中提取出发光目标物体,进而减少环境的干扰。因此,本文采用在HSV色彩空间对检测结果进行颜色分割。表4.1HSV颜色分量范围黑灰白红橙黄绿青蓝紫hmin000015611263578100125hmax1801801801018025347799124155smin00043434343434343smax2554330255255255255255255255vmin04622146464646464646vmax46220255255255255255255255255 交通信号灯分为红色,黄色,绿色这三种颜色,其中黄色的交通信号灯接近橙色,绿色的交通信号灯受镜头和光线的原因,呈现出的颜色接近青色。根据图4.2,很容易根据颜色提取出这三种颜色的色调:红色H∈0,10∪[156,180],黄色和橙色H∈[11,34],绿色和青色H∈ 通过HSV空间基于颜色特征的阈值分割,对输入图像进行二值化处理,将阈值范围内的区域设置为白色(像素值设为255),阈值范围外的区域设置为黑色(像素值设为0),从而将待识别的交通灯图案区域与黑色灯箱背景区域区分出来。图4.2HSV空间分割信号灯图案4.1.3基于局部最小值的图像切割 一个黑色背景板中,包含一个或者多个交通信号灯图案。彩色的图案之间都存在着黑色的间隙,通过这些黑色的间隙,我们可以将信号灯图案进行切割。假设有一个经过二值化后竖型交通信号灯(Image),首先计算每一行像素中白色像素点的个数,存成一个列向量。利用黑色间隙处一整行像素中白色像素个数为0的特征,找到合适的位置,在黑色间隙区域进行切割,从而将一个完整的交通信号灯切割成多个只包含“单个”交通信号灯的图案,具体算法如下: 找出切割的候选行号。计算竖型交通信号灯二值图中每行白色像素点的个数,存入列向量A(A为W*1的列向量)中。根据该交通信号灯的较长的宽(W)和较短的高(H)之比(r=W/H)计算适应此交通信号灯的步长,局部最小值的步长Step(Step=W/(r*2+2))。遍历数组A,当A[i]满足A[i]≤A[j](j∈[0,W-1]∩[i-Step,i+Step])时,将行号i存入向量B中。向量B中存储着A中满足步长为Step要求的局部最小值的行号。筛选行号进行切割。在进行切割时,为了避免连续行号的无意义切割,不在交通信号灯顶部和底部的黑色区域进行切割。只有在满足width≥10,其中width=B[i+1]-B[i],i∈[0,B.size()-1])时才进行实际交通信号灯的切割,切割出的图案为Pattern,其中Pattern=Image.rowRange(A[B[i]],A[B[i+1]])。 切割出的单个图案,特征明显,相比未切割整个交通信号灯,更易于分类和识别。图4.3信号灯切割示意图4.2 卷积神经网络 神经网络发展之初,是一种全连接网络。在计算机视觉领域,全连接网络是不太适合做图像识别任务的,主要因为全连接网络的参数量大,容易丢失像素的位置信息,并且受网络层数的限制。随着神经网络的发展产生了很多不同结构的网络,拥有不同的连接规则。卷积神经网络通过以下三个方法解决了全连接网络的限制:(1)局部链接:每个神经元只与小部分神经元相连。(2)权值共享:一组连接可以共享一组权值。(3)下采样:通过池化的方法减少样本数。 下面我们就来详细介绍,卷积神经网络是如何在图像识别领域达到更好的学习效果的。4.2.1 卷积层 当图像的深度为1时,一个5*5的图像,经3*3的卷积核进行卷积操作后,得到一个3*3的特征图。图4.4卷积层输出值的计算 在图像中,用xi,j表示第i行第j列的元素;在卷积核中,用wm,n表示第m行第n列权重,用wbai,j=f(m=0以a0,0a0,0=f=relu=relu1+0+1+0+1+0+0+0+1+0=4在进行卷积运算时,我们还需要注意步幅S(Stride,卷积核滑动的幅度)和填充P(Padding,在原图像周围补零的圈数)的大小。图像大小,卷积核大小,步幅大小,填充大小,存在如下关系:W2=(W1-F+2P)/S+1H2=( 其中W1是图像的宽度,H1是图像的高度,W2W2=(W1-F+2P)/S+1=(5-3+2*0)/1+1=3 当输入图像的深度大于1时,假设图像的深度为D(D>1),这时卷积核的深度也为D。这时,卷积计算公式为:ai,j=f(d=0 其中,D表示图像和卷积核的深度,F表示的是卷积核的大小,用xd,i,j表示图像中第d层第i行第j列的元素,用wd,m,n表示卷积核中第d层第m行第n列权重,wb 在卷积神经网络的卷积计算过程中,每层神经元只与上一层部分神经元相连,体现了局部连接的思想;卷积核的权值对于上一层所有神经元都是相同的,体现了权值共享的思想,参数量大大减少。4.2.2激活函数 激活函数,通过保留激活的神经元并映射出来的方法,保持数据原有的特征的同时去除了冗余。可以把神经网络看作一种线性的表达,通过加入激活函数,可以引入非线性的部分增强了网络的表达能力。 (1)Sigmoid激活函数 Sigmoid函数是一个非线性函数,它的值域是(0,1)。Sigmoid函数能够很好的表达“激活”的意思,未激活就是0,完全饱和的激活则是1。Sigmoid函数的定义如下:sigmoid图4.5Sigmoid函数图像 (2)Relu激活函数 Relu函数的定义是:f Relu函数图像如下图所示:图4.6Relu函数图像 Relu激活函数是现在最常用的一种激活函数,它的主要优点如下:计算速度快 Relu函数其实就是一个计算最大值的操作,算法简单且计算量小。缓解梯度消失的问题 梯度的计算公式为∇=σ'δx,(σ'是激活函数的导数),其中在进行反向传 由于Sigmoid激活函数σ'的最大值是1/4(如图4.7),所以,每经过一层神经元乘以σ Relu函数的中表示被激活的神经元的导数是1,因此在反向传播中不会导致梯度值变小。因此,在神经网络中使用Relu激活函数可训练更深层的网络。图4.7Sigmoid函数倒数图像4.2.3 池化层 池化的作用是下采样,去掉特征图中不重要的样本信息,可以减少参数的个数。最大池化(MaxPooling)是最常用的一种池化方法,就是取n*n的样本的最大值作为采样后的样本值。除了最大池化之外,常用的还有均值池化(MeanPooling),就是取n*n个样本的平均值作为样本值。 对于深度为D(D>1)的特征图,各层独立地进行池化操作,所以池化过的特征图的深度仍然为D。图4.8池化层输出值计算4.2.4全连接层 全连接层的目的是为了高度提纯特征,利于最后的分类或者回归。全连接层实际上也是一种卷积层,在全连接层中卷积核与原数据的尺寸相同。在卷积神经网络的后期,经过全连接层的操作,可以把二维特征图转化为一维特征向量。 全连接层的特征向量的计算公式为y=wTx(x为列向量,w的长度与x相同)。假设一个全连接层的输入是50*11*11,全连接层的参数num_output的值为500,即4.2.5Dropout层 通过增加网络层数的方法,可以提高网络的分类能力和学习能力。然而,网络层数越多就越容易产生过拟合的问题。为此,Dropout层被设计出来,有效地防止网络过拟合。 在训练时,Dropout层会随机地舍弃一些节点(输出置0),也不更新对应的权重,其余节点正常地参与训练。通常设定一个Dropout概率(p),使得每个输出节点以概率p置0(节点不工作,权重不更新)。 在训练中加入Dropout层后,由于随机地舍弃一些节点,让网络去学习一些更普遍的共性,而不是学习某些训练样本的特性。4.3 本文使用的卷积神经网络识别模型本文所使用的卷积神经网络模型,结构如下:图4.9本文采用的卷积神经网络结构模型 卷神经网络模型包含了2个卷积层和2个全连接层,在每个卷积层中采用的是Relu激活函数,在网络中加入了Dropout层增加网络的非线性的特性防止产生过拟合的现象。 输入尺寸为36*36(维度为(3,36,36))的图像,经过第一层卷积层后的维度为(96,17,17),经过第二层卷积层后的维度为(128,8,8),经过第一和第二层全连接层后的维度为(256),经过第三个全连接层的维度为(19),经过最后一个SoftmaxLoss层分类结果的维度为(1)。 通过一个实例,可以看清楚在卷积神经网络中,图片特征的变化过程:图4.10卷积神经网络识别示例 本文提出了富有创新性的交通信号灯识别的流程,具有适应性强,运行效率高,识别率高的优点。图4.11描述了交通信号灯识别完整的流程图。图4.11交通信号灯识别流程图4.4 本章小结 本章首先介绍了对于交通信号灯检测结果的预处理过程,通过判定交通信号灯的类型,在HSV空间中的颜色分割,图像上的局部最小值切割,得到单个独立的交通信号灯图案。其次,介绍了卷积神经网络的概念,以卷积层、激活函数、池化层、全连接层、Dropout层为代表介绍了卷积神经网络常用的层和常用函数。最后,提出本文所采用的卷积神经网络模型,并用图示模拟卷积过程,介绍交通信号灯识别的整体流程。
第五章 交通信号灯检测与识别结果分析 本文第三章详细介绍了基于FasterR-CNN的交通信号灯检测模型,第四章详细介绍了检测结果预处理以及基于CNN的交通信号灯识别模型。本章在Calmcar交通数据集的基础上,训练模型并分析模型的检测和识别效果。5.1 CalmCar交通标识数据集 CalmCarVehicleVision(苏州天瞳威视电子科技有限公司)致力于开发基于深度学习的人工智能视觉系统,通过实时理解驾驶场景,实时分析驾驶行为,来实现辅助驾驶的功能。为了使产品适应中国的道路状况,公司每天安排数据采集人员在中国富有代表性的省市(包括北京、天津、苏州、上海等地)进行交通道路信息的视频采集。同时,对于采集到的数据安排职员进行人工标注,标注出的目标包括交通信号灯、交通警示标识牌、交通禁止标识牌、交通指路标识牌、交通指示标识牌、交通旅游标识牌、交通辅助标识牌以及其他类标识牌。最后,用标注所得的样本数据进行公司各种检测和识别模型的训练。本文中检测和识别的模型就是在CalmCar交通标识数据集上进行训练和测试的。 在CalmCar交通标识数据集中,每张1280*1080的PNG图像对应着一个XML文件(用于存储图像中各种交通标识的位置信息)。到目前为止,CalmCar交通标识数据集分别包含了32592张图像和32592个标注文件,并且数据量随着采集和标注工作的进行,正在不断地扩大。图5.1CalmCar交通标识数据集的样本图像和标注示例5.1.1 CalmCar交通信号灯检测数据集 为了训练出能够较好的适应中国道路交通状况的交通标识检测模型,CalmCar公司建立了CalmCar交通标识数据集,标注出了每张采集到的道路图像中的各种交通标识的位置。 本文主要研究交通信号灯的检测和识别,需要使用到CalmCar交通标识数据集中的所有的采集图像和“交通信号灯”这一类标注信息。5.1.2CalmCar交通信号灯识别数据集 CalmCar交通信号灯识别数据集是在检测数据集和检测模型的基础上,慢慢建立起来的。将训练好的交通信号灯检测模型应用到路况视频文件上,检测路况视频文件每一帧上的交通信号灯,保存检测结果为PNG图片格式,然后对这些经检测结果进行预处理操作,将检测结果切割成单个的信号灯图案,再进行分工分类,将信号图案按颜色和形状分类,生成CalmCar交通信号灯识别数据集。 这里,之所以不直接用标注的位置信息的交通信号灯进行训练,是因为整个交通信号灯的检测和识别是一个是顺序的过程,在实时的检测和识别中,是直接将检测到的结果,传递到预处理和识别模型中的。而标注的交通信号灯相当于是人眼检测的结果,与模型检测的结果相比,虽然更标准更精确,但是却不符合检测模型的特性。 根据信号灯图案的颜色和形状,将信号灯图案分为19类。由于黄色交通信号灯才出现的时间很短,样本量相比于红色与绿色的信号灯图案偏少。所以在分类中,将相同形状的黄色信号灯图案与红色信号灯图案分成一类进行训练,同时,由于黄色信号灯图案与红色信号灯图案的语义也是一致的(出现黄灯时也判定为红灯,保证了安全性),所以也将它们识别成一类。所以,根据上述的分类规则,分成的19类信号灯图案包括:绿色返回箭头图案(g_back)、绿色进度条形图案(g_bar)、绿色圆形图案(g_circle)、绿色向下箭头图案(g_down)、绿色向左箭头图案(g_left)、绿色行人图案(g_man)、绿色数字(g_num)、绿色向右箭头(g_right)、绿色向上箭头图案(g_up)和红色返回箭头图案(r_back)、红色进度条形图案(r_bar)、红色圆形图案(r_circle)、红色向下箭头图案(r_down)、红色向左箭头图案(r_left)、红色行人图案(r_man)、红色数字(r_num)、红色向右箭头(r_right)、红色向上箭头图案(r_up)以及未知图案(unknown)。图5.2交通信号灯图案分类5.2 运行环境 本次实验的运行环境和镜头参数情况如下表:表5.1运行环境和镜头参数设备类型CPUInteli7-3.60GHz*8GPUGeforceGTX1070RAM16GiBDISKWESTDATA2TSENSOROV10640RESOLUTION1280*1080LENSE6.14mm5.3 实验结果分析 在完成了模型的训练之后,对交通信号灯的检测模型和识别模型分别进行了测试和分析。5.3.1 交通信号灯检测模型结果分析在实际道路视频中进行交通信号灯检测,结果如下。图5.3视频检测结果示例图 通过分别在CalmCar交通标识数据集上训练PVA-Net、ZF-Net和VGG-Net的交通信号灯检测模型,对比3个模型的检测平均正确率。表5.2测试结果对比模型mAP(%)ZF-Net72.96VGG1676.54PVA-Net88.25 从上表5.2可以看出,PVA-Net的检测效率远远高于其他两种检测模型。随着模型的不断的迭代和完善,目前PVA-Net模型的交通信号灯检测过程已经非常稳定。5.3.2 交通信号灯状态识别模型结果分析在实际道路视频中进行交通信号灯检测,结果如下。图5.4视频识别结果示例图 下表对比了每一类交通信号图案识别的准确率。从表中可以看出,在18类交通信号图案的识别结果中有11类的识别正确率在95%以上,有13类的识别正确率在90%以上,并且所有类别的识别正确率都在85%以上。 由此可见,通过基于局部最小值的预处理之后,用简单的卷积神经网络模型,就可以对交通信号灯图案进行高效准确的识别。图5.5交通信号灯识别正确率5.4 本章小结 本章首先介绍了本文所采用的CalmCar交通标识数据集。CalmCar交通标识数据集采集于中国代表性省市道路并包含人工标注信息的数据集。由于数据采集于中国典型城市,所以数据信息符合中国的道路交通状况。本文中检测和识别的模型就是在CalmCar交通标识数据集上进行训练和测试的。其次,本章介绍了程序运行的环境和摄像头参数。最后,测试本文提出的交通信号灯检测和识别的方法,通过实验结果分析实验方法的可行性。
第六章总结与展望6.1 本文总结 本文研究了交通信号灯的检测和识别方法,从分析现有的检测和识别技术入手,比较各种检测和识别技术的优劣。经过阅读广泛的相关资料和分析现有的技术之后,提出了本文所采用的基于深度学习的交通信号灯的检测和识别方法。首先用基于FasterR-CNN的模型进行交通信号灯的检测,其次对检测结果进行基于局部最小值的图像切割,最后提出用于状态识别的卷积神经网络模型。本文采用的数据集是CalmCar交通标识数据集,通过在此数据集上训练和测试数据,证明了本文提出的交通信号灯检测和识别方法进的可行性。 本文主要工作及创新点如下: (1)基于FasterR-CNN的交通信号检测技术的研究。通过阐述FasterR-CNN目标检测技术的演进,介绍了FasterR-CNN在目标检测算法中的优势。本文最终采用基于FasterR-CNN的网络PVA-Net对复杂环境中的交通信号灯进行检测。 (2)提出了基于局部最小值的信号灯切割方法。通过对检测到的交通信号灯进行切割,得到单独的信号灯图案。切割所得的信号灯图案,特征明显,易于分类降低了识别的难度。通过实验结果的分析,经过预处理后的信号灯识别,分类更加灵活,适用于识别各式各样的交通信号灯。 (3)基于CNN的交通信号识别技术的研究。从采用卷积神经网络的识别方法,根据颜色和形状对信号灯图案进行分类。通过对实验结果的分析发现,相比于传统的识别方法,基于卷积神经网络的识别方法在提取特征时更加灵活简单,而且可以根据实际情况的需求增加交通信号灯图案的类型,或增加新环境中的样本,适应性强,有着明显优势。 (4)提出了基于深度学习的交通信号灯的检测和识别方法,基于局部最小值的信号灯切割方法,这是本文在实验方法上的创新。本文的实验方法在检测和识别上都采用了深度学习的方法,采用基于FasterR-CNN的方法进行目标检测,用基于CNN的方法进行识别,并且在识别之前采用基于局部最小值的信号灯分割的方法进行切割,所得出的效果令人满意,可以充分验证本文所提出的上述方法的正确性。6.2 后续工作展望 然而,本文提出的方法也存在以下不足: (1)交通信号灯检测的结果易受光照的影响。当信号灯迎光时,由于光线强烈,导致原本的色彩不明显而难以识别。 (2)目前,能够检测的范围较近。距离远,会导致交通信号灯较小,特征不明显,而无法被检测到。 针对以上提出的问题,我会在今后的工作中加以改进,直到能够合格地应用于辅助驾驶系统中。我相信随着时间的推移和技术的发展,一定会出现很多高效的检测或者识别的思想,不断吸收新的更好的方法,提出新的思路,在原有基础上做改进。
参考文献[1] CaiZ,LiY,GuM.Real-timerecognitionsystemoftrafficlightinurbanenvironment[C]//ComputationalIntelligenceforSecurityandDefenceApplications(CISDA),2012IEEESymposiumon.IEEE,2012:1-6.[2]HaltakovV,MayrJ,UngerC,etal.Semanticsegmentationbasedtrafficlightdetectionatdayandatnight[C]//GermanConferenceonPatternRecognition.Springer,Cham,2015:446-457.[3]GomezAE,AlencarFAR,PradoPV,etal.Trafficlightsdetectionandstateestimationusinghiddenmarkovmodels[C]//IntelligentVehiclesSymposiumProceedings,2014IEEE.IEEE,2014:750-755.[4]JohnV,YonedaK,QiB,etal.Trafficlightrecognitioninvaryingilluminationusingdeeplearningandsaliencymap[C]//IntelligentTransportationSystems(ITSC),2014IEEE17thInternationalConferenceon.IEEE,2014:2286-2291.[5]FrankeU,PfeifferD,RabeC,etal.Makingberthasee[C]//ComputerVisionWorkshops(ICCVW),2013IEEEInternationalConferenceon.IEEE,2013:214-221.[6]TrehardG,PollardE,BradaiB,etal.Trackingboth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压紧气缸采购合同范本
- 县劳务输出合同范本
- 化肥赊欠合同范例
- 办公电脑订购合同范本
- 出国出境劳务合同范本
- 北京土方备案合同范本
- 厂房水电安装合同范本
- 副食进货合同范本
- 合同范本模板收费
- 南园新村租房合同范本
- 2025年黑龙江生态工程职业学院单招职业倾向性测试题库及答案一套
- 2025年哈尔滨幼儿师范高等专科学校单招职业技能测试题库完整
- 做最勇敢的自己
- 小学数学中巧用信息技术创造情境教学
- 安徽省历年中考语文现代文阅读之非连续性文本阅读6篇(截至2024年)
- GB/T 23694-2024风险管理术语
- 公司员工生日会活动复盘
- 2025年北京青年政治学院高职单招高职单招英语2016-2024年参考题库含答案解析
- 永辉超市存货管理问题及优化建议9700字
- 大模型落地应用实践方案
- 售后服务组织结构及岗位职责
评论
0/150
提交评论