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

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


                 像  orgImg  并生成热图  HeatMap (第  1  行); 然后对原始图像  orgImg  进行物体分析以识别图像中的所有物体和语义
                 和像素位置信息, 并将所有信息储存在所有物体信息                 allObjInfo  中  (第  2  行); 之后根据所有物体信息  allObjInfo  和
                 热图  HeatMap  对所有物体进行重要性分析并排序生成重要性排序                  importanceSort (第  3  行); 根据重要性排序
                 importanceSort 从所有物体信息   allObjInfo  中选择最重要的前   N  个物体的信息并储存在重要物体信息             objInfo  中
                 (第  4  行); 用原始图像  orgImg  初始化测试数据图像    testImg  后, 对重要物体信息   objInfo  中的每一个物体, 先根据物
                 体像素位置信息      obj.location  将其从测试数据图像    testImg  中删除, 再根据物体语义     obj.semantic 从替换物体库
                 objLib  中选择语义相同的物体替换到原来的位置            (第  5–9  行). 在对重要物体信息    objInfo  中的每一个物体都完成
                 替换后, 输出生成的测试数据图像          testImg (第  10  行).

                 算法  1. 重要物体分析及替换.
                 输入: 原始图像 orgImg; 转向角预测模型 M; 替换物体数量 N; 替换物体库 objLib;
                 输出: 新测试数据图像 newImg.

                 1. HeatMap = GradCAM(orgImg, M)
                                                   K sum (obj) =
                 2. allObjInfo = objAnalysis(orgImg)
                 3. importanceSort = importanceAnalysis(allObjInfo, HeatMap)
                 4. objInfo = objChoose(allObjInfo, importanceSort, N)
                 5. testImg = orgImg
                 6. for esch obj in objInfo:
                 7.  testImg = objDel (newImg, obj.location)
                 8.  testImg = objReplace(newImg, obj.semantic, objLib)
                 9. end for
                 10. return testImg
                    算法   1  中, 对物体进行重要性分析与排序需要计算物体的重要性值并以此为依据对其重要性进行排序.
                 IATG  使用两种不同的重要性值计算方法, 具体计算方法将在第                 2.2.1  节介绍. 替换物体库   objLib  的构建和替换方
                 法在基于真实图像和基于图像翻译两种策略中并不相同, 具体方法将在第                        2.2.2  节和第  2.2.3  节介绍.
                  2.2.1    物体重要性分析
                    为选出对转向角预测模型决策产生重要贡献的物体, 需要根据算法                      1  第  1  行得到的热图分别对原始图像中每
                 个物体计算其重要性值, 并以此作为选择重要物体的量化依据对所有物体进行重要性排序. 对物体重要性值的计
                 算使用了两种方法, 分别为基于物体总贡献和基于物体平均贡献的重要性值, 具体计算方法如公式                                (2) 和公式  (3)
                 所示.
                    令   I = {P 1 ,P 2 ,P 3 ,...} 为原始图像中像素的集合,   P i ∈ I (1 ⩽ i ⩽ |I|) 为图像中的一个像素,   obj ⊆ I  为原始图像中
                           H (P i ) 为像素  P i 在热图中对应的贡献值. 公式                                K sum  的计算方法,
                 的一个物体,                                        (2) 定义了基于物体总贡献重要性值
                 其计算的是物体所有像素对转向角预测模型决策贡献值的总和.
                                                            ∑
                                                                  H (P i )                            (2)
                                                              P i ∈obj
                    公式  (3) 定义了基于物体平均贡献重要性值            K avg  的计算方法, 其计算的是物体所有像素对转向角预测模型决
                 策贡献值的算数平均值.
                                                            ∑
                                                                 H (P i )
                                                              P i ∈ob j
                                                   K avg (obj) =                                      (3)
                                                                |I|
                  2.2.2    基于真实图像的物体替换
                    此策略使用来自真实世界采集图像中提取的物体. 为保证所提取物体的完整性和语义正确性, 需要先生成真
                 实图像的语义分割标签, 以将不同语义以及相同语义的不同物体与背景之间区分开来, 然后根据语义分割标签从
   178   179   180   181   182   183   184   185   186   187   188