【《基于深度学习的前车目标识别算法分析案例》6900字】_第1页
【《基于深度学习的前车目标识别算法分析案例》6900字】_第2页
【《基于深度学习的前车目标识别算法分析案例》6900字】_第3页
【《基于深度学习的前车目标识别算法分析案例》6900字】_第4页
【《基于深度学习的前车目标识别算法分析案例》6900字】_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于深度学习的前车目标识别算法分析案例目录TOC\o"1-3"\h\u5746基于深度学习的前车目标识别算法分析案例 1207441.1基于深度学习的目标检测算法 1108251.2基于深度学习网络框架 6163601.3基于YOLO目标检测算法 796181.1.1YOLOv3目标检测算法原理 984311.1.2YOLOv3目标检测算法网络结构搭建 1225541.5目标识别算法的模型搭建与测试分析 181.1基于深度学习的目标检测算法机器学习最早在1950年就有所应用,随着智能化的发展,机器学习已不能满足需要,随后深度学习的提出在机器学习的基础上,能够在大规模数据中完成更加精确的检测,这使得各国纷纷提出对深度学习算法的研究,神经网络、机器学习、人工智能[34-36]等都与深度学习相关联。传统的目标检测算法一般分为3个步骤:首先在图像中选择一部分物体作为候选框,其次提取选择的图像内特征,比如Harr特征等,再利用Adaboost和支持向量机模型进行识别[37-39]。深度学习最早是在20世纪40年代被康奈尔大学的心理学教授罗森布拉特应用在图像识别中,后续由单层感知器发展成为多层感知器。2012年在多伦多大学的(ImageNetLargeScaleVisualRecognitionChanllenge)[40]竞赛中一举夺冠,运行速度更快。深度学习目前可以应用到许多物体的识别检测,以融合图像、物体检测等为主。该检测算法可以分为两类:一类是R-CNN[41]、FastRCNN[42]、FasterRCNN[43]等候选区域检测,另一类是回归预测SSD[44]、YOLOV1[45]、YOLOV2[46]、YOLOV3[47]。随着人工智能的发展,基于深度学习下的目标检测取得了很好的效果。分类如图1.1所示:目标检测算法目标检测算法SSD、YOLOv1、YOLOv2、YOLOv3(检测速度快)FastRCNN、FasterRCNN检测精度高图1.1目标检测分类图Fig.1.1TargetDetectionClassificationMap(1)CNN卷积神经网络卷积神经网络具有稀疏特性,减少数据训练的依赖性以及数据冗余,利用局部连接可以更有效减少低参规模。它的特殊结构决定了模型运算的效率和预测的精确度,运算复杂度比较低,可以直接将图像编码作为输入进行特征提取。该网络模块通过四个基本模块运作,运作过程即将采集到的图像进行卷积处理进行特征学习,随后通过池化、激活函数在特定区域选定特殊输出值并进行归一化处理,这样可以提升训练稳定性。卷积神经网络模型如下:LeNET网络LeNET网络是出现的最早的卷积神经网络,基于这个网络的准确识别的精确性,为后续研究提供了基础。这个网络的输入层图像比原图大,经过C1、C3、C5个卷积层经过卷积运算得到特征图,后经过池化层和全连接层后输出,输出层再进行反向传播,计算相应的损失函数。LeNET网络结构如图1.2所示:图1.2LeNet网络结构Fig.1.2LenetnetworkarchitectureAlexNet网络AlexNet首次被提出是在比赛中,比赛的成功表明了卷积神经网络在模型复杂的情况下也是有效的,促使其发展,该网络有5个卷积层和3个全连接层。AlexNet的网络结构如图1.3所示:图1.3AlexNet网络结构Fig.1.3AlexNetnetworkarchitectureAlexNet网络采用ReLU激活函数,训练速度快训练效果好且采用了数据增强和Dropout防止过拟合,AlexNet的训练是在GPU下进行的,利用交叉验证调整计算量3)VGG网络VGG网络采用的框架和LeNet和AlexNet有些相似,具有5个卷积层与2个全连接层,进行图像提取与分类,VGG的网络结构图如下:图1.4VGG网络结构Fig.1.4VGGnetworkarchitecture4)GoogLeNet网络GoogLeNet网络是在比赛中提出的模型,这个模型相比于前面可以检测更深,效果更好。VGG网络虽然有大量的参数但是的性能比较好,这是因为网络的深度和通道数的增加导致参数的增加,提高了运算量。GoogLeNet网络将Inception与网中网结构相结合,优化性能,检测效果更加精确。GoogLeNet网络结构中Inception结构如图1.5所示:过滤器级联过滤器级联1×1卷积3×3卷积5×5卷积1×1卷积1×1卷积1×1卷积3×3最大化池化前一层网络图1.5GoogLeNet网络结构中Inception结构Fig.1.5TheInceptionStructureintheGoogLeNetnetworkstructure5)深度残差网络ResNet深度网络残差解决了由于网络深度增加导致遗漏训练的问题,通过网络层经H(包括conv、BN、ReLU、Pooling等)变换得到,传播梯度效果好。残差网络勾线模块结构图如图1.6所示:权值参数层权值参数层权值参数层权值参数层XX恒等映射ReLU图1.6ResNet模块Fig.1.6ResNetmodule深度残差网络公式为:(1.1)式中:x—模块的输入y—模块的输出表示带训练的残差映射函数,相同的堆叠层和残差模块,在比较相同层和残差层是比较容易。(2)R-CNN算法R-CNN是通过对图像进行处理并利用SelectiveSearch算法进行候选区域提取,该算法提取的boundingbox大约在2000个左右,在输入卷积神经网络之前进行归一化处理提取特征,利用支持向量机来识别。整个过程如图所示:输入图像输入图像提取候选区域边框回归器和支持向量机卷积网络卷积网络卷积网络缩放到固定尺寸支持向量机分类图1.7R-CNN网络结构图Fig.1.7R-cnnnetworkstructurediagram(3)FastR-CNN算法相比于R-CNN算法提取特征时的重复计算量比较多,RossGirshick等对R-CNN进行了改进,并且提出了FastR-CNN算法。这个算法同样具有卷积神经网络的四个操作步骤,这个算法在图像识别过程中检测速度比较慢,实时性不好[48]。FastR-CNN网络结构图如下:输入输入ROI投影特征图池化层全连接层卷积图1.8FastRCNN网络结构图Fig.1.8FASTRCNNnetworkstructurediagram(4)SSD网络SSD(SingleShotMultiBoxDetector)网络在图片上进行遍历搜索,产生一系列不同的尺度和长宽比,运算速度快。但是由于前期的训练比较繁琐,导致模型的准确率低。SSD算法不需要产生候选区域,直接可以通过神经网络输出目标的位置和类别,为了达到多尺度预测效果,SSD网络结构在最初层采用了VGGNet进行特征提取,可以在不同特征图上对物体进行相应预测。SSD算法首先在不同候选区域内预测目标的概率,通过对置信度打分得到物体目标区域,输出检测结果。它的检测速度相对于FastR-CNN快,但是识别较小物体的准确率比较低,容易出现漏检情况。SSD的网络结构图如下:图1.9SSD网络结构图Fig.1.9SSDnetworkstructurediagram1.2基于深度学习网络框架实现深度学习需要运用深度学习框架这个平台,目前使用比较广泛的框架包括Caffe、TensorFlow等。等,其实深度学习框架就是库,当前的深度学习框架可以直接进行高层配置,几种框架各有各的优点,应用范围在当下也很广泛。TensorFlow该框架是由谷歌公司开发并且可以开源使用,它的用途很大,功能很强,具有可视化功能,不仅可以在强化学习和其他算法中使用,也可以在深度学习中应用。CaffeCaffe是最早出现的深度学习工具,它是可以方便的进行卷积神经网络模型的训练和测试,Caffe的使用性能比较高可以基于C或者C++,支持命令行,可以网络层通过C++定义,官方可以提供了很多实例相比于其他的框架它的代码好理解,上手也比较容易。Caffe是一个典型的端到端的机器学习系统。KerasKeras是由谷歌软件工程师开发的深度学习库,这个是基于TensorFlow和Theano的深度学习库,它的资源非常多,更新的速度也很快,后期会成为主流方向。1.3基于YOLO目标检测算法YOLO(YouOnlyLookOnce)是onestage的一种目标检测算法,这种目标检测算法只需要一步就可以确定图像特征,类似于人眼的视觉,看到物体就可以直接确定出图像的位置。YOLO算法的核心思想就是将检测到的原始图片经过卷积操作得到特征图,由于它是将原始图片分割成小方块,利用特征图像上的元素预测目标,就像人眼看到的东西一样,不仅运算速度快,而且实时性能比较好[49]。检测流程大体分为以下几个步骤:1)先将采集到的整张图片分割成S*S个方格(gridcell)如图所示:图1.10分割方格图Fig.1.10Splitgrid先把整个图片分割成S*S块方格的目的是用来检测识别物体,物体中心位于方各处,则该方格即为预测方格。2)假如被测物体的中心恰好落在方格子中,负责检测物体对应的方格就开始工作,对目标进行特征提取,每一个方格会预测出b个目标边界框(框选区域一般为矩形)和每一块要检测对象的概率、偏移量是多少。3)b个边界框识别出b个矩形区域,每个区域对应一个信息,以及这个被检测到的物体对应物体信息的概率。4)以格子为中心,每一个边框5位参数(x,y,w,h)需要预测,(x,y)为中心坐标;w是图像的宽度,h为图像的高度;置信分数confidence。b=2就是每个格子预测2个边界框,即十位。还要输出每个格子代表每种物体的概率c。由此可知每个边界框输出置信度以及概率为S*S*(5*b+c)的一个张量(tensor)。5)根据上一步模型建立了S×S×2个边框,计算出confidence,最后采用非极大值抑制消除那些置信度较低的边框。YOLO算法原理如下图所示:S×S输入网格S×S输入网格类概率地图边界框和置信度最终预测图1.11YOLO算法原理图Fig.1.11YoloalgorithmschematicsYOLO特征提取的优势:1)YOLO提取流程简单且检测速度快。2)YOLO在训练过程及预判过程中是利用全图信息进行预判,检测效率高。3)YOLO相比于其他检测算法,不需要提取候选区域,直接对所有区域进行检测,这就有效缩短算法运行时间,提升时间效率,所以在检测小物体的时候不够准确,会影响精确度。在训练模型时,对于S*S*(5*b+c)大小的张量,S*S是方格子的个数,b是预测Boundingbox的个数,其中如果有目标物体(object)落在一个边界框中,置信值取1,否则取0(即对应的框中不包含该目标)。预测的5个参数分别为x、y、h、w和置信度,(x,y)为边界框(boundingbox)中心点坐标,取值范围为(0,1)。置信度能够反映边界框检测是否准确以及预测边界框中是否具有物体。YOLO模型预测时不仅预测boundingbox,也会反映置信值即:(1.2)c为目标类别数量,用置信值反映IOU区域即:(1.3)在检测时,检测精度如下式:(1.4)即可得到每个类别的概率以及边界框的精确度。如图1.11一张图片均分成S*S个方格,每个格子只预测出两个框,且仅预测一次类别。系统将检测作为一个回归问题进行建模,置信分数能够反映boundingbox的概率。2boxespercell2boxespercell20classesscoresperbox图1.12YOLO算法输出流程Fig.1.12Yoloalgorithmoutputflow1.1.1YOLOv3目标检测算法原理YOLO的网络结构参考GoogLeNet模型是一种全新的深度学习模型,该模型采用了24个卷积层,最后2个为全连接层,使用1×1个卷积核进行降维处理。YOLO模型的网络结构图如图所示:图1.13YOLO网络结构Fig.1.13YoloNetworkArchitecture目标检测的评价指标如下:交集并集比—交并比检测物体需要通过交并比来评定,交并比数值越大说明检测越精确。交并比即为交集与并集的比值。即:(1.5)BBA图1.14IoU定义图Fig.1.14IOUdefinitiondiagram(2)mAP第二个评价指标是平均精确度的均值,它是将多个精确度求平均值的结果,利用P-R曲线反映每个类别。计算公式为:(1.6)式中:Q—目标检测的类别集合AveP(q)—计算类别下物体的平均准确率mAP的取值范围在之间(3)感兴趣区域感兴趣区域也就是我们常说的ROI,提取ROI的目的是便于更加精准获取物体的类别与位置信息,为后续工作减少数据处理量。(4)非极大值抑制该指标是反映最佳物体检测的。该过程是将预测框排序选出分数最高的预测框,将其他重合面积大的去掉。YOLO的损失函数是均方差损失函数即:(预测坐标-实际坐标)2+(预测概率-实际概率)2,在实际检测中,大部分格子中没有物体,损失函数公式如下:(1.7)损失函数由4部分组成:1)预测中心坐标(1.8)2)预测边界框的宽高(1.9)3)预测类别(1.10)4)预测置信度(1.11)YOLO算法进行的目标检测,它是根据IOU找到两个物体中最大的物体训练,预测在这些物体中,哪个边界框和实际标注的物体最贴近,就选择最大的物体进行检测。所以YOLO算法进行目标检测时对大物体检测效果很好,通过对整张图的输入进行检测,然后通过边界框框选后输送出去,时间速率相比其他目标检测要快很多,从而对行驶的车辆进行检测。随着技术和检测需求的发展,YOLOv2已经不能满足人们对于小物体检测的需求,逐步提升精确度。1.1.2YOLOv3目标检测算法网络结构搭建基于深度学习目标检测算法的日益发展,传统的检测方法已经不能满足现在检测物体对精确度的要求,YOLO本身是one-stage单阶段目标检测,YOLOv2就已经采用Darknet-19特征提取器,进行多尺度融合取得了很好的成效,对于小物体的检测也很精确,YOLOv3在保留了YOLOv2的特性上并采用了全新Darknet-53特征提取器。YOLOv3是在YOLOv1、YOLOv2的缺失基础上改进的较为精确的预测目标物体,不仅提高了检测精度,也提升了检测速度,因此本文利用YOLOv3目标检测算法进行目标预测,检测对比如图所示:图1.15YOLOv3检测对比Fig.1.15Yolov3,testandcontrast利用深度学习来获取目标特征,在分类器和回归器确定框选出每个目标的位置,更能有效地确定它在目标图像中的位置。YOLOv3的网络架构如图1.16所示:Input416*416*3Input416*416*3Conv3*3/1Conv3*3/2Sum208*208*64208*208*64Conv3*3/2104*104*128SumSum208*208*64Conv1*1/1Conv3*3/1208*208*32Conv1*1/1Conv3*3/1104*104*128104*104*64104*104*128Conv3*3/1Conv1*1/1104*104*64104*104*128Conv3*3/252*52*256Conv3*3/1Conv1*1/1Sum52*52*12852*52*256图1.16YOLOv3网络架构Fig.1.16Yolov3networkarchitectureYOLOv3目标检测的网络架构可以看出它的输入为原始图像的416×416,经过多个卷积层后输出一次,再重复进行卷积操作将图片尺寸缩小并且降维到52×52,这样的目的是提取特征更精确,也就是说没经过一次卷积,活的的特征图尺寸就会缩小一些,最后课以实现多尺度预测。YOLOv3的网络架构图中最后会输出三个尺度,如下图1.17所示,三个尺度分别用于检测不同大小的目标物体。Conv3*3/1Conv3*3/1Conv1*1/1Output13*13*255Conv1*1/1Conv1*1/113*13*51213*13*1024Upsampleconcat26*26*76826*26*256Conv1*1/1……Conv1*1/1Output26*26*25526*26*256Conv1*1/1Upsampleconcat26*26*12852*52*128Conv1*1/1……Conv1*1/1Output52*52*255图1.17网络架构--输出Fig.1.17NetworkArchitecture--output由上图可以看出YOLOv3网络结构可以输出三个尺度,分别是13×13、26×26、52×52,,分别用于检测大目标、中型目标、小型目标,多尺度预测可以减少图像中有效图像的漏检情况,提高检测精度和效率,在无人驾驶领域中,可以准确无误的检测到前方车辆。根据上述网络中的参数可以了解YOLOv3选用的DarkNet53网络和ResNet跳接网络,在实时检测中的性能和速度都优于YOLOv2,YOLOv3工作流程图和DarkNet53网络结构如下:图1.18YOLOv3工作流程图Fig.1.18YOLOV3workflowdiagram类型过滤器尺寸输出卷积类型过滤器尺寸输出卷积卷积3×3643×3/2256×256128×128卷积321×1卷积643×3残差128×1281×卷积641×1卷积1283×3残差64×64卷积1283×3/264×64卷积2563×3/232×32卷积1281×1卷积2563×3残差32×322×8×卷积2561×1卷积5123×3残差16×16卷积5123×3/216×168×卷积5121×1卷积10243×3残差8×8卷积10243×3/28×84×Fig.1.19DarknetnetworkstructureYOLOv3含有106个层其中还包括3×3和1×1这两种类型的卷积层、ResNet跳接网络和一些采样层,输入的图像经过YOLOv3调整到416×416,经过步长和为32的卷积层可以得出输出的尺度为13×13,每个boundingbox负责对应物体检测,由于车辆行驶过程中,前方物体的大小和形状各不相同,YOLOv3能够以网格为中心,形成多个大小和高宽比的边界框,通过分类器和回归器去判定所框选住的图像是归属于哪一类别。YOLOv3可以分类多个标签,它的执行速度非常快,主要在四个方面进行了改进:1)分类预测利用二元交叉熵损失,在检测复杂情况下,YOLOv3依然可以进行检测2)边界框预测它是利用聚类的方法得到边界框(anchorbox)。3)跨尺寸预测该算法是一种多尺度预测算法,输出三个尺度提取特征并将两个图层的特征图和最开始图层获得的特征图结合起来得到多尺度预测的特征图。4)采用新的特征提取器YOLOv3是利用DarkNet-53作为网络特征提取器,通过卷积获取特征图,上述我们说过它的一个尺度输出为13×13,所以输入的图像被划分为13×13个网格,如果在检测过程中某个物体的中心落到这个网格中,那么就有这个网格负责检测物体的类别,YOLOv3预测过程中有三个anchorbox负责预测,但是并不是所有的矩形框都都去预测物体,只有IoU值最大的才能用来预测物体,这样有助于提高检测速度和准确率。YOLOv3采用的是0DimensionCluster预测矩形框的,如下图所示:图1.20维度聚类器Fig.1.20Dimensionalclustering预测值为下式:(1.12)式中:tx、ty、tw、th—边界框回归预测坐标值cx、cy—中心点所在表格距离图像左上角的边距by、bx、bw、bh—维度聚类后的中心坐标值—logistic函数pw、ph——预测框的宽、高1.5目标识别算法的模型搭建与测试分析本文选取KITTI数据集作为YOLOv3的训练集,基于Ubuntu18.04Ti型操作系统进行YOLOv3算法的模型训练,并利用Opencv计算机视觉库在VisualStudio开发环境中进行了YOLOv3算法测试,实验结果表明,车辆识别准确可靠。训练所用服务器配置如下:表1.1服务器配置Tab.1.1Serverconfiguration系统处理器主频显卡芯片内存系统处理器主频显卡芯片内存Ubuntu18.04Ti酷睿i7-4800MQ2.7GHzAMDFireProM51008GB由于本文所用的目标检测算法需要的图片数据是JPEG形式,在准备数据集的时候需要创建以下几个文件分别为图片数据JPEGImages、标签Lables、ImageSets。在获取数据集时由于我们只需要做2D的对象检测,下载对应的标签和数据获得相应的训练集和数据集,这些图片中共有8各类别分别包括Car、Van(面包车)、Tram(电车)、Person、Misc(杂项)、Pedestrain(行人)、Cyclist(骑行人)、Dontcare(不关心的物体)。本文利用YOLOv3重点对前方行驶的车辆进行识别检测,排除无效识别信息,为后续融合检测提取特征做准备。将KITTI数据集的标签格式转换成统一格式,将原来的八个类别中所有车的类别统一合并成Car,按照这个修改后可以得到现在的车辆标签格式如下所示:#修改前#修改前Car0.000-1.78819.63178.12926.85251.561.511.601.245.851.6416.50-1.44Car0.0011.92661.74175.36707.21204.151.641.451.484.501.8042.852.02Tram0.900-2.091011.39182.461241.00374.001.571.651.354.431.655.20-1.42

