今年,特斯拉完全驾驶系统测试版发布后,市场上关于特斯拉自动驾驶事故的新闻引起了人们的关注。我们对自动驾驶出现在日常基础的出行服务中充满期待,也希望自动驾驶能够出现在高速公路货物运输、低速自动驾驶物流配送中,为人类工作提升效率和服务水平。
但我们又深知在普及应用前,这一赛道涉及了监管环境、自动驾驶车辆测试及部署、责任划分、数据隐私与安全、以及 5G 与通信等多个方面,还需要对技术进行多方探索。其中,自动驾驶系统测试与人们的出行安全相关性极高,有关自动驾驶系统测试技术的讨论愈发热烈。
络绎学术Online 第十一期,我们邀请到了清华大学交叉信息核心技术研究院(西安)可信人工智能创新中心主任、西安交通大学讲座教授、深信科创公司创始人杨子江为大家分享:自动驾驶测试技术。
杨子江认为,自动驾驶是人类近百年交通工具中最大的变革。随着云计算的发展和产业升级,自动驾驶可以将从 A 到 B 的过程变成一个更标准化的服务。
图 | 自动驾驶是近百年交通最大的变革,来源:杨子江教授分享
美国汽车工程师学会(Society of Automotive Engineers,简称 SAE )将自动驾驶定义了 6 个级别,范围从无自动化(级别 0)到完全自动化(级别 5)。每个自动化级别都为车辆规定了更高程度的自主驾驶功能。这就对处理能力和数据路径连接性提出了更高要求。随着车辆由人控制转变为汽车自主控制,安全性变得愈发重要,并且成为 ADAS 系统设计中最为关键的要素之一。
图 | 自动驾驶的 6 个级别,来源:SAE ,络绎知图整理
自动驾驶系统(Autonomous Driving System,ADS)是一种集成高精度传感器、人工智能和地图导航系统等模块的信息物理融合系统。自动驾驶软件已经逐渐应用于民用汽车辅助驾驶器、自动物流机器人、军用无人机、无人舰以及群体智能蜂群作战系统等领域。
该类系统中的自动驾驶软件完成了从高级辅助驾驶到无人驾驶任务中关键的感知、定位、预测、规划和控制任务。随着深度学习和强化学习等人工智能技术的发展和车载硬件设备的不断升级,高级别的自动驾驶软件已经逐渐应用于多种安全攸关的场景中,保障其运行稳定性与可靠性的测试技术逐渐成为学术界和产业界的研究重点。
图 | 自动驾驶系统示意图,来源:冯洋教授分享
自动驾驶系统可以分为感知层、决策层、执行层。
感知层包含了对环境信息和车内信息的采集与处理,涉及道路边界检测、车辆检测、行人检测等多个方面。这一层会采用一种先进传感器技术,其采用的传感器包括激光雷达、摄像头、毫米波雷达、超声波雷达、速度和加速度传感器等。摄像头有着分辨率高、速度快、传递的信息丰富、成本低等优势。依赖深度学习对复杂数据的强大学习能力能极大提高环境感知的分类能力;毫米波雷达有着反应速度快、操作简单、无视遮挡等优势,能在各种条件下的提供目标有效的位置和速度;激光雷达有着精确的 3D 感知能力、对光线变化不敏感、信息丰富等优势。图像数据无法提供准确的空间信息、毫米波雷达拥有极低的分辨率、激光雷达有着十分昂贵的价格。自动驾驶汽车的平稳运行需要适应不同的环境,因此多传感融合技术比单一传感器更具优势。
决策层包含了依据感知信息来进行决策判断,确定适当工作模型,制定相应控制策略,替代人类驾驶员做出驾驶决策。在这一过程中,自动驾驶系统会从环境感知模块中获取道路拓扑结构信息、实时交通信息、障碍物(交通参与者)信息和主车自身的状态信息决策规划等重要信息。在获得这些信息后,决策层需要对当前环境作出分析,然后对底层控制执行模块下达指令。决策层的理论包括模糊推理、强化学习、神经网络和贝叶斯网络技术等。场景和路况的多样化对驾驶决策的算法优化提出了更高的要求,在数据处理和模型优化上需要不断突破瓶颈。
执行层包含了系统在做出决策后,按照决策结果对车辆进行控制。线控执行主要包括线控制动、转向和油门。车辆的各个操控系统都需要能够通过总线与决策系统相连接,并且按照决策系统发出的总线指令,精确地控制加速程度、制动程度、转向幅度、灯光控制等驾驶动作,从而实现车辆的自主驾驶。制动控制是自动驾驶执行系统的重要部分。目前 ADAS 与制动系统高度关联的功能模块包括 ESP(车身稳定系统)/ AP(自动泊车)/ ACC(自适应巡航)/ AEB(自动紧急制动)等。
自动驾驶系统的发展为自动驾驶汽车行业的发展提速做了技术储备,在行业测试标准政策尚未统一的情况下,自动驾驶测试的挑战也很大。普遍认知,自动驾驶需要 1.5 亿英里的测试,才能使自动驾驶系统超过人类驾驶员的安全水平,这在算力要求上是非常高的。
目前的汽车软件系统有1 亿行以上的代码,超过波音 787 ,FB 的代码量,而自动驾驶汽车代码量超过5 亿行,比前者更甚。自动驾驶测试融合了实时嵌入式软件、云计算软件、AI 软件、消费者软件、模拟仿真软件和大规模多智能体协同系统软件,是现代软件行业的集大成者。
自动驾驶系统的复杂性对安全性和可靠性提出了更高的要求,主要体现在以下三个方面:
高集成度的运行环境
自动驾驶软件是在基本的车辆平台上添加的一个认知智能层。系统和车辆内部各类软硬件主体实现联接交互十分重要。软件质量也会同时受到影响,线管缺陷也会被外部模块放大。
高复杂度的数据驱动软件系统
传统汽车辅助驾驶软件对于这类汽车内外部数据一般不做直接处理,少量语义丰富数据,如图像会直接转由驾驶人员自行判断。复杂数据和复杂功能逻辑使得自动驾驶软件规模和复杂程度极高。
高不确定性的系统行为
部分智能模型算法本身理论上具有不可解释性和黑盒运行下的不透明性。用户难以划分模型运行的中间状态,进而无法直接挖掘出模型错误行为的触发机理。
目前,自动驾驶软件系统的测试技术主要在四个方面:软件测试、仿真测试、实景测试、组件测试。
软件测试
面向系统代码级别的软件测试手段相关研究目前开发的还比较少。传统测试方法,如覆盖测试、分支测试等不再有效。对自动驾驶软件源码普遍庞大的代码规模来说,相应的测试用例生成和测试规范标准建立也是研究人员面临的另一个难点。
仿真测试
仿真测试提供了在虚拟环境中重现真实车辆系统特征的方法,它构建了与系统相互作用的内外部因素和条件,从而能在不同程度上模拟自动驾驶车辆面临的多种场景条件。一个完整的自动驾驶仿真平台,需要包括静态场景还原、动态案例仿真、传感器仿真、车辆动力学仿真、并行加速计算等功能,并能够较为容易的接入自动驾驶感知和决策控制系统。自动驾驶仿真测试平台必须要具备真实还原测试场景的能力、高效利用路采数据生成仿真场景的能力、云端大规模并行加速的能力这几种核心能力。仿真测试必须满足自动驾驶感知、决策规划和控制全栈算法的闭环,符合汽车“V” 字开发流程。
图 | “V”字开发模型示意图
仿真测试不能代替道路测试,但是仿真测试是一种重要的测试方法,在安全性和效率上具有优势。仿真测试对交通场景仿真的要求包括交通标志、车道线-规则与破损、道路特征、复杂立交、模仿人类动作、动物、球模型、固定加速度行为等。
仿真测试具有简单、低成本且易于复制的特点,测试结果的可靠性高度依赖模拟传感器,因此对车辆和环境模型的准确性要求也比较高。
实景测试
封闭场景测认识很难再现所有的复杂交通场景,而公路实景测试受限于真实车辆部署运行成本和人员测试效率,同时需要考虑对应的社会风险。
实景测试的确能去除理想化数据模型的不足,为自动驾驶软件提供符合真实道路交通场景的测试数据和测试条件,但是其成本相对较高,规模通常较小,无法对输入域及车辆运行环境进行较为完整的覆盖。
组件测试
自动驾驶组件内嵌的神经网络模型算法存在不可解释性,模型结果与模型代码结构不存在类似传统软件中的强相关性,这使得如代码覆盖、分支覆盖等测试方法无法直接应用。因此,数据驱动测试的概念再自动驾驶组件测试中极为重要。
自动驾驶测试系统的组件测试主要包括感知组件、决策规划组件以及控制组件。感知组件测试属于深度学习模型测试技术,基本上是对一般 AI 模型缺陷测试方法再道路驾驶垂直领域的延伸,主流的手段包括测试生成和模型算法分析。
测试生成包含大规模的测试数据扩增和有针对性的特殊测试数据构建。以 L3 级自动驾驶功能为例,车企确定好传感器选型之后,就进入到感知模块量产前的测试验证阶段。决策规划组件测试需要传统车辆路径规划算法、专家系统和机器学习的有效结合,以提高自动驾驶汽车规划和决策能力,这也为新的测试理论方法提供了思路。控制组件测试设计对应的底盘硬件,包含几种主要类型、速度控制、转向控制、制动控制和稳定控制。在针对传统控制逻辑和控制算法的测试上,形式化方法作用仍然占据主要的地位。
在实际案例分享中,杨子江也同时分享介绍了深信科创自主研发的自动驾驶仿真测试平台 SelfDriveGuard 。
图 | 自动驾驶仿真测试平台 SelfDriveGuard,来源:杨子江教授分享
SelfDriveGuard 作为具有图形界面的自动驾驶汽车模拟测试平台,它集成了驾驶环境仿真模拟器和自动驾驶控制车辆模拟器。它能够帮助开发者或者测试团队将仿真模拟测试应用到无人车安全测试环节中。
平台提供简洁的 UI 和用户接口,开发者只需要做一些简单的操作就可以实用进行模拟测试。平台具有执行引擎可扩展、自研场景描述语言和部署灵活这三个特征。SelfDriveGuard 提供直观简洁的自研场景描述语言 Scenest,这种场景描述语言符合自然语言表达习惯,用户通过指定起点、终点、中间途径的方式,可以规划 NPC 车辆的行驶路径,模拟路况。用户不需要了解驾驶环境模拟器的技术细节,也不需要复杂的操作,撰写符合语法规范的测试脚本和测试参照后,SelfDriveGuard 会自动解析并进行模拟测试。模拟测试结束后,自动分条罗列出模拟过程中实际情况与测试参照不一致的地方。
SelfDriveGuard 在模拟碰撞异常和复杂路况的情况时都有不俗的表现。碰撞异常的场景下,用户可以撰写测试参照,指定预期的汽车状态、应该遵循的规则。通过摄像头的图像反馈,可以对实时地图的视角进行查看。
当控制车辆发生碰撞的时候,模拟即结束,在页面的下方的“Assert关键点”区域报告碰撞错误。复杂路况的情况下,可编写多脚本,生成多个 NPC 车辆的能力让通过平台页面看倒环岛地段交通拥堵成为可控。
截至 2021 年 1 月底,无人驾驶技术公司在 2021 年已募集了总计 30 亿美元。据 CB Insights 数据,全球目前已经有 80 多家典型布局开发自动驾驶汽车以及支持自动驾驶技术的组件和软件系统的科技企业。
图 | 超 80 家企业布局自动驾驶汽车及其相关技术,来源:CB Insights
杨子江认为属于自动驾驶系统测试技术的市场空间是足够大的。现在的商业化路径已经相对清晰,产业链的承接水平也跟得上,在这样的情况下。商业化关键时间点就是现在。安全不是锦上添花,而是必备。
当然自动驾驶测试的技术门槛是比较高的,尤其是模拟仿真测试。
自动驾驶测试领域技术目前是比较多的。在仿真测试技术方面,方法是多样的。大型科技公司多采用实际采集的数据去各个城市去做模型跑数据,而小公司则更注重在细分技术的突破上。
目前以色列的Mobileye在这一领域做的比较好。Mobileye 由以色列希伯来大学的 Amnon Shashua 教授和 Ziv Aviram 于 1999 年创立。Mobileye 致力于开发和推广一个视觉系统,以协助驾驶员在驾驶过程中保障乘客安全和减少交通事故。
2017 年,英特尔以过 150 亿美元的价格收购了 97.3% 的 Mobileye 流通股。目前 Mobileye 的业务主要分为辅助驾驶和自动驾驶两方面。辅助驾驶通过售卖带有嵌入式软件的 EyeQ 芯片和提供自动驾驶域控制器创收;自动驾驶通过提供自动驾驶系统(SDS)、车辆即服务(VaaS)业务和出行即服务(MaaS)业务创收。
目前深信科创已经获得了订单,向商业化的阶段性目标迈进。谈起从科学家走向创业者的经历,杨子江颇有感触。他认为技术和商业落地还是有差异的。正因为自己的切身体会,他所带领的深信科创才想推出一个自动驾驶的科研社区,在这个科研社区内将实际问题注入,将高校的工作转为开源代码,通过这一过程促进研究向落地走下去。
关于络绎知图
络绎知图是集科技数据、智能分析、学术服务于一体的科技大数据平台,以透视未来的科技本质为使命,面向学者、高校、科研机构以及从事科研成果转化的相关群体,提供研究型数据库、分析工具、学术会议、学术社区等功能,并通过媒体传播原创研究有效放大学术研究的影响力。