来源 | 巫婆塔里的工程师@知乎
自动驾驶系统包括环境感知和定位,行为预测和规划控制。作为自动驾驶感知算法工程师,我这里就只说说环境感知方面需要的知识吧。
下面是我在自动驾驶感知专栏中的一篇概述文章,专栏里也包含了各个子领域的介绍性文章。
1 前言
本专栏主要关注自动驾驶中的环境感知任务,内容包括感知技术的起源,现状以及最新的发展趋势。感知任务大多涉及算法设计,因此专栏的介绍也以算法为主线,特别是深度学习的算法。此外也会涉及一些数据采集,系统测试,算法部署以及量产感知系统的分析。
自动驾驶中的环境感知包含了自动驾驶和环境感知两个概念。首先,什么是自动驾驶呢?下面是维基百科上对自动驾驶汽车的定义。
自动驾驶汽车,又称无人驾驶车、电脑驾驶车、无人车、自驾车,为一种需要驾驶员辅助或者完全不需操控的车辆。作为自动化载具,自动驾驶汽车可以不需要人类操作即能感测其环境及导航。
上述定义里有几个关键词。首先是 汽车,我们这里所说的自动驾驶技术涉及的是汽车,而不是飞机火车之类的交通工具。其次是 感知环境和导航,也就是说自动驾驶汽车可以自主的采集和理解周边环境信息,并根据设定的目的地进行决策和行进。最后是 需要驾驶员辅助或者完全不需操控,这里涉及到自动驾驶系统的分级,是一个非常重要的概念,下面稍微展开说一下。
自动驾驶技术不是从0到1的质变,而是一个渐变迭代的过程。关于自动驾驶系统的分级,目前最常用的标准是由SAE(美国汽车工程师学会)制定的。不同机构制定的标准会略有不同,但是基本的概念是一致的。下表对L0(人工驾驶)到L5(完全自动驾驶)六个级别进行了总结。 这些定义可能有些难懂,但是与车辆上不同的功能结合起来就容易理解了。比如说,汽车中现在标配的防抱死制动系统(ABS)和车身电子稳定系统(ESP)就都属于L1级别。此外,定速巡航、自适应巡航(ACC)以及车道保持辅助 (LKA)也属于L1级别的范畴,因为它们只能在一个方向上(横向或纵向)操控车辆。如果同时实现了 ACC和LKA,那么这辆车就来到了L2级别。对于L2及其以下级别的系统来说,车辆的驾驶员都需要监控周围环境并随时做好接管的准备。这一点非常关键,这也是很多L2级别的车辆出现交通事故的主要原因,也就是驾驶员对系统期望过高,在驾驶过程中没有时刻保持对周边环境的关注。如果一个车辆配备了某种Pilot系统,比如Traffic Jam Pilot,那么就达到了L3级别。这就意味着,在某些特定的场景下(比如高速公路,堵车等),驾驶员不需要时刻监控当前路况,可以松手,松脚,松眼,只需要在系统提示时接管车辆即可。在这种限定的情况下,驾驶员已经成为了乘客。对于L4级别的系统,目前只存在于演示车辆中。我们平时看到的诸如“某厂家的车辆在某道路上实现了XX小时无人工接管的自动行驶”,这都属于L4级别的范畴,与L3最大的区别是不需要人工接管了,在限定场景下可以实现车辆的完全自主行驶。L5级别就是把“限定场景”这个条件也去掉了。这个级别的车辆最大的特点就是没有方向盘了,所有人都是乘客,车辆的所有操控权都属于系统。
了解了自动驾驶是什么以后,我们再来看看自动驾驶系统是怎么实现的。一般来说, 自动驾驶系统包含感知,决策和控制这三个主要模块。粗略来说,这三个模块对应生物系统的眼睛,大脑和四肢。感知系统(眼睛)负责了解周围障碍物和道路的信息,决策系统(大脑)根据周围的环境以及设定的目标决定下一步需要执行的动作,而控制系统(四肢)则负责执行这些动作,比如转向,加速,刹车等。进一步来说, 感知系统里又包括了环境感知和车辆定位两个任务。环境感知负责检测各种移动和静止的障碍物(比如车辆,行人,建筑物等),以及收集道路上的各种信息(比如可行驶区域,车道线,交通标志,红绿灯等),这里需要用到的主要是各种传感器(比如摄像头,激光雷达,毫米波雷达等)。车辆定位则根据环境感知得到的信息来确定车辆在环境中所处位置,这里需要高精度地图,以及惯性导航(IMU)和全球定位系统(GPS)的辅助。