CN117762783A - 一种面向目标检测神经网络的蜕变测试方法 - Google Patents

一种面向目标检测神经网络的蜕变测试方法 Download PDF

Info

Publication number
CN117762783A
CN117762783A CN202311698444.2A CN202311698444A CN117762783A CN 117762783 A CN117762783 A CN 117762783A CN 202311698444 A CN202311698444 A CN 202311698444A CN 117762783 A CN117762783 A CN 117762783A
Authority
CN
China
Prior art keywords
test case
image
metamorphic
neural network
target detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311698444.2A
Other languages
English (en)
Inventor
杨志斌
苏祥
周勇
杨珍
张海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202311698444.2A priority Critical patent/CN117762783A/zh
Publication of CN117762783A publication Critical patent/CN117762783A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种面向目标检测神经网络的蜕变测试方法,包括:构建原始测试用例,所述原始测试用例包括图像和图像的真实标签数据;将构建的原始测试用例的图像输入至被测的目标检测神经网络中,得到原始测试用例的输出结果;根据输入至被测的目标检测神经网络的图像和原始测试用例的输出结果,构建一组蜕变关系;将原始测试用例通过不同变换方式生成衍生测试用例,将衍生测试用例的图像输入至被测的目标检测神经网络中,得到衍生测试用例的输出结果;根据输入图像,判断蜕变关系是否有效;若有效,则根据检测框位置、目标类别和置信度,检查原始测试用例的输出结果和衍生测试用例的输出结果是否满足蜕变关系,仅当满足时,表示被测的目标检测神经网络测试通过。

Description

