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

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


                 为马尔可夫决策过程,并采用深度强化学习方法寻找目标场景.他们使用 Intelleigent Driver  Model                  [33] 作为模拟
                 器,在同一场景(汽车经过十字路口)下进行了测试,比较了两种方法的效果.实验结果表明,深度强化学习的方法
                 能够在较少的模拟器调用下,得到更多可能错误的场景.与直接生成完整的测试场景不同,一些学者尝试着在已
                 有的测试场景中进行扰动,结合软件工程方法中的回归测试与蜕变测试,来达到对决策系统的测试.
                    现有的图像对抗样本生成技术在自动驾驶中具有局限性,涂黑、对像素进行修改等对抗样本扰动操作在现
                 实中很难出现,Zhou 等人      [27] 提出了一种更实用的测试技巧 DeepBillboard,即对道路中的“广告牌”进行扰动,以
                 探究其对自动驾驶汽车行驶方向的影响.该团队基于像素的颜色,对广告牌上的每个像素进行扰动,并保证扰动
                 后的广告牌如同真实的广告牌,随汽车的视角等发生变化.该实验结果表明,扰动广告牌生成的对抗场景确实对
                 自动驾驶汽车的航向系统有较大的影响,这种影响对虚拟场景和现实中的场景都适用.DeepBillboard 的缺陷在
                 于,对广告牌的扰动过大,使得数据集中的广告牌几乎变为色块,在现实中几乎不会存在这样的广告牌.
                    Tian 等人 [28] 提出了 DeepTest,以探查在自动驾驶过程中的非自然行为和边界案例(corner case).DeepTest 考
                 虑在驾驶过程中可能出现的各种因素,如雨、雾、光照,对图像进行线性变换(调整光照和对比度)、仿射变换(裁
                 剪、平移、放缩和旋转)以及卷积变换(变模糊、加入下雨、起雾效果).该团队证明神经元覆盖的变化和转向角
                 度变化有一定的相关性,因此可以用神经元覆盖作为场景生成引导标准.实验结果表明,DeepTest 生成的组合场
                 景可以大幅度地提升神经元的覆盖率,并且可以侦察深度神经网络(DNN)模型的错误行为.这些场景同样可以
                 用于修复模型中的问题,以提升模型的准确性.
                    基于蜕变测试的思想,Zhang 等人        [29] 提出了 DeepRoad,一个可以大量生成连续测试场景的非监督框架.该团
                 队认为,DeepTest 通过仿射变换生成的场景过于简单,不符合现实中的天气现象,因此改进了生成测试场景的方
                 式.DeepRoad 利用对抗生成网络板块,将晴天的行驶图片转变成为雨雪天气下的图片.实验结果表明,使用
                 DeepRoad 生成的场景具有更高的扰动质量,这些图片更容易引发自动驾驶汽车的不协调行为.
                    类似于“内省”行为,Stocco 等人      [30] 解决了估计 DNN 响应意外环境行为的置信度问题,目的是预测潜在的对
                 安全至关重要的不良行为,例如越界事件或碰撞.他们在工具 SelfOracle 中实现了一种基于置信度估计、概率分
                 布拟合和时间序列分析的无监督不良行为预测技术:使用自动编码器和基于时间序列的异常检测重构驾驶场
                 景,并确定不同条件下(如不同光照条件)的置信度边界,通过观察随时间变化的置信度下降趋势及时识别出意
                 外情况,从而预测不良行为.实验过程中,Stocco 等人使用 Udacity 的 DNN 模型和仿真环境,评估不同变体在预测
                 注入的异常驾驶环境方面的有效性.结果表明,SelfOracle 可以提前 6s 预测 77%的不良行为,其性能几乎比
                 DeepRoad 的在线输入验证方法高出 3 倍.
                    弹性是决策系统应对其正常运行时意外中断的能力,是决策系统当遇到意外的工作条件或不确定性的环
                 境时,可以继续以安全方式运行的能力,自动驾驶系统在其运行设计领域中的弹性行为至关重要.D’Ambrosio 等
                 人 [31] 基于模型的系统工程(MBSE)方法开发了具有弹性的安全关键型自动化系统.MBSE 方法提供了对系统行
                 为的保证,并可能通过使用严格的模型和广泛的仿真来减少对车载测试的依赖.MBSE 方法应用于开发弹性系
                 统的两个方面:(1)  通过使用弹性合同(resilience contracts)进行系统决策来确保弹性行为;(2)  应用基于仿真的
                 测试方法来验证系统能否处理所有已知情况,并针对潜在的未知情况验证系统.弹性合同利用基于合同的设计
                 方法和部分可观察的马尔可夫决策过程(POMDP),使系统可以对感知环境中的潜在不确定性进行建模,从而做
                 出更具弹性的决策.基于仿真的测试方法提供了一种结构化的方法,可以评估目标系统在各种运行条件下的运
                 行情况,从而确认待测目标已实现了预期的弹性行为,并在 CARLA 仿真环境中显示了仿真结果.
                 2.2   测试用例生成

                    如图 5 所示,决策模块的测试用例生成根据生成类型可分为场景测试用例生成及图片测试用例生成.其中
                 场景测试用例的生成方法主要有两种,第 1 种方法定义目标函数或奖励函数,通过对该函数取最大值或最小值
                 来指导测试场景的生成;第 2 种方法则是循环生成测试用例,依据遗传算法的思路,根据上一个生成的结果来指
                 导测试场景的生成.图片测试用例的生成方法包括基于数字图像的扰动(通过修改图片像素进行扰动)及基于真
                 实环境的扰动(改变真实世界光照、角度等).在诸多生成测试场景的方法中,遗传算法被广泛应用.许多学者都采
   140   141   142   143   144   145   146   147   148   149   150