APP下载

分组mask引导的单幅图像去除雨滴

2022-07-20胡明娣范九伦

关键词:灰度阈值雨滴

胡明娣,宋 尧,郑 甜,范九伦

(1.西安邮电大学 通信与信息工程学院,陕西 西安 710121;2.陕西汉江机床有限公司,陕西 汉中 723003)

雨、雪、雾、霾等恶劣天气导致计算机视觉性能的下降是户外视觉任务面临的难题之一。恶劣天气中雨天最为常见,当汽车挡风玻璃或者镜头上有雨滴时,获取的图像或视频会被雨滴损毁,严重时背景图像的信息几乎全部被遮挡,如图1所示。去除被雨损毁图像中的伪影是当前的研究热点,雨滴导致图像质量量下降的恢复工作日益被重视。

图1 透过玻璃拍摄的被雨滴损毁的单幅图像Fig.1 Pictures are captured through glass with raindrops

近年来,越来越多的研究者关注去雨问题[1-3],以及与去雨相关联的联合任务的处理,比如去雨后自动驾驶的视觉质量和刑事鉴定中视觉追踪的精确度问题[4-5]。一般情况下,去雨大致可分为去除雨滴、去除雨纹和去除雨雾3种类型,现阶段大多数去雨算法是雨纹去除算法[6-9]。当前,关于雨滴去除的研究较少,但在应用中却不可避免面对雨滴损毁图像的处理问题。附着在车窗或镜头上的雨滴会对背景像素有不同程度的退化,这种退化与雨纹造成的图像质量的退化是不同的,与雨滴大小和雨滴污染背景程度密切相关。解决雨滴去除的核心技术是定位图像中雨滴的位置,以及如何描述雨滴对于背景像素的模糊程度,恢复出被雨滴遮盖区域的像素值。

从对所有的雨图采用统一标准分割提取二元雨滴mask到提出soft mask,学者们不断探索雨滴定位的灵活性。由于雨滴的大小、深浅等模式是多样的,雨滴mask既要提取雨滴位置,同时又要体现雨滴对背景的损毁程度,因此,本文提出利用分组函数提取雨滴自适应分组mask的方法。综合实验表明去除雨滴的效果显著提高。

1 相关工作

1.1 分组函数

Bustince等人提出了分组函数的概念,分组函数是一种特定类型的聚合函数,它将两个不可比的信息组合成为一组可比的信息[10]。Jurio等人在文献[10]的基础上进一步探究了分组函数的相关性质,并将其性质应用于图像分割领域,将图像看做模糊集,分别计算每个像素点属于目标和背景的隶属度,计算两个隶属度函数的分组函数,利用分组函数的相关性质寻找最佳阈值对图像进行阈值分割[11]。

1.2 二元mask引导的单幅图像去除雨滴

Qian等人提出用于单幅图像去除雨滴的注意力生成对抗网络,将视觉注意力机制引入到生成对抗网络中,通过二元mask引导注意力循环网络生成的注意力映射对雨滴进行定位,引导上下文自动编码器完成雨滴的去除[12];Quan等人在卷积神经网络的基础上使用联合形状和通道的双重注意力机制对雨滴进行定位,引导后续的网络去除雨滴[13];Liu等人在残差网络的基础上提出了一个通用于图像复原任务的双残差网络结构,针对雨滴的去除,在卷积神经网络的基础上添加了通道注意力对雨滴进行定位,指导后续的卷积神经网络去除雨滴[14]。但是,二元mask没有考虑到雨滴的多样性,对所有的雨图都采用统一的准则提取雨滴mask,只能反映雨滴的位置信息,并不能体现出雨滴的大小、薄厚,以及雨滴对背景像素的模糊程度。

1.3 soft mask引导的单幅图像去除雨滴

Shao等人提出选择性跳跃连接生成对抗网络(selective skip connection generative adversarial network,SSCGAN)[15],在生成网络中采用U-Net结构,引入自注意力模块(self attentionblock,SAB)提取雨滴图像当中的雨滴位置信息,在提取雨滴位置信息的同时,采用选择跳跃连接模块(selective skip connection model, SSCM )提取雨滴图像的背景结构信息, 以辅助SAB更加准确地提取雨滴位置信息, 在判别网络中采用局部判别器判别生成的无雨图; Shao等人在二元mask的基础上, 提出了取值位于[-1,1]之间的软掩码(soft mask), 并在不同的尺度下利用soft mask引导注意力循环网络生成注意力映射, 对雨滴进行定位,指导后续的U-Net去除雨滴[16]。 这类算法提取的soft mask是通过将残差图的像素值映射到[-1,1]之间得到的。其中,正值表示雨滴对背景像素的亮度有增强效果,负值表示雨滴对背景像素的亮度有削弱效果,并且其值的大小表示了雨滴对背景像素亮度增强或削弱的程度,越接近于1表示对背景像素亮度增强或削弱的程度越高。soft mask相较于二元mask不仅能够表示雨滴所在的位置,还能表示雨滴对背景像素的模糊程度,提高了雨滴定位的精细度,从而去除雨滴的性能明显得到提高,但这种软掩码简单地利用雨图与干净背景图相减得到的残差图就对雨滴进行定位,并没有考虑到现实中雨滴大小、薄厚等不同的模式。

综上所述,本文针对现有雨滴去除算法在雨滴定位方面存在的问题,提出了分组mask引导的单幅图像去除雨滴算法,定位雨滴的同时关注雨滴大小的模糊性,以及雨滴对背景损毁的模糊程度的表现。

2 雨滴图像分组mask提取

雨滴在雨图中表现的模式是多种多样的,因此,为网络训练提供细粒度的mask引导深度网络对雨滴进行更精准的定位,然后去除雨滴,这是雨滴去除研究的难点之一。受Jurio等人[11]的启发,本文将分组函数引入到单幅图像雨滴去除领域,利用分组函数对雨滴图进行分割,得到雨图的分组mask,将其作为基准与原始雨图一起送入神经网络,训练神经网络进行雨滴的去除,本文算法的总体架构如图2所示。

2.1 雨滴图像的物理模型

如图1中的雨滴图像所示,雨滴对被覆盖区域背景像素值的影响是一个渐变的过程,有很多学者给出雨滴图像形成的物理模型[12-13,16],本文采纳文献[16]提出的雨滴图像的形成,表示为

I=(1-G)+G⊙R,G∈[0,1]。

(1)

其中:I表示雨滴退化的图像;B表示背景图像;R表示雨滴带来的影响;G表示利用分组函数提取的分组mask,其值位于0到1之间,表示雨滴对该点背景像素损毁的大小和模糊程度;⊙表示点乘。通过分组函数提取出的分组mask可以更精确地表示雨滴的位置信息以及背景信息的模糊程度。

2.2 分组mask的生成

本文提出的mask是基于分组函数生成的,称为分组mask。将图像看做模糊集,针对雨图,首先构造两个模糊集,分别表示雨滴像素与背景像素,目标是找到一个最佳阈值使其对应的每个灰度值对于雨滴像素的隶属度或对于背景像素的隶属度取值最大,这样就可以确定这些灰度值是属于雨滴像素还是属于背景像素;然后,计算对应最佳阈值的雨滴像素隶属度,用其作为分组mask,其值位于0到1之间,值越大,表示该灰度值越可能属于雨滴像素。为了得到一个合理贴近实际的最佳阈值,本文引入了分组函数,作为一个二元聚合函数,分组函数具有当且仅当其中一个参数为1时,该函数才获得最大值的性质,利用分组函数的这一性质求解最佳阈值,得到最终的分组mask,具体的算法思路如下。

2.2.1 构造模糊集 针对雨图,本文构造两个模糊集,分别表示图像中的雨滴像素与图像中的背景像素,利用限制等价函数REF[17]构建这两个模糊集,将雨滴像素的隶属度函数记为μQRt(q),将背景像素的隶属度函数记为μQBt(q),

(2)

(3)