一种面向目标检测神经网络的蜕变测试方法
技术领域
本发明属于智能软件测试技术领域,具体涉及一种面向目标检测神经网络的蜕变测试方法。
背景技术
由于深度神经网络越来越多地被部署在自动驾驶汽车系统、恶意软件检测系统以及飞机碰撞避免系统等安全攸关领域,对这类DNN系统进行充分的测试并保证其质量至关重要。因此,迫切需要解决深度神经网络中潜在的威胁来提高神经网络的安全性,使之能够应用于更多安全性要求比较高的场景。现阶段,大部分研究人员通过对传统软件测试方法进行改进,使其能够适用于深度神经网络,或者提出新的测试方法进行深度神经网络测试。
目前,神经网络测试在测试输入生成、测试预言、测试充分性、缺陷检测等方面面临诸多挑战。融合变异测试、蜕变测试等传统测试技术,将传统测试技术在解决这类问题上的经验,应用到神经网络测试中,这样既可以沿着已有的技术路线,针对神经网络的特点展开测试,在取得不错测试效果的同时,又降低了测试成本。传统的软件测试技术通过比较测试用例的实际输出和预期输出是否相等来检验待测程序。但在很多情况下,测试时存在着oracle问题,即测试人员很难构造程序的预期输出,以确定执行结果与期望结果是否相同。蜕变测试能够有效地解决此类问题,该方法通过检查程序的多个执行结果之间的关系来测试程序,不需要构造预期输出。因此,蜕变测试是一种基于蜕变关系的测试,由原始测试用例根据其之间的关系计算出的用例是该原始用例基于蜕变关系的衍生测试用例。蜕变测试的基本原理是:利用程序输入-输出关系,将已有的测试用例转化为新的测试用例用以测试程序,其中,程序输入-输出关系即为蜕变关系,生成的新的测试用例即为衍生测试用例。用原始和衍生测试用例分别执行程序,检验相应的输出是否满足构造的蜕变关系。如果不满足,则说明程序存在故障。
经过近十年的研究,蜕变测试技术在以下几个方面取得了巨大的发展:
(1)蜕变测试过程的优化。研究人员通过实验对比和实例分析归纳出了优化测试过程的实践经验,或者提出了一些具有建设性的方法。
(2)蜕变测试与其他验证或测试技术的结合。如结合变异测试、模糊测试,结合新的图像生成策略,如GAN、BFGS、JSMA等。
(3)蜕变测试技术在特定领域中的应用。蜕变测试技术的实用性使得它被广泛地应用于数值型程序、图论计算程序、图像处理软件、并行编译器、SOA软件[和面向对象软件等类型软件
(4)蜕变测试准则的制定。越来越多的蜕变测试的准则得到提出。
随着蜕变测试技术的发展,蜕变测试也越来越多地被应用到对深度神经网络的测试中,例如:人脸识别、自动驾驶、图像分类、目标检测等领域的深度神经网络的测试。
基于深度学习目标检测的蜕变测试由传统的软件测试方法演变而来,在图像处理、语音处理以及自然语言处理领域得到广泛的应用。蜕变测试技术的提出,充分利用了成功的测试用例,有效解决了测试人员难以构造测试用例输出问题。即使实际的输出的正确性难以确定,也可以在给定输入的预期输出中构造并检查适当的蜕变关系以检测软件。
发明内容
发明目的:为了弥补针对目标检测神经网络的蜕变测试方法在蜕变测试流程上的不足和解决测试人员难以针对目标检测神经网络构造测试用例输出问题,本发明提出了一种面向目标检测神经网络的蜕变测试方法。
技术方案:一种面向目标检测神经网络的蜕变测试方法,包括以下步骤:
步骤1:构建原始测试用例,所述原始测试用例包括图像和图像的真实标签数据;所述图像的真实标签数据包括:图像名称、检测框位置、目标类别和置信度;将构建的原始测试用例的图像输入至被测的目标检测神经网络中,得到原始测试用例的输出结果;所述原始测试用例包括图像和图像的真实标签数据;所述图像的真实标签数据包括:图像名称、检测框位置、目标类别和置信度;
步骤2:根据输入至被测的目标检测神经网络的图像和原始测试用例的输出结果,构建一组蜕变关系,表示为:
其中,r表示用于限制衍生测试用例图像的变换方式,rf表示对被测的目标检测神经网络的输出结果的预言;T表示指定的多种变换方式,O表示变换参数,对于选定的任意的指定变换方式t和变换参数o,P[x],P[x′]分别表示原始测试用例的输出结果和衍生测试用例的输出结果;
步骤3:将原始测试用例通过不同变换方式生成衍生测试用例,所述衍生测试用例包括:对原始测试用例进行变换后的图像和该图像的真实标签数据;将衍生测试用例的图像输入至被测的目标检测神经网络中,得到衍生测试用例的输出结果;
步骤4:根据输入至被测的目标检测神经网络的原始测试用例的图像和输入至被测的目标检测神经网络的衍生测试用例的图像,判断步骤2构建的蜕变关系是否有效;若有效,则根据检测框位置、目标类别和置信度,检查原始测试用例的输出结果和衍生测试用例的输出结果是否满足步骤2构建的蜕变关系,仅当满足时,表示被测的目标检测神经网络测试通过;若蜕变关系无效,则表示被测的目标检测神经网络测试未通过,将衍生测试用例加入到训练集进行重新训练或微调。
进一步的,步骤1中,原始测试用例按照以下步骤构建得到:
取被测的目标检测神经网络的训练集和验证集构建数据集;
从数据集中选择若干不同类别标签的图像,取不同类别标签的图像及对应的真实标签数据构建得到原始测试用例。
进一步的,所述变换方式包括平移、缩放、剪切、旋转、亮度、对比度和模糊。
进一步的,所述蜕变关系,也可以表示为:
式中,表示约等于,P[x],P[x′]分别表示原始测试用例的输出结果和衍生测试用例的输出结果,mAP(P[x],P[x′])表示原始测试用例和衍生测试用例的预测结果的mAP值的相似程度,按照所述脱变关系其mAP值应相同。
有益效果:本发明与现有技术相比,具有以下优点:
(1)本发明针对目标检测神经网络,提出了一种新的蜕变测试方法并给出完整的蜕变测试流程,弥补了现有方法的不足,显著提高了深度神经网络的软件测试效率;
(2)本发明结合形式化的表示方式构造蜕变关系,并提出了一种针对目标检测领域蜕变关系的构造方法和有效性判断方式,使得蜕变关系的判断更加直观,从而提高智能软件的测试效率。
附图说明
图1为蜕变测试示意图;
图2为蜕变关系构建流程图;
图3为衍生测试用例目标检测流程图;
图4为蜕变关系判断流程图;
图5为蜕变测试整体流程图。
具体实施方式
下面结合附图和实施例进一步阐述本发明方法。
本实施例公开了一种面向深度学习领域目标检测神经网络模型的蜕变测试方法及相应测试工具实现,被测目标检测模型的蜕变关系利用原始测试用例输入和被测目标检测模型的输出结果的关系并采用形式化的方式进行构建,蜕变关系限制衍生测试用例的生成方式并对目标检测结果进行预言。通过分析蜕变关系的有效性和检查原始和衍生测试用例的模型预测结果是否满足蜕变关系,可以检测到目标检测模型潜在的错误并给出蜕变测试报告,利用不满足蜕变关系的测试用例对目标检测模型进行重新训练和微调,可以显著提高模型的准确率。
现对本实施例的面向深度学习领域目标检测神经网络模型的蜕变测试方法的各步骤详细说明如下:
步骤1:确定被测目标检测模型,常见的被测目标检测模型主要包括:单阶段的目标检测模型RCNN、Faster RCNN等和多阶段的目标检测模型SSD、YOLO等。
步骤2:获取被测目标检测模型的训练集和验证集作为数据集,从数据集中选择若干不同类别标签的图像作为原始测试用例,该原始测试用例包括:测试输入的图像和从数据集中提取到的图像真实标签数据。部分图像真实标签数据如表1所示,表中每行表示一个提取到的图像真实标签数据,其中,包含图像名称和图像真实目标,其中图像真实目标包括:检测框位置和目标类别。
表1部分图像真实标签数据
其中,图像真实标签数据由字符串和数字组成,字符串表示原始测试用例中的图像名称,数字5个为一组,前4个表示检测框左上角和右下角坐标(以图像左上角为原点),最后1个表示目标类别。
步骤3:将原始测试用例作为被测目标检测模型的输入进行预测,分析被测目标检测模型的预测结果。假定选定的被测目标检测模型为P,将选定的多组原始测试用例图像x输入到被测目标检测模型P中,通过被测目标检测模型进行预测,得到预测结果,预测结果表示为P[x],它由N个三元组组成(li,ai,ci),其中,N表示图像x共有N个预测结果即目标检测框,li表示第i个目标检测框的位置,ai表示分类结果,ci表示置信度。采用人工的方式对结果进行划分,将预测结果P[x]、真实结果、数据集中图像真实标签数据进行比较,筛选出预测正确的结果,组成一组新的原始测试用例,将其对应的图像真实标签数据改变为P[x]。
通过分析预测正确的结果中图像x和P[x]的关系,构建一组蜕变关系。蜕变关系的定义如下:
(1)变换:利用变换方式生成衍生测试用例,以定义的蜕变关系限制其变换方式。
(2)蜕变关系:定义输入变换应该对输出产生已知/可测量的影响。检查这种关系在转换后是否成立,(测试预言);
(3)种子输入:作为测试的原始输入,得到种子输入的输出,并给出蜕变关系。需清楚,即使没有种子输出,蜕变关系也可以定义。
构造的一种蜕变关系可以表示为MR=(r,rf),针对面向深度学习领域目标检测神经网络模型提出的蜕变关系一般如下:对图像进行微小变换其预测结果不应发生改变。r用于限制衍生测试用例图像的生成方式(例如:对图像进行微小的平移变换),确保图像与原始测试用例相似,rf是对预测结果的预言(例如:预测结果不发生改变)。
图1示出了简要的蜕变测试示意图,将选定的原始测试用例x0输入到被测目标检测模型P中,得到测试结果P[x0],通过分析x0和P[x0]的关系,得到一种蜕变关系MRi。利用原始测试用例结合测试用例生成策略生成衍生测试用例x0′和x0″,将衍生测试用例输入到被测目标检测模型P中得到的输出与原始测试用例x0的输出P[x0]进行比较,检查是否满足对应的蜕变关系MR。
原始测试用例x0的衍生测试用例x0′可以表示为x′0=t(x,o)and(t,o)∈r,其中,t(x,o)表示属于r的一种图像变换方式,o表示变换参数。使用python库OpenCV对图像进行变换,变换方式包含平移、缩放、剪切、旋转、亮度、对比度和模糊七种变换方式,小范围的调整图像变换参数以确保生成的衍生测试用例图像和真实图像相似,即x′0=t(x,o(and(t,o)∈r。图像变换方式和参数如表2所示。
表2图像变换方式和参数
变换方式 变换参数 参数范围
平移 (tx,ty) (10,10)to(100,100)step(10,10)
缩放 (sx,sy) (1.5,1.5)to(6,6)step(0.5,0.5)
剪切 (sx,sy) (-1.0,0)to(-0.1,0)step(0.1,0)
旋转 q(degree) 3to 30with step 3
对比度 α(gain) 1.2to 3.0with step 0.2
亮度 β(bias) 10to 100with step 10
模糊 size Averaging,Gaussian,Median,Bilateral Filter
其中,针对平移、缩放、剪切、旋转变换生成的衍生测试用例,其图像真实标签数据发生改变,因此需要对该图像真实标签数据进行处理。因此衍生测试用例包含:对原始测试用例进行变换后的图像和经过处理后的图像真实标签数据。
因此,蜕变关系MR可以形式化表述为:
其中,T表示指定的多种变换方式,O表示变换参数,MR=(r,rf),那么针对例如:对图像进行微小变换其预测结果不应发生改变,这条蜕变关系,上述形式化可以采用自然语言表述为:对于选定的任意的指定变换方式t和变换参数o,如果选定的变换参数o是对图像进行微小的变换,那么模型预测结果不应发生改变,蜕变关系应成立。蜕变关系构建流程图如图2所示。
步骤4:如图3所示,将原始测试用例通过不同变换方式生成的衍生测试用例的图像输入到被测目标检测模型中进行预测,得到多个目标检测框的类别、置信度和位置等信息,经过非极大值抑制得到衍生测试用例的预测结果,对预测结果按照边界框进行数据提取得到单个衍生测试用例图像的多个预测到的边界框信息。
步骤5:对原始测试用例和衍生测试用例进行蜕变关系判断。
首先,根据原始测试用例和衍生测试用例的输入,判断当前蜕变关系是否有效即判断是否成立。若当前蜕变关系有效,则根据目标检测框的位置、置信度和类别,检查原始测试用例和衍生测试用例的预测结果是否满足当前蜕变关系,若满足,则表示被测目标检测模型测试通过;蜕变关系判断流程图如图4所示。
在对被测目标检测模型进行蜕变测试时,蜕变测试结果可以分为三类:
第一类:被测目标检测模型没有错误,则原始测试用例和衍生测试用例的执行结果均无误,他们满足相应的蜕变关系,测试通过;
第二类:被测目标检测模型中存在着错误,且原始测试用例和衍生测试用例的执行结果不满足相应的蜕变关系,测试未通过;
第三类:被测目标检测模型中存在着错误,但原始测试用例和衍生测试用例的执行结果满足响应的蜕变关系,错误没有被发现。
蜕变测试结果用表3表示。利用蜕变关系有效性分析可以判断当前蜕变关系对当前测试输入是否有效,若有效可以进一步判断测试输入、输出的蜕变关系是否满足,从而根据蜕变关系可以检测出目标检测神经网络中是否存在着错误。
表3蜕变关系判断结果
满足输入关系 满足输出关系 满足蜕变关系 含义
满足 满足 满足 神经网络未检测出错误
满足 不满足 不满足 神经网络存在错误
不满足 满足 满足 蜕变关系无效
不满足 不满足 不满足 蜕变关系无效
相较于图像分类神经网络,目标检测的神经网络其输出结果更加复杂,其预测结果包含目标检测框的位置、置信度和类别等信息。同时目标检测问题中的每个图片都可能包含一些不同类别的物体,需要评估模型的物体分类和定位性能。因此,用于图像分类问题的标准指标不能直接应用于此。
在目标检测中,mAP是主要的衡量指标,mAP是多个分类任务的AP的平均值,而APaverage precision)是PR曲线下的面积,AP是通过考虑精确率和召回率值来计算的。为了计算AP,使用交并比(IoU)来测量每个对象检测框相对于真实情况的结果。IoU测量具有相同预测标签的两个边界框之间的重叠程度,即预测的检测框与真实检测框的重叠程度。若IoU大于阈值(如阈值为0.5),则预测被视为真阳性TP。然后通过考虑所有预测结果来计算精确度和召回率分数,并且可以通过计算精确度-召回率曲线下的面积来进一步推导出AP分数。对于包含不同类别对象的图像,平均AP(mAP)是通过对所有类别下AP分数进行平均来计算的。根据上述蜕变关系的定义,原始测试用例和衍生测试用例的mAP应该相同即100%。因此针对目标检测的神经网络的蜕变关系形式化表示可以进一步表示为:
综上,蜕变测试的整体流程图如图5所示。首先从训练集和验证集中筛选多组原始测试用例,将原始测试用例输入到被测目标检测模型中,得到原始测试用例的输出结果,通过分析原始测试用例的输出结果构造蜕变关系并进行形式化表述,根据蜕变关系一种测试用例生成策略,对原始测试用例进行图像变换生成衍生测试用例,并将衍生测试用例输入到被测目标检测模型中,得到衍生测试用例的输出结果。而后进行蜕变有效性分析,并根据检测框的位置、置信度和类别,检查原始测试用例和衍生测试用例的输出结果是否满足当前蜕变关系。最后根据是否满足当前蜕变关系,进行不同的处理,并统计蜕变关系判断的结果得到蜕变测试报告,最终筛选出不满足蜕变关系的测试用例加入到训练集中对被测模型进行微调或重新训练,以提高模型准确率的鲁棒性。

Claims (4)

1.一种面向目标检测神经网络的蜕变测试方法,其特征在于:包括以下步骤:
步骤1:构建原始测试用例,所述原始测试用例包括图像和图像的真实标签数据;所述图像的真实标签数据包括:图像名称、检测框位置、目标类别和置信度;将构建的原始测试用例的图像输入至被测的目标检测神经网络中,得到原始测试用例的输出结果;所述原始测试用例包括图像和图像的真实标签数据;所述图像的真实标签数据包括:图像名称、检测框位置、目标类别和置信度;
步骤2:根据输入至被测的目标检测神经网络的图像和原始测试用例的输出结果,构建一组蜕变关系,表示为:
其中,r表示用于限制衍生测试用例图像的变换方式,rf表示对被测的目标检测神经网络的输出结果的预言;T表示指定的多种变换方式,O表示变换参数,对于选定的任意的指定变换方式t和变换参数o,P[x],P[x′]分别表示原始测试用例的输出结果和衍生测试用例的输出结果;
步骤3:将原始测试用例通过不同变换方式生成衍生测试用例,所述衍生测试用例包括:对原始测试用例进行变换后的图像和该图像的真实标签数据;将衍生测试用例的图像输入至被测的目标检测神经网络中,得到衍生测试用例的输出结果;
步骤4:根据输入至被测的目标检测神经网络的原始测试用例的图像和输入至被测的目标检测神经网络的衍生测试用例的图像,判断步骤2构建的蜕变关系是否有效;若有效,则根据检测框位置、目标类别和置信度,检查原始测试用例的输出结果和衍生测试用例的输出结果是否满足步骤2构建的蜕变关系,仅当满足时,表示被测的目标检测神经网络测试通过;若蜕变关系无效,则表示被测的目标检测神经网络测试未通过,将衍生测试用例加入到训练集进行重新训练或微调。
2.根据权利要求1所述的一种面向目标检测神经网络的蜕变测试方法,其特征在于:步骤1中,原始测试用例按照以下步骤构建得到:
取被测的目标检测神经网络的训练集和验证集构建数据集;
从数据集中选择若干不同类别标签的图像,取不同类别标签的图像及对应的真实标签数据构建得到原始测试用例。
3.根据权利要求1所述的一种面向目标检测神经网络的蜕变测试方法,其特征在于:所述变换方式包括平移、缩放、剪切、旋转、亮度、对比度和模糊。
4.根据权利要求1所述的一种面向目标检测神经网络的蜕变测试方法,其特征在于:所述蜕变关系,也可以表示为:
式中,表示约等于,P[x],P[x′]分别表示原始测试用例的输出结果和衍生测试用例的输出结果,mAP(P[x],P[x′])表示原始测试用例和衍生测试用例的预测结果的mAP值的相似程度。
CN202311698444.2A 2023-12-12 2023-12-12 一种面向目标检测神经网络的蜕变测试方法 Pending CN117762783A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311698444.2A CN117762783A (zh) 2023-12-12 2023-12-12 一种面向目标检测神经网络的蜕变测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311698444.2A CN117762783A (zh) 2023-12-12 2023-12-12 一种面向目标检测神经网络的蜕变测试方法

Publications (1)

Publication Number Publication Date
CN117762783A true CN117762783A (zh) 2024-03-26

Family

ID=90311714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311698444.2A Pending CN117762783A (zh) 2023-12-12 2023-12-12 一种面向目标检测神经网络的蜕变测试方法

Country Status (1)

Country Link
CN (1) CN117762783A (zh)

Similar Documents

Publication Publication Date Title
CN110070141B (zh) 一种网络入侵检测方法
CN110570389B (zh) 车辆损伤识别方法及装置
TW202027007A (zh) 電腦執行的車輛定損方法及裝置
CN110264444B (zh) 基于弱分割的损伤检测方法及装置
US11113573B1 (en) Method for generating training data to be used for training deep learning network capable of analyzing images and auto labeling device using the same
CN111046787A (zh) 一种基于改进YOLO v3模型的行人检测方法
CN113657202B (zh) 构件识别方法、构建训练集方法、装置、设备及存储介质
CN116030056A (zh) 一种钢表面裂缝的检测方法及系统
CN114626457A (zh) 一种目标检测方法、装置及电子设备
Hashemi et al. Runtime monitoring for out-of-distribution detection in object detection neural networks
CN117473409A (zh) 一种pcb面板缺陷分类方法、系统、设备及存储介质
CN113313678A (zh) 一种基于多尺度特征融合的精子形态学自动分析方法
CN111368625B (zh) 一种基于级联优化的行人目标检测方法
CN116030076A (zh) 基于因果推理的隧道点云多目标分割集成方法及系统
EP3696771A1 (en) System for processing an input instance, method, and medium
CN117762783A (zh) 一种面向目标检测神经网络的蜕变测试方法
CN110728310B (zh) 一种基于超参数优化的目标检测模型融合方法及融合系统
JP2023515476A (ja) 知覚システムのための訓練データ候補の自動特定
CN116188973B (zh) 认知生成机制裂缝检测方法
CN114998990B (zh) 一种工地人员安全行为识别方法及装置
CN113792780B (zh) 基于深度学习和图像后处理的集装箱号识别方法
CN114723960B (zh) 一种增强银行账号安全的附加验证方法及系统
CN118196567B (zh) 基于大语言模型的数据评价方法、装置、设备及存储介质
CN117593890B (zh) 一种道路遗撒物体的检测方法、装置、电子设备及存储介质
WO2024135112A1 (ja) 機械学習システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination