安全性,一直都是自动驾驶研发的关键问题。前几天,美国官方判定2019年3月全球首个自动驾驶汽车撞死行人事故中,Uber无罪又引起了广泛关注。无疑,自动驾驶安全性依旧是业内外人士关注的重点。近日,伊利诺伊大学香槟分校(CSL)的研究人员公布了如何使用AI和ML,通过软件和硬件的改进来提高自动驾驶技术的安全性,开发自动驾驶可扩展安全性测试平台DriveFI。
解决自动驾驶安全性,这是一个基于跨学科、跨技术、跨领域的攻坚问题。此次CSL的可扩展的安全性测试平台也是汇集了多家公司,包括三星、NVIDIA,还有湾区的一些初创公司。
该研究小组开发的这个平台,使自动驾驶汽车能够在复杂多变的环境中更快、更经济的解决安全性的问题。
挑战
这项研究如此具有挑战性的原因之一是,自动驾驶汽车是基于AI和ML集机械、电子、计算机技术以及实时驾驶决策为一体的复杂系统。典型的自动驾驶汽车可以说是一部“带轮子的超级计算机”,拥有50多个处理器和加速器,可运行超过1亿行代码以支持计算机视觉和其他ML任务。
当自动驾驶汽车以每小时70英里的速度行驶时,故障会给驾驶员带来重大的安全隐患。一方面,在这样的速度下,除非有针对性的对自动驾驶汽车进行学习培训,否则无法预测其行为轨迹。另一方面,从传统意义上讲,如果在计算机或者智能手机遇到软件故障时,最常见的处理方式是重启,但这种方式并不适合自动驾驶汽车,并不能让车随时停下,否则会造成更严重甚至致命的事故。
目前的现行法规,要求Uber和Waymo之类的公司在公共道路上对车辆进行测试,并且每年向加利福尼亚州DMV报告其车辆的安全性。
基于现状,研究团队希望可以探索自动驾驶常见的安全问题、汽车的表现以及其理想的安全指标是什么。所以他们研发了这个可扩展测试平台。
项目简介
CSL研究小组分析了2014-2017年提交的所有安全报告,涵盖了144辆自动驾驶汽车,累计行驶了1116605英里。他们发现,在行驶相同里程的情况下,人类驾驶汽车发生事故的可能性比自动驾驶汽车少4000倍。这意味着自动驾驶汽车未能以惊人的速度适当地处理情况并脱离技术设定,而常常依靠驾驶员来接管。
研究人员和多家公司在研究过程中发现,在自动驾驶汽车系统出现特定问题之前,很难训练该软件来克服这些问题。而该团队正在使用计算机仿真和人工智能来加快这一过程。
本文介绍的平台叫做DriveFI,它通过识别可能导致碰撞和事故的危险情况来解决上述挑战。DriveFI包括(a)一个FI引擎,可以修改一个自主驾驶系统的软件和硬件状态来模拟故障的发生,和(b) ML-based故障选择引擎,我们称之为贝叶斯故障注入,可以找到最可能的情况和故障导致违反安全条件。相比之下,传统的FI技术往往不关注安全违规,在实践中表现率较低,需要大量的测试时间。
DriveFI的框架能够通过对自动驾驶车辆在故障状态下的行为进行因果和反事实推理,发现安全关键情况和故障。它通过(a)以车辆运动学和AV架构的形式整合领域知识,(b)基于横向和纵向停车距离的安全建模,(c)使用真实的故障模型来模拟软错误和软件错误。(a)、(b)和(c)项被集成到一个贝叶斯网络(BN)中。BN提供了一种良好的形式化方法,用可解释的模型来模拟故障在自动驾驶系统组件之间的传播。BN支持快速概率推理,这使得DriveFI能够快速找到安全关键的故障。贝叶斯FI框架可以扩展到其他安全关键系统(如手术机器人)。该框架需要安全约束和系统软件体系结构的规范来建模系统子组件之间的因果关系。
该平台使用ADS技术来支持和代替人类驾驶员来完成控制车辆转向、加速和监视周围环境(如其他车辆/行人)的任务。ADS架构由5个基本层组成:
传感器抽象层(上图中的1):传感器抽象层负责根据传感器类型对输入数据进行预处理、噪声滤波、增益控制、色调映射、去雾化和感兴趣区域的提取。ADS支持多种传感器,如全球定位系统(GPS)、惯性测量单元(IMU)、声纳、雷达、激光雷达和相机传感器。研究人员只使用了两个摄像头(安装在车辆的顶部和前部),还有一个激光雷达。
感知层(上图中的2):传感器抽象层将数据输入感知层,感知层使用计算机视觉技术(包括深度学习)检测静态对象(如车道、交通标志、障碍物)和出现在驾驶场景中动态对象(例如:乘用车、卡车、骑自行车的人、行人)。感知层还负责对象和车道的时间跟踪。跟踪是必要的,以确保一个对象不会因为分类错误或检测失败而突然从框架中消失。
定位层(上图中的3):定位层负责从各种来源收集数据,在地图中定位自动驾驶车辆。地图中的定位可以使用GPS传感器或使用摄像机/激光雷达输入来完成。本文中描述的研究工作仅使用摄像机/激光雷达和地图来实现定位,不使用GPS。
预测层(上图中的4):预测层负责利用模型中的信息(如位置、标题、速度、加速度)生成探测目标的轨迹。因此,它可以概率性地识别自动驾驶汽车路径中的障碍。
规划/控制层(上图中的5):规划控制层负责根据车辆的起点和终点生成导航计划,并向自动驾驶汽车发送控制信号(驱动、制动、转向)。路由模块根据请求生成高级导航信息,路由模块需要知道起点和终点,以计算通道的车道和道路。规划模块利用定位输出、预测输出和路由输出来规划安全无碰撞的轨迹。控制模块以规划的轨迹为输入,生成控制命令传递给CAN总线,CAN总线将信息传递给机械部件。监视系统监视车辆包括硬件在内的所有模块,并将其传递到人机界面,供人工驱动程序查看,以确保所有模块都在正常运行。在模块或硬件发生故障时,监视器在监护模块中触发警报,然后监护模块选择要采取的行动来防止事故。
该研究小组目前正在构建技术和工具,以产生最大程度影响安全性的驾驶条件和问题。他们发现大量的安全关键情况,在这些情况下错误可能导致事故,而不必枚举道路上的所有可能性,从而节省了大量的时间和金钱。
总结
NVIDIA架构研究副总裁Steve Keckler表示:“自动驾驶汽车的安全性对其在市场和社会中的成功至关重要。”我们希望伊利诺伊州研究团队正在开发的技术将使工程师能够更轻松地以较低的成本开发更安全的汽车系统。