前言
自动驾驶时代离我们越来越近了,而自动驾驶的相关技术我们此前分享了很多,本文将从视觉的角度切入,跟大家聊聊针对车道线检测的相关技术,结合地图标注深度学习研究部自研的算法成果,带大家了解一下车道线识别的具体方案及应用。
1
车道线识别算法是一类历史相当悠久,使用相当广泛的算法。
早在十年前,部分高端车辆上便出现了车道偏离预警系统(LDW),及车道保持辅助系统(LKA),这些系统的核心就是车道线识别算法。由于系统定位在辅助驾驶员驾驶上,传统的图像处理方法就能够满足车道线识别算法的基本的需求。
随着自动驾驶时代的到来,需要车道线识别的应用场景也越来越广泛,相应车道线识别技术也越来越重要,具体原因如下:第一,覆盖场景广,车道线识别存在于自动驾驶大多数的应用场景,是自动驾驶不可或缺的基础算法;第二,重要安全保障,车道线识别能精准的识别道路并最终帮助机器决策,也是行车安全的重要保障。此外,在地图标注深耕的高精地图领域,车道是所有高精地图要素的道路关联的主键,所以车道线要素在高精地图中是重中之重,车道线识别算法也至关重要。
自动驾驶对于车道线识别结果精度的超高要求,使得传统的图像处理方法或已无法满足车道线识别超高精度的需求,相比传统方法,深度学习方法在计算机视觉的各个领域更具优势,从趋势上看,未来车道线识别算法将进入深度学习时代。
在下面的内容里,我们也会对传统视觉方案和深度学习方案进行具体介绍,帮助大家更直观的理解这两种方法。
2
早期我们的车道线识别是从传统视觉方案做起的,主要有以下四个流程:
-
图像去畸变:普通的相机拍摄的照片一般都会存在畸变,包含径向畸变和切向畸变,使得车道线发生扭曲和失真,所以我们一般先对图片进行去畸变处理。
-
车道线特征提取:这一步是传统车道线识别算法的难点,我们根据车道线的特征(比如形状、纹理等)设计特殊的滤波器和去噪策略,从而提取出车道线的信息。
-
车道线线性拟合:最后识别的目标是“线”,故而需要进行直线或曲线拟合的处理,通常采用的是hough变换(用于检测图像中直线、圆、抛物线、椭圆等形状能够用一定函数关系描述的曲线),为了提升鲁棒性,我们还会引入RANSAC(根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法)的方法。
-
车道线帧间跟踪平滑:为了提升稳定性,在帧间还会进行跟踪平滑的处理,比如采用Kalman(一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法)滤波器对车道线识别结果进行滤波,减少跳变。
除了上面比较通用的流程,在实际项目中,我们还会根据项目需求,引入其他步骤(比如逆透视变换转鸟瞰图等)来进一步提升我们算法的能力。
传统的视觉算法运行效率相当快,它通常应用在了算力孱弱的设备上,在ADAS(高级辅助驾驶)项目上运行的就是这版算法,效果可见下图:
3
传统视觉的方案虽然运行效率高,但是也存在一定的局限,对于比较老旧的道路,车道线不明显的情况识别效果就不够理想了,同时,传统方案对光线的依赖性太强,只能天气晴好,无遮挡的状况下表现良好。
然而,在我们的自动驾驶场景下和高精地图自动成图时,通常要求车道线识别必须保持实时精准,且精度要求达到厘米级,这时传统视觉方案就有点有心无力了,我们祭出了大杀器——深度学习。
近年来,深度学习这几年在计算机视觉的各个领域,无论从精度还是鲁棒性上都优于传统视觉方案。
在这里,我们科普一下深度学习方案与传统视觉方案的主要区别,既然是深度学习,那我们就用老师教课来举例:
传统视觉方案就好像学生只死记硬背答题公式而并没有理解其中的原理,以后遇到很多题目可能仍然不知道如何解答。因为传统视觉方案,是要预先人工设计特征工程,然后通过特征去识别。
而深度学习方案,则更像是一套系统的学习方法:
第一步,老师会先通过大量的例题和知识点整理教案,以便之后学生更加全面的理解。对比深度学习,也会通过预先的大量视觉采集,以及人工标注,对同一元素在不同场景下如光线不好、阴雨天、路面老旧等的表现形式进行总结,预先形成数据库。
第二步,也是最重要的一步。老师会根据之前整理的教案,对学生进行教学训练,使学生不仅仅理解某一道题的解题方法,而是掌握知识的原理。对比深度学习,也会从训练样本中学习总结目标的特征,对车道线识别的算法进行训练,使得它可以预先了解不同场景下车道线的不同形态。因为这种方式是数据驱动的,所以如果训练样本足够丰富,深度学习能从样本中学习到更加通用的特征,使得算法的鲁棒性和精度都大大好过传统的方法。
第三步,也就是应用。通过系统学习的学生可以根据掌握的知识点对不同的习题进行举一反三。而深度学习也是一样,在应用时可以实时使用训练后的算法,对识别目标输出精准高效的感知结果。
4
有了深度学习这个大杀器,再加上地图标注强大的数据资源做后盾,我们的车道线识别算法可以说是如虎添翼。
基于对深度学习算法的技术深耕以及地图标注强大的数据资源,我们深度学习研究院为自动驾驶研发了精准高效的车道线识别模型,其精度可以达到厘米级,在实际自驾车的车载设备上能跑到40FPS(每秒传输帧数(Frames Per Second))以上,其识别效果如下图所示:
图为:地图标注的自动驾驶车,采用深度学习的方法完成车道线识别算法,保证车辆在开到80km/h的速度时依然驾驶稳定、安全。
这版车道线识别算法,不仅在自动驾驶中发挥基础“眼睛”的作用,在高精地图自动成图项目中同样起到不小的作用。
高精地图项目用上我们的车道线识别算法,单遍采集自动成图的精度误差便可以缩小到15cm以内。
制图的后续流程中会利用多遍采集和融合,把因为遮挡、视野问题造成的跳变补上,就变成了一份高质量的高精路网数据了。
结语
在“智能汽车大脑”战略下,地图标注重点聚焦在视觉以及感知等算法,并且已经为自动驾驶及高精地图等核心业务做了深厚的技术积淀,旨在打通智能汽车的完整生态。在算法端,地图标注深度学习研发部在视觉及感知层面持续深耕,研发出不少算法成果,并持续输出在各个项目的产品应用中。未来,我们的方案也会随着行业的发展持续打磨,从而在更多自动驾驶的场景里实现应用,敬请期待吧!
如何把自己的门店或公司标注到地图里面。其实很简单:
1、先准备好门店或公司的门脸照片、名称及地址信息
2、然后使用微信扫描下面的二维码,按照要求提交资料
3、提交资料后,客服会联系您进行数据审核,最快2小时内上线