本文主要关注自动驾驶中的环境感知任务,内容包括感知技术的起源,现状以及最新的发展趋势。感知任务大多涉及算法设计,因此本文的介绍也以算法为主线,特别是深度学习的算法。此外也会涉及一些数据采集,系统测试,算法部署以及量产感知系统的分析。自动驾驶中的环境感知包含了自动驾驶和环境感知两个概念。首先,什么是自动驾驶呢?下面是维基百科上对自动驾驶汽车的定义。自动驾驶汽车,又称无人驾驶车、电脑驾驶车、无人车、自驾车,为一种需要驾驶员辅助或者完全不需操控的车辆。作为自动化载具,自动驾驶汽车可以不需要人类操作即能感测其环境及导航。上述定义里有几个关键词。首先是汽车,我们这里所说的自动驾驶技术涉及的是汽车,而不是飞机火车之类的交通工具。其次是感知环境和导航,也就是说自动驾驶汽车可以自主的采集和理解周边环境信息,并根据设定的目的地进行决策和行进。最后是需要驾驶员辅助或者完全不需操控,这里涉及到自动驾驶系统的分级,是一个非常重要的概念,下面稍微展开说一下。自动驾驶技术不是从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)的辅助。本文主要关注环境感知系统,重点会介绍摄像头,激光雷达和毫米波雷达这三种主要的传感器,以及它们的融合。不同的传感器有着不同的特性,各自都有优缺点,因此也适用于不同的任务。摄像头是感知系统中最常用的传感器,优势在于能够提取丰富的纹理和颜色信息,因此适用于目标的分类。但是其缺点在于对于距离的感知能力较弱,并且受光照条件影响较大。激光雷达在一定程度上弥补了摄像头的缺点,可以精确的感知物体的距离和形状,因此适用于中近距的目标检测和测距。但是其缺点在于成本较高,量产难度大,感知距离有限,而且同样受天气影响较大。毫米波雷达具有全天候工作的特点,可以比较精确的测量目标的速度和距离,感知距离较远,价格也相对较低,因此适用于低成本的感知系统或者辅助其它的传感器。但是缺点在于高度和横向的分辨率较低,对于静止物体的感知能力有限。环境感知系统中的多种传感器