Page 139 - 《软件学报》2021年第7期
P. 139

朱向雷  等:自动驾驶智能系统测试研究综述                                                           2057


                    在过去的几十年中,随着计算机和通信技术的高速发展,交通系统正逐步引入智能要素,自动驾驶技术应运
                 而生.由于造成交通事故最主要的原因之一是人为因素,因此,引入自动驾驶技术能够大大降低交通事故发生的
                 概率.近十年来,随着感知组件和智能算法的快速发展,全球有多家企业和研究机构正积极开发自动驾驶技术.
                 国际自动化工程师学会/美国汽车工程师学会(SAE)于 2014 年提出了自动驾驶 5 级分级方案,该方案成为了当
                 前被普遍接受的标准.自动驾驶分级方案从 L0 递增到 L5(L0 为传统驾驶,不算在 5 级分级方案中)分别代表了
                 自动驾驶汽车的智能程度由浅至深.L1 级别为辅助驾驶,在特定的条件下,自动驾驶汽车具有一个或多个自动
                 控制功能,但不能脱离驾驶员的控制.具有 L1 级别的自动驾驶车辆往往包含高级驾驶辅助系统(ADAS),并且目
                 前高级驾驶辅助功能已逐渐成为中高端车型的标准配置.尽管目前已有越来越多的机构在为 L5 级别自动驾驶
                 功能提供解决方案,但目前的技术尚难以满足 L5 级别自动驾驶即完全自动驾驶的需求.自动驾驶系统的架构一
                 般由 3 部分组成:感知模块、决策模块以及控制模块.感知模块负责自动驾驶汽车周围环境认知,往往由摄像头
                 和雷达等组件组成.决策模块需要根据感知模块感知到的信息,根据一定的算法得出自动驾驶汽车下一步的行
                 为并传递给控制模块.控制模块负责将决策指令传递给汽车硬件,例如方向盘、油门等,完成对自动驾驶车辆的
                 控制.
                    然而,与任何依赖于软件算法的系统一样,自动驾驶系统容易在一些特殊的场景下做出错误的判断并导致
                 事故的发生,同时也容易受到恶意攻击进而导致系统失效.如由 Uber 生产的自动驾驶汽车在 2018 年发生了事
                 故,导致一名行人死亡.因此,自动驾驶车辆需要经过严格且全面的验证才能保证车辆的安全使用.目前已有多
                 项工作研究自动驾驶系统的测试和验证技术.众所周知,直接采用真实车辆进行检测的成本是非常昂贵的,因此
                 自动驾驶车辆在进行真车测试之前往往会在虚拟环境中进行测试.通过在仿真软件中提供与真实驾驶场景相
                 似的仿真场景,来测试自动驾驶算法的健壮性及正确性.根据测试对象的受控程度,虚拟测试又分为软件在环
                 (software-in-the-loop,简称 SiL)、硬件在环(hardware-in-the-loop,简称 HiL)、模型在环(model-in-the-loop,简称
                 MiL)和车辆在环(vehicle-in-the-loop,简称 ViL).由于自动驾驶测试场景的多样性和真实驾驶事故中场景的突发
                                                                                                     [1]
                 性,如何生成有效的测试用例以及如何评价测试场景的有效性成为了目前广泛研究的课题.Koopman 等人 总
                 结了自动驾驶的测试和验证的挑战.他们认为自动驾驶的测试与验证面临着以下 5 个挑战领域:驾驶员非在环、
                 复杂需求、不确定性算法、归纳学习算法和故障操作系统.
                                                                                        [2]
                    目前,Li 等人、Kang 等人和 Garcia 等人针对自动驾驶系统的测试进行了总结.Li 等人 总结并讨论了人工
                 智能和人工智能测试之间的关系,并将自动驾驶作为具体案例讨论了人工智能在其中的测试挑战,包括测试任
                                                                   [3]
                 务的定义、测试框架及其形式化定义以及并行测试.Garcia 等人 分析了 Baidu Apollo 和 Autoware 两个开源项
                 目的 16 851 次提交中的 499 个与自动驾驶相关的错误,并将这些错误进行了分类,从中总结出了 13 种导致错误
                                                                  [4]
                 的根本原因、20 种错误症状和 18 种自动驾驶组件.Kang 等人 整理了 37 个开源或者半开源的自动驾驶数据
                 集和 22 个虚拟仿真环境.整理出的数据集全部来自真实采集的数据,且至少包含来自摄像头、激光雷达或毫米
                 波雷达采集的数据.与上述针对自动驾驶系统测试的总结性文献不同,本文充分调研了近年来与自动驾驶测试
                 相关的文献,整理了针对自动驾驶系统与智能相关的模块的测试,总结了相关测试的测试用例生成方法以及覆
                 盖度量指标,并对自动驾驶测试的未来发展做出了展望.本文也是针对自动驾驶智能系统测试的首篇综述,可为
                 该领域的相关研究团队提供参考.
                    如前文所述,自动驾驶系统往往由感知模块、决策模块以及控制模块组成.其中,控制模块往往与智能无关,
                 因此本文只针对感知模块和决策模块的测试技术进行了总结.目前的研究中部分是单独针对感知模块进行测
                 试,部分针对决策模块进行测试,也有许多研究针对整车进行测试.与此同时,一些高级功能模块同时包含了感
                 知模块和决策模块甚至控制模块的相关组件,例如高级辅助驾驶系统(ADAS),有许多学者致力于针对这样的功
                 能模块进行测试.本文针对自动驾驶智能系统测试的总结框架可如图 1 所示.
                    为完成本文的研究问题,我们首先使用“Autonomous  Vehicle Testing”“Automative Systems Testing”“Self-
                 driving Testing”“Automated Vehicle Testing”等关键词在国内外知名的学术搜索引擎(例如,CNKI、必应学术、谷
                 歌学术、DBLP 等)上进行搜索,并筛选出与本综述相关的文章.随后,通过检索筛选出来的文章的参考文献和相
   134   135   136   137   138   139   140   141   142   143   144