面向图像识别器的蜕变测试方法

专利查询2023-1-6  134



1.本发明涉及一种软件测试方法,属于图像识别器测试技术领域,具体涉及面向图像识别器的蜕变测试方法。


背景技术:

2.软件测试是保证软件可靠性和软件质量的重要手段,主要目的是通过生成并执行测试用例,来检测被测软件中存在的缺陷或错误。现如今,图像识别器已经成为计算机视觉的一个最为重要的分支,因此对于图像识别器的测试就十分有意义。
3.在多数情况下,对于测试输入无法得知预期输出,导致软件测试面临测试判定问题。在图像识别器中,预先没有预期值,输出值即是某种预测,即存在测试判定问题,使得传统测试技术难以实施。蜕变测试作为解决测试判定问题的有效方法,通过判断程序属性满足或违反,即程序输入输出之间的关系,称作蜕变关系,来决定程序的正确性。构造有效的蜕变关系是蜕变测试的关键,但目前在图像领域使用的蜕变关系较为单一,如使用归一化、打乱数据集顺序、缩放等图像处理方法来构造蜕变关系,这些基本的蜕变关系虽然在svm分类器等分类模型的测试工作有一定作用,但在图像识别器的测试表现较差;在图像识别器的测试工作中,通过提取图像识别器的特征,根据这些特征构造更为丰富的蜕变关系,实现对图像识别器更全面的测试。
4.基于上述问题,本发明提出了一种适用于图像识别器的蜕变测试方法。


技术实现要素:

5.本发明目的是通过构造更为丰富的蜕变关系,解决现有测试判定问题中所构建的蜕变关系单一的问题,减少人为因素对测试过程的干扰,规范蜕变测试流程,提出了适用于图像识别器的蜕变测试方法。
6.本发明包括以下步骤:
7.步骤一:根据图像识别器识别的图像类型,获取相应类型的原始图像数据集x={x1,x2,

,xi,

,xn},xi是第i张图像,n是原始图像数据集的图像总数;
8.步骤二:构造蜕变关系:对于任一输入到图像识别器中的图像,在保持识别目标不变的情况下,根据图像的语义信息对图像进行相应图像变换,此处的图像变换可以是加雾、加雨、加阳光或变换其他与识别目标无关的图像信息,如果图像识别器对输入图像和变换后的图像得到相同的目标识别结果,则此图像变换满足蜕变关系;假设共构造q个蜕变关系m,记为m={m1,m2,

,m
t


,mq},其中m
t
表示第t个蜕变关系;
9.步骤三:生成衍生图像数据集:对于原始图像数据集x,根据构造的q个蜕变关系m生成q个衍生图像数据集,记为y={y1,y2,

,y
t


,yq},其中y
t
表示第t个蜕变关系m
t
生成的衍生图像数据集,记为y
t
={x1′
,x2′


,xi′


,xn′
},xi′
是原始图像结合第t个蜕变关系m
t
生成的第i张衍生图像;
10.步骤四:原始图像数据集测试:将原始图像数据集x中的n张图像输入到图像识别
器进行测试,得到n个测试结果,记为r={r1,r2,

,ri,

,rn},其中ri表示原始图像数据集x中第i张图像测试结果;
11.步骤五:从第t个衍生图像数据集y
t
开始测试,将t初始值设置为1;
12.步骤六:衍生图像数据集测试:将衍生图像数据集y
t
输入到图像识别器进行测试,得到n个测试结果,记为s={s1,s2,

,si,

sn},,其中si表示衍生图像数据集y
t
中第i张图像测试结果;
13.步骤七:判定测试结果:计算图像识别器在衍生图像数据集y
t
中的测试结果s和图像识别器在原始图像数据集x中的测试结果r的平均绝对误差mae,公式如下:
[0014][0015]
计算ri和si差值的绝对值并求和;平均绝对误差值越大,图像识别器的发生错误识别概率越高,图像识别器对该类图像变换的识别能力越差;
[0016]
步骤八:测试终止判断:如果t=q,测试结束,否则t=t+1,返回步骤六。
附图说明
[0017]
附图是本发明面向图像识别器的蜕变测试方法流程图;
具体实施方案
[0018]
本专利通过构造更丰富的蜕变关系来判定图像识别器的准确性。车辆识别是图像识别领域的典型应用,本专利以车辆识别为实验案例,主要采用了测试样例自动生成过程,涉及到的具体关键技术有opencv、munit和cyclegan,测试对象选取百度ai开放平台车辆检测服务,在下文中统称为百度服务。
[0019]
步骤一:获取原始图像数据集
[0020]
实验数据选取伯克利大学发布的开放驾驶数据集bdd100k作为原始图像数据集。
[0021]
步骤二:定义蜕变关系mr
[0022]
根据bdd100k数据集的集合属性和百度服务的算法特征构造了以下7种蜕变关系:
[0023]
1、改变原始图像数据集rgb的通道顺序;
[0024]
2、将原始图像数据集中目标所在场景由晴天变换为雨天;
[0025]
3、将原图数据集进行模糊;
[0026]
4、将原始图像数据集水平翻转;
[0027]
5、将原始图像数据集中目标所在场景由晴天变换为雾天;
[0028]
6、将原始图像数据集自由旋转任意角度;
[0029]
7、给原始图像数据集右上角添加阳光效果;
[0030]
步骤三:生成衍生图像数据集
[0031]
使用opencv技术调用相关技术库,实现蜕变关系1、蜕变关系3、蜕变关系4、蜕变关系6和蜕变关系7中的图像变换,生成衍生图像数据集。
[0032]
使用cyclegan模型进行雾模拟,cyclegan是一个环形的结构,主要由两个生成器及两个判别器组成,x表示x域的图像,y表示y域的图像,x域的图像通过生成器g生成y域的
图像,再通过生成器f重构回x域输入的原图像;y域的图像通过生成器f生成x域图像,再通过生成器g重构回y域输入的原图像。判别器dx和dy起到判别作用,确保图像的风格迁移。在本发明中使用cyclegan模型在清晰图像上合成雾,使用opencv技术,将图像分为9个区域,结合改进的cyclegan模型在图像的9个不同位置合成雾,实现了蜕变关系5,生成衍生图像数据集;
[0033]
使用munit作为构造雨天图像的生成模型,munit是一种多模态无监督的图像变换框架,munit通过内容编码器和样式编码器将图像拆分为内容特征c和样式特征s,在本发明中,选取bdd100k中的晴天图像作为数据集d1,选取bdd100k中的雨天图像作为数据集d2,给定d1中的图像x1,munit将数据集d2中的图像x2的样式特征s2与x1中的内容特征c1组合并输出,生成样式贴近于雨天但内容特征保持不变的图像,实现了蜕变关系2,生成衍生图像数据集;
[0034]
根据构造的蜕变关系生成了11个衍生图像数据集,分别记为{brg、gbr、grb、rbg、rgb、blur、foggy、rainy、flip、sunshine、rotate}
[0035]
步骤四:原始图像数据集测试
[0036]
将原始图像数据集输入到图像识别器进行测试,记录图像识别器在原始图像数据集检测到的车辆数量。
[0037]
步骤五:从第一个衍生图像数据集brg开始测试。
[0038]
步骤六:衍生图像数据集测试
[0039]
将第一个衍生图像数据集brg输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集brg中检测到的车辆数量。将第二个衍生图像数据集gbr输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集gbr中检测到的车辆数量。将第三个衍生图像数据集grb输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集grb中检测到的车辆数量。将第四个衍生图像数据集rbg输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集rbg中检测到的车辆数量。将第五个衍生图像数据集rgb输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集rgb中检测到的车辆数量。将第六个衍生图像数据集blur输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集blur中检测到的车辆数量。将第七个衍生图像数据集foggy输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集foggy中检测到的车辆数量。将第八个衍生图像数据集rainy输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集rainy中检测到的车辆数量。将第九个衍生图像数据集flip输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集flip中检测到的车辆数量。将第十个衍生图像数据集sunshine输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集sunshine中检测到的车辆数量。将第十一个衍生图像数据集rotate y输入图像识别器中进行测试,记录测试图像识别器在衍生图像数据集rotate中检测到的车辆数量。
[0040]
统计原始图像数据集和11个衍生图像数据集中检测到的车辆总数,在此展示20张图像的车辆识别结果,如表1所示:
[0041]
表1原始图像数据集和衍生图像数据集的车辆识别结果
[0042][0043]
步骤七:判定测试结果
[0044]
统计原始图像数据集和11个衍生图像数据集中检测到的车辆数量,分别计算每个衍生图像数据集与原始图像数据集检测到的车辆数量的平均绝对误差,结果如表2所示:
[0045]
表2各衍生图像数据集的平均绝对误差
[0046]
衍生图像数据集平均绝对误差衍生图像数据集平均绝对误差brg0.80blur1.20gbr0.50sunshine1.20grb0.75foggy1.65rbg0.95rotate1.55rgb1.05flip0.60
rainy2.10
ꢀꢀ
[0047]
蜕变关系1改变原始图像数据集rgb的通道顺序生成了5个衍生图像数据集分别是brg、gbr、grb、rbg和rgb,其中衍生图像数据集rgb的平均绝对误差最大为1.05;蜕变关系2将目标所在场景由晴天变换为雨天生成了衍生图像数据集rainy,平均绝对误差在11个衍生图像数据集中最大为2.1;蜕变关系3对原始图像数据集进行模糊操作后生成了衍生图像数据集blur,蜕变关系7对原始图像数据集右上角添加阳光效果生成了衍生图像数据集sunshine,衍生图像数据集blur和衍生图像数据集sunshine的平均绝对误差相同,均为1.2;蜕变关系5将目标所在场景由晴天变换为雾天生成了衍生图像数据集foggy,蜕变关系4对原始图像数据集进行水平翻转生成了衍生图像数据集rotate,衍生图像数据集foggy和衍生图像数据集rotate的平均绝对误差相近,分别为1.65和1.55;蜕变关系6将原始图像数据集自由旋转任意角度生成了衍生图像数据集flip,平均绝对误差在11个衍生图像数据集中最小为0.6;
[0048]
平均绝对误差能体现百度服务发生错误的概率,平均绝对误差值越大,百度服务的错误率越高;蜕变关系2将目标所在场景由晴天变换为雨天的平均绝对误差值最大,能检测到的百度服务对车辆识别的错误最多,即百度服务在场景变换中表现出的健壮性较差;蜕变关系6将原始图像数据集自由旋转任意角度和蜕变关系1改变原始图像数据集rgb的通道顺序能检测到的百度服务错误较少,即百度服务可以较好的应对图像旋转和输入格式的不同;通过构造更为丰富的蜕变关系,对百度服务在不同的蜕变关系下车辆识别的能力进行了全面测试,实验结果显示构造的蜕变关系均能在一定程度上检测出百度服务存在漏测和错误识别的情况。
[0049]
步骤八:11个衍生图像数据集已完成测试,测试结束。

技术特征:
1.面向图像识别器的蜕变测试方法,其特征在于包括以下步骤:步骤一:根据图像识别器识别的图像类型,获取相应类型的原始图像数据集x={x1,x2,

,x
i


,x
n
},x
i
是第i张图像,n是原始图像数据集的图像总数;步骤二:构造蜕变关系:对于任一输入到图像识别器中的图像,在保持识别目标不变的情况下,根据图像的语义信息对图像进行相应图像变换,此处的图像变换可以是加雾、加雨、加阳光或变换其他与识别目标无关的图像信息,如果图像识别器对输入图像和变换后的图像得到相同的目标识别结果,则此图像变换满足蜕变关系;假设共构造q个蜕变关系m,记为m={m1,m2,

,m
t


,m
q
},其中m
t
表示第t个蜕变关系;步骤三:生成衍生图像数据集:对于原始图像数据集x,根据构造的q个蜕变关系m生成q个衍生图像数据集,记为y={y1,y2,

,y
t


,y
q
},其中y
t
表示第t个蜕变关系m
t
生成的衍生图像数据集,记为y
t
={x1′
,x2′


,x
i



,x
n

},x
i

是原始图像结合第t个蜕变关系m
t
生成的第i张衍生图像;步骤四:原始图像数据集测试:将原始图像数据集x中的n张图像输入到图像识别器进行测试,得到n个测试结果,记为r={r1,r2,

,r
i


,r
n
},其中r
i
表示原始图像数据集x中第i张图像测试结果;步骤五:从第t个衍生图像数据集y
t
开始测试,将t初始值设置为1;步骤六:衍生图像数据集测试:将衍生图像数据集y
t
输入到图像识别器进行测试,得到n个测试结果,记为s={s1,s2,

,s
i


s
n
},其中s
i
表示衍生图像数据集y
t
中第i张图像测试结果;步骤七:判定测试结果:计算图像识别器在衍生图像数据集y
t
中的测试结果s和图像识别器在原始图像数据集x中的测试结果r的平均绝对误差mae,公式如下:计算r
i
和s
i
差值的绝对值并求和;平均绝对误差值越大,图像识别器的发生错误识别概率越高,图像识别器对该类图像变换的识别能力越差;步骤八:测试终止判断:如果t=q,测试结束,否则t=t+1,返回步骤六。

技术总结
本发明针对图像识别器测试中蜕变关系单一的问题,公开了一种面向图像识别器的蜕变测试方法,属于图像识别器测试技术领域。该方法首先基于被测对象的特征构造蜕变关系;然后将原始数据集结合构造的蜕变关系,生成衍生数据集;最后将原始数据集和衍生数据集分别输入图像识别器得到测试结果,通过计算原始数据集和衍生数据集测试结果的平均绝对误差来判定测试结果的有效性。本发明构造了更为丰富的蜕变关系,在不同的蜕变关系下对图像识别器的图像识别能力进行了全面的测试。识别能力进行了全面的测试。识别能力进行了全面的测试。


技术研发人员:孙家泽 张妍妍 王小银
受保护的技术使用者:西安邮电大学
技术研发日:2021.12.09
技术公布日:2022/3/8

最新回复(0)