Car0.0001.95354.43185.52549.52294.491.431.701.95-2.391.6611.801.76Pedestrian0.0021.41859.54159.80879.68221.401.960.721.098.331.5521.511.75Don’tCare-1-1-10737.69166.56790.86197.98-1-1-1-1000-1000-1000-10

Don’tCare-1-1-10235.60185.44196.06202.15-1-1-1-1000-1000-1000-10Don’tCare-1-1-10776.02162.57862.73185.40-1-1-1-1000-1000-1000-10Don’tCare-1-1-10551.63165.65931.49182.36-1-1-1-1000-1000-1000-10Car0.600-1.091011.39182.461211.00374.001.571.651.364.431.655.20-1.42Car0.0001.95358.43185.52549.52294.491.431.701.95-2.391.6611.801.76Car0.000-1.79819.63168.12926.85252.561.511.601.245.851.6416.50-1.46Car0.002-1.69800.54178.06878.75230.561.451.744.106.871.6222.05-1.35#修改后图1.22调整标签文件图Fig.1.22Adjustthelabelfilediagram标签文件修改后可以看到目标和目标参数以及像素坐标的位置,修改好类别之后将原来KITTI标注的格式转换为xml格式,创建一个文件夹,在Annotations文件夹中存放标签文件,上述提到的Lables文件夹为Darknet框架的格式也修改成xml格式,修改后的标签如图1.23所示:<annotation><annotation><folder>KITTI</folder><filename>0003car.png</filename><source><database>TheKITTIDatabase</database><annotation>KITTI</annotation></source><size><width>600</width><height>367</height><depth>3</depth></size><object><name>car</name><pose>Unspecified</pose><bndbox><xmin>45</xmin><ymin>11</ymin><xmax>600</xmax><ymax>367</ymax></bndbox><difficult>0</difficult></object>图1.23xml标签格式图Fig.1.23XmlTagFormatDiagramxml标签格式转化完成后,将数据分成训练集和验证集可用于训练和验证YOLOv3模型。首先训练之前需要进行相应的准备步骤,创建一个文件生成darkne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论