其中:q为灰度值;L为灰度值上限256;mR(t)与mB(t)分别表示属于雨滴像素的灰度平均值和属于背景像素的灰度平均值,其计算公式为

(4)

(5)

其中,h(q)表示灰度值为q的像素个数。

2.2.2 计算分组函数 得到雨滴像素与背景像素的模糊集后,最终的目的是将雨滴像素与背景像素区分开。Jurio等人[11]提出分组函数作为一个二元聚合函数,具有当且仅当其中一个参数为1时,该函数取得最大值的性质。而要将雨滴像素与背景像素分开,即要判断在每一个灰度值下,该灰度值关于雨滴像素的隶属度与关于背景像素的隶属度哪个更大。利用分组函数这一性质,可以通过优化的方式得到最佳的分割阈值,使图中的雨滴像素与背景像素能够更好地区分。本文对雨滴像素模糊集和背景像素模糊集求如下4个分组函数,

GG1(μQRt(q),μQBt(q)=

max(μQRt(q),μQBt(q)),

(6)

GG2(μQRt(q),μQBt(q))=

(7)

GG3(μQRt(q),μQBt(q))=

(8)

GG4(μQRt(q),μQBt(q))=

μQRt(q)+μQBt(q)-μQRt(q)*μQBt(q)。

(9)

由于不同的分组函数所适应的分类问题不同,且因分组函数的凸组合还是分组函数,本文对式(6)~式(9)的4个分组函数求凸组合,得到一个新的分组函数,其表达式为

(10)

2.2.3 求解最佳阈值与最终的分组mask 在得到最终的分组函数GGcomb(q),根据分组函数的性质,利用每一个灰度值对式(11)的目标函数进行迭代求解,直到得到一个最佳的灰度值t*,使得该目标函数的取值最大,此时可以将图像中的雨滴与背景最好的分开。

(11)

在得到最佳阈值t*后,计算雨滴像素关于该像素值得隶属度函数,即为最终得到的分组mask,

G=μQRt(t*)。

(12)

生成分组mask的具体算法如下。

算法1分组mask提取算法

1) fort={0,1,…,L-1}(对于每一个灰度级)do

2) 构建一个与背景像素相关的模糊集QBt

3) 构建一个与雨滴像素相关的模糊集QRt

4) forq={0,1,…,L-1}(对于每一个灰度级)do

5) 计算QBt(q)和QRt(q)的4个分组函数

6) 计算4个分组函数的凸组合,得到一个新的分组函数GGcomb

7) end for

8) 计算先前分组函数的加权和

9) end for

10) 取最佳阈值t*为使分组函数和GGcomb最大的一个:

11) 计算最佳阈值t*对应的目标隶属度函数,即为所求的分组mask,

G=μQRt(t*)。

2.2.4 包含分组mask的雨滴图/干净背景像对

Qian等在文献[12]中提出现有的去雨滴算法使用的主流雨滴数据集, 其中, 训练集包含861个图像对(雨滴图和其干净背景图), 测试训练网络的数据集为Tast a和Tast b, 分别包含58张和149张雨滴退化图像。 雨滴退化图像和干净的背景图像是通过将两个完全相同的玻璃放置在相机前方, 一个玻璃喷水, 一个玻璃保持干净拍摄得到的。 本文的实验在文献[12]提出的雨滴数据集上进行。

如图3所示,是利用不同算法在文献[12]的数据集上提取的雨滴图像mask结果展示。图3A是雨滴图像;图3B是真实的干净无雨图;图3C是利用雨滴图减去真实的干净无雨图得到的残差图;图3D是Qian等人[12]利用固定阈值T=30,认为残差图中像素值大于30的像素点为雨滴,小于30的为背景得到的二元mask;图3E是Shao等人[16]利用残差值除以256得到的soft mask;图3F是利用分组函数得到的分组mask。明显可见,本文提取的分组mask得到的雨滴的定位图仅仅只有雨滴的掩码,没有背景的纹理的遗留,而且雨滴掩码表现出与现实相符的雨滴大小、薄厚的不同,雨滴捕获率最高。

本文在文献[12]所提出的雨滴数据集基础上添加了利用分组函数提取的雨滴图像分组mask,构建了包含分组mask的雨滴图/干净背景像对数据集[18],供感兴趣的研究者下载使用。

图3 不同算法得到的maskFig.3 Mask obtained by different algorithms

3 分组mask引导下单幅图像雨滴去除

针对雨滴覆盖区域背景像素恢复问题,在文献[12]提出的网络基础上,提出了基于分组mask的生成对抗网络(group generative adversarial network,GGAN),其结构如图4所示。GGAN主要由两个部分组成,分别是生成网络与鉴别网络,将雨滴退化的图像与其对应的分组mask级联送入由U-Net编解码结构构成的特征提取网络中,训练其生成无雨图;将生成的无雨图送入鉴别网络中,训练鉴别网络判断生成的无雨图,输出真伪标签。

图4 GGAN网络结构Fig.4 The network structure of GGAN

3.1 生成网络

生成网络的作用是生成无雨滴图像,将雨滴退化图像与其对应的分组mask级联送入生成网络,生成网络是由16个Conv-ReLU的模块组成,其中添加了跳跃连接,为了防止输出模糊,如图5所示为生成网络的结构。

图5 生成网络结构Fig.5 The network structure of generator network

由图5可知,在生成网络中包含两个损失函数:多尺度损失和感知损失。对于多尺度损失,从生成网络的解码器部分提取不同尺度的输出,利用这种方式提取上下文信息,将多尺度损失定义为

(13)

其中:Si表示从解码层提取的第i个输出;Ti表示与有相同尺度的干净背景图;λi表示不同尺度的权重,给较大的尺度赋予较大的权重。具体地说,使用第1,3,5层的输出,它们的大小分别是原始图像的1/4,1/2和1。尺度越小的层包含的信息越少,赋予较小的权重。设定对应层的权重λ分别为0.6,0.8,1。

除了多尺度损失外,还使用了感知损失,用来测量上下文自动编码器输出特征与干净背景图特征之间的全局差异,这些特征可以从CNN中提取,将感知损失定义为

LP(O,T)=LMSE(VGG(O),VGG(T))。

(14)

其中:VGG是经过训练的CNN,给定输入图像可以生成其对应的特征图;O是生成网络输出的无雨图;T是不含雨滴的干净背景图。

综上所述,整个特征提取的损失可以表示为

LG=10-2LGAN(O)+LM({S},{T})+

LP(O,T)。

(15)

其中,LGAN(O)=log(1-D(O))。

3.2 鉴别网络

本文中使用的是局部鉴别网络,在使用局部鉴别网络时,需要知道哪些局部像素是被雨滴退化的,是需要在局部鉴别网络中关注的区域。为了使鉴别网络可以自己寻找这些被雨滴退化的区域,在鉴别网络提取的特征和分组mask之间定义了一个损失函数,通过这样的设计使鉴别网络将注意力集中在雨滴退化区域,判断生成网络输出的无雨图像是真是假。

整个鉴别网络的损失函数可以表示为

LD(O,R,G)=-log(D(R))-

log(1-D(O))+γLmap(O,R,G)。

(16)

其中:γ设置为0.05;R表示由雨滴图减去无雨图得到的残差图;D为鉴别器;Lmap是鉴别网络提取的特征与分组mask之间的损失,

Lmap(0,R,G)=LMSE(Dmap(0),G)+

LMSE(Dmap(R),0)。

(17)

其中:Dmap表示由鉴别网络生成的2维映射;0表示只包含0值的映射。

4 实验分析

4.1 实验设置

实验基于PyTorch,在本文构建的包含分组mask的雨滴图/干净背景图像对数据集上进行训练,如图6所示。在Nvidia K80 GPU上实现,在训练过程中设置batch size为1,训练的次数是105,模型的训练时间是15 d。

图6 包含分组mask的雨滴数据集示例Fig.6 Examples of the raindrop dataset with group mask

