自动驾驶的大幕
人类对自动驾驶的梦想甚至早于汽车的诞生。16世纪,达·芬奇就试图以高强力弹簧为动力让车辆在规划好的路线上自动驾驶。现代社会真正让自动驾驶引起世人关注是通过美国国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA)在2004年启动的自动驾驶挑战赛Grand Challenge。2005年,自动驾驶越野赛的冠军是斯坦福大学的Stanley; 2007年,自动驾驶城市赛的冠军是卡内基梅隆大学的Boss。
DARPA的比赛不仅从学术上促进了大学的科研,也诞生了数家后来的自动驾驶头部企业。2009年,谷歌公司收购了斯坦福大学的自动驾驶团队,也就是谷歌子公司Waymo的前身。2015年,优步也逐渐把卡内基梅隆大学自动驾驶团队收编。在这一年,特斯拉发布了Autopilot,虽然名字上感觉是自动驾驶L4,但其实还是辅助驾驶L2。通过DARPA竞赛还成就了一家公司,就是生产64线机械式激光雷达的Velodyne。
自动驾驶技术的研发现状
自动驾驶的发展基本存在两条技术路线。一条是跨越式开发技术路线,即直接做L4级别的自动驾驶系统,以高科技公司谷歌和百度为主,它们对车企行业了解不深,而直接把机器人研发的模式用于自动驾驶车辆。这条技术路线多半不计成本,采用高清地图和高精密度惯导定位,可没有地图的地方也很难运营(不需要和导航地图接口,直接采用高清地图进行规划,对于大规模导航区域的高清地图下载和全局规划的计算复杂度缺乏认识),安装激光雷达这种最好、最昂贵的传感器(当时视觉的深度学习技术比较初级),采用最强的计算平台(因为不是量产,一些L4自动驾驶公司直接采用工控机作为支撑,不需要考虑平台移植的工程难度),面对Robotaxi的落地,虽然还没有针对任意场景,但在测试的高速和城市街道场景中,基于较可靠的感知性能,的确提供了面向复杂交通环境下最强的规划决策能力。目前看到的基于数据驱动开发的规划决策算法,多半来自L4公司,而且其中几个还举办了这方面的竞赛(基于本身提供的开源数据集)。在仿真平台的建设上,L4公司也是远远走在前面(特斯拉基本已经具备L4开发落地能力),包括数据重放和单点测试的可视化能力。高清地图方面,L4公司的技术也比较成熟。收集的传感器数据,L4公司在包括激光雷达和车辆定位轨迹等方面也高于一般的L2公司。
另一条技术路线是渐进式开发,即先从L2的辅助自动驾驶系统起步,然后逐渐适应更复杂的交通环境,从高速、高架慢慢过渡到有闸道、有收费站的场景,最后进入城市的大街和小路,自动驾驶系统的级别也慢慢演进到L2 、L3、L3 和L4水平(最近看到一种新趋势,即L4自动驾驶的开发公司、L2自动驾驶的主机厂和Tier1合作,共同开发L2 的量产级别车辆)。渐进式开发的技术路线,一般是主机厂和Tier1采用,它们首先会考虑成本、车规和量产用户的ODD(运行设计域)定义。早先以Mobileye为主要供应商,之后特斯拉和英伟达的开发模式成为主流。限于成本,这条路线多采用摄像头为主传感器,加上车企已经接受的毫米波雷达为辅助。相对来说,这条路线的前沿水平(如特斯拉),所采用的视觉感知技术具有明显的优势。因为在融合中雷达出现大量虚警信号,特斯拉甚至在自动驾驶感知模块中放弃了它。以前泊车自动驾驶采用超声波传感器,逐渐也和鱼眼摄像头结合提供泊车辅助、记忆泊车甚至代客泊车的应用。特斯拉也采用超声波提供拥挤交通场景的感知。也许是成本的压力,渐进式开发路线一般是重感知、轻高清地图的模式,甚至已经在BEV网络模型中实现了感知和在线地图及定位的端到端集成(如特斯拉)。作为行业领军企业的特斯拉,慢慢完善了数据驱动的开发工具链,实现了一个包括数据筛选、数据标注、仿真模拟、模型迭代、场景测试评估和模型部署等的数据闭环。基于自动驾驶的长尾问题和AI模型的不确定问题,谷歌公司也有类似的框架,但特斯拉将其发挥到极致,在量产的用户车辆上实现了良性循环,目前也已经推出L4的自动驾驶版本FSD。
自动驾驶基本存在1.0和2.0两个发展阶段。自动驾驶1.0阶段采用多种传感器构成感知输入,如激光雷达(lidar)、视觉相机、雷达(radar)、惯导IMU、轮速计和GPS/差分GPS等,各个传感器在感知能力上存在差异,针对性地用多模态传感器融合架构,目前多是采用后融合策略,把各个传感器在相关任务中的结果进行一次滤波,达到互补或者冗余的效果。这方面存在两条路线,一条路线是依靠激光雷达加高清地图的做法,成本高,主要是Robotaxi等L4公司采用; 另一条路线是视觉为主、轻高清地图的做法,成本低,多是L2/L2 自动驾驶公司为量产落地的思路。两条路线都会有很传统的后处理步骤(特别是视觉),大量调试工作和问题也来自于此。另外,这个阶段的规划决策多是采用基于规则的方法,实际上没有数据驱动的模型,如开源的Autoware和百度Apollo。由于L4公司的运行场景在一些具备高清地图的固定地区,本身感知投入的传感器精度较高,已经做过数据训练规划决策模型的探索; 相对来说,L2/L2 公司还没有建立数据驱动的规划决策模块开发模式,多是采用优化理论的解决方案,普遍从高速场景入手,升级到特斯拉那种闸道闸道的模式,很少能支持城市自动驾驶的复杂场景(如环岛路口和无保护左拐弯操作等)。
自动驾驶2.0阶段应该是以数据驱动为标志,同时对于1.0阶段的感知框架也有比较大的改进。数据驱动的开发模式倾向于端到端的模型设计和训练,对于规划决策而言就是需要大量的驾驶数据去学习老司机的驾驶行为,包括行为克隆的模仿学习,以及通过基于模型强化学习(MRL) 估计行为策略的联合分布等,不再靠各种约束条件下的最优问题求解。其中轨迹预测是一个重要的前奏,需要对智体交互行为进行良好的建模,并分析存在的不确定性影响。对于感知而言,2.0时代需要考虑机器学习模型取代哪种传统视觉或信号处理(滤波)的部分,真正做到采集数据来解决问题的开发模式。例如特斯拉最近的BEV(鸟瞰视图)和Occupancy Network(占用网络),都直接通过深度学习模型实现所需信息输出,而不是采用传统视觉和融合理论去二次处理模型输出。传感器融合理论也从后融合升级到模型中特征融合甚至数据融合(如果同步和标定有一定的先验知识)。这里可以看到Transformer网络在这个感知框架下扮演着重要的角色,同时也给计算平台提出了更高的要求。基于这种数据驱动的自动驾驶平台需求,大模型的设计思路也被引入,因为大量数据的获取,包括高效的数据筛选、自动标注和仿真技术辅助,需要在服务器端维护一个教师大型模型,以支持布署到车端的学生小型模型的训练和迭代更新。
自动驾驶的挑战和未来
汽车产业的转型面临的挑战之一是转型到软件定义汽车的新模式。自动驾驶的软件代码量将超过5亿行,是非常复杂的软件系统之一,相比之下,波音787有650万行代码、Android有1500万行代码、Windows 11有5000万行代码、Facebook有6200万行代码、现代汽车有1亿行代码。同时,智能汽车的软件也是现代软件的集大成者,包含了实时嵌入式软件、云计算软件、消费者软件、仿真软件、AI算法和大规模多智体协同系统软件。而且,这么庞大和复杂的软件系统对安全性、可靠性的要求也极高,因为软件的失效会导致性命攸关的严重后果。因此,智能汽车软件需要使用软件工程和软件测试验证最先进的理论及实践。
同时,自动驾驶的进步依赖于人工智能技术的发展。虽然人工智能下围棋已经战胜了人类,但是围棋是一个封闭环境,棋盘格式和下棋规则2000多年都没有变化。而依靠数据训练的机器学习技术很难解决行驶环境中无穷尽的开放场景。例如,小朋友很容易理解的儿歌我在马路边捡到一分钱,把它交到警察叔叔手里边,人工智能技术要理解就要解决很多问题。比如为什么捡到一分钱是合理的而捡到一亿元是不合理的,为什么要交给警察,等等。人在生长过程中积累的大量已知的不安全(known unsafe),再加上交通开放场景的未知的不安全(unknown unsafe),是自动驾驶难以解决的长尾问题。当然,自动驾驶要解决的技术难点很多,这将在本书里进行逐一阐述。
虽然实现自动驾驶的挑战很多,但是新一代智能汽车能为社会带来几乎零排放、零事故、零成本的交通出行系统。2020年以来,售价约15 000美元、单次充电行驶里程400千米以上电动汽车的规模上市,可以完全对标主流燃油汽车的性能和使用成本,标志着电动汽车已经到达超越燃油车的临界点。未来 10 年,电动汽车的普及将使全球石油消耗量减少约 30%,汽车产业零排放的目标指日可期。此外,随着自动驾驶带来安全性的提升,最终达到零事故出行的愿景。目前,全世界每年有 135 万人死于交通事故,相当于每 24 秒就有 1 人因交通事故丧命,与交通事故相关的成本约占全球GDP的0.5%。根据Waymo公司的最新研究,目前其自动驾驶技术能够规避75%的碰撞事故发生,减少93%的严重受伤,高于理想状态下人类司机模型的62.5%和84%。并且,电动汽车的维护保养和行驶成本相比燃油车可以大幅度降低,甚至趋近于零。首先,电动汽车的运动部件少于 200 个,而燃油汽车的运动部件超过 2000 个,电动汽车在生命周期内的保养成本不到燃油车的一半。电动汽车的电机驱动和车身设计可以支撑160万千米运行,在正常情况下行驶,电池可以支持50万~80万千米的行驶距离,也可以通过更换电池持续使用,是燃油汽车使用寿命的10倍以上,其生命周期内的折旧费用也可以减少到原来的1/10。基于换电技术,电池即服务(battery as a service) 带来了另一个维度的降低出行成本的方法,尤其在商用车领域,换电服务可以降低因为充电时间带来的服务中断,电池仓可以通过大规模的标准化降低电池采购成本,并且也可以优化电池维护和保养,换电还可以更好地利用电网的价格低谷。综上所述,电动汽车的折旧成本、维护成本和使用成本都相当于传统燃油车的1/10,在共享出行的场景,每千米成本从今天的1元左右,降低到0.1元。共享出行的另一个主要开支是软件使用费用,未来自动驾驶模式趋于成熟,按照目前特斯拉自动驾驶订阅模式,每月为1400元,假设共享出行的每月里程为6000千米,则每千米的AI司机费用约为0.02元。综合上述数据,通过电动化和自动驾驶,共享出行的成本可以从今天的1.5元降低到0.12元,百公里出行的成本为12元,如果是多人一起出行,则成本进一步降低,和水、电、网络服务的使用成本基本相同。
本书的写作目的
在自动驾驶发展方兴未艾时,越来越多的公司、工程师、科学家和学生进入或打算进入这个赛道。笔者希望给读者介绍一下当今自动驾驶前沿的技术理论。
本书主要包括以下内容。
简要介绍自动驾驶的概论,包括自动驾驶的分级方法、两种不同的开发结构(模块化和端到端)、自动驾驶的应用场景分类和数据闭环概念等。
在展开前沿技术介绍之前,铺垫了涉及的基础理论,如计算机视觉、图像处理、优化理论、机器学习和深度学习等。
在开始本书的重点之前,读者需要对自动驾驶的软硬件平台有初步了解,硬件部分有传感器(摄像头、激光雷达、毫米波雷达、超声波雷达和车联网等)、计算平台、线控底盘和电子电气架构等,软件部分有软件架构(如AUTOSAR和aSPICE)、软件开发V模型和操作系统。
本书真正的重头戏是第5~9章,即感知、高清地图、定位、规划和控制。感知部分涉及了多种传感器标定、单目测距、深度图估计、3D障碍物检测和跟踪、传感器融合(数据级和任务级)、车道线检测、交通标志检测识别、交通信号灯检测识别、双目视觉、驾驶区域分割、人体姿态估计、驾驶人监控系统和新一代BEV感知框架等; 高清地图部分介绍了高清地图的结构、语义地图的构建、基于车道线地图和基于深度学习的SLAM等; 定位部分和高清地图部分不可分,包括基于车道线地图的定位、基于激光雷达的地图定位、传感器融合的混合式定位以及基于深度学习的定位方法; 规划部分涉及基本的规划理论、对驾驶行为的建模预测、行人行为的建模预测和基于深度学习的模仿学习等; 控制方法相对来说比较传统,但是在回顾经典的车辆运动学和动力学模型、控制理论(如PID和MPC)之外,也讨论了基于深度学习的控制理论。
本书也讨论了自动驾驶研发重要的一个环节: 模拟仿真,介绍了传感器仿真,交通模拟模型、汽车/行人仿真模型、可视化平台以及数字孪生和安全紧要场景数据生成等。
作为自动驾驶不可分的一部分是安全理论,本书涉及著名的NHTSA的安全要素、国际标准化组织功能安全标准ISO 26262和预期功能安全标准ISO 21448(SOTIF)、网络安全、自动驾驶的安全隐患和解决方法以及系统的验证和确认(V&V)技术,还附加了Intel Mobileye的责任敏感性安全模型。
目前自动驾驶技术最接近商业落地的一个场景是自动自主泊车。本书专门具体讨论了泊车系统的视觉系统标定、停车位检测、运动规划、传感器融合(超声波和环视摄像系统)和自主泊车系统,特别讨论了停车场的地图制作和基于深度学习的泊车规划方法。
车联网是自动驾驶的一个重要辅助,可以看作传感器的延伸。本书还讨论了车联网技术的应用,如车路协同、车辆协同感知和车辆编队的规划及控制等。
针对当前比较热门的两种技术,本书也单独给予分析讨论。一是神经渲染,其中包括神经辐射场模型(NeRF)的基础、算法加速、泛化和扩展技术; 二是扩散模型,一种性能最优的内容生成模型,介绍其基础理论、改进方法以及在图像合成、图像图像翻译和文本图像生成等方面的应用。
读者对象
本书读者需要有一定基础,如具备在计算机视觉和机器学习(甚至深度学习)方面的理论基础和实践经验。本书并不是给初学者一个了解自动驾驶的窗口,而是真正深入地进入自动驾驶面临的难题之中,给读者一个全面的认识。本书提供了很多自动驾驶前沿技术的一手资料,希望能够启发和触动自动驾驶一线的研发人员,在遇到问题和困难时开阔思路并发现新的解决方法。
为便于读者阅读和理解,将书中部分彩图以在线图片的形式呈现,请先扫描封底刮刮卡内二维码,再扫描章名旁的二维码查看。
由于笔者水平有限,书中不当之处在所难免,欢迎广大同行和读者批评指正。
黄浴杨子江2024年1月