一种基于生成式对抗网络的阴影去除方法转让专利

申请号 : CN201910256619.1

文献号 : CN109978807B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋晓悦胡钟昀冯晓毅夏召强吴俊李煜祥

申请人 : 西北工业大学

摘要 :

本发明涉及一种基于生成式对抗网络的阴影去除方法,该方法针对单幅图像阴影去除,首先设计生成式对抗网络并利用阴影图像数据集进行训练,然后通过对抗学习的方式来训练判别器和生成器,最后生成器恢复出以假乱真的阴影去除图像。本发明方法仅由一个生成式对抗网络构成,在生成器中分别设计阴影检测子网络和阴影去除子网络,并且利用十字绣模块自适应融合不同任务之间的底层特征,将阴影检测作为辅助任务,从而提升阴影去除表现。

权利要求 :

1.一种基于生成式对抗网络的阴影去除方法,所述的生成式对抗网络包括生成器和判别器,其特征在于步骤如下:步骤1:增强阴影图像数据集;

步骤2:分别设计生成器中的阴影检测子网络和阴影去除子网络,定义生成器损失函数;

步骤2-1:设计生成器的阴影检测子网络,阴影检测子网络分别由7层网络构成,其中,第1层网络是卷积核为3×3、通道数为64的卷积层,第2-6层网络由基本残差块组成,每个基本残差块的卷积核为3×3、通道数为64,第7层网络是卷积核为3×3、通道数为2的卷积层;

步骤2-2:定义阴影检测子网络损失函数

预设阴影检测标签图像l(w,h)∈{0,1},对于给定的像素点(w,h)属于l(w,h)的概率为:其中Fk(w,h)记为来自阴影检测子网络最后一层k通道特征图像素点(w,h)的值,w=

1,…,W1,h=1,…,H1;W1和H1分别是特征图的宽和高;故阴影检测子网络损失函数定义如下:步骤2-3:生成器的阴影去除子网络由7层网络构成,其中,阴影去除子网络的第7层网络是卷积核为3×3、通道数为1的卷积层,阴影去除子网络的第2-6层网络与步骤2-1中设计的阴影检测子网络结构保持一致;

步骤2-4:定义阴影去除子网络损失函数

c,w,h c,w,h

预设阴影输入图像x 和阴影去除标签图像z ∈{0,1,…,255},其中c代表图像的通道变量,w和h分别代表图像宽和高变量,故阴影去除子网络的损失函数定义如下:其中,G(·)代表阴影去除网络的输出,C、W2和H2分别代表阴影输入图像的通道数、宽和高;

步骤2-5:使用不确定度来权衡阴影检测和去除损失函数,因为阴影检测子网络属于分类任务,而阴影去除子网络属于回归任务,故生成器损失函数LE定义如下:其中,δ1、δ2为权重值;

步骤3:利用十字绣模块自适应融合不同任务之间的底层特征,得到生成器;

对于给定的分别来自阴影检测子网络和去除网络子网络第p层的两个激活特征图xA,xB,学习两个输入激活特征图的线性组合 并且将其作为下一层的输入;线性组合将使用α参数;特别地,对于激活特征图(i,j)位置,有如下公式:其中,用αD表示αAB,αBA并将它们称为不同任务值,因为它们权衡了来自另一个任务的激活特征图;同样地,αAA,αBB用αS表示,即相同任务值,因为它们权衡了来自相同任务的激活特征图;通过改变αD和αS值,十字绣模块可以在共享和特定任务的表示之中自由选择,并选择合适的中间值;

步骤4:设计判别器,定义判别器损失函数;

步骤4-1:判别器包含有8个数量不断增加的带有3×3滤波器内核的卷积层,其中,和VGG网络相似,卷积层的通道数按指数为2从64增加到512;在512幅特征图之后接上两个全连接层和一个最终的Sigmoid激活函数,以获得样本分类的概率;

步骤4-2:给定一组来自于生成器的N幅阴影检测-去除图像对和一组N幅阴影检测-去除标签图像对,分别记为 和 判别器的损失函数定义如下:步骤5:在步骤1得到的阴影图像数据集上,通过极小极大策略优化步骤3和步骤4设计的生成器和判别器,使得生成式对抗网络具有图像阴影去除能力,最后将阴影图像作为生成式对抗网络的输入,进行卷积运算,恢复出一幅无阴影图像。

2.根据权利要求1所述的一种基于生成式对抗网络的阴影去除方法,其特征在于所述的步骤1具体如下:步骤1-1:设定图像基准尺寸,对阴影图像数据集中的图像进行缩放操作,使得所有图像大小都变为基准尺寸;

步骤1-2:将步骤1-1中得到的每幅图像分别进行水平翻转、垂直翻转及顺时针180度旋转操作,将得到的新图像保存,形成新的阴影图像数据集,阴影图像数据集的图像总数变为之前的4倍;

步骤1-3:将新图像数据集里的每幅图像按照从上至下从左至右的顺序分割成互重叠的大小为320*240像素的方块。

3.根据权利要求1所述的一种基于生成式对抗网络的阴影去除方法,其特征在于所述的步骤5具体如下:步骤5-1:固定生成器的参数,利用Adam算法更新判别器的参数,提高判别器识别真伪能力;

步骤5-2:固定判别器的参数,利用Adam算法更新生成器的参数,使得生成器在判别器的指导下提高造假能力;

步骤5-3:重复步骤4-1和4-2,直至判别器无法分辨输入图像是真实的标签图像还是生成器生成的造假图像时,停止迭代;此时,生成式对抗网络具有图像阴影去除能力;

步骤5-4:最后将阴影图像输入到生成器的阴影去除子网络中,恢复出一幅无阴影图像。

说明书 :

一种基于生成式对抗网络的阴影去除方法

技术领域

[0001] 本发明属于图像处理技术领域,具体涉及一种图像处理尤其是单幅图像阴影去除方法。

背景技术

[0002] 近年来,计算机视觉系统已经广泛应用于生产生活场景,如工业视觉检测、视频监控、医疗影像检测和智能驾驶等。然而,阴影作为自然界中普遍存在的一种物理现象,它给计算机视觉任务带来诸多不利影响,增加了问题处理的难度,降低了算法的鲁棒性。首先,阴影的形状变化很大。即使对于相同的物体,阴影的形状也会根据光源的变化而变化。其次,当光不是点光源时,阴影内部区域的强度不均匀。光源越复杂,阴影的边界区域越宽。在边界区域附近,逐渐从阴影变为非阴影。比如草地上覆盖的阴影会破坏灰度值的连续性,进而影响语义分割、特征提取和图像分类等视觉任务;又比如高速公路视频监控系统中,由于阴影随着汽车一同运动,从而降低了提取汽车形状的准确度。因此,有效的阴影去除会大大提高图像处理算法的性能。
[0003] 目前,阴影去除方法主要分为两类,一类是基于视频序列,利用多幅图像的信息,通过差分法完成阴影的去除,但是应用场景十分有限且对于单幅图像无能为力;一类是基于单幅图像,通过建立物理模型或者特征提取的方法来消除图像中的阴影,但是面对复杂背景的图像,该方法的阴影去除性能将严重下降。不难看出,基于单幅图像的阴影去除的应用场景十分广泛,将是未来重点研究方向。但是因为单幅图像的可利用信息较少,所以在阴影去除性能上仍有很大的提高空间。

发明内容

[0004] 要解决的技术问题
[0005] 为了避免现有技术的不足之处,本发明提出一种基于生成式对抗网络的阴影去除方法。
[0006] 技术方案
[0007] 一种基于生成式对抗网络的阴影去除方法,所述的生成式对抗网络包括生成器和判别器,其特征在于步骤如下:
[0008] 步骤1:增强阴影图像数据集;
[0009] 步骤2:分别设计生成器中的阴影检测子网络和阴影去除子网络,定义生成器损失函数;
[0010] 步骤2-1:设计生成器的阴影检测子网络,该网路分别由7层网络构成,其中,第1层网络是卷积核为3×3、通道数为64的卷积层,第2-6层网络由基本残差块组成,每个残差块的卷积核为3×3、通道数为64,第7层网络是卷积核为3×3、通道数为2的卷积层;
[0011] 步骤2-2:定义阴影检测子网络损失函数
[0012] 预设阴影检测标签图像l(w,h)∈{0,1},对于给定的像素点(w,h)属于l(w,h)的概率为:
[0013]
[0014] 其中Fk(w,h)记为来自阴影检测子网络最后一层k通道特征图像素点(w,h)的值,w=1,…,W1,h=1,…,H1;W1和H1分别是特征图的宽和高;故阴影检测子网络损失函数定义如下:
[0015]
[0016] 步骤2-3:生成器的阴影去除子网络由7层网络构成,其中,该网络的第7层网络是卷积核为3×3、通道数为1的卷积层,其余网络与步骤2-1中设计的阴影检测子网络结构保持一致;
[0017] 步骤2-4:定义阴影去除子网络损失函数
[0018] 预设阴影输入图像xc,w,h和阴影去除标签图像zc,w,h∈{0,1,…,255},其中c代表图像的通道变量,w和h分别代表图像宽和高变量,故阴影去除子网络的损失函数定义如下:
[0019]
[0020] 其中,G(·)代表阴影去除网络的输出,C、W2和H2分别代表阴影输入图像的通道数、宽和高;
[0021] 步骤2-5:使用不确定度来权衡阴影检测和去除损失函数,因为阴影检测子网络属于分类任务,而阴影去除子网络属于回归任务,故生成器损失函数LE定义如下:
[0022]
[0023] 其中,δ1、δ2为权重值;
[0024] 步骤3:利用十字绣模块自适应融合不同任务之间的底层特征,得到生成器;
[0025] 对于给定的分别来自阴影检测子网络和去除网络子网络第p层的两个激活特征图xA,xB,学习两个输入激活特征图的线性组合 并且将其作为下一层的输入;线性组合将使用α参数;特别地,对于激活特征图(i,j)位置,有如下公式:
[0026]
[0027] 其中,用αD表示αAB,αBA并将它们称为不同任务值,因为它们权衡了来自另一个任务的激活特征图;同样地,αAA,αBB用αS表示,即相同任务值,因为它们权衡了来自相同任务的激活特征图;通过改变αD和αS值,该模块可以在共享和特定任务的表示之中自由选择,并在需要时选择合适的中间值;
[0028] 步骤4:设计判别器,定义判别器损失函数;
[0029] 步骤4-1:判别器包含有8个数量不断增加的带有3×3滤波器内核的卷积层,其中,和VGG网络相似,卷积层的通道数按指数为2从64增加到512;在512幅特征图之后接上两个全连接层和一个最终的Sigmoid激活函数,以获得样本分类的概率;
[0030] 步骤4-2:给定一组来自于生成器的N幅阴影检测-去除图像对和一组N幅阴影检测-去除标签图像对,分别记为 和 判别器的损失函数定义如下:
[0031]
[0032] 步骤5:在步骤1得到的阴影图像数据集上,通过极小极大策略优化步骤3和步骤4设计的生成器和判别器,使得生成式对抗网络具有图像阴影去除能力,最后将阴影图像作为生成式对抗网络的输入,进行卷积运算,恢复出一幅无阴影图像。
[0033] 所述的步骤1具体如下:
[0034] 步骤1-1:设定图像基准尺寸,对阴影图像数据集中的图像进行缩放操作,使得所有图像大小都变为基准尺寸;
[0035] 步骤1-2:将步骤1-1中得到的每幅图像分别进行水平翻转、垂直翻转及顺时针180度旋转操作,将得到的新图像保存,形成新的阴影图像数据集,阴影图像数据集的图像总数变为之前的4倍;
[0036] 步骤1-3:将新图像数据集里的每幅图像按照从上至下从左至右的顺序分割成互重叠的大小为320*240像素的方块。
[0037] 所述的步骤5具体如下:
[0038] 步骤5-1:固定生成器的参数,利用Adam算法更新判别器的参数,提高判别器识别真伪能力;
[0039] 步骤5-2:固定判别器的参数,利用Adam算法更新生成器的参数,使得生成器在判别器的指导下提高“造假”能力;
[0040] 步骤5-3:重复步骤4-1和4-2,直至判别器无法分辨输入图像是真实的标签图像还是生成器生成的“造假”图像时,停止迭代;此时,生成式对抗网络具有图像阴影去除能力;
[0041] 步骤5-4:最后将阴影图像输入到生成器的阴影去除子网络中,恢复出一幅无阴影图像。
[0042] 有益效果
[0043] 本发明提出的一种于生成式对抗网络的阴影去除方法,该方法针对单幅图像阴影去除,首先设计生成式对抗网络并利用阴影图像数据集进行训练,然后通过对抗学习的方式来训练判别器和生成器,最后生成器恢复出以假乱真的阴影去除图像。本发明方法仅由一个生成式对抗网络构成,在生成器中分别设计阴影检测子网络和阴影去除子网络,并且利用十字绣模块自适应融合不同任务之间的底层特征,将阴影检测作为辅助任务,从而提升阴影去除表现。本发明通过十字绣模块,将阴影检测作为辅助任务,能够提高阴影去除的准确性和鲁棒性,使得阴影去除区域更加真实自然。

