《汽车智能传感器技术与应用项目二项目实施4:基于视觉传感器实现车道线检测(课件)》由会员分享,可在线阅读,更多相关《汽车智能传感器技术与应用项目二项目实施4:基于视觉传感器实现车道线检测(课件)(31页珍藏版)》请在金锄头文库上搜索。
1、klicken sie,um die formate des gliederungstextes zu bearbeiten,zweite gliederungsebene,dritte gliederungsebene,vierte gliederungsebene,fnfte gliederungsebene,sechste gliederungsebene,siebente gliederungsebene,achte gliederungsebene,neunte gliederungsebene,基于视觉传感器实现车道线检测,基于视觉传感器实现车道线检测,智能汽车传感器应用技术,一、
2、课程导入,早在十年前,部分高端车辆上便出现了车道偏离预警系统(,ldw,),及车道保持辅助系统(,lka,),这些系统的核心就是车道线识别算法。识别道路上的车道是所有司机的共同任务,以确保车辆在驾驶时处于车道限制之内,并减少因越过车道而与其他车辆发生碰撞的机会。对自动驾驶汽车来说,这同样也是一项关键任务。事实证明,使用计算机视觉技术识别道路上的车道标记是可能的。,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,车 道 线 识 别,思考讨论题(,2,分钟),一、课程导入,车道线检测是自动驾驶中的
3、一个基础模块,其实也是一个由来已久的任务,早期已有很多基于传统图像处理实现的车道线检测算法。传统的图像处理方法或已无法满足车道线识别超高精度的需求,相比传统方法,深度学习方法在计算机视觉的各个领域更具优势。站在开发者的角度,你知道计算机视觉技术如何识别道路上的车道线吗?,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,二、语义分割和实例分割,车道线检测属于计算机视觉图像处理类任务中的分割任务,以下分别介绍语义分割和实例分割、车道线检测常用数据集以及算法。,众所周知,图像在计算机中是像素的集合。
4、而图像分割是对图像中属于特定类别的像素进行分类的过程。传统的图像分割算法是基于灰度值的不连续和相似的性质,而基于深度学习的图像分割技术则是利用卷积神经网络,来理解图像中的每个像素所代表的真实世界物体。,检测,分割,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,二、语义分割和实例分割,基于深度学习的图像分割技术主要分为两类:语义分割及实例分割。,语义分割是对每个像素打上类别的标签,同一类别的所有像素都用一种颜色标识,但是同一类别之间的对象不会区分,如下左图所示,人、地面、树木和天空各一个颜色标
5、识。但语义分割不能对每个个体进行区分,而实例只对特定的物体进行分类,如下右图所示,只对人进行个体分割。实例分割可以看作目标检测与语义分割的结合,是检测任务的拓展,在能够准确识别每个目标的基础之上,以像素为单位分割每个实例。,实例分割,语义分割,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,三、车道线检测常用数据集,车道线检测大多采用深度学习的算法实现,为了让算法更好的实现其功能,需要给算法足够多的数据,这些数据被分为训练集、验证集和测试集。训练集用来拟合模型,通过设置分类器的参数,训练分类模
6、型;当通过训练集训练出多个模型后,为了能找出效果最佳的模型,使用各个模型对验证集数据进行预测,并记录模型准确率,选出效果最佳的模型所对应的参数,即验证集被用来调整模型参数。在通过训练集和验证集得出最优模型后,测试集被用于模型预测,用来衡量该最优模型的性能和分类能力。车道线检测常用数据集包括,culane,数据集和,tusimple,数据集。,车道线检测,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,三、车道线检测常用数据集,culane,数据集是用于行车道检测学术研究的大规模具有挑战性的数据
7、集。整个数据集的采集过程是通过,6,辆北京出租车上的视觉传感器完成的。它收集了超过,55,小时的视频,并提取了,133,235,帧。我们将数据集分为训练集(包含,88880,张图片),验证集(包含,9675,张图片)和测试集(,34680,张图片)。,culane,数据集示例,3.1 culane,数据集,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,三、车道线检测常用数据集,culane,数据集包含正常(,normal,)场景和拥挤(,crowded,)、黑夜(,night,)、无线(,n
8、o line,)、阴影(,shadow,)、快速移动(,arrow,)、炫目的光(,dazzle light,)、弯道(,curve,)和十字路口(,crossroad,)等八种难以检测的情况,对应数据示例如下图所示,也就是说通过,culane,数据集训练出来的模型能够兼顾更加复杂的环境。对于每帧,,culane,用三次样条曲线手动注释行车道。对于车道标记被车辆遮挡或看不见的情况,数据集仍会根据上下文注释车道。,culane,数据集示例,3.1 culane,数据集,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数
9、据集,车道线检测算法,三、车道线检测常用数据集,tusimple,数据集为车道检测任务提供了约,7000,个一秒长的视频片段,每个片段,20,帧,每个片段的最后一帧包含有标签的车道。视频片段可以帮助算法推断出更好的车道检测结果。整个,tusimple,数据集的复杂度并不是很高。该数据集在较好或中等的天气条件下,对,2,车道及以上的高速公路车道进行数据采集。其中包含,3626,个用于训练的视频片段以及,2782,个用于测试的视频片段。,tusimple,数据集实例如下图所示。,culane,数据集示例,3.2 tusimple,数据集,课程导入,利用,lanenet,算法预测样例数据,利用,la
10、neatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,三、车道线检测常用数据集,虽然,tusimple,数据集的数据采集的时间较早,数据是“过时的数据”并且路况不太符合目前中国的路况环境,但是目前世界范围内的大多数车道线检测算法都是基于,tusimple,,包括我们本节介绍到的,lanenet,以及,laneatt,算法。,tusimple,数据集示例,3.2 tusimple,数据集,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,la
11、nenet,是一种将语义分割和对像素进行向量表示结合起来的多任务模型,负责对图片中的车道线进行实例分割;,h-net,是由卷积层和全连接层组成的网络模型,负责预测转换矩阵,h,,使用转换矩阵,h,对属于同一车道线的像素点进行回归,能够对车道线进行良好的拟合。整体网络结构如右图所示。,4.1 lanenet h-net,算法模型,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,(,1,),lanenet,对输入图像进行实例分割,其中网络结构分为两个方向,一个是语义分割,另一个
12、是对像素进行向量表示,最后将两个分支的结果进行聚类,得到实例分割的结果。,lanenet,输出实例分割的结果,为每个车道线像素分配一个车道线,id,(,identity,,标识)。,4.1 lanenet h-net,算法模型,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,(,2,),h-net,模型:目前所使用的透视变换矩阵的参数通常是预先设定、不会改变的,在面对水平线波动的影响(如上下坡)等情况下的车道线拟合并不准确,鲁棒性不强。而,h-net,模型可以用来学习透视变
13、换矩阵的参数,h,,如下左图所示,可以看出,转置矩阵,h,只有,6,个参数,因此,h-net,的输出是一个,6,维的向量,置零是为了强制约束,即在变换下水平线保持水平。,h-net,的网络体系结构较小,由,6,层普通卷积网络和一层全连接网络构成,其网络结构如下右图所示。,4.1 lanenet h-net,算法模型,h,参数,h-net,网络结构,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,laneatt,是基于,pytorch,框架下的车道线检测算法。,pytorch
14、,是一个开源的,python,机器学习库,,pytorch,的前身是,torch,,其底层和,torch,框架一样,但是使用,python,重新写了很多内容,不仅更加灵活,支持动态图,而且提供了,python,接口。它是一个基于,python,的可续计算包,是一个包含自动求导系统的深度神经网络,且具有强大的,gpu,加速的张量计算(如,numpy,)。,laneatt,算法总体流程,4.2 laneatt,算法模型,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,lanea
15、tt,在,culane,数据集上有着相当不错的表现,同时也支持其他的数据集。它的优点具体表现为:第一,比现有的实时处理模型都要准确,在较大和复杂的数据,culane,数据集有更好的表现;第二,训练和推断速度比较快(,250fps,);第三,基于锚框(在图像中指示感兴趣的目标的边界框称为锚框(,anchor box,)的注意力机制,使检测对象更加精准。,4.2 laneatt,算法模型,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,四、车道线检测算法,laneatt,使用从安装在车辆中的前置摄
16、像头拍摄的,rgb,图像作为输入。输出是车道线。为了生成这些输出,卷积神经网络(,cnn,)(称为主干)会生成一个特征图,然后将其汇总以提取每个锚(,anchor,)的特征。这些特征与注意力模块生成的一组全局特征结合在一起。通过组合局部和全局特征,该模型可以更轻松地使用来自其他车道的信息,这在有遮挡或没有可见车道标记的情况下可能是必需的。最后,将合并的特征传递到全连接层以预测最终的输出通道。,车道线和,anchor,的表示方法,4.2 laneatt,算法模型,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,五、利用,lanenet,算法预测样例数据,(,1,)在,ubuntu,系统中的桌面单击右键,打开终端,创建,lanenet,虚拟环境,输入命令:,5.1,创建虚拟环境与环境配置,课程导入,利用,lanenet,算法预测样例数据,利用,laneatt,进行车道线识别测试,语义分割和实例分割,车道线检测常用数据集,车道线检测算法,五、利用,lanenet,算法预测样例数据,(,2,)