我和杨子江教授的新书【自动驾驶系统开发】刚刚在清华大学出版社印刷上市。
基本内容介绍:
推荐的学者、企业家和一线专家:
李克强教授和院士写序:
本书主要内容介绍:
• 本书真正的重头戏是第5~9章,即感知、高清地图、定位、规划和控制。感知部分涉及了多种传感器标定、单目测距、深度图估计、3D 障碍物检测和跟踪、传感器融合(数据级和任务级)、车道线检测、交通标志检测识别、交通信号灯检测识 别、双目视觉、驾驶区域分割、人体姿态估计、驾驶人监控系统和新一代 BEV 感 知框架等;高清地图部分介绍了高清地图的结构、语义地图的构建、基于车道线 地图和基于深度学习的 SLAM 等;定位部分和高清地图部分不可分,包括基于 车道线地图的定位、基于激光雷达的地图定位、传感器融合的混合式定位以及 基于深度学习的定位方法;规划部分涉及基本的规划理论、对驾驶行为的建模 预测、行人行为的建模预测和基于深度学习的模仿学习等;控制方法相对来说 比较传统,但是在回顾经典的车辆运动学和动力学模型、控制理论(如 PID 和 MPC)之 外 ,也 讨 论 了 基 于 深 度 学 习 的 控 制 理 论 。
作者的前言片段摘录:
「自动驾驶的发展基本存在两条技术路线。一个是跨越式开发,即直接做L4级别的自动驾驶系统,以高科技公司谷歌和百度为主,他们对车企行业了解不深,把机器人研发的模式用于自动驾驶车辆。注:据说谷歌也曾想从L3级别做起,但是实验发现测试人员一段时间以后很容易相信计算机系统,失去监控的耐心。这个技术路线多半不计成本,采用高清地图和高精密度惯导定位,可没有地图的地方也很难运营(不需要和导航地图接口,直接采用高清地图进行规划,对于大规模导航区域的高清地图下载和全局规划的计算复杂度缺乏认识),安装激光雷达这种最好最昂贵的传感器(当时视觉的深度学习技术比较初级),采用最强的计算平台(因为不是量产,一些L4自动驾驶公司直接采用工控机作为支撑,不需要考虑平台移植的工程难度),面向robotaxi的落地,虽然还没有针对任意场景,但在测试的高速和城市街道场景中,基于较可靠的感知性能,的确提供了面向复杂交通环境下最强的规划决策能力。目前看到的基于数据驱动开发的规划决策算法,多半来自于L4公司,而且其中几个还举办了这方面的竞赛(基于本身提供的开源数据集)。在仿真平台的建设上,也是L4公司远远走在前面(特斯拉基本已经具备L4开发落地能力),包括数据重放和单点测试的可视化能力。高清地图方面,L4公司的技术也比较成熟。收集的传感器数据,L4公司在包括激光雷达和车辆定位轨迹等方面,也高于一般的L2公司。
另一条路线是渐进式开发,即先从L2级别的辅助自动驾驶系统起步,然后逐渐适应更复杂的交通环境,从高速高架慢慢过渡到有闸道有收费站的场景,然后进入城市大街和小路,自动驾驶系统的级别也慢慢演进到L2+、L3、L3+和L4水平。注:最近看到一种新趋势,即L4自动驾驶级别的开发公司,和L2级别自动驾驶的主机厂和Tier-1合作,共同开发L2+的量产级别车辆。渐进式开发的技术路线,一般是主机厂和Tier-1采用,他们首先会考虑成本、车规和量产用户的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阶段的感知框架也有比较大的改进。数据驱动的开发模式倾向于端到端的模型设计和训练,对于规划决策而言就是需要大量的驾驶数据去学习「老司机」的驾驶行为,包括行为克隆的模仿学习,以及通过基于模型强化学习(M-RL)估计行为-策略的联合分布等,不再靠各种约束条件下的最优问题求解。其中轨迹预测是一个重要的前奏,需要对智体交互行为做良好的建模,并分析存在的不确定性影响。对于感知而言,2.0时代需要考虑机器学习模型取代那种传统视觉或信号处理(滤波)的部分,真正做到采集数据来解决问题的开发模式。比如特斯拉最近的BEV和Occupancy Network,都直接通过深度学习模型实现所需信息输出,而不是采用传统视觉和融合理论去二次处理模型输出。传感器融合理论也从后融合升级到模型中特征级融合甚至数据融合(如果同步和标定有一定的先验知识)。这里可以看到Transformer网络在这个感知框架下扮演着重要的角色,同时也给计算平台提出了更高的要求。基于这种数据驱动的自动驾驶平台需求,大模型的设计思路也被引入,因为大量数据的获取,包括高效的数据筛选、自动标注和仿真技术辅助,需要在服务器维护一个老师大模型支持各种布置到车端的学生小模型训练和迭代升级。」
本书的目录如下:
关于各章的内容,下面做逐个开头介绍,并摘录一些内容片段:
第一章、概论
自动驾驶系统的认知中有一些模糊的地方,比如自动驾驶系统如何定义的问题,自动驾驶的研发为什么会有那么多的子模块,怎么才算自动驾驶落地等等。本章想先给读者一个概括介绍,了解自动驾驶的分级方法,搞清楚自动驾驶的模块化开发和端到端学习开发的区别,以及都有哪些自动驾驶的应用场景。
本章1.1介绍自动驾驶的分级系统,1.2简介系统的模块化结构和开发方法,而1.3是不常用的端到端的系统开发思路, 1.4介绍自动驾驶的落地场景分类,最后1.5引入数据闭环这个开发平台概念。
关于数据闭环的介绍:
第二章、基础理论
自动驾驶系统的开发需要掌握一些专业知识,最根本的是机器学习和深度学习,此外还需要有计算机视觉和图像处理的基础,也涉及一些数值计算和优化算法的知识。
该章无法深入地对这些领域做详细的介绍,只能是基本概念和算法的一个快速浏览,中间会抽取关键点进行深入介绍。如果真正想全面学习和掌握这些知识,还需要阅读专门的论文和著作。
首先2.1介绍计算机视觉的框架,重点取几个关键点进行分析,比如SIFT特征提取、摄像头的标定、运动估计和运动恢复结构(SFM),其实另外一些模块,比如立体视觉(stereo vision)、单目形状重建(shape from X)还有目标检测/识别/跟踪/分割,都会在第5章感知中重点介绍,这里不再重复;2.2简介图像处理理论,特别分析两种图像去噪的算法,即双边滤波(BLF,Bilateral filtering)和非邻域均值(Non-local Means,NLM)滤波;2.3是优化理论一览,特别讨论了两种常见的非线性LS方法,G-N法和L-M法;2.4概述机器学习的理论,重点介绍常用的支持向量机和随机森林;2.5对深度学习理论进行了概述,其中对卷积神经网络(CNN)、递归神经网络(RNN)、生成对抗网络(GAN)和Transformer重点讨论。
关于机器学习的一段讨论:
第三章、硬件平台
自动驾驶汽车相比于传统汽车的主要区别在于其装备有大量新传感器和支持自动驾驶算法的强大计算硬件。这里讨论的自动驾驶硬件平台主要包括有车体控制部分、线控地盘、传感器和计算平台。
另外,随着「软件定义汽车(SDV)」的大潮,电子电气架构(EEA)也出现了新的演进和发展,包括滑板底盘的出现。而智能汽车的发展,包括智能驾驶汽车,顺应了当今汽车「新四化」(电动化、网联化、智能化和共享化)的变革趋势,也推动计算机技术、通信网络技术、人工智能和大数据云计算等在汽车产业的深入应用。
本章3.1介绍传感器,即摄像头、激光雷达、毫米波雷达、超声波雷达、惯导(IMU)、导航系统(GPS)和车联网(V2X),3.2是简述车体控制,包括VCU/ECU/MCU、CAN总线、ESP和EPS,3.3主要讨论目前的商业计算平台,主要是几家如Intel Mobileye的 EQ系列,Nvidia公司的Drive Xavier和Orin,TI 的TDA4VM和Qualcomm公司 的Ride,3.4介绍线控底盘技术,3.5主要讨论汽车电子电气架构的技术。
关于激光雷达的缺点片段:
关于雷达的分析片段:
关于雷达新技术的讨论片段:
第四章、软件平台
随着自动驾驶技术的发展,有更多的软件公司投入到自动驾驶软件平台的开发,比如Nvidia的商用化产品DriveWorks,以及百度开源的阿波罗。
当今汽车智能化的大趋势下,「软件定义汽车」成为产业共识。相较于传统汽车,智能汽车的目标是创造全新的驾驶体验,这也是形成差异化的关键。因此,软件和算法逐步成为了汽车产业的竞争核心要素,同时车辆制造的门槛也由从前的上万个零部件集成能力演变成将上亿行代码组合运行的能力。
随着汽车电子电气架构(EEA)的演进,智能汽车软件架构也渐渐从面向信号架构(Signal-Oriented Architecture)向面向服务架构(Service-Oriented Architecture)转型升级。面向服务架构(SOA)作为一种软件设计方法和理念,具备接口标准化、松耦合、灵活易于扩展等特点。
自动驾驶软件平台基本可分成以下三个层次:
当今在汽车软件平台开发中,最有名的是AUTOSAR联盟,它提出了一个开源的软件开发标准。在传统软件开发V-模型基础上,汽车软件设计标准aSPICE以及著名的功能安全标准ISO 26262,都提出了各自的软件开发流程。
下面详细地讨论自动驾驶软件平台的问题。4.1介绍汽车行业的软件架构标准AUTOSAR,4.2软件开发过程中著名的V-模型,4.3简述一个汽车软件设计流程标准aSPICE,4.4介绍著名的安全标准ISO 26262定义的软件开发流程,4.5是Nvidia开发的自动驾驶软件框架DriveWorks,而4.6分析自动驾驶采用的操作系统平台, 4.7介绍一下自动驾驶云平台,最后4.8介绍DevOps和MLOps。
关于中间件的介绍片段:
关于模型训练的并行分布式介绍片段:「
第五章、感知模块
我们俗称自动驾驶要回答几个问题:
感知模块相当于自动驾驶车辆的「眼睛」,它跟传感器直接相接,获取大量传感器的数据输入,然后分析处理后得到周围环境的理解,包括障碍物检测,跟踪和距离估计,车道识别和分割,交通标志和红绿灯识别等。由于现在自动驾驶系统都是装载多个多种传感器,所以传感器融合是必要的也是重要的感知部分,甚至一些系统把它单独列出来,独立于感知模块。
本章从5.1车载各种传感器的标定开始,5.2介绍了单目摄像头测距的各种方法,以及5.3单目图像的深度估计算法;接着5.4分析了目前单目摄像头的3-D障碍物检测方法,即3-D目标长方体框在图像的投影而不是2-D矩形框而已;然后5.5对障碍物跟踪方法展开讨论,包括单目标和多目标情形;传感器融合是重要的问题,5.6从数据级和任务级两个层次分析了融合的方法;5.7、5.8和5.9主要讨论车载视觉系统关心的三个问题:车道线检测、交通牌识别和红绿灯识别; 5.10重点讨论视觉摄像头看到的可驾驶区域问题,即语义的道路分割;5.11是基于立体视觉的感知模块分析;由于行人的行为分析需要,人体姿态估计在5.12讨论; 5.13特别提到驾驶员监控系统(DMS)的实现算法;5.14对当前最新的BEV感知系统做深入讨论。
关于单目深度图估计的神经网络方法片段:
关于传感器融合的片段:
关于立体视觉的介绍片段:
关于BEV感知网络的介绍片段:
第六章、高清地图
「高清地图(HD map)」概念于2010年Mercedes-Benz首次引入,随后于2013年为Bertha Drive 项目做出贡献。在Bertha Drive项目中,Mercedes-Benz S500以完全自主的模式完成了Bertha-Benz Memorial Route,使用高度精确且信息丰富的3D路线图,该路线图后来被一家名为HERE的参与地图公司命名为「高清(HD)实时地图」。
高清地图(HD Map),在自动驾驶领域被看得很重,因为它能提供先验知识,让感知难度降低,同时规划有的放矢。
高清地图不是新的东西,已经有一些地图和自动驾驶公司开始制作和使用HD Map。但是,HD Map的制作和包含的信息以及精度仍然没有统一的共识。
本章6.1首先介绍高清地图的基本类型、层次、格式和制作方法,然后6.2重点讨论语义地图的各种生成方法,6.3强调车道线级别高清地图的制作方法,最后6.4介绍基于深度学习的SLAM方法。
高清地图制作的介绍片段:
第七章、定位模块
就道路上的自动驾驶车辆而言,首先重要的任务之一是将车辆定位在道路上。为此,车辆需要考虑来自多个传感器的信息,并将其与来自道路地图的数据融合。道路定位问题可以归结为三个部分:第一个是车辆当前行驶的道路确定;事实上,全球导航卫星系统还不够精确,无法自行推断出这些信息,因此需要一个滤波步骤;第二个是估计车辆在车道中的位置;最后第三个是评估车辆当前行驶的车道。这里讨论主要限于后两个部分,因为第一个在基于导航地图的定位中已经有成熟的方案,比如地图匹配(车辆位置与地图的路网相匹配)等。
有两种技术适合这个任务。第一种方法取决于高清地图存储的地标精确位置(例如车道标记),系统必须将检测的地标与地图中存储的地标相匹配。第二种技术完全依赖于车载传感器检测视觉地标,例如道路上的所有车道;然而,由于其他车辆的遮挡,有时无法检测到道路上所有车道标记;提取的相关道路级特征送入一个高级融合框架,该框架评估车道数和车辆行驶的车道。本章只限于讨论第一种方法。
基于地图的定位实际上分成两个阶段。在位置识别(place recognition)阶段,将传感器输出与一组地理标记的感兴趣地图区域进行比较,确定车辆在地图中的初始位置。随后,在地图度量定位(map metric localization)阶段,不断将传感器输出与经过的地图当前区域对齐,这样车辆在地图上运动的同时被跟踪。
因此,定位需要感知模块提供数据输入和地图的信息进行匹配;那么类似于感知模块,定位模块也会采用传感器融合的思路,即采用GPS/DGPS(如RTK),IMU,摄像头,激光雷达加高清地图的组合。
GPS定位是经典的方法,但是环境中电磁波的传播会因为天气、大气层,高楼大厦和山丘等因素产生时间误差,并造成估计的距离误差。为了补偿部分误差,提出了差分GPS即DGPS,比如RTK技术。千寻网络背靠中国兵器工业集团和阿里巴巴集团两个大公司,在全国提供这方面的服务。
还有另外两个定位算法:分为里程计法和惯性导航法。里程计( Odometry ) 是一种被广泛应用的方式,通过安装在车轮上的光电编码器(wheel encoder)记录车辆的运动过程从而估计其位置。惯性导航法(IMU)则利用加速度计和陀螺仪实现定位,里程计由于轮子侧滑会带来误差,而惯导的积分累积误差也会带来困扰,里程计和惯性导航的定位精度一般比较差,最好和GPS或者激光雷达/摄像头联合使用实现航位推测(dead reckoning)。
激光雷达点云数据做定位的方法,是要求感知输入的激光雷达点云(有的方法允许反射图)和高清地图的点云匹配,直接ICP计算量太大。大家熟悉的算法,常用的有正态分布变换(NDT,normal distributions transform),还有斯坦福大学的直方图滤波器(histogram filter)和粒子滤波(particle filter)之类。算法要求车载系统有激光雷达传感器,能够实时采集现场点云数据。也有压缩点云数据的快速匹配定位方法,比如TomTom的RoadDNA,Civil Maps的指纹图(Fingerprint Map),定位难度和精度上会有所折衷。
摄像头定位是视觉里程计或者视觉SLAM采用的,以前有不少研究「基于图像的重定位(Image-based Re-localization)」问题,用于SLAM的闭环(loop closure)检测和跟踪失败(tracking failure)恢复等等。SLAM方法包括稀疏法、致密法和半致密法,但在自动驾驶这个场景中,稀疏法是最合适的。不过,单纯靠视觉的特征点来实现定位是不足的,还需要语义目标的辅助,即语义地图。在自动驾驶中,语义地图最实用的是基于车道线的地图。
本章是前一章高清地图的衔接,首先7.1介绍低成本的基于车道线地图的定位技术,然后7.2讨论基于激光雷达的定位算法,接着7.3分析多传感器的融合定位方法,最后7.4介绍基于深度学习的定位方法。
基于深度学习的视觉定位分析片段:
第八章、规划(包括预测)模块
自动驾驶中的规划模块是确定车辆的动作,它基于输入的感知结果,而结果将送入控制模块确定车辆的实际操作。前面提到感知相当于自动驾驶的「眼睛「,那么规划的作用就相当于」大脑「,是非常重要的模块。
首先,需要确定几个专业词的表述:路线 = route;路径 = path;轨迹 = trajectory。
本章8.1首先介绍基本的规划理论,分三个层次,即路线规划、行为规划和运动规划;8.2讨论驾驶行为建模和预测,主要是基于数据驱动的机器学习方法;8.3扩展到行人行为的建模和预测问题;最后8.4附带讨论如何学习老司机的驾驶技术,是8.2课题的深入。
关于运动规划的讨论片段:
关于神经规划器的介绍片段:
关于车辆预测方法的分析片段:
第九章、控制模块
前 面 提 到 感 知 是 自 动 驾 驶 的 「眼 睛 」,规 划 是 自 动 驾 驶 的 「大 脑 」, 而控制就是自动驾驶的「四肢」。
自动驾驶系统的执行力也称为运动控制,是将意图转换为动作的过 程;其主要目的是向硬件提供必要的输入来执行规划的意图,从而生成 所需的运动。控制器根据力量映射现实世界中的交互,而自动驾驶系统 中的认知导航和规划算法通常关注车辆相对于其环境的速度和位置。控 制系统内部的测量值用于确定系统的性能,因此控制器做出反应,拒绝干 扰并将系统的动力学改变为所需状态。
自动驾驶的控制也看成是运动控制,就是为车辆生成指令,一般为线 控 (wire-control)模 式 ,即 方 向 盘 控 制 的 角 度 ,加 速 踏 板 和 制 动 踏 板 控 制 的速度或加速度,同时在实际环境下(道路、风、车轮滑移等)产生实际行 驶轨迹。
首 先 ,需 要 确 定 几 个 专 业 词 的 表 述 : 路 线 = route 、路 径 = path 、轨迹 =trajectory。
车辆的运动控制可以大致分为两个任务:车辆横向运动的转向控制和纵向运动的加速踏板和制动踏板控制。横向控制系统旨在控制车辆在 车道上的位置,并执行其他横向动作,例如变道或避免碰撞的动作。纵向 控制可控制车辆的加速度,使其在道路上保持理想的速度,与前一辆车辆 保持安全距离,避免追尾事故。 当前传统的车辆控制方法建立在经典的最优控制理论基础上,该理 论可以表述为在一组状态和控制动作上定义的成本函数。控制输入通常 定义在有限时间范围内,并限制在可行状态空间。这样通过基于规则的 控制器对自动驾驶车辆进行操作,其中参数由开发人员设置,并在模拟和 现场测试后手动调整。 而深度学习不必在所有可预见场景保持性能条件下反复调整每个参 数,而是使开发人员能够描述所需的行为,并通过学习让系统表现良好, 并将其推广到新的环境中。学习算法可以作为学习控制器的一部分,在 运动控制模块中使用,也可以作为完整的终端控制系统使用,该系统将传 感器数据直接映射到控制命令,即端到端方法。
本章9.1先介绍车辆的运动学和动力学模型,这是车辆控制的基础;9.2介绍传统的控制算法,即PID、LQR和MPC;9.3讨论自动驾驶普遍采用的路径和轨迹稳定的控制算法,包括纯跟踪控制、后轮位置反馈、前轮位置反馈、基于控制Lyapunov函数的反馈控制和线性化输出的反馈控制等;最后,9.4讨论基于深度学习的自动驾驶控制算法。
摘录自动驾驶控制模型的分析片段:
第十章、仿真模拟
在现实世界中测试自动驾驶技术的性能和安全是一个巨大的工程。 通 常 认 为 , 大 概 需 要 1 0 0 亿 英 里 (1 英 里 ≈ 1 .6 0 9 千 米 ) 的 试 驾 数 据 来 优 化一个开发的自动驾驶系统,即便是组建一支1000辆车的车队也需要花 费约50年的时间完成。由于无法进行充分的道路测试(道路测试需要 投入的时间和费用极其昂贵),因此需要基于计算机模拟仿真系统帮助在 虚拟环境中开发和测试自动驾驶系统。
众所周知,谷歌公司开发的仿真系统 CarCraft已经跑了超过150亿 英 里 (每 天 超 过 1000 万 英 里 ),而 实 际 车 载 测 试 才 1800 万 英 里 (每 个 月 大 概测试100万英里)。其中将实际上车测试的问题在模拟仿真系统中进 行 复 现 并 添 加 各 种 变 化 被 称 为 「模 糊 化 」(fuz zing ),当 时 开 发 的 可 视 化 平 台Xview就是模拟仿真系统的一部分,相当于调试可视化的显示界面。
这样的模拟仿真系统的构成一般包括多个算法模块,例如:
本章介绍一些搭建仿真系统的模块。10.1介绍传感器的仿真,比如摄像头的图形学成像技术,激光雷达和毫米波雷达的数据模拟合成等;10.2以开源软件SUMO为基础,介绍交通仿真模型;10.3介绍车辆和行人CAD模型,并讨论深度学习建模的车辆动力学,另外介绍了一些计算机视觉方法方面渲染人体和人体运动的研究;10.4以美国网约出租车公司Uber开源的可视化平台为例,介绍自动驾驶的可视化技术;10.5介绍道路网络仿真环境的建立;10.6分析场景库的自动驾驶测试技术(包括场景描述语言OpenSCENARIO 和场景库例子 PEGASUS);最后10.7讨论数字孪生构建安全紧要数据的神经网络方法。
摘录场景定义的片段:
十一章、安全模型
安全一直是车辆行业非常重视的问题,而研发自动驾驶的初衷也是 降低人为因素的交通事故。美国权威机构的2018年报告显示,美国每天 有超过100人死于与非自动驾驶汽车有关的交通事故。同样一项被广泛 引用的研究显示,近两年半美国发生了200多万起撞车事故,其中94% 的事故是由司机造成的。
不过,在自动驾驶即将进入商业落地轨道时,大家发现以前的安全标 准和测试过程有些不适合,故对一些新的测试自动驾驶系统的安全标准 进行了修订。 自动驾驶的关键模块,如感知、规划和控制等,大量地使用了 AI,例 如,计算机视觉、机器学习和深度神经网络的算法,但一般这些算法多半 是概率地对待解决的问题建模,这无疑对过去的安全模型和测试方法是 一种新的挑战。
自动驾驶研发的公司也在探讨这些问题,并提出了自己的安全模型, 如 Mobileye 的 RSS 模 型 和 NVIDIA 的 SFF 模 型 。 不 少 自 动 驾 驶 公 司 (主要是L4级别)纷纷发布了自己的安全报告,如谷歌 WayMo、福特、 G M 、N VIDIA 、Uber 和 AutoX 等 。 自动驾驶仍然受到来自不同攻击的威胁困扰,这些攻击可以分为物理攻击、网络攻击和基于学习的对抗性攻击。不可避免的是,基于深度学 习 的 自 动 驾 驶 系 统 ,其 安 全 性 (safety&security)受 到 这 些 攻 击 的 严 重 挑 战,因此应研究对策,减轻潜在的风险。 如果自动驾驶能够量产或者大规模部署,需要对其进行大量的验证 和确认(V&V)。验证与确认最大化场景覆盖率的常见策略是在虚拟仿 真中进行,并模拟生成大量场景样本。
基于场景采样的 V&V 所面临的挑战是,确定合理覆盖所需的样本量, 从而使得自动驾驶不当操作所产生的风险得以控制。然而,另一组基于形式验 证 (formalverification)的 方 法 通 过 规 范 满 足 (specificationsatisfaction)处 理场景覆盖。
目前自动驾驶安全方面的开放性挑战问题包括以下几点。
本章11.1介绍一些安全基本概念,11.2分析NHTSA的12个安全要素,11.3介绍功能安全标准ISO26262,11.4讨论预期功能安全标准SOTIF,11.5对Mobileye的安全模型RSS进行分析,11.6介绍网络安全,而11.7阐述自动驾驶的安全隐患以及解决方案,最后11.8介绍自动驾驶系统的验证和确认(V&V)技术。
摘录Mobileye的安全模型片段:
第十二章、泊车
自动驾驶技术的产品落地涉及应用场景,所谓「麻雀虽小,五脏俱 全」,自动和自主泊车是一个有实际应用价值的场景。前面已经对自动驾 驶内部结构和算法进行了分析和讨论,本章将专注于自动泊车这个落地 场景,将前面讨论的技术模块具体化展开。
其中12.1对泊车系统的基本介绍;12.2讨论泊车系统特有的环视摄像头系统如何标定;12.3介绍鱼眼镜头的感知方法;12.4对泊车位检测方法进行讨论;12.5分析泊车的一些具体运动规划算法;12.6分析传感器融合(超声波和摄像头)在自动泊车的体现;12.7针对自动代客泊车,也是泊车中最高级别的自动驾驶方法进行分析;12.8介绍泊车场的语义地图制作和定位技术,12.9介绍自动泊车在泊车场的深度学习规划方法。
摘录泊车的规划方法片段:
第十三章、车联网
数字化设备正变得越来越普遍并且相互联系。这些设备向数字生态系统智能部分的演进创造了迄今为止尚未解决安全问题的新颖应用。一个特定的例子是车辆,随着车辆从简单的交通方式发展到具有新的感知和通讯功能的智能实体,就成为智能城市的活跃成员。
在第三章3.1.7节已经简单介绍了车联网(V2X)的基础,即DSRC和Cellular-V2X通信技术。车联网包括通过V2V(车对车),V2I(车对基础设施)和V2P(车对行人)交互而与公共网络进行通信的车辆,其收集和实时共享有关路网状况的关键信息。
使用车载单元,车辆可以彼此(V2V)和与路边单元(V2I)进行通信。这可以实现多种其他形式的通信,例如车对宽带云(V2B)(其中车与监视数据中心进行通信),车对人(V2H)这种脆弱的道路使用者即行人或自行车进行通信,或者车辆对传感器(V2S)即车辆与环境中嵌入的传感器进行通信。
对于自动驾驶的车辆而言,和高清地图的作用类似,车联网本身就是一种传感器的延伸,可以看成为「传感器」。
与自动驾驶技术中常用的摄像头或激光雷达相比,V2X技术具备突破视觉死角和跨越遮挡物获取信息的能力,同时也可以和其他车辆及设施共享实时驾驶状态信息,还可以通过研判算法产生预测信息。另外,V2X是唯一不受天气状况影响的「传感器」技术,无论雨、雾或强光照射都不会影响其正常工作。因此V2X技术广泛应用于交通运输尤其是自动驾驶领域。
本章介绍车联网在自动驾驶应用的技术。13.1讨论智能网联汽车(CAV)的发展;13.2介绍车联网的社交特性及其AI元素;13.3对各种边缘计算进行分析;13.4则讨论车辆-路端的协同方法;13.5介绍车辆通过车联网进行协同感知的技术;13.6讨论编组车队的规划与控制。
关于感知协同的分析片段:
第十四章、神经渲染
合成照片级逼真的图像和视频是计算机图形学的核心,也是几十年来研究的焦点。传统意义上,场景的合成图像是用渲染算法(如光栅化或光线跟踪)生成的,这些算法将特别定义的几何和材质属性表示作为输入。总的来说,这些输入定义了实际场景和渲染的内容,称为场景表征(场景由一个或多个目标组成)。用可微分渲染的损失函数从观测中重建这样的场景表征被称为逆图形学或逆渲染。
神经渲染是一个迅速兴起的领域,它可以紧凑地表示场景,通过神经网络从现有的观察中学习渲染。神经渲染的主要思想是将经典(基于物理学的)计算机图形学的见解与深度学习的最新进展相结合。与经典计算机图形学类似,神经渲染的目标是以一种可控的方式生成照片般真实的图像。例如,新视点合成、重打光、场景变形和合成。
"神经渲染 "这个术语经常被用于两个不同的概念。第一种范式,是神经网络被训练为从一些2-D输入信号(如语义标签或栅格化的智体几何)直接映射到输出图像,即把神经网络训练为一个渲染引擎。而另外一种范式,是一个神经网络代表一个特定场景的形状或外观,并且代表用一个传统的图形 "引擎 "进行渲染,是以分析而不是学习方式去定义。与之前的范式不同,这个神经网络并不学习如何渲染,而是学习以3-D方式表征一个场景,然后根据图像生成的物理学原理渲染该场景。神经辐射场(NeRF)就是这样的技术之一,其利用体渲染生成场景图像。
本章14.1是原始NeRF理论介绍,14.2讨论NeRF的加速方法,包括自动积分(AutoInt)方法和Plenoxels模型,而14.3是讨论动态场景的渲染技术,在14.4分析重打光方法, 14.5介绍NeRF的泛化问题,最后14.6介绍最新的质量改进方法。
关于NeRF的泛化分析片段:
第十五章、扩散模型
给定感兴趣分布的观测样本x,生成模型的目标是学习对其真实数据分布p(x)建模。一旦完成学习,可以根据该近似模型随意生成新的样本。此外,在某些公式下,能够用学习模型来评估观测或采样数据的似然。
生成对抗网络(GAN)对复杂分布的采样过程进行建模,以对抗方式学习。另一类生成模型被称为「基于似然」,试图学习一种为观测数据样本分配一个高似然的模型,包括自回归(AR)模型、归一化流(NF)和变分自编码器(VAE)。有一种类似的方法,是基于能量的建模(EBM),其中一个分布被学习为一个任意灵活的能量函数,然后归一化。
深度学习中生成模型类根据隐含参数随机生成观测结果。然而,目前的生成模型面临四大问题,即生成过程缓慢(采样效率低)、数据处理类型单一(泛化能力弱)、次优的似然和模型需要降维等。
最近,扩散模型凭借其强大的生成能力,成为生成模型的热门之一。应用领域包括计算机视觉、语音生成、生物信息学和自然语言处理等。
迄今为止,在计算机视觉领域中,扩散模型已被应用于各种生成式建模任务,如图像生成(image generation)、图像超分(mage super-resolution)、图像修复(image inpainting)、图像编辑(image editing)和图像翻译(image-to-image translation)等。此外,扩散模型学习的潜表征在鉴别性任务中也很有用,例如图像分割、分类和异常检测。
扩散概率模型最初是由非平衡热力学(non-equilibrium thermodynamics)启发而提出的潜变量生成模型。这类模型由两个过程组成,第一个是正向过程,在多个尺度上添加噪声,逐步干扰数据分布。然后,第二个是反向过程,学习恢复数据结构。
本章涉及扩散模型的理论和应用。15.1讨论带Langevin动力学的基于分数生成网络;15.2介绍去噪扩散概率模型;15.3分析去噪扩散隐式模型(DDIMs);15.4则讨论封装以前方法的SDE框架;15.5介绍扩散模型在图像和视频合成的应用;15.6讨论另一个应用图像-图像翻译;15.7介绍扩散模型的应用文本-图像/视频生成; 15.8总结扩散模型的一些改进方法。
关于文本-到-图像/视频合成的讨论片段: