APP下载

基于生成式对抗网络的裂缝图像修复方法

2019-06-17李良福

计算机应用与软件 2019年6期
关键词:掩膜障碍物卷积

胡 敏 李良福

(陕西师范大学计算机科学学院 陕西 西安 710119)

0 引 言

裂缝作为最常见的公路问题,对其的检测必不可少。训练一个对裂缝信息敏感的检测器,需要数量庞大且形态各异的裂缝图像数据集作为支撑,然而现实生活中采集到的裂缝图像往往包含许多除了裂缝以外的障碍物,如落叶、石子、电缆等,这些障碍物可能会影响后期检测器对裂缝的检测,造成误检、漏检等问题,因此对采集到的裂缝图像进行修复至关重要。

近年来,随着计算机的发展,一系列基于数字图像处理、深度学习的方法被运用于图像修复[1-2]领域。Bertalmio等[3]提出采用偏微分方程的方法进行图像修复,但是该算法缺少稳定性,修复结果往往不佳。随后Chan等在此基础上提出基于能量最小化原则的统一修复模型[4],但由于该模型受到修复区域大小的限制,且不满足连续性原则,进而又提出一种基于曲率扩散模型[5]。只是以上算法均只适用于非纹理图像的修复,当所需修复的图像是纹理图像时则没有办法完成修复任务。Raymond Yeh等[6]在2016年提出使用深度卷积生成式对抗网络的方法进行图像修复,通过训练有素的深度神经网络对破损图像的纹理特征进行修复,降低了噪声对修复结果的影响,带来了视觉多样性。但由于修复网络中的二进制掩码的不可变性使得所有的像素点在图像修复过程中对修复区域贡献相同,往往导致修复结果不稳定;随后一系列基于文献[6]的改进[7-11]被提出,虽然取得了相对较好的输出效果,但此类方法固定了受损区域的大小以及位置,灵活性较差,并且增加了修复过程的复杂性。

针对以上缺点,本文提出了一种基于生成式对抗网络的裂缝图像修复方法CI-GAN(Crack Inpaint Generative Adversarial Network),首先擦除裂缝图像中的障碍物信息获得仅含有裂缝信息的待修复图像,同时使用CI-GAN生成一系列候选向量送入CI-GAN的差异判别器,计算候选向量的感知损失。然后分别为待修复图像和候选向量覆盖距离惩罚掩码,计算待修复图像与覆盖距离惩罚掩码的候选向量之间的语义损失。选取感知损失与语义损失之和最小的候选向量为最优补全图,并截取最优补全图中与待修复图像中信息缺失位置对应的像素块作为修复块,将修复块拼接到待修复位置的残缺处即获得修复图。最后使用CI-GAN的全局判别器计算修复图的全局损失,进一步对最优补全图进行优化得到最终的修复图。实验表明,本文修复方法得到的裂缝图像对障碍物去除得更彻底,且修复后的裂缝图像质量更高。

1 生成式对抗网络

生成式对抗网络类似于一个博弈结构,其由生成器和判别器两个部分组成,如图1所示。判别器以真实裂缝图像和生成器构造的虚假裂缝图像为输入,通过神经网络模型对输入进行特征提取,最终输出[0,1]区间的概率值,真实裂缝图像对应的标签为1,生成器生成的裂缝图像对应的标签为0;生成器则以随机生成高斯白噪声为网络的输入,经过生成器网络的解码过程,最终输出一个与真实裂缝图像大小相同的向量,然后通过判别器预测的置信值计算与真实类别对应标签之间的差距,直接将此误差作为反向传播的误差来更新参数以及最初的输入向量。

1.1 裂缝图像生成

生成式对抗网络采用交叉熵损失函数对参数进行优化,损失函数如下:

Ex~pG(z)[log(1-D(G(z)))]

(1)

Ex~pG(z)[log(1-D(G(z)))]

(2)

此时默认生成器是固定不变的,判别器优化即为一个二分类判别模型,输入的真实裂缝图片对应标签为1,生成器生成的裂缝图片对应标签为0。对生成器进行优化时,此时判别器仅充当判别输入裂缝图像真伪的分类器,因此仅计算下式给出的损失即可:

(3)

1.2 裂缝图像修复

裂缝具有细长,分布无规律的特性,当裂缝图像中出现水渍、阴影、电线、石头等障碍物时,裂缝误检或检测不出来的情况很容易发生。在对裂缝图像进行修复时,首先将裂缝图像中障碍物所在位置的像素置零,擦除障碍物所在位置的信息,同时使用训练好的生成器生成一系列候选向量,将生成的候选向量输入到已经训练好的判别器中,得到感知损失:

Lp=log(1-D(G(z)))

(4)

式中:Lp为感知损失,为了提取待修复的裂缝图像的缺失部分位置信息,同时生成与用于待修复的裂缝图像补全的修复块,文献[6]给出一种二进制掩膜:

(5)

在该掩膜中,待修复的裂缝图像的受损区域对应值为1,未受损区域对应值为0,Mij表示图像第i行第j列对应位置的掩码值,σ表示图像中的信息缺失区域。分别为待修复的裂缝图像和候选向量覆盖二进制掩膜,并计算差异:

(6)

式中:Ls表示语义损失,M⊙(G(z)-x)表示生成图像和待修复图像加入掩膜后的像素差异,其中Ls越小,表示生成的裂缝图像和待修复的裂缝图像在非受损区域像素分布越接近,寻找语义损失和感知损失最小的候选向量作为最优裂缝补全图,提取其与待修复的裂缝图像的受损区域对应位置的像素块作为修复块,将修复块与待修复的裂缝图像拼接得到补全图。该方法在对裂缝图像进行修复时,忽略了不同像素贡献的信息重要程度不同的问题,此外修复后的裂缝图像没有进行语义上的再判断,使补全图在视觉上看缺乏真实性,无法直接在裂缝检测任务中使用。

2 生成式对抗网络的裂缝修复模型

2.1 距离加权修复掩膜

传统的生成式对抗网络进行图像修复时使用的修复掩膜为二进制掩膜,其默认在待修复区域内,所有的像素点对修复时所作的贡献是相同的。这样做会导致生成器只注意到距离修复区域边缘远的像素信息, 而忽略临近修复区域边缘的像素信息,从而造成修复边缘不连贯问题。

(7)

(8)

式中:i表示图像矩阵对应行,j表示图像矩阵对应列,点p表示待修复区域的中心点位置,xij为当前像素点位置,M为标记矩阵,Mij为标记矩阵内位置为(i,j)的对应点,MD为距离修复掩膜,此时的语义损失变为:

(9)

2.2 差异度量判别器

传统的生成式对抗网络中,判别器用来鉴别输入的是真实裂缝图像还是生成器生成的裂缝图像。真实裂缝图像对应标签为1,生成器生成的裂缝图像对应标签为0。在此过程中真实裂缝图像和生成器生成的裂缝图像之间互不干扰,两者的潜在关系仅通过判别器逐个计算损失并把梯度信息回传给生成器,生成器根据判别器传递的梯度信息调整模型的参数以及随机噪声的分布。

为了更好地挖掘真实裂缝图像分布与生成的裂缝图像分布之间的潜在相关性,引导生成网络生成的裂缝图像可以更完美地拟合真实裂缝图像,本文对判别器结构作了如下改变。考虑到真实的裂缝图像与生成器生成的裂缝图像之间具有一定的相关性,并且真实的裂缝图像对应的真实程度和生成器生成的裂缝图像对应的虚假程度都是相对于判别器学习到的两者间的相对差异而言的,所以它们之间的差异可以表示为:

dis(x,G(z))=|F(x)-E(F(G(z)))|L1

(10)

传统的判别器输出经激活函数D=σ(F(·))映射到[0,1]区间的概率值,其中F表示判别网络特征提取过程,σ表示激活函数。因此,式(10)中F(x)表示真实高分辨率裂缝图像经过判别网络后提取到的特征,F(G(z))表示生成的超分辨率裂缝图像经过判别网络后提取到的特征,E(x)表示均值。对于真实的裂缝图像判别器输出为D(dis(x,G(z))),对应生成的裂缝图像判别器输出为D(dis(G(z),x)),经过激活函数映射,此时的判别器输出仍为[0,1]的概率值,与传统的判别器一样,真实的裂缝图像相对生成裂缝的图像的真实程度对应标签为1,生成器生成的裂缝图像相对真实的裂缝图像的虚假程度对应标签为0。此时生成式对抗网络的损失具有如下定义:

Ladv=Ex~Pdata(x)[log(D(dis(x,G(z))))]+

Ex~PG(z)[log(1-D(dis(G(z),x)))]

(11)

式中:Ladv表示对抗损失。在训练判别器时,损失函数为:

Ex~PG(z)[log(1-D(dis(G(z),x)))]

(12)

训练生成器时,损失函数为:

(13)

2.3 生成式对抗网络的裂缝修复模型结构

本方法不仅引入距离加权修复掩膜和差异度量判别器,还从对抗网络整体结构、判别器结构、生成器结构三方面设计改进,针对裂缝图像提出裂缝修复生成式对抗网络CI-GAN(Crack Inpaint Generative Adversarial Network),近一步提升裂缝图像的修复效果。模型的整体结构如图2所示,本文判别器与传统判别器不同,不但可以判别生成器生成的裂缝图像和真实的裂缝图像的差异,同时还能够判别修复后的裂缝图像与真实的裂缝图像之间的差异。在CI-GAN模型的训练阶段,模型的输入由真实的裂缝图像和生成器生成的裂缝图像两部分构成,判别器执行生成判别器功能,输出输入图像的真实程度或者虚假程度;在CI-GAN模型的修复阶段,模型的输入为修复图像,判别器执行全局判别功能,输出输入图像整体的虚假程度。

图2 CI-GAN结构图

2.3.1判别器结构

判别模型与生成裂缝图像的真实程度相关。本文判别器在不同的场景下,实现的功能也不相同。当输入为生成的裂缝图像时,执行生成判别器功能,当输入为修复后的裂缝图像时执行全局判别器功能。其中生成判别器功能是鉴别输入图像是真实裂缝图像的真实程度还是生成裂缝图像的虚假程度,全局判别器则是从图像语义分布方向鉴别修复图像整体的虚假程度,并对应输出全局损失,其公式如下:

(14)

L=Ls+λLp+μLg

(15)

式中:L为联合损失函数,λ为感知参数,μ为全局参数,Ls为加权语义损失,Lp为感知损失,Lg为全局损失。

在设计判别模型结构时,若判别模型过于简单,导致网络对输入图像的特征学习不到位,容易产生欠拟合问题,使得生成的裂缝图像呈明显的网格化分布;若判别模型过于复杂,网络训练难度大大增加,会产生模型不收敛等问题。文献[6]中的模型的判别器由五个卷积块构成,其中每个卷积块由卷积层(Conv)、激活层(Leaky Relu)、归一化层(Batch Normalization)按序排列构成。此结构的判别器使用在修复图像中虽然可以达到相对较好的效果,但是由于模型层数浅,特征学习不到位,网络生成的裂缝图像含有较为明显的网格型噪声,视觉效果差,无法直接应用于裂缝检测。

针对上述问题,本文在保证不丢失特征、不改变输入输出尺寸的前提下,对判别器模型进行了改进,增加了卷积核大小为3×3,步长为1的卷积层,同时为了进一步筛选无效特征加入激活层,并且为了加速模型收敛防止过拟合加入归一化层。CI-GAN判别器的具体结构如图3所示,其中模型输入包含两个部分,G(z)表示生成器生成的裂缝图像,X表示真实的裂缝图像,模型的输出为[0,1]区间的概率,表示输入图像的真实程度或者虚假程度。判别器将输出的概率值回传给生成器,为生成器的更新提供梯度信息。

图3 判别器结构

2.3.2生成器结构

生成器使用接收到的梯度信息更新模型参数和生成向量的分布。生成器作为生成裂缝图像的单元,不仅决定了生成的裂缝图像的质量,还影响着网络的修复性能。本方法生成器由反卷积层(Deconv)、激活层(Relu)、归一化层(Batch Normalization)构成。考虑到模型的学习能力随结构加深而增强,本文加入了反卷积块(Deconv Block)结构,其由四个小块顺序拼接组成。每个小块包含一层卷积核大小为3×3,步长为2的反卷积层,一层激活层和一层归一化层。为了增加模型的深度,本文在第一小块和第三小块中增加了一层卷积核大小为3×3,步长为1的卷积层。同时为了近一步过滤掉无用特征并且加速模型收敛,在每个卷积层后面都加入了激活层和归一化层,CI-GAN中生成模型的具体结构如图4所示,左边为生成模型的结构简图,右边对应反卷积块的结构图。

图4 生成网络结构对比图

3 实验结果与分析

3.1 数据集与裂缝修复生成式对抗网络的训练

本文实拍的10 350张128×128大小的RGB彩色裂缝图像作为原始裂缝数据集。通过随机旋转、左右翻转对原始裂缝数据集进行增强,最终得到31 050张裂缝图像,其中31 000张作为CI-GAN的训练数据集。为测试本文算法的准确性和有效性,另增加50张包含落叶遮挡的裂缝图像、50张包含石子覆盖的裂缝图像,将增加含有障碍物的图像与剩余的50张裂缝图像整合,共150张图像作为本实验测试集。

本文使用adam梯度下降方式寻求最优解,初始学习率为0.000 5,学习率衰减为0.1,衰减步长为50 000,批尺寸为128,动量项取值0.5,迭代100 000次后将训练结果保存。

3.2 可视化比较

3.2.1CI-GAN修复效果对比

通过实验,改进后模型对擦除障碍物的待修复裂缝图像的修复效果得到了明显的改善。改进效果对比如图5所示,由左列至右列分别为原始图片、障碍物擦除后待修复图片、CI-GAN结合二进制掩膜修复图片以及CI-GAN结合距离加权掩膜修复图片。改进前后模型的修复效果使用模糊系数(KBlur)、峰值信噪比(PSNR)、结构相似度(SSIM)、均方误差(MSE)对修复结果进行评估,对比如表1所示。可以看出本算法从实际观测效果和图片度量指标对比结果均优于改进前模型。

图5 掩膜修复效果对比图

表1 不同掩膜修复效果对比

为了验证CI-GAN判别器较传统模型判别器在裂缝修复方面更具优势,本实验通过对比CI-GAN使用普通判别器以及差异判别器对裂缝图像修复效果,结果如图6所示,由左列至右列分别为结构相似的裂缝图像原图、CI-GAN使用传统判别器的修复效果、CI-GAN使用差异判别器的修复效果。同时本文对两种判别器修复的裂缝图进行质量评估,评估结果如表2所示。从表中能够得出,CI-GAN差异判别器在修复相似的裂缝图像时,可以得到比传统判别器更稳定的修复效果。

图6 判别器修复效果对比图

表2 不同判别器的修复效果对比

为了验证CI-GAN结构较改进前DCGAN结构更适用于对裂缝图像的修复,本实验又通过对比CI-GAN和DCGAN对裂缝图像修复效果,结果如图7所示,由左列至右列分别为裂缝原图像、DCGAN的修复图像、CI-GAN的修复图像。同时本文对两种判别器修复的裂缝图进行质量评估,评估结果如表3所示。从表中能够得出,CI-GAN的修复效果更好。

图7 模型结构修复效果对比图

表3 不同模型结构的修复效果对比

3.2.2不同算法效果对比

本算法与传统修复算法基于裂缝图像数据集进行对比试验,本文提出的CI-GAN在修复残缺裂缝图像时表现更佳。图8分别对三张裂缝图像进行信息擦除,并使用五种修复方法进行待修复图像的修复,由左列至右列分别为实拍裂缝图像、信息擦除后的待修复图像、TV算法的修复结果图像、CDD算法的修复结果图像、Criminisi算法的修复结果图像、DCGAN的修复结果图像以及CI-GAN的修复结果图像。本文使用模糊系数、质量系数Q以及峰值信噪比对修复后的图片质量进行苹果,评估结果如表4所示,可以看出本文算法从肉眼观测效果和图片质量对比结果均优于其余四种算法。

图8 修复算法修复效果对比图

表4 不同修复算法效果对比

3.2.3不同障碍物裂缝修复效果图

针对含有不同类型障碍物的裂缝图像,本文使用CI-GAN分别对其进行修复。其中CI-GAN对落叶修复效果如图9所示,由左列至右列分别为实拍含落叶遮挡的裂缝图像、信息擦除后的待修复图像、迭代100次的修复效果图像、迭代1 000的修复效果图以及最终的修复效果图像。

图9 落叶修复效果图

CI-GAN对石子修复效果如图10所示,由左列至右列分别为实拍含石子遮挡的裂缝图像、信息擦除后的待修复图像、迭代100次的修复效果图像、迭代1 000的修复效果图以及最终的修复效果图像。

图10 石子修复效果图

CI-GAN对裂缝修复效果如图11所示,由左列至右列分别为实拍裂缝图像、信息擦除后的待修复图像、迭代100次的修复效果图像、迭代1 000的修复效果图以及最终的修复效果图像。

图11 CI-GAN裂缝修复过程图

4 结 语

本文将生成式对抗网络突破性地运用于裂缝图像修复领域,由于裂缝图像在实际中含有较多噪声、干扰以及障碍物,本文设计生成式对抗网络的裂缝修复模型(CI-GAN),提出距离加权掩膜,创新性地改进生成式对抗网络结构,将传统判别器替换为差异程度判别器以更好应对含有杂乱遮挡的裂缝图像。通过实验,本方法彻底去除各类障碍物并得到与多种图像修复方法相比更好的修复效果,提高了裂缝图像修复的准确性与裂缝目标的完整性。

猜你喜欢

掩膜障碍物卷积
利用掩膜和单应矩阵提高LK光流追踪效果
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于Mask R-CNN的回环检测算法
高低翻越
清溢光电:掩膜版产业国产化的领军者
赶飞机
从滤波器理解卷积
月亮为什么会有圆缺
基于傅里叶域卷积表示的目标跟踪算法