为了评估网络在半自动合成数据集上的去雨滴性能,采用峰值信噪比(PSNR)[19]和结构相似性指数(SSIM)两种常用指标进行评价[20]。由于现实世界的图像中没有对应真实的干净背景图,因此,只能主观地评估现实世界数据集上的性能。将本文所提方法与5种先进的方法进行比较,包括RESCAN[6]、UMRL[7]、DuRN[14]、IADN[8]。

4.2 半自动合成数据集测试结果

为了验证本文所提分组mask在雨滴定位任务上的有效性,使用文献[12]所提的半自动生成雨滴数据集训练网络,将本文提出的基于分组mask的GAN网络与近几年的去雨网络去雨滴效果进行对比。

4.2.1 定量评价 表1展示了基于分组mask引导的神经网络GGAN与近几年去雨网络的定量比较。实验在Raindrop数据集上进行,对测试集Test a和Test b上的结果进行了比较。从表1中可以看出,与其他去雨算法相比较,本文所提基于分组mask引导的神经网络GGAN在SSIM值上是最高的,在PSNR上排名较高。这表示与其他算法相比,本文算法在单幅图像雨滴去除上的效果更好。

表1 不同算法定量评价结果Tab.1 Quantitative evaluation results of different algorithms

4.2.2 定性评价 图7展示了基于分组mask引导的GGAN与近几年去雨网络在半自动合成数据集上去雨滴结果的对比,观察图7中黄框所标注的部分,可以直观地看出,Attentive GAN去雨滴后的图像在有些位置过度去雨导致背景像素出现失真,RESCAN[6]、UMRL[7]、DuRN[14]及IADN[8]去除雨滴不干净,在一些位置还存在雨滴残留的现象,而利用本文所提基于分组函数mask引导的雨滴去除网络,更多的雨滴被去除的同时,保留了更丰富的图像背景细节,在单幅图像去除雨滴方面更加有效。

4.2.3 网络参数量及测试时间分析 表2显示了不同去雨算法提出的网络模型参数量,在Raindrop数据集上进行测试,处理一张图片所需的时间。从表2可以看出,本文算法相较于RESCAN[6]和DuRN[14],虽然参数量提高了,但性能有所提升(见表1);相较于UMRL[7]和IADN[8],虽然本文算法参数量有所提高,但测试运行时间更少;相较于Attentive GAN[12],本文算法的参数量及测试运行时间都有所提升。

图7 不同方法的去雨滴结果对比Fig.7 Comparison of results from different methods

表2 不同算法网络参数量及测试时间分析Tab.2 Analysis of network parameters and test time of different algorithms

4.3 真实雨图测试结果

此外,还将本文的算法与其他先进的去雨算法在真实采集的含雨滴图像上进行了测试,结果如图8所示,可以直观的看出,本文提出的由分组mask引导的网络在真实雨滴的去除上效果更加好,算法的泛化性更强。

图8 真实雨图去雨结果Fig.8 Rain removal effect of real rain map

5 结语

本文针对单幅图像去雨滴问题存在的雨滴定位问题,提出了基于分组函数的soft mask,为神经网络学习雨滴的位置信息提供了基准,提高了神经网络对雨滴定位的准确性,以引导后续的去雨滴网络更灵活地确定雨滴定位以及雨滴的污染程度,从而达到更好的去雨滴效果。本文的创新点在于将分组函数引入雨滴图像mask的提取过程中,通过雨滴的去除,图像的质量得到了提高,对后续进行自动驾驶、刑侦中视频或图像检索技术辅助侦破等机器视觉相关应用的预处理过程做了基础性贡献。未来我们将在基于分组mask的雨图空间注意力提取网络的基础上,提高去雨滴算法恢复背景的性能,并进一步考虑雨滴与雨纹的联合去除算法的研究。

猜你喜欢

灰度阈值雨滴
航空滤光片阵列多光谱图像条带灰度调整算法
非平稳声信号下的小波变换去噪方法研究
基于改进阈值的MRI图像降噪
土石坝坝体失稳破坏降水阈值的确定方法
一种改进小波阈值去噪法及其仿真
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
真想变成圆圆的雨滴
小雨滴
一种基于灰度分割的调焦评价函数