
1.本发明涉及计算机视觉和图像处理领域,具体涉及一种基于场景深度的单图像去雨雾方法、设备及存储介质。
背景技术:2.随着计算机视觉领域的不断发展,人们越来越广泛的应用到了摄像头进行现实场景的获取,人们使用智能手机进行外景的拍摄;户外视觉系统使用电子眼监控户外的具体情况;辅助驾驶系统利用摄像头获取的道路画面进行驾驶导航。但是,户外工作的摄像头难免会受到雨天等恶劣天气的影响,使获取的图片质量下降,包括拍摄的雨条纹将关键的目标信息遮挡,远处的雨水积累效应造成能见度下降等,因此要得到清晰的图像,需要对雨水图像进行去雨处理。
3.现实场景中拍摄的雨天图像雨水形式主要可分为雨条纹,雨滴,雨雾三种形式,过去的研究中大多研究者以雨条纹为主要对象进行去除。图像去雨的方法主要有基于传统的图像处理方法,将雨水看成一种加性噪声进行去噪处理,或者图像分解的方法。近年来随着计算机计算能力的不断提升以及深度学习的发展,使用卷积神经网络提取图像特征在图像恢复领域取得了巨大成功。越来越多研究者从传统图像处理方法转向深度学习的去雨方法研究上。
4.生成对抗式的网络是于2014年提出的一种模型训练方法,模型主要由生成器网络g和判别器网络d组成,训练网络参考了博弈论里的minmax问题的思路,生成器不断训练生成逼近真实样本的样本以骗取判别器,判别器不断迭代训练来提高对真实样本和生成样本的辨别能力,经过不断迭代训练使两个模型的效果都有明显提升。
5.目前基于深度学习的图像去雨方法在针对单一样式的雨水上,许多方法已经在实验室阶段取得了较好的测试性能,对于合成的雨水图片都有很好的去除能力。然而现实场景中,拍摄的雨水图片常常伴随着不同形状,尺度,样式的雨水,最常见的便是是近处雨条纹形式叠加上远处雨雾的情况,现有的方法很多能去除近处明显的雨条纹而对远处的雨雾造成的低对比度情况无能为力,难以应付普遍而多样式的雨水情况。
技术实现要素:6.为了克服现有技术存在的缺点与不足,本发明提供一种基于场景深度的单图像去雨雾方法、设备及存储介质。
7.本发明通过生成对抗式的学习得到性能较好的场景深度生成器和去雨背景生成器,网络利用两个生成器将一张雨图恢复出去雨图片。
8.为了解决上述技术问题,本发明采用如下技术方案:
9.一种基于场景深度的单图像去雨雾方法,包括:
10.构建去雨雾任务训练网络,所述去雨雾任务训练网络包括第一生成器、第二生成器及判别器,所述第一生成器输入为雨图,输出为单通道的场景深度图,所述场景深度图与
雨图进行拼接后输入第二生成器,输出去雨雾图片;所述判别器用于判断生成的去雨雾图片与标签雨图是否一致;
11.获取训练样本,所述训练样本包括雨图,雨图对应场景深度图及干净无雨图;
12.对去雨雾任务训练网络进行训练,得到去雨雾生成模型。
13.进一步,所述去雨雾任务训练网络采用生成对抗网络的模式构建。
14.进一步,第一生成器及第二生成器均为u型网络结构。
15.进一步,所述判别器包括八个卷积层及一个全连接层,采用sigmoid激活函数的单个神经元,得到一个0-1的值判断生成图片的真伪性,最后一个卷积层的输出也会用于构建损失函数。
16.进一步,所述u型网络结构包括16层卷积块,其中六层为编码器,六层为解码器,四层为扩张卷积。
17.进一步,四层扩张卷积的扩张率分别设置为2、4、8、16。
18.进一步,所述去雨雾任务训练网络的损失函数包括生成损失和对抗损失,具体为:
19.生成损失包括第一生成器中输出的深度图之间的误差损失,第二生成器中不同尺度空间下的特征图与对应尺度图片的像素级损失,以及输出图片和真实图片之间的感知损失;
20.感知损失为将输出图片和真实图片同时输入到一个预训练好的深度卷积神经网络,计算网络输出的特征图之间的误差损失;
21.对抗损失包括gan生成对抗损失,以及在判别器中间特征图设计的注意力损失,所述注意力损失为:当判别器输入为生成图片时,计算最后一层卷积层的输出oc与场景深度生成器的输出深度图depth之间的mse损失;当判别器输入为干净背景图像时,计算特征图oc与全0特征图之间的mse损失,最后将上述所有损失函数加权融合,作为整个训练网络的损失函数,利用误差反向传播算法进行整体网络的训练。
22.进一步,整个网络的训练损失函数l为:
23.l=λmlm+λ
p
l
p
+λala+λdld24.其中,la为判别器最后一层卷积层的输出涉及注意力损失,l
p
为第二生成器的感知损失,lm为多尺度损失,λm、λ
p
、λa、λd分别是多尺度损失,感知损失,注意损失及对抗损失的权重。
25.一种设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行所述的单图像去雨雾方法。
26.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的所述的单图像去雨雾方法。
27.本发明的有益效果:
28.本方法能够有效恢复被雨水覆盖的图片,与现有技术相比,本发明恢复干净背景前引入了一个场景深度的估计,并利用场景深度信息引导去雨背景的生成,在保持较好的去雨条纹效果的同时,还能很好的去除图片中残留的雨雾,对多种样式的雨水进行了处理,解决了现有技术忽视的远处雨雾造成的视觉退化问题。其次,本发明对雨水图片处理操作简单,只需要单张雨水图片,经过训练好的生成式网络前向传播就能得到去雨后的干净图片。
附图说明
29.图1是本发明的工作流程图;
30.图2是本发明的训练网络结构图;
31.图3是本发明的去雨雾生成模型的测试结构图。
具体实施方式
32.下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
33.实施例
34.如图1及图2所示,一种基于场景深度的单图像去雨雾方法,包括如下步骤:
35.s1构建去雨雾任务训练网络,包括两个生成器及一个判别器。
36.第一生成器用于场景深度图的生成,输入为雨图,输出为场景深度图;
37.第二生成器用于干净背景的恢复,输入为场景深度图与雨图的拼接,输出为干净背景图。
38.所述判别器用于判断生成的干净背景与标签雨图是否一致。
39.具体地,整体的网络框架采用生成对抗网络(gan)的模式去构建。gan网络参考了博弈论里的minmax问题的思路,生成器不断训练生成逼近真实样本的样本以骗取判别器,判别器不断迭代训练来提高对真实样本和生成样本的辨别能力,经过不断迭代训练使两个模型的效果都有明显提升。这种训练模式下的生成模型具有极强的生成能力,非常适合去雨这种回归类的图像处理问题。
40.另外,考虑到雨水多尺度的特性以及encoder-decoder网络的强大的编解码能力及其普遍运用,本实施例中两个生成器采用u型网络结构作为场景深度图和去雨雾图像的生成。
41.如图2所示,雨图rain image输入第一生成器depth-g得到单通道的场景深度图depth-map。如图2中示出的下面一条支路是用于估计去雨的过程,使用上面支路的输出深度图和原始图片进行通道连接作为去雨估计网络的输入,利用上一支路的输出
‑‑
场景深度图作为辅助监督,根据场景深度图将远处的雨雾和近处的雨条纹进行区分,使网络可以根据场景的远近去适应不同样式的雨水的去除,达到同时去雨和去雾的目的。
42.所述第一生成器及第二生成器均使用16个conv-relu卷积块进行不同尺度空间下的深度特征提取,encoder和decoder之间相同尺寸空间的特征使用skip-connection来保证生成的输出不被模糊。其中六个卷积块为编码器,六个卷积块为解码器,剩下四个卷积块为扩张卷积。
43.另外,为了更深一步提取雨水的多尺度信息,在encoder之后的深度特征,采用了四个扩张卷积来扩大网络学习的感受野,扩张率分别设置为2、4、8、16。
44.进一步,对于判别器的构建过程,为了区分真伪图像,本方法不是直接采用图像质量评估指标作为损失函数去调整网络的学习,而是采用一个判别器网络,来判断生成的去雨图片generated-image和对应的ground-truth是否一致。鉴别器网络的设计包含了8个核大小为5x5的卷积层,一个1024维的全连接层,最后是用sigmoid激活函数的单个神经元,得到一个0-1的值判断生成图片的真伪性,最后一个卷积层的输出也会用于构建损失函数。
45.进一步,训练网络的损失函数具体如下:
46.对于生成器,对应的损失函数我们设计了多尺度损失lm和感知损失lp。在两个生成器的网络中,我们在解码器的不同尺度输出层引出进行不同尺度空间的损失计算,采用的损失函数为mse损失函数,对应的多尺度损失表示为:
[0047][0048]
其中,oi表示decoder中第i层的输出,gti表示对应相同尺度的groundtruth,λi表示不同尺度对应的权重,在设计损失函数时给予尺度大的层更大的权重,因为原始大小的输出就是网络最后的输出,对应的损失应该给予更大的权重。
[0049]
对于第二生成器的输出generated-image,除了像素级的多尺度损失,我们还加入了感知损失,用于衡量去雨图像和对应的干净图像groundtruth之间的全局差异,使之更符合人类的感知。计算感知损失时,先将对应的输出和干净图片输入到一个预先在imagenet数据集上训练好的vgg16网络,对vgg16网络的输出特征进行mse损失计算。对应的感知损失表示为:
[0050]
l
p
(o,gt)=l
mse
(vgg(o),vgg(gt))
[0051]
其中,vgg表示预训练的cnn网络vgg16,o表示第二条支路去雨网络的输出。
[0052]
对于判别器,给予判别器最后一层卷积层的输出设计注意力损失la,当判别器输入为生成图片时,计算最后一层卷积层的输出oc与生成的深度图之间的mse损失;当判别器输入为干净背景图像时,计算oc与全0特征图之间的mse损失,可以理解为网络在判别生成图片的真实与否时应更关注远处场景的恢复。对于整个网络的训练,生成对抗损失可以表示为示为其中g,d表示生成网络和对抗网络,i是有雨输入图片,gt是无雨干净背景。
[0053]
最终整个网络的训练损失函数l为:
[0054]
l=λmlm+λ
p
l
p
+λala+λdld。
[0055]
s2获取训练样本。所述训练样本包括雨图,雨图对应场景深度图及干净无雨图。
[0056]
选择已公开的去雨数据集raincityscapes。raincityscapes数据集是从一个自动驾驶场景中常用的城市街景数据集cityscapes发展而来的,包含9432组训练图片和1188组测试图片,数据集采用城市街景作为干净无雨的背景真实图,利用雨模型进行雨水图像的合成:
[0057]
o(x)=i(x)(1-r(x)-a(x))+r(x)+a0a(x)
[0058]
其中,i(x)表示原始的无雨街景图片,o(x)表示合成后的雨水图像,r(x)和a(x)分别是雨条纹层和雨雾层,取值都在[0,1]之间,当无雨或者无雾时,o(x)=i(x),a0是全局大气光,表示雾层会受到全局大气光的影响。
[0059]
对于雨层和雾层的生成,都通过场景深度图d(x)得到,例如雾层,构建过程为:a(x)=1-e-λd(x)
,表示场景深度越大的像素点,雾的视觉效果就越大,当场景深度为0,即处在镜头前的场景a(x)=0。λ表示衰减系数。这样通过场景深度图得到对应的雨层和雾层,再用上述的雨模型进行雨水图像的合成,由此可以得到包含雨图,场景深度图,干净背景图的训
练图片。最终训练时将数据集所有图片尺寸裁剪为256*512。
[0060]
随后,进行生成对抗网络的训练。
[0061]
s3采用反向传播和梯度下降法训练网络,adam优化器,初始学习率设为0.00002,当网络训练经过20万次迭代训练时停止训练,得到训练完成的雨雾生成模型。
[0062]
在网络训练好以后,就可以利用图3的框架进行图片的去雨任务,对于真实场景的图片,网络会自动学习出对应的场景深度图并进入到网络第二生成器,辅助雨水图片的恢复,并不需要测试的图片含有有对应的场景深度图。为了更好的展现该模型的效果,该网络与目前单图像去雨中性能较好的网络进行了对比,结果显示,相比于单一的去除雨条纹,该网络能使远处有雨雾的场景更加清晰,提高了图片的对比度,对远处的目标可以更清晰的辨认,对于近处的雨条纹也能有效的去除。与当前基于深度学习的单图像去雨模型相比,该网络在多样性去雨方面展现了卓越的效果。
[0063]
通过以上技术方案的描述,可以看到本发明在进行图像去雨时,考虑了场景深度对图像雨水分布的影响,将场景深度的估计引入到去雨的流程中,通过场景深度的特征信息引导网络进行不同样式雨水的去除,能够有效的去除近处雨条纹和远处的雨雾遮挡。利用encoder-decoder网络结构提取图像深层次的特征,同时利用生成对抗网络的强大生成能力,使网络可以适应不同大小尺寸的雨水,更好的应对各种雨天的环境下的去雨任务。
[0064]
本实施例还提供一种基于场景深度的单图像去雨雾系统,包括:构建去雨雾任务训练网络模型,所述去雨雾任务训练网络包括第一生成器、第二生成器及判别器,所述第一生成器输入为雨图,输出为单通道的场景深度图,所述场景深度图与雨图进行拼接后输入第二生成器,输出去雨雾图片;所述判别器用于判断生成的去雨雾图片与标签雨图是否一致;获取训练样本模型,所述训练样本包括雨图,雨图对应场景深度图及干净无雨图;训练模型,用于对去雨雾任务训练网络进行训练,得到去雨雾生成模型。
[0065]
本实施例的一种基于场景深度的单图像去雨雾系统,可执行本发明方法实施例所提供的一种基于场景深度的单图像去雨雾方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。本实施例还提供一种设备,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现图1所示的方法。本实施例的设备,可执行本发明方法实施例所提供的一种基于场景深度的单图像去雨雾方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。本技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。本实施例还提供了一种存储介质,存储有可执行本发明方法实施例所提供的一种人脸表示攻击检测方法的指令或程序,当运行该指令或程序时,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺
序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些
实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。