以下摘录一些章节片段:
1. 概论
自动驾驶系统的认知中有一些模糊的地方,比如自动驾驶系统如何定义的问题,自动驾驶的研发为什么会有那么多的子模块,怎么才算自动驾驶落地等等。本章想先给读者一个概括介绍,了解自动驾驶的分级方法,搞清楚自动驾驶的模块化开发和端到端学习开发的区别,以及都有哪些自动驾驶的应用场景。
本章1.1介绍自动驾驶的分级系统,1.2简介系统的模块化结构和开发方法,而1.3是不常用的端到端的系统开发思路, 1.4介绍自动驾驶的落地场景分类,最后1.5引入数据闭环这个开发平台概念。
关于数据闭环的介绍:
“
2. 基础理论
自动驾驶系统的开发需要掌握一些专业知识,最根本的是机器学习和深度学习,此外还需要有计算机视觉和图像处理的基础,也涉及一些数值计算和优化算法的知识。
该章无法深入地对这些领域做详细的介绍,只能是基本概念和算法的一个快速浏览,中间会抽取关键点进行深入介绍。如果真正想全面学习和掌握这些知识,还需要阅读专门的论文和著作。
首先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重点讨论。
关于机器学习的一段讨论:
“
3. 硬件平台
自动驾驶汽车相比于传统汽车的主要区别在于其装备有大量新传感器和支持自动驾驶算法的强大计算硬件。这里讨论的自动驾驶硬件平台主要包括有车体控制部分、线控地盘、传感器和计算平台。
另外,随着“软件定义汽车(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主要讨论汽车电子电气架构的技术。
关于激光雷达的缺点片段:
关于雷达的分析片段:
关于雷达新技术的讨论片段:
4. 软件平台
随着自动驾驶技术的发展,有更多的软件公司投入到自动驾驶软件平台的开发,比如Nvidia的商用化产品DriveWorks,以及百度开源的阿波罗。
当今汽车智能化的大趋势下,“软件定义汽车”成为产业共识。相较于传统汽车,智能汽车的目标是创造全新的驾驶体验,这也是形成差异化的关键。因此,软件和算法逐步成为了汽车产业的竞争核心要素,同时车辆制造的门槛也由从前的上万个零部件集成能力演变成将上亿行代码组合运行的能力。
随着汽车电子电气架构(EEA)的演进,智能汽车软件架构也渐渐从面向信号架构(Signal-Oriented Architecture)向面向服务架构(Service-Oriented Architecture)转型升级。面向服务架构(SOA)作为一种软件设计方法和理念,具备接口标准化、松耦合、灵活易于扩展等特点。
自动驾驶软件平台基本可分成以下三个层次:
l 系统软件,由硬件抽象层、OS 内核和中间件构成;
l 功能软件,包括自动驾驶通用框架、神经网络模块、传感器模块以及相关中间件;
l 应用软件,包括算法和应用,支持智能座舱以及自动驾驶(包括感知、定位、决策、规划和控制执行等)。
当今在汽车软件平台开发中,最有名的是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。
关于中间件的介绍片段:
“
关于模型训练的并行分布式介绍片段:
“