技术领域
本申请涉及图像处理技术领域,尤其涉及一种基于对抗神经网络生成样本数据的方法以及装置。
背景技术
在深度学习技术的相关应用研究中,样本的数据量是影响模型识别性能的重要因素。然而,由于目前关于输电线路的巡检图像缺陷检测技术正处在起步阶段,目前可以收集到的缺陷样本数量是很少的,而且获取新的独立样本图像比较困难。因此,现有技术中,样本数据的质量和数量不符合要求。
发明内容
本申请提供了一种基于对抗神经网络生成样本数据的方法以及装置,以解决现有技术中,样本数据的质量和数量不符合要求的问题。
第一方面,本发明提供了一种基于对抗神经网络生成样本数据的方法,包括:
获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据;
获取训练样本数据,其中,所述训练样本数据为真实采集图片;
将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集;
获取所述分类器的分类指标;
在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。
可选的,所述将所述虚假样本数据作为目标样本数据,包括:
构建与所述生成器和所述分类器相关的估值函数;
在所述估值函数的数值满足预设估值条件的情况下,将所述虚假样本数据作为所述目标样本数据。
可选的,在所述构建与所述生成器和所述分类器相关的估值函数的步骤之后,所述方法还包括:
根据所述估值函数获取所述分类器的积分函数;
计算所述积分函数的极值点;
根据所述极值点,获取所述分类器的最优解。
可选的,所述根据所述极值点,获取所述分类器的最优解,包括:
对所述积分函数求导数,获得求导结果;
根据所述求导结果,获取所述分类器的最优解。
可选的,在所述根据所述极值点,获取所述分类器的最优解的步骤之后,所述方法还包括:
根据所述分类器的最优解,获取所述生成器的最优解。
可选的,所述根据所述分类器的最优解,获取所述生成器的最优解,包括:
构建两个大于0的相对熵散度;
根据所述两个大于0的相对熵散度,获取JS散度;
根据所述JS散度,获取所述生成器的最优解。
可选的,所述分类指标包括所述生成器的收敛值,所述在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据,包括:
在所述生成器的收敛值满足预设收敛条件的情况下,将所述虚假样本数据作为所述目标样本数据。
第二方面,本发明还提供了一种基于对抗神经网络生成样本数据的装置,包括:
第一获取模块,用于获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据;
第二获取模块,用于获取训练样本数据,其中,所述训练样本数据为真实采集图片;
输入模块,用于将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集;
第三获取模块,用于获取所述分类器的分类指标;
执行模块,用于在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。
第三方面,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行第一方面所述的方法。
第四方面,本发明还提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行第一方面所述的方法。
由以上技术方案可知,本发明实施例提供的一种基于对抗神经网络生成样本数据的方法以及装置,获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据;获取训练样本数据,其中,所述训练样本数据为真实采集图片;将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集;获取所述分类器的分类指标;在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。这样,可以有效提升样本数据的质量和数量。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于对抗神经网络生成样本数据的方法的流程图;
图2为本发明提供的一种随机噪声的示意图;
图3a为本发明提供的一种1000次训练迭代后的目标样本数据的示意图;
图3b为本发明提供的一种2000次训练迭代后的目标样本数据的示意图;
图3c为本发明提供的一种3000次训练迭代后的目标样本数据的示意图;
图3d为本发明提供的一种4000次训练迭代后的目标样本数据的示意图;
图3e为本发明提供的一种5000次训练迭代后的目标样本数据的示意图;
图3f为本发明提供的一种6000次训练迭代后的目标样本数据的示意图;
图4为本发明提供的另一种基于对抗神经网络生成样本数据的方法的流程图;
图5为本发明提供的一种基于透视变换的样本自动生成方法的流程示意图;
图6为本发明提供的一种基于对抗神经网络生成样本数据的装置的结构图;
图7为本发明提供的一种计算机设备的结构示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
请参阅图1,图1是本发明提供的一种基于对抗神经网络生成样本数据的方法的流程图。如图1所示,包括以下步骤:
步骤101、获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据。
在步骤101中,可以获取随机噪声,随机噪声是按照一定概率分布生成的。对抗神经网络的生成器可以根据随机噪声生成与真实数据尽可能类似的虚假样本数据。对抗神经网络的生成器可以是卷积网络,虚假样本数据可以是虚假图片。
步骤102、获取训练样本数据,其中,所述训练样本数据为真实采集图片。
在步骤102中,可以获取训练样本数据,训练样本数据可以为真实采集图片。进一步地,可以根据需要生成的目标样本数据的内容,选择训练样本数据的真实采集图片的内容。例如,需要的目标样本数据为端子图片,则训练样本数据包括的真实图片为端子图片。在其他实施场景中,为了丰富训练样本数据的内容,使得训练出的目标样本数据更真实,可以对真实采集图片进行透视变换,将透视变换后获取的变换图片作为训练样本数据中的一部分。
步骤103、将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集。
在步骤103中,可以将虚假样本数据和训练样本数据输入对抗神经网络的分类器,以使分类器对虚假样本数据和训练样本数据中的图片进行判断,并将输入的图片分为真实数据集和虚假数据集。在分类器和生成器相互博弈的过程中,生成器生成的虚假样本数据将更接近真实数据,而分类器的分别真假数据的结果将更加准确。通过不断的训练迭代,可以使得虚假样本数据与真实数据的接近度更高。
步骤104、获取所述分类器的分类指标。
在步骤104中,可以获取分类器的分类指标。
步骤105、在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。
在步骤105中,在分类指标满足预设分类标准的情况下,可以将虚假样本数据作为目标样本数据。例如,分类指标可以是训练迭代次数,当训练迭代次数达到预设次数时,例如2000次、3000次、5000次时,可以判定训练完成,将当前的虚假样本数据作为目标样本数据。
需要说明的是,分类指标还可以是分类器和/或生成器的收敛值。当分类器和/或生成器的收敛值小于或等于预设值时,可以判定训练完成,将当前的虚假样本数据作为目标样本数据。
请结合参阅图2、图3a-图3f。如图2所示,为一种随机噪声的示意图。
图3a为一种1000次训练迭代后的目标样本数据的示意图;
图3b为一种2000次训练迭代后的目标样本数据的示意图;
图3c为一种3000次训练迭代后的目标样本数据的示意图;
图3d为一种4000次训练迭代后的目标样本数据的示意图;
图3e为一种5000次训练迭代后的目标样本数据的示意图;
图3f为一种6000次训练迭代后的目标样本数据的示意图。
根据图2、图3a-图3f可知,随着训练迭代次数的增加,目标样本数据的质量也逐渐变好。作为一种优选的方式,可选择迭代4000次,节约时间和成本,提升效率。
由以上技术方案可知,本发明实施例提供的一种基于对抗神经网络生成样本数据的方法,获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据;获取训练样本数据,其中,所述训练样本数据为真实采集图片;将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集;获取所述分类器的分类指标;在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。这样,通过生成对抗神经网络中生成器与分类器的博弈过程,可以有效提升目标样本数据的质量和数量。
请参阅图4,图4是本发明提供的另一种基于对抗神经网络生成样本数据的方法的流程图。如图4所示,包括以下步骤:
步骤401、获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据。
步骤402、获取训练样本数据,其中,所述训练样本数据为真实采集图片。
步骤403、将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集。
需要说明的是,步骤401-步骤403与图1所示的实施例中的步骤101-步骤103一致,此处不再进行赘述。
步骤404、构建与所述生成器和所述分类器相关的估值函数,在所述估值函数的数值满足预设估值条件的情况下,将所述虚假样本数据作为所述目标样本数据。
在一些实施例中,构建与生成器和分类器相关的估值函数。假定用于生成的虚假样本数据的随机噪声分布是pz(z),训练样本数据中真实数据的分布是px(x),同时对抗神经网络中的生成器和分类器分别为G和D,则对抗神经网络的目标可以通过如下公式描述:
其中,D(x)表示x来源于真实数据的分布,即训练样本数据,理想情况下,D(x)=1,logD(x)=0。若是分类器D不理想,则D(x)输出越小,logD(x)则会越小。G(z)表示随机噪声经过生成器后生成的虚假样本数据,D(G(z))则是分类器认为生成样本属于真实样本的概率,理想情况下这个数值为0。但当性能越不好,D(G(z))越大,log(1-D(G(z)))就会越小。总而言之,上述公式中后面两项期望的和越大,分类器识别能力越好。
根据估值函数V(G,D)前面的min/max可知,本公式最终的目标是求外面的minG。生成器G的目标是让V的值最小,达到虚假样本数据可以以假乱真的目的。而内部嵌套的maxD,则代表分类器D是在生成器G给定的情况下,最大化V,即给定生成器,得到识别能力最好的分辨器。
根据上述公式求解分类器的最优解。对上述公式中原有的V(G,D)对期望公式展开可得:
V(G,D)=∫
令g(z)=x,并进行换元,可得:
V(G,D)=∫
其中,p
令:p
那么可以得到积分内的积分函数:
f(y)=a log(y)+b log(1-y)
对f(y)求一阶导和二阶导,并求出极值点:
当x变换的时候,对于每个x,y都可以取到相应的唯一最大值,因此等号可以取到,当且仅当y=a/(a+b)时取到,即:
在获取到分类器的最优解后,令最优生成器为
令:
其中,我们通过添加分子2,构造了两个KL(Kullback-Leibler)散度,KL散度一般指相对熵。相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。KL散度是大于等于0的。假设存在两个分布A和B,且这两个分布的平均分布,即C=(A+B)/2,则它们之间的JS散度是A与C的KL散度和B与C的KL散度的二分之一,即:
由JS散度(Jensen-Shannon divergence)的性质,当且仅当p
通过上述描述可知,在本实施例中通过构建与生成器和分类器相关的估值函数,分别求出生成器和分类器的最优解,得出优分类器的解最终收敛到1/2,优生成器恰好恒为1/2,从而获取虚假样本数据何时可以作为目标样本数据。
参见图5,图5是本发明提供的一种基于透视变换的样本自动生成方法的流程示意图。如图5所示,包括以下步骤:
步骤501、获取样本对象图片,获取样本对象图片的前景图片。
在步骤501中,可以获取样本对象图片,样本对象图片可以是实际拍摄的包括目标拍摄物的巡维图片。通过图片前景分割算法(例如,Graph cut算法)获取样本对象图片的前景图片。
步骤502、获取目标背景图片,在目标背景图片上随机选择至少一个像素点作为至少一个图片中心点。
在步骤502中,可以获取目标背景图片,在目标背景图片上随机选择至少一个像素点,每个像素点作为图片中心点,也就是以后将变换图片放置在目标背景图片上时,变换图片的中心点的位置。
步骤503、以每个图片中心点为中心生成矩形框,将至少一个矩形框对应的区域作为至少一个目标显示区域。
在步骤503中,随机获取高度值和宽度值,根据高度值和宽度值以图片中心点为中心生成矩形框。进一步地,随机确定矩形框的长边或宽边与水平线的夹角。将至少一个矩形框对应的区域作为至少一个目标显示区域。至少一个矩形框的位置关系包括平行、重叠、部分重叠、远离等等。
步骤504、获取透视变换矩阵;获取前景图片中目标像素点的初始坐标值,根据透视变换矩阵计算出初始坐标值对应的目标坐标值,从而获取变换图片。
在步骤504中,透视变换原理为
由于透视变换是二维空间到三维空间的转换,实际转换后的结果以二维图片的形式展现,因此将X、Y、Z都除以Z,获得X’、Y’、Z’,以表示透视变换后的变换图片上的点。具体地,请参阅下列公式:
进一步地,根据上述公式可以得出:
令a
根据上述公式可知,存在8个未知数(a
假设前景图片中的四个初始像素点的初始坐标分别为(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3),变换后的变换图片的这四个初始像素点的目标坐标为(X′0,Y′0)、(X′1,Y′1)、(X′2,Y′2)、(X′3,Y′3),则上述公式可以变为:
根据上述公式可以计算出透视变换矩阵warpMatric
将前景图片中的每一像素点作为目标像素点乘以透视变换矩阵warpMatric,根据前景图片中目标像素点的初始坐标值,计算出初始坐标值对应的目标坐标值从而获取变换图片。
进一步的,可以选择前景图像的边缘或者顶角的像素点作为目标像素点,在其他实施场景中,还可以选择前景图像中心的像素点作为目标像素点。获取目标像素点在变化图片中的坐标,从而计算出透视变换矩阵warpMatric。
步骤505、将变换图片放置于匹配的目标显示区域,生成目标样本图片。
在步骤505中,可以将变换图片放置于目标显示区域,生成目标样本图片。进一步地,获取样本对象图片的标识,例如样本对象图片为绝缘子故障,为目标样本图片添加同样的标识。
在本实施例中,获取前景图片中至少四个初始像素点的初始坐标值,以及至少四个初始像素点对应的变换像素点的变换坐标值;根据初始坐标值和变换坐标值计算透视变换矩阵,将前景图片中的每一像素点均乘以透视变换矩阵warpMatric,从而获取变换图片。将变换图片放置于匹配的目标显示区域,生成目标样本图片。可以根据一个样本对象图片,随机生成多个不同视角的目标样本图片,有效扩充了样本数量。
参见图6,图6是本发明提供的一种基于对抗神经网络生成样本数据的装置的结构图。如图6所示,基于对抗神经网络生成样本数据的装置600包括第一获取模块601、第二获取模块602、输入模块603、第三获取模块604和执行模块605,其中:
第一获取模块601,用于获取随机噪声,并控制对抗神经网络的生成器根据所述随机噪声生成虚假样本数据;
第二获取模块602,用于获取训练样本数据,其中,所述训练样本数据为真实采集图片;
输入模块603,用于将所述虚假样本数据和所述训练样本数据输入所述对抗神经网络的分类器,以使所述分类器将所述虚假样本数据和所述训练样本数据划分为真实数据集和虚假数据集;
第三获取模块604,用于获取所述分类器的分类指标;
执行模块605,用于在所述分类指标满足预设分类标准的情况下,将所述虚假样本数据作为目标样本数据。
基于对抗神经网络生成样本数据的装置600能够实现图1的方法实施例中基于对抗神经网络生成样本数据的装置实现的各个过程,为避免重复,这里不再赘述。且基于对抗神经网络生成样本数据的装置600可以实现通过生成对抗神经网络中生成器与分类器的博弈过程,可以有效提升目标样本数据的质量和数量。
请参阅图7,图7是本发明提供的一种计算机设备的结构示意图。计算机设备包括处理器71、存储器72。处理器71耦接存储器72。存储器72中存储有计算机程序,处理器71在工作时执行该计算机程序以实现如图1所示的方法。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
机译: 基于样本数据和种子生成的神经网络脆性识别系统和方法
机译: 基于样本数据和种子生成的神经网络脆性识别系统和方法
机译: 基于样本数据和种子生成识别神经网络脆性的系统和方法