自动驾驶系统包括环境感知与定位、行为预测与规划控制。作为自动驾驶感知算法工程师,我只讲环境感知中需要的知识。下面是我的自动驾驶感知专栏的一篇综述文章,里面还有各个子领域的介绍文章。1前言本专栏主要介绍自动驾驶中的环境感知任务,包括感知技术的起源、现状和最新发展趋势。感知任务大多涉及算法设计,所以专栏的介绍也侧重于算法,尤其是深度学习算法。此外,还会涉及到一些量产感知系统的数据采集、系统测试、算法部署和分析等。自动驾驶中的环境感知包括自动驾驶和环境感知两个概念。首先,什么是自动驾驶?以下是维基百科对自动驾驶汽车的定义。自动驾驶汽车,也称为无人驾驶汽车、计算机驱动汽车、无人驾驶汽车或自动驾驶汽车,是需要驾驶员辅助或根本不需要控制的车辆。作为自动驾驶汽车,自动驾驶汽车无需人工干预即可感知其环境并进行导航。上面的定义中有几个关键词。首先是汽车。我们这里说的自动驾驶技术涉及的是汽车,而不是飞机、火车等交通工具。二是感知环境和导航,即自动驾驶汽车能够自主采集和了解周围环境信息,根据设定的目的地进行决策和行驶。最后,它需要驾驶员协助或根本无法控制。这就涉及到自动驾驶系统的分类,这是一个非常重要的概念。让我们在下面稍微扩展一下。自动驾驶技术不是从0到1的质变,而是一个渐进迭代的过程。关于自动驾驶系统的分类,目前最常用的标准是由SAE(美国汽车工程师学会)制定的。不同机构制定的标准会略有不同,但基本概念是相同的。下表总结了从L0(人工驾驶)到L5(全自动驾驶)的六个级别。这些定义可能难以理解,但结合车辆上的不同功能,就变得容易理解了。比如现在汽车标配的防抱死制动系统(ABS)和电子稳定系统(ESP)就属于L1级别。此外,巡航控制、自适应巡航控制(ACC)和车道保持辅助(LKA)也属于L1级别的范畴,因为它们只能在一个方向(水平或纵向)控制车辆。如果同时实现ACC和LKA,那么这台车就已经来到了L2级别。对于L2及以下系统,车辆驾驶员需要监控周围环境并随时准备接管。这是非常关键的,也是很多L2级车发生交通事故的主要原因,就是驾驶员对系统的期望值过高,在行驶过程中没有时刻关注周围的环境。如果车辆配备了某种Pilot系统,比如TrafficJamPilot,那么它已经达到了L3级别。这意味着在一些特定的场景下(比如高速公路、堵车等),司机不需要时刻监控当前的路况,而是可以放手,放手,放手,接管就好了。系统提示时车辆。在这种定义的情况下,司机变成了乘客。至于L4级系统,目前只存在于示范车中。我们平时看到的,比如“某厂商的车辆在某条道路上实现了XX小时无人接管自动驾驶”,都属于L4级别的范畴。与L3最大的区别是不需要人工接管。在有限的场景中,车辆可以完全自主驾驶。L5级是去掉“限定场景”的条件。这个级别的车辆最大的特点就是没有方向盘,每个人都是乘客,车辆的所有控制权都属于系统。了解了自动驾驶是什么之后,我们再来看看自动驾驶系统是如何实现的。一般来说,自动驾驶系统由感知、决策和控制三个主要模块组成。粗略地说,这三个模块分别对应生物系统的眼睛、大脑和四肢。感知系统(眼睛)负责了解周围障碍物和道路的信息,决策系统(大脑)根据周围环境和设定的目标决定下一步要执行的动作,控制系统(四肢)负责执行这些动作,如转向、加速、刹车等。再者,感知系统包括环境感知和车辆定位两个任务。环境感知负责检测各种移动和静止的障碍物(如车辆、行人、建筑物等),并收集道路上的各种信息(如可行驶区域、车道线、交通标志、红绿灯等),这里需要用到的主要是各种传感器(比如摄像头、激光雷达、毫米波雷达等)。车辆定位是根据环境感知获得的信息来确定车辆在环境中的位置,这需要高精度地图,以及惯性导航(IMU)和全球定位系统(GPS)的辅助。本专栏主要关注环境感知系统,重点关注摄像头、激光雷达和毫米波雷达三大传感器及其融合。不同的传感器具有不同的特性,各有优缺点,因此适用于不同的任务。摄像头是感知系统中最常用的传感器。它的优点是可以提取出丰富的纹理和颜色信息,因此适用于物体分类。但其缺点是距离感知能力弱,受光照条件影响大。激光雷达在一定程度上弥补了相机的不足,能够准确感知物体的距离和形状,适用于中近距离目标检测和测距。但其缺点是成本高、量产困难、感应距离有限,受天气影响也较大。毫米波雷达具有全天候工作的特点,可以更准确地测量目标的速度和距离,感知距离远,价格相对较低,适用于低成本感知系统或辅助其他传感器。但缺点是高度和横向分辨率较低,对静止物体的感知能力有限。环境感知系统中的多传感器2技术概述正如上一节所述,环境感知系统的硬件基础是多种传感器及其组合,而软件的核心是感知算法。一般来说,感知算法要完成两个主要任务:目标检测和语义分割。前者获取场景中重要物体的信息,包括位置、大小、速度等,属于稀疏表示;而后者获取的是场景中各个位置的语义信息,比如可行驶、障碍物等,是一种稀疏表示。密集的表示。这两项任务的结合称为全景分割,这是最近在自动驾驶和机器人领域出现的一个概念。对于物体目标(如车辆、行人),全景分割输出其分割Mask、类别和实例ID;对于非物体目标(如道路、建筑物),只输出其分割Mask和类别。环境感知系统的最终目标是获取车辆周围三维空间的全景分割结果。当然,对于不同层次、不同场景的自动驾驶应用,需要的感知输出是不一样的。自动驾驶技术的爆发很大程度上是因为深度学习在计算机视觉领域的突破,而这种突破首先是从图像中的图像分类和物体检测开始的。在自动驾驶的环境感知中,深度学习的第一个应用是单张二维图像中的物体检测。该领域的经典算法,如FasterR-CNN、YOLO、CenterNet等,是不同时期视觉感知算法的主流。然而,车辆不能仅仅依靠单一二维图像的检测结果来行驶。因此,为了满足自动驾驶应用的需求,这些基础算法还需要进一步扩展,其中最重要的就是融合时序信息和三维信息。前者衍生出物体跟踪算法,后者衍生出单目/双目/多用途3D物体检测算法。以此类推,语义分割包括图像语义分割、视频语义分割和稠密深度估计。为了获得更准确的三维信息,激光雷达一直是自动驾驶感知系统的重要组成部分,尤其是L3/4级别的应用。激光雷达数据是一种相对稀疏的点云,这与图像的密集网格结构有很大不同。因此,需要对图像领域常用的算法进行修改,以适用于点云数据。点云感知的任务也可以按照物体检测和语义分割来划分。前者输出三维物体框,后者输出点云中每个点的语义类别。为了发挥图像领域的算法优势,可以将点云在Bird'sEyeView或FrontView(RangeView)下转换成密集的网格结构。此外,深度学习中的卷积神经网络(ConvolutionalNeuralNetwork,CNN)也可以改进使其适用于稀疏点云结构,如PointNet或GraphNeuralNetwork。毫米波雷达由于全天候工作、测速准确、成本低等优点,在自动驾驶感知系统中也得到广泛应用,但一般用于L2级系统,或作为L3/4级系统中的其他传感器辅助。毫米波雷达的数据一般是点云,但比激光雷达的点云更稀疏,空间分辨率更低。与摄像头和激光雷达相比,毫米波雷达的数据密度非常低,所以一些传统方法(如聚类和卡尔曼滤波)的性能并不比深度学习差多少,而且这些传统方法的计算量相对较低。近年来,一些研究人员开始使用深度学习代替经典的雷达信号处理,从更底层的数据入手,通过端到端的学习取得了类似激光雷达的感知效果。单个传感器的感知能力总是有限的。如果先抛开系统成本,多传感器融合方案自然是更好的选择。一般来说,摄像头是感知系统必不可少的传感器。为了获得深度信息和360度的视野,可以使用双目或多眼融合方案。为了获得更准确的三维和运动信息,摄像头还可以与激光雷达和毫米波雷达融合。这些传感器具有不同的坐标系、不同的数据形式,甚至采集频率也不同,因此融合算法的设计不是一项简单的工作。粗略地说,融合可以在决策层(融合来自不同传感器的输出)或数据层(融合来自不同传感器的数据或中间结果)进行。数据层融合在理论上是一种更好的方法,但需要传感器之间更高的空间和时间对齐。以上大致介绍了环境感知涉及的算法部分,算法部分的其他一些内容,比如多眼摄像头的融合,多传感器的时空对齐等,后面会介绍。除了核心算法设计外,感知系统的其他重要部分还包括数据采集与标注、算法测试与迭代、系统部署等。这些内容之后,专栏会出系列文章进行分析。3行业现状既然我们了解了感知系统所涉及的技术,下一步就是了解这些传感器在生产或演示车辆中的应用现状。粗略地说,自动驾驶公司可以分为两大类。一类是传统车企(如国外大众、宝马、通用、丰田等,国内长城、吉利等)、新能源车企(如特斯拉、蔚来、小鹏等)和Tier1(如国外老牌博世、大陆、安波福等,国内新兴华为、大疆等)。这类公司的首要目标是量产,一般以L2级解决方案为主,目前正在向L3级扩展。另一类是一些解决方案提供商或初创公司(如Waymo、Mobileye、Pony.AI、Momenta、TuSimple等)。这些公司正致力于为Robotaxi、Robotruck和Robobus等应用开发L4级自动驾驶技术。针对不同级别的自动驾驶、不同的应用场景,传感器的配置方案也不同。对于L2应用,如紧急制动和自适应巡航控制,只能使用前视单目摄像头或前视毫米波雷达。如果需要变道辅助功能,需要增加传感器感知相邻车道。一种常见的解决方案是在汽车前后增加多角度雷达,以实现360度的目标探测能力。对于L3级别的应用,需要在特定场景下实现车辆的完全自主驾驶,因此需要扩展车辆对周围环境的感知。这时候就需要加入激光雷达、侧视、后视摄像头和毫米波雷达,以及GPS、IMU和高精度地图来辅助车辆定位。达到L4级别后,由于在特定场景下无需人工接管,对传感器不仅要求精度高,还要求可靠性高。这需要增加传感器冗余,这意味着备份系统。我们来看几个具体案例。首先是特斯拉最近推出的纯视觉解决方案。虽然说到自动驾驶,很多人首先想到的是特斯拉,但实际上特斯拉只是一个L2级别(或高级L2)的自动驾驶系统,因为仍然需要驾驶员随时准备接管车辆。如果只在L2级别系统横向比较,那么特斯拉的方案还是很有竞争力的。该系统仅使用视觉传感器,包括安装在车身不同位置、具有各种焦距和视野的摄像头。这些摄像头可以覆盖360度的视野,并具有一定的冗余度。特斯拉在AIDay展示的基于深度学习的多摄像头融合算法还是非常值得研究的,后面会出一篇文章详细分析。特斯拉的纯视觉传感器配置(L2级别)2017年夏天,奥迪发布了第四代A8,其中最大的亮点就是TrafficJamPilot(TJP)系统。前面说了,TJP系统已经属于L3范畴,所以奥迪A8可以说是全球首款“量产”的L3系统。为什么要加引号?这是因为该功能在交付车辆中并未开启,用户只能在奥迪自己的演示车上进行体验。奥迪官方解释是法规问题,但其实核心原因还是技术,也就是L3所谓的“接管悖论”。在时速低于60公里的结构化道路堵车场景中,TJP系统可以让驾驶者低头玩手机或睡觉。这个时候如果有紧急情况,可能会出现不够接班的情况。虽然奥迪在2019年底取消了L3级自动驾驶项目,但这一探索也为后续L4级和各种先进的L2系统的研发提供了宝贵的经验。更多细节这里不再赘述,让我们来看看这个系统中的传感器方案。奥迪A8共有12个超声波传感器、4个全景摄像头、1个前置摄像头、4个中程雷达、1个远程雷达、1个红外摄像头。此外,奥迪A8首次搭载了4线车规级激光雷达,并配备了中央驾驶辅助系统控制单元(zFAS),这些都是L3级自动驾驶系统的必备选装件。奥迪A8的传感器配置(L3级别)是从L2到L3,再到L4。传感器最大的变化就是加入了激光雷达,而且数量在逐渐增加。比如在Waymo的传感器方案中,除了前向激光雷达之外,还加入了后向和车顶激光雷达。而且,激光雷达的线束数量大幅增加,可实现约300米的感应距离。除了Waymo,其他公司的L4系统都不可避免地包含一个或多个激光雷达。从目前的技术发展趋势来看,L4级自动驾驶的实现,主要是靠增加传感器,从而大大提高对行驶路况和环境的感知能力,而其中最重要的就是激光雷达。在L4级别,车辆在有限的场景下完全自主驾驶。这时候99%的准确率是不够的,需要的是99.99999%的准确率,而激光雷达就是小数点后几位的保证。这种保证来自于激光雷达与其他各种传感器的协同,而不仅仅是简单的堆叠,因此高效准确的传感器融合在L4级系统中起着至关重要的作用。Waymo的传感器配置(L4级别)以上只是对L2/3/4级别传感器配置的一些典型案例的简单介绍。专栏将在后续文章中详细分析不同公司的自动驾驶技术路线以及相应的传感器配置。和感知系统设计。