附图说明

[0044] 图1是本发明阴影去除方法流程图。
[0045] 图2是生成式对抗网络结构,其中(a)是生成器,(b)是判别器。
[0046] 图3十字绣模块

具体实施方式

[0047] 现结合实施例、附图对本发明作进一步描述:
[0048] 如图1所示,本发明提出图像阴影去除方法首先设计阴影检测子网络和阴影去除子网络,定义对应的损失函数;然后,利用十字绣模块自适应融合两个网络的底层特征,建立生成器;接着,定义判别器及其对应损失函数;最后,通过极小极大策略优化生成式对抗网络,将阴影图像作为生成式对抗网络的输入,进行卷积运算,恢复出一幅无阴影图像。
[0049] 本发明提供的一种基于生成式对抗网络的阴影去除方法,包括以下步骤:
[0050] 步骤1:增强阴影图像数据集;
[0051] 步骤2:分别设计生成器中的阴影检测子网络和阴影去除子网络,定义生成器损失函数;
[0052] 步骤3:利用十字绣模块自适应融合不同任务之间的底层特征,得到生成器;
[0053] 步骤4:设计判别器,定义判别器损失函数;
[0054] 步骤5:在步骤1得到的阴影图像数据集上,通过极小极大策略优化步骤3和步骤4设计的生成式对抗网络,使得生成式对抗网络具有图像阴影去除能力,最后将阴影图像作为生成式对抗网络的输入,进行卷积运算,恢复出一幅无阴影图像。
[0055] 进一步地,步骤1中增强阴影图像数据集的步骤如下:
[0056] 步骤1-1:设定图像基准尺寸,对阴影图像数据集中的图像进行缩放操作,使得所有图像大小都变为基准尺寸;
[0057] 步骤1-2:将步骤1-1中得到的每幅图像分别进行水平翻转、垂直翻转及顺时针180度旋转操作,将得到的新图像保存,形成新的阴影图像数据集,阴影图像数据集阴影图像数据集的图像总数变为之前的4倍;
[0058] 步骤1-3:将新图像数据集里的每幅图像按照从上至下从左至右的顺序分割成互重叠的大小为320*240像素的方块;
[0059] 步骤1-4:将所有320*240的方块图作为生成式对抗网络的输入,进行卷积运算,恢复出无阴影图像;
[0060] 进一步地,步骤2中生成器的设计步骤及其损失函数定义如下:
[0061] 步骤2-1:设计生成器的阴影检测子网络,该网路分别由7层网络构成,其中,第1层网络是卷积核为3×3、通道数为64的卷积层,第2-6层网络由基本残差块组成,每个残差块的卷积核为3×3、通道数为64,第7层网络是卷积核为3×3、通道数为2的卷积层;
[0062] 步骤2-2:定义阴影检测子网络损失函数
[0063] 预设阴影检测标签图像l(w,h)∈{0,1},对于给定的像素点(w,h)属于l(w,h)的概率为:
[0064]
[0065] 其中Fk(w,h)记为来自阴影检测子网络最后一层k通道特征图像素点(w,h)的值,w=1,…,W1,h=1,…,H1。W1和H1分别是特征图的宽和高。故阴影检测子网络损失函数定义如下:
[0066]
[0067] 步骤2-3:生成器的阴影去除子网络由7层网络构成,其中,该网络的第7层网络是卷积核为3×3、通道数为1的卷积层,其余网络与步骤2-1中设计的阴影检测子网络结构保持一致;
[0068] 步骤2-4:定义阴影去除子网络损失函数
[0069] 预设阴影输入图像xc,w,h和阴影去除标签图像zc,w,h∈{0,1,…,255},其中c代表图像的通道变量,w和h分别代表图像宽和高变量,故阴影去除子网络的损失函数定义如下:
[0070]
[0071] 其中,G(·)代表阴影去除网络的输出,C、W2和H2分别代表阴影输入图像的通道数、宽和高。
[0072] 步骤2-5:使用不确定度来权衡阴影检测和去除损失函数,因为阴影检测子网络属于分类任务,而阴影去除子网络属于回归任务,故生成器损失函数LE定义如下:
[0073]
[0074] 进一步地,步骤3中生成器的十字绣模块设计如下:
[0075] 对于给定的分别来自阴影检测和去除网络第p层的两个激活特征图xA,xB,我们学习两个输入激活特征图的线性组合 并且将其作为下一层的输入。线性组合将使用α参数。特别地,对于激活特征图(i,j)位置,有如下公式:
[0076]
[0077] 其中,我们用αD表示αAB,αBA并将它们称为不同任务值,因为它们权衡了来自另一个任务的激活特征图。同样地,αAA,αBB用αS表示,即相同任务值,因为它们权衡了来自相同任务的激活特征图。通过改变αD和αS值,该模块可以在共享和特定任务的表示之中自由选择,并在需要时选择合适的中间值。
[0078] 如图3所示,十字绣模块用α表示,一个α里面有四个值,阴影检测网络里面p层的输出特征图与来自阴影去除网络里面对应p层的输出特征图做融合(系数是两个),融合后的新的特征图作为阴影检测网络p+1层的输入;阴影去除网络p+1层的输入也是如此。这些参数最后利用Adam算法自动优化,由算法选择最终的值。比如:阴影检测网络和去除网络第p层输出分别是x和y,那么阴影检测网络p+1层的输入可能是0.9x+0.1y;阴影去除网络p+1层的输入可能是0.2x+0.8y。
[0079] 进一步地,步骤4中判别器及其损失函数定义如下:
[0080] 步骤4-1:判别器包含有8个数量不断增加的带有3×3滤波器内核的卷积层,其中,和VGG网络相似,卷积层的通道数按指数为2从64增加到512。在512幅特征图之后接上两个全连接层和一个最终的Sigmoid激活函数,以获得样本分类的概率;
[0081] 步骤4-2:给定一组来自于生成器的N幅阴影检测-去除图像对和一组N幅阴影检测-去除标签图像对,分别记为 和 判别器的损失函数定义如下:
[0082]
[0083] 进一步地,步骤5中的网络优化过程如下:
[0084] 步骤5-1:固定生成器的参数,利用Adam算法更新判别器的参数,提高判别器识别真伪能力;
[0085] 步骤5-2:固定判别器的参数,利用Adam算法更新生成器的参数,使得生成器在判别器的指导下提高“造假”能力;
[0086] 步骤5-3:重复步骤4-1和4-2,直至判别器无法分辨输入图像是真实的标签图像还是生成器生成的“造假”图像时,停止迭代。此时,生成式对抗网络具有图像阴影去除能力。
[0087] 步骤5-4:最后将阴影图像输入到生成器的阴影去除子网络中,恢复出一幅无阴影图像。