Page 181 - 《软件学报》2024年第6期
P. 181

谢瑞麟 等: IATG: 基于解释分析的自动驾驶软件测试方法                                                  2757


                  2   基于解释分析的自动驾驶软件测试数据生成方法

                    IATG  的目标是基于解释分析从现有的原始图像生成测试数据, 以扩增测试集并增强测试充分性, 使其误导
                 基于  CNN  的自动驾驶转向角预测模型, 以检测自动驾驶转向角预测模型中的潜在缺陷. IATG                        的工作流程如图      3
                 所示. 首先, IATG  使用  CNN  的解释方法生成决策的视觉解释, 以此从原始图像中选择对决策产生重要影响的物
                 体, 并用基于真实图像或图像翻译方法获取语义相同物体将其替换以生成测试数据. 然后, 将原始图像和测试数据
                 输入模型, 比较输出的转向角差异来检测             CNN  模型对场景相同的不同图像输出不一致的错误行为.

                  替换物件库                          物体替换                         测试数据
                   基于真实图像
                                                       公交车
                   行人

                   汽车

                   卡车                                         OR
                                                                                          OR
                                                 适用于不同任务和结构的
                   公交车                          图像翻译
                   基于图像翻译
                    语义分割标签
                                                               替换

                                                    原始图像                         物体替换后的图像
                                                      {Car 1 , Car 2 , Bus 1 , ...,  obj n }  {Car 1 , Car 2 , Bus m , ...,  obj n }

                                                解释方法                选择重要物体
                    原始图像                                                     视觉解释
                                                       CNN 模型

                                                               梯度加权类激活映射




                                    图 3 基于解释分析的自动驾驶软件测试数据生成方法流程图

                  2.1   转向角预测模型的解释分析
                    为检测转向角预测模型对相同场景产生不同预测结果的错误行为, IATG                       将图像内的物体替换为语义相同的
                 其他物体来生成测试数据, 以检测基于            CNN  的转向角预测模型缺陷. 然而, 一张原始图像可能包含数个甚至数十
                 个物体, 盲目地替换大量物体或随机选择替换少量物体并不是明智的做法. 替换大量物体会增大测试数据与原始
                 图像的差异, 降低测试数据的真实性; 随机选择替换少量物体则会降低测试数据误导转向角预测模型的能力. 因
                 此, IATG  只替换少量对转向角预测模型输出结果贡献度较大的重要物体, 以确保测试数据在具有较强误导能力
                 的同时, 尽量接近原始真实图像.
                    作为  CNN  的解释方法, Grad-CAM   [26]                   CNN  模型, 在图像分类任务中只需要取最后
                 一个卷积层的梯度信息即可计算像素对任意分类结果的贡献程度, 进而获得热图. 但在转向角预测这样的回归任
                 务中, 模型输出为正值时代表角度偏右, 而输出为负值时代表角度偏左. 所以, 当某个特征图的梯度值为正时, 它将
                 使模型倾向于右转; 当某个特征图的梯度值为负时, 它将使模型倾向于左转. 这意味着如果直接取梯度计算热图,
                 当模型预测结果为左转时, 热图中最高亮的区域将是对左转贡献度最低的区域, 不符合热图中越高亮的区域对预
                 测结果越重要的性质, 因此当模型预测结果为左转时                 IATG  无法使用热图选择重要物体.
                    为解决上述问题, IATG      在  Grad-CAM  方法的基础上, 在取梯度和计算特征图贡献值之间增加了一个步骤, 对
   176   177   178   179   180   181   182   183   184   185   186