一种自适应减少复杂光影干扰的识别方法及相关装置
技术领域
本申请涉及深度学习
技术领域
,尤其涉及一种射自适应减少复杂光影干扰的识别方法及相关装置。背景技术
深度学习近几年在各个领域都有广泛的应用,如自驾驶汽车、监视、恶意代码检测,无人机和机器人、语音指令识别等。虽然深度学习网络的分类精度越来越高,但是它们也被发现是极其容易受到扰动的影响。图像分类模型为例,其很容易受到复杂光的影响,而导致分类结果出现错误。
现有的对复杂光影情况下的干扰有很多改进的方法,但是针对不同的情景会有不同的应对策略,需要研究人员专门去研究不同场景的不同特性从而来选择不同的方法来对干扰进行改进,如修改训练过程,数据压缩,以及利用数据随机化的方法,这样工作效率不够快,人力成本高。
因此,亟待一种能够在多种场景下减少复杂光影干扰的识别方法。
发明内容
本申请提供了一种自适应减少复杂光影干扰的识别方法及相关装置,用于解决现有技术无法在多种场景下减少复杂光影干扰从而保持良好识别效果的技术问题。
有鉴于此,本申请第一方面提供了一种自适应减少复杂光影干扰的识别方法,所述方法包括:
S1、将原始图像输入到噪音生成器中处理,得到噪音图像;
S2、将所述原始图像和所述噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果;
S3、将所述第一输出结果和所述原始图像输入到所述噪音生成器中处理,得到第二输出结果,将所述第二输出结果替换为所述噪音图像后返回步骤S2进行迭代,直至达到预置迭代次数,获得最终识别算法。
可选地,所述预置判别网络由图像预处理模块、识别层、卷积层、归一化层、激活函数层构成。
可选地,所述将所述原始图像和所述噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果,具体包括:
S01、通过所述图像预处理模块对所述原始图像和所述噪音图像进行预处理后,输入到所述识别层处理得到一维向量,并去掉所述一维向量的最后一层;
S02、将所述一维向量作为卷积层的输入,并依次经过所述卷积层、归一化层、激活函数层的处理后,得到所述第一输出结果。
可选地,所述噪音生成器的损失函数为:
式中,F(x)表示使用softmax函数计算的类别概率向量,G(x)表示输入图像的噪音干扰程度,Δ表示输入图像现对于标签类别概率的梯度,cg为超参数。
可选地,所述预置判别网络的分类器为交叉熵函数,所述交叉熵函数为:
J(θf,x,y)=-logF(x;θf)y;
式中,x和y分别表示两种图片的像素,F(x)表示使用softmax函数计算的类别概率向量。
本申请第二方面提供一种自适应减少复杂光影干扰的识别系统,所述系统包括:
添加噪音模块,用于将原始图像输入到噪音生成器中处理,得到噪音图像;
判别模块,用于将所述原始图像和所述噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果;
训练模块,用于将所述第一输出结果和所述原始图像输入到所述噪音生成器中处理,得到第二输出结果,将所述第二输出结果替换为所述噪音图像后触发所述判别模块进行迭代,直至达到预置迭代次数,获得最终识别算法。
可选地,所述判别模块,具体用于:
S01、通过所述图像预处理模块对所述原始图像和所述噪音图像进行预处理后,输入到所述识别层处理得到一维向量,并去掉所述一维向量的最后一层;
S02、将所述一维向量作为卷积层的输入,并依次经过所述卷积层、归一化层、激活函数层的处理后,得到所述第一输出结果。
可选地,所述噪音生成器的损失函数为:
式中,F(x)表示使用softmax函数计算的类别概率向量,G(x)表示输入图像的噪音干扰程度,Δ表示输入图像现对于标签类别概率的梯度,cg为超参数。
本申请第三方面提供一种适应减少复杂光影干扰的识别设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行如上述第一方面所述的自适应减少复杂光影干扰的识别方法的步骤。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的自适应减少复杂光影干扰的识别方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种自适应减少复杂光影干扰的识别方法,包括:S1、将原始图像输入到噪音生成器中处理,得到噪音图像;S2、将原始图像和噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果;S3、将第一输出结果和原始图像输入到噪音生成器中处理,得到第二输出结果,将第二输出结果替换为噪音图像后返回步骤S2进行迭代,直至达到预置迭代次数,获得最终识别算法。解决了现有技术无法在多种场景下减少复杂光影干扰从而保持良好识别效果的技术问题。
本申请的自适应减少复杂光影干扰的识别方法,其目的是为预置判别网络络找到最佳的噪音生成器,同时,为每个噪音生成器找到最佳的预置判别网络(分类器)。具体的,沿着一个生成网络直接对预置判别网络(原始网络)进行训练,生成网络试图对预置判别网络(原始网络)产生扰动。在训练过程中,预置判别网络不断尝试对原始图像和噪音图像进行正确的分类。通过这样的训练,能够让原始识别算法,对自身网络参数进行调整,在可接受的识别效果的范围(即达到预置迭代次数)内达到足够的抗干扰能力,从而能够应对多种不同的场景,并且够保持原来的识别算法的效果水平。从而解决了现有技术无法在多种场景下减少复杂光影干扰从而保持良好识别效果的技术问题。
附图说明
图1为本申请实施例中提供的一种自适应减少复杂光影干扰的识别方法的流程示意图;
图2为本申请实施例中提供的一种自适应减少复杂光影干扰的识别方法的总体框图;
图3为本申请实施例中提供的预置判别网络的框图;
图4本申请实施例中提供的一种自适应减少复杂光影干扰的识别系统的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1、图2和图3,本申请实施例提供的一种自适应减少复杂光影干扰的识别方法,包括:
步骤101、将原始图像输入到噪音生成器中处理,得到噪音图像。
可以理解的是,噪音生成器随机生成噪音,并将噪音添加到原始图像中,使得图像收到干扰,得到噪音图像。
步骤102、将原始图像和噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果。
需要说明的是,带有原始识别算法的预置判别网络,是在原始识别算法的基础上添加了附加网络作为一个新的分类器,具体的,预置判别网络由图像预处理模块、识别层(原始识别算法)、卷积层、归一化层、激活函数层构成。
可以理解的是,首先,通过图像预处理模块对原始图像和所述噪音图像进行预处理后,输入到识别层处理得到一维向量,并去掉一维向量的最后一层;然后,将一维向量作为卷积层的输入,并依次经过卷积层、归一化层、激活函数层的处理后,得到所述第一输出结果。
其作用是,可以通俗的理解为:为了学习附加网络的基层卷积层,经过不断的自己对抗分类来进行自我更新,从而得到的附加网络,再结合原始识别算法,最终得到一个能够有效的避免多种场景下的复杂光影对原始的识别算法的干扰。
这个添加了附加网络的识别算法在额外添加的卷积层的输出,是需要比原始识别算法的输出的维度要多,因为这样就能使得这个修改过的识别算法能够既能充当对抗生成器中的判别器的同时,还能保持原始识别算法的分类器的作用。
如图2所示,将经过噪音生成器得到的噪音图像输入到预置判别网络,同时将原始图像也加入到预置判别网络进行识别,是为了尽量保持原来的识别算法的准确度,从而得到第一输出结果,将该第一输出结果作为输入,给到噪音生成器。
步骤103、将第一输出结果和原始图像输入到噪音生成器中处理,得到第二输出结果,将第二输出结果替换为噪音图像后返回步骤S2进行迭代,直至达到预置迭代次数,获得最终识别算法。
需要说明的是,本申请的预置迭代次数,具体的设置依据为:噪音生成器和预置判别网络最终达到一个较为稳定的状态,本领域技术人员可以以此设置迭代次数,在此不做限定。
需要说明的是,在迭代训练的过程中,训练的目的遵循以下公式:
minGmaxD V(D,G)=E[log(D(x))+E[log(1-D(G(y))]]
上述的D就是指预置判别网络充当判别器的作用,其目标是判断数据是真实的数据还是有噪音生成器生成出来的“假数据”。G代表噪音生成器生成的噪音加上原始图片后的噪音图像,通过深度模型生成数据,尽可能的符合想要生成的目标数据的特征,其目标就是使得判别器认为噪音生成器生成的数据归为和目标数据一类。
如图2所示,在训练过程中,可以通俗的理解为:第一阶段,首先固定判别器,只训练噪音生成器。在这个阶段中,我们给噪音生成器输入一个随机的向量,不断生成添加噪音的图像,然后将生成的假数据作为判别器的输入,由判别器来判断它是原始图像还是添加噪音的图像。
刚开始的时候由于噪音生成器生成噪音图像与原始图像数据相差比较大,因此,即便是没有训练过的判别器还是能判断出数据是否为原始图像。随着不断的进行这个训练过程,噪音生成器生成数据与原始图像的差别就越来越接近,此时就判别器就不能判断数据是否噪音由噪音生成器生成。
这个时候就到了第二阶段,即固定噪音生成器,训练判别器。只有不断提高判别器的判别能力,才能分辨出接近真实数据(原始图像)的假数据(噪音图像)。这样再经过上述两个阶段,使得噪音生成器生成的假数据不断接近真实数据,同时判别器的能力也不断提升。通过不断循环上述的两个阶段,使得噪音生成器和预置判别网络最终达到一个较为稳定的状态,以此得到一个我们想要的能够自适应多种光影干扰情况下仍能保持良好识别效果的识别算法。
本申请的自适应减少复杂光影干扰的识别方法,其目的是为预置判别网络络找到最佳的噪音生成器,同时,为每个噪音生成器找到最佳的预置判别网络(分类器)。具体的,沿着一个生成网络直接对预置判别网络(原始网络)进行训练,生成网络试图对预置判别网络(原始网络)产生扰动。在训练过程中,预置判别网络不断尝试对原始图像和噪音图像进行正确的分类。通过这样的训练,能够让原始识别算法,对自身网络参数进行调整,在可接受的识别效果的范围内(即达到预置迭代次数)达到足够的抗干扰能力,从而能够应对多种不同的场景,并且够保持原来的识别算法的效果水平。从而解决了现有技术无法在多种场景下减少复杂光影干扰从而保持良好识别效果的技术问题。
在一个具体的实施例方式中,本申请的预置判别网络由图像预处理模块、识别层、卷积层、归一化层、激活函数层构成。
在一个具体的实施例方式中,本申请的噪音生成器的损失函数为:
式中,F(x)表示使用softmax函数计算的类别概率向量,G(x)表示输入图像的噪音干扰程度,Δ表示输入图像现对于标签类别概率的梯度,cg为超参数。
在一个具体的实施例方式中,本申请的预置判别网络的分类器为交叉熵函数,所述交叉熵函数为:
J(θf,x,y)=-logF(x;θf)y;
式中,x和y分别表示两种图片的像素,F(x)表示使用softmax函数计算的类别概率向量。
以上为本申请实施例提供的提供的一种自适应减少复杂光影干扰的识别方法,以下为本申请实施例提供的提供的一种自适应减少复杂光影干扰的识别系统。
请参阅图4,本申请实施例提供的提供的一种自适应减少复杂光影干扰的识别系统,包括:
添加噪音模块201,用于将原始图像输入到噪音生成器中处理,得到噪音图像。
判别模块202,用于将原始图像和噪音图像输入到带有原始识别算法的预置判别网络进行识别,得到第一输出结果。
训练模块203,用于将第一输出结果和原始图像输入到噪音生成器中处理,得到第二输出结果,将第二输出结果替换为噪音图像后触发判别模块进行迭代,直至达到预置迭代次数,获得最终识别算法。
本申请的自适应减少复杂光影干扰的识别系统,其目的是为预置判别网络络找到最佳的噪音生成器,同时,为每个噪音生成器找到最佳的预置判别网络(分类器)。具体的,沿着一个生成网络直接对预置判别网络(原始网络)进行训练,生成网络试图对预置判别网络(原始网络)产生扰动。在训练过程中,预置判别网络不断尝试对原始图像和噪音图像进行正确的分类。通过这样的训练,能够让原始识别算法,对自身网络参数进行调整,在可接受的识别效果的范围(即达到预置迭代次数)内达到足够的抗干扰能力,从而能够应对多种不同的场景,并且够保持原来的识别算法的效果水平。从而解决了现有技术无法在多种场景下减少复杂光影干扰从而保持良好识别效果的技术问题。
进一步地,本申请还提供了一种自适应减少复杂光影干扰的识别设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方法实施例所述的自适应减少复杂光影干扰的识别方法。
进一步地,本申请还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述方法实施例所述的自适应减少复杂光影干扰的识别方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。