传统的图像修复算法大多基于数学或物理的方法,如Bertalmio等[1]提出基于偏微分方程的修复方法,其方法将待修复区域周围的可用先验信息扩散至洞孔区域内,实现图像的自动修复,但是修复的边界区域衔接不自然.周密等[2]提出的变分修复算法,须要迭代,耗时长,修复较大缺失区域会产生明显的模糊.Barnes等[3]提出的Patch Match算法,使用缺失区域周围碎片匹配填充,匹配主要是平移操作,若引入尺度、旋转运算,其计算复杂度级数上升.为弥补传统算法的不足,深度学习网络被用于图像修复.Yan等[4]以U-Net为基础结构加入shift-connection,将已知区域的特征信息转移到缺失区域得到精细的纹理信息和完整的结构信息,但是当修复大型洞孔时,由于已知区域信息有限,会产生不合理的结构.Yu等[5]提出基于上下文的注意力机制,采用纹理搜索填充未知区域,当修复小型洞孔时效果不错,但填充大孔时会产生模糊的纹理.Yang等[6]提出多尺度Patch-Match算法,使用并行网络搜索周围纹理实现修复,但是填充时只使用待修复图像内的信息,没有使用整个数据集中的特征,因此修复较大洞孔时会产生不合理的结构或纹理细节.Nazeri等[7]提出提取图像结构边缘信息的修复算法,构建的边缘性信息对较小的洞孔是合理的,因为局部区域内的像素具有强相关性,但对大型不规则洞孔的修复结果欠清晰.Yu等[8]提出学习动态特征选择机制扩展部分卷积的修复算法,可对小型掩膜图像提供充分的像素信息,取得不错的效果,然而当掩膜区域大且连续时,已知区域和未知区域相关性减弱,修复时会产生模糊的结构.为有效修复大型连续不规则缺失区域,Guo等[9]提出从洞孔边界到中心的渐进修复算法,但是该方法没有使用循环机制,导致渐进修复计算量增大.Li等[10]提出基于循环推理的注意力机制修复方法,可有效修复大型连续不规则破损,但是标准空洞卷积循环采样稀疏,导致修复结果纹理混乱.Xie等[11]提出的修复算法可有效修复大规模洞孔,但是其归一化层使用批量归一化(batch normalization,BN)方法,使修复效果受迭代批量数影响,导致计算量增加.综上所述,现有算法在修复大面积不规则连续缺失区域时存在纹理模糊、结构失真、计算量大等缺陷.针对这些不足,提出了基于改进知识一致性注意力机制修复算法.在卷积层中引入混合空洞卷积,扩大了采样率;提出在知识一致性注意力机制(knowledge consistent attention,KCA)[10]中对注意力分数进行注意力传播;提出用GN替代批量归一化(batch normalization,BN),减少了计算量,降低了算法复杂度.1 基于改进知识一致性注意力机制的修复算法基于改进知识一致性注意力机制的修复算法流程为:首先将掩膜图像输入至部分卷积与改进知识一致性注意力机制特征推理模块进行推理,随后将输出图像继续输入部分卷积与特征推理模块进行循环,循环完成后将所有输出特征图进行特征合并,最后将合并特征图输入至瓶颈层得到最终输出.整个网络的归一化层使用GN归一化方式.网络框架如图1所示.10.13245/j.hust.238196.F001图1算法的网络框架1.1 特征推理模块该模块由基于混合空洞卷积与KCA的编码解码结构组成,编码模块包含混合空洞卷积,解码模块包含KCA,如图1所示,该结构主要对部分卷积处理的特征图缺失区域进行估计以获得合理的特征结构.1.1.1 混合空洞卷积空洞卷积可以扩大信息捕获的感受野,解决标准空洞卷积存在采样不连续的缺陷.由于卷积核中引入了零,因此在kr×kr的采样区域参与计算的实际像素仅为k×k,像素之间的距离为r-1,r表示空洞卷积的空洞比率.若k=3,r=2,则25个像素中只有9个像素用于计算.r=2时丢失的信息量至少为75%.当空洞比率r增大时,输入特征图的采样非常稀疏,破环了采样的连续性.为解决上述问题,提出用混合空洞卷积(HDC)代替标准空洞卷积.假设有n个卷积层,其卷积核大小为k×k,空洞率为[r1,r2,⋯,ri,⋯,rn],HDC使卷积运算的感受野完全覆盖采样矩域,没有任何孔洞或边缘缺失.在这里定义第i层空洞卷积采样区域参与实际运算的像素之间最大距离为Ri=max[Ri+1-2ri,Ri+1-2(Ri+1-ri),ri],式中Rn=rn.在混合空洞卷积比率设计中,当R2≤k时,才能设计出有效的混合空洞卷积模块.此外HDC可以使用任意的空洞率以扩大了网络的感受野,但是一组空洞卷积内的空洞比率不应具有公因子关系,否则会出现像素栅格化[12-16].综上所述,提出混合空洞卷积模块,该模块由3个卷积层组成,分别具有1,2和3的比率.1.1.2 注意力机制注意力机制[17] 从背景区域中寻找可用于待修复区域的纹理合成高质量的特征图.在KCA中引入注意力传播的方法[5]提升修复结果,并在训练中丰富梯度.本研究的注意力机制如图2所示.10.13245/j.hust.238196.F002图2本研究注意力机制示意图首先计算前景区域(缺失区域)与背景区域(非缺失区域)的余弦相似度,令Fi*表示第i次循环输入到注意力机制的特征图,则特征图掩膜区域位置(x,y)的特征值fx,y与背景区域(x',y')位置的特征值fx',y'的相似度值为si,x,y,x',y'=fx,y/fx,y,fx',y'/fx',y'.为进一步保持图像的一致性,使用注意力传播机制,当前景区域的特征块进行偏移时,背景区域的特征块也进行相同的偏移.因此设置一个卷积核进行左右传播与上下传播来计算新的注意力分数si,x,y,x',y''=∑i,j∈{-k.k}si,x+i,y+j,x'+i,y'+j,式中k为卷积核的大小.用softmax函数计算注意力传播得到的值为α'=fsoftmax(si,x,y,x',y''),式中α'为softmax函数沿通道方向计si,x,y,x',y''在位置(x,y)处的分量比例.然后计算最终得分.首先判断之前循环的特征图在(x,y)的像素值是否有效(特征图对应的掩膜值为1),若有效,则将上一次循环产生的最终分数与此次循环计算出的注意力分数αi'进行加权组合,即αi,x,y,x',y'=λαi,x,y,x',y''+(1-λ)αi-1,x,y,x',y'',式中:λ为可学习的参数;αi-1为上一次最终注意力分数.若特征图在(x,y)的像素分数为无效像素,则αi,x,y,x',y'=αi,x,y,x',y'',直接以当前循环得到的分数值α'作为最终分数α.最后利用反卷积进行特征重建,具体为f^i,x,y=∑x'∈1,2,⋯,W;y'∈1,2,⋯,Hαi,x,y,x',y'fi,x',y',式中:α为注意力分数,用来重建特征图;fx',y'为背景区域在(x',y' )处的特征值;f^i,x,y为在位置(x,y)处得到的新特征值.特征图重建后,输入到注意力机制的特征图F*和重建后的F^通道合并,卷积得到最终结果为Fi'=ϕF^,F*,式中:F'为注意力机制输出的结果;ϕ为逐像素卷积;|∙|为通道合并.1.2 特征合并特征图经循环推理网络后,若仅使用最后一次循环的特征图,会出现梯度消失,特征图信息被破坏等问题.因此,将所有循环产生的特征图使用自适应结合机制[10]进行合并,即输出特征图中的值仅根据对应位置已被填充的值(被填充后的像素值为有效值,其对应的掩膜值为1)进行计算,用Fi表示特征推理模块产生的第i张特征图,Mi表示部分卷积产生的第i张掩膜.输出特征图F¯可以表示为f_x,y,z=∑i=1Nfx,y,zi/∑i=1Nmx,y,zi,式中:fx,y,z为特征图F在位置x,y,z的特征值;Mi为特征图Fi的二进制掩膜;mx,y,z为掩膜在位置x,y,z的数值;N为特征图的输入数量.使用自适应结合机制可以合并任意数量的特征图,增强修复能力.1.3 组归一化为克服BN耗费GPU内存、增加计算量的问题,提出用GN(group normalization)[13]替换BN进行归一化.GN将特征图通道分组并在每个组内将特征值归一化可得x^i=(xi-μi)/σi,式中:x为每个卷积层的特征值;i为索引.在一张二维图像中,i=(iN,iC,iH,iW)为按顺序索引特征图的四维向量,分别表示批量方向轴、通道方向轴、高度方向轴和宽度方向轴,μ和σ分别表示特征分布的均值与方差,即μi=1m∑k∈Sixk;δi=1m∑k∈Sin(Xk-μi)2+ε1/2,式中:ε为一个小的常量;Si为像素集合;m为集合的大小.Si定义为Si=k|kN=iN,KCC/G=iCC/G,式中:G为组数量,默认G=32;C/G为每组的通道数;KCC/G=iCC/G为索引i和k在同一组通道中,沿通道轴C轴按顺序分组.1.4 瓶颈模块瓶颈层[18]主要由残差网络组成,利用两个1×1的卷积块降低网络参数,提升修复性能.由于提出算法引入了空洞卷积,因此为有效减少栅格效应,去除了残差连接[16].1.5 损失函数提出算法使用来自预训练的VGG-16的感知损失(perceptual loss)和风格损失函数(style loss)比较生成图像和原图之间的深度特征[10],其中感知损失与风格损失函数分别定义为Lperc=∑i=1N1HiWiCiΦigt-Φipred1;Φis=ΦiΦiT;Lstyle=∑i=1N1Ci×Ci∙1HiWiCi[Φigt(Φigt)T-Φipred(Φipred)T]1,式中:Φi为VGG-16第i层池化层产生的特征图;Hi,Wi和Ci分别为第i层池化层输出特征图的高、宽和通道数;Φigt和Φipred分别为原图与生成图像通过第i层池化层产生的特征图.另外,使用L1损失函数分别计算掩膜区域与非掩膜区域生成图像Fpred和原图Fgt之间的差异,即Lhole=(HWC)-1(1-M)⊙(Fpred-Fgt)1;Lval=(HWC)-1M⊙(Fpred-Fgt)1,式中:H,W和C分别为特征图的高、宽和通道数;M为初始输入的二进制掩膜;⊙为点乘.综上可见,总的损失函数定义为Lall=λ1Lstyle+λ2Lprec+λ3Ltv+λ4Lval+λ5Lhole,式中各损失的权重设置分别为λ1=120,λ2=0.05,λ3=0.1,λ4=1,λ5=6.2 实验及分析2.1 对比实验训练模型每次迭代使用的小批量图像数为4,图像大小为256×256,使用Adam优化器函数.开始训练时,先用学习率为2×10-4进行训练模型,随后达到一定的迭代次数后用5×10-5进行微调.软件环境为Python 3.7,Pytorch 1.7.0,Windows10微软操作系统.硬件环境为 CPU i9-10900k和GPU 24GB NVIDIA RTX3090.使用国际公认的Paris StreetView数据集,使用随机掩膜.训练集1.49×104张,测试集100张,主要由城市建筑构成.将提出算法与RFR[10],LBAM[11]和PIC[19]对比,以验证有效性.PIC[19]是基于并行生成对抗网络的图像修复方法,可有效修复不规则洞孔.LBAM[11]为针对部分卷积不足提出的可学习的双向注意映射模块,能有效修复不规则洞孔.RFR[10]对图像特征进行循环推理,以逐步提高修复能力.为验证提出算法的有效性,设置了从小型到超大型的各种掩膜进行实验,掩膜率分别为29%,38%,45%,57%,66%和72%,如图3~8所示.10.13245/j.hust.238196.F003图329%掩膜率下不同方法的视觉比较10.13245/j.hust.238196.F004图438%掩膜率下不同方法性能的视觉比较10.13245/j.hust.238196.F005图545%掩膜率下不同方法性能的视觉比较10.13245/j.hust.238196.F006图657%掩膜率下不同方法的视觉比较10.13245/j.hust.238196.F007图766%掩膜率下不同方法的视觉比较10.13245/j.hust.238196.F008图872%掩膜率下不同方法的视觉比较图3(a)为待修复的小型掩膜图像,PIC算法利用图像中的绿色挡板作为背景信息进行填充,出现明显的修复错误,导致结构混乱.LBAM算法和RFR算法,能较好修复窗户的大致纹理,但LBAM算法的修复结果不仅纹理扭曲,窗户区域也严重畸变,产生了冗余结构.RFR算法虽然较清晰地修复了纹理,但是在窗户区域产生了多余内容.本文算法修复的图像不但纹理清晰,而且上方窗户区域修复得到的结构一致性也较高.图4包含复杂的人物背景.PIC算法能勉强修复上方的大致结构,但是效果并不理想,几乎不能完整保留结构信息,在下方同样产生了大量跟图像完全无关的内容.LBAM,RFR和本文算法的修复结果,因人物背景过度掩盖,都无法完全将其修复,虽然如此,但是均能利用已知区域的信息,完成图像的整体结构修复.本文算法与这两种算法相比,体现了细节优越性,例如LBAM修复结果在下方区域的窗户边框出现弯曲,栅栏较为模糊.RFR算法与本文算法修复结果较接近,然而RFR的修复结果存在一些模糊性区域,主要集中在上方窗格与下方栅栏.本文方法对这两处的修复较为完整清晰.图5(a)中的缺失区域被中型掩膜损毁,PIC算法能较完全地还原结构,但是产生了少量的无关内容,不能完全修复左边的数字标号,阴影部分的大门处产生了部分白块.LBAM,RFR和本文算法的修复结果无扭曲,无结构缺失,纹理清晰.但是LBAM在大门处产生了冗余内容,也出现了白色小块,使整扇门模糊不清.RFR修复的左下角墙壁有轻微的结构扭曲.相比较而言,本文算法修复结果结构清晰,无冗余内容,修复结果与原图相似度高.图6(a)是中大型掩膜破损的图像,破损区域掩盖了图像中的各处边缘信息.PIC的修复结果在墙壁区域出现了大量的修复阴影,使整个图像相当模糊,此外中间的窗户边界区域出现了深厚的拖影.LBAM的修复结果在窗户左下角的边界区域纹理极其模糊.RFR修复的整张图像纹理结构较为清晰,但在墙壁区域右上区域与中下区域出现了失真.本文算法修复的整体结构合理,图像纹理完整清晰.图7是包含大型掩膜的破损图像,背景复杂.PIC修复的结果背景错乱,基本不能保证缺失区域和周围区域的一致性.LBAM的修复结果出现了大量错综复杂的条纹,多处窗户没有修复出来,而是直接将墙壁内容填充至窗户区域,可见LBAM修复大型掩膜的能力较差.RFR对于左边的窗户,基本不能以合适的内容去修复窗户区域,以至于呈现不出完整的窗户结构.而本文算法填充的内容,虽然与原图有所差异,但符合视觉语义.图8(a)的超大型掩膜基本覆盖了全图.PIC修复算法的填充结果除了非缺失区域外,其余内容的结构已严重畸形.LBAM基本不能构建出左边复杂场景的完整纹理,左上部位基本无语义信息.RFR对于超大型掩膜的处理还较理想,但是左上角窗户区域出现了明显的内容错误填充.而本文算法能保证纹理完整,修复效果良好.为了客观比较提出算法与对比算法的性能,对各种算法的结构相似度(SSIM)、峰值信噪比(PSNR)及均方误差(MSE)进行对比,表1给出了在Paris StreetView测试集上不同掩膜占比率的修复性能指标对比结果.10.13245/j.hust.238196.T001表1几种方法的峰值信噪比、结构相似度及均方误差对比评价指标掩膜率10%~30%40%~60%70%~80%SSIMPIC0.9060.6330.488LBAM0.9250.7000.601RFR0.9270.7240.639本文0.9280.7340.649PSNRPIC28.27020.77018.370LBAM29.76022.38020.710RFR30.26023.06021.310本文30.40023.30021.580MSEPIC15.96648.56263.464LBAM10.27040.20852.298RFR14.04639.57749.965本文14.02138.86349.209从表1可见:提出方法的客观指标高于对比算法,RFR虽然在MSE这个指标上优于本文算法,但是本文算法在SSIM和PSNR优于RFR算法,SSIM和PSNR在相比MSE在图像对比上更具有代表性,可见本文算法的修复性能总体还是优于对比算法.表2给出了各种算法的不同训练次数需要的时间对比结果,表中:的第2行表示迭代50次各个算法所用的时间;第3行代表各个算法训练一个回合所需要的时间;第4行代表各个算法达到收敛所需要的大致时间.可看出本文提出算法效率高,收敛时间快于对比算法.10.13245/j.hust.238196.T002表2各算法计算时间对比时间PICRFR本文50次迭代53.2132.6924.42一个回合15 856.589 741.627 277.16收敛5392293训练321 00028040s2.2 消融实验消融实验验证混合空洞卷积模块与注意力传播对提出算法效果的影响如图9所示,其中:(a)和(d)为输入的掩膜图像;(b)为不使用混合空洞卷积的修复结果,可以看到中间窗户处,因采样不够连续,导致出现纹理模糊;(c)中混合空洞卷积的修复结果纹理清晰,局部与全局衔接自然;(e)为不使用注意力传播机制的效果,出现了局部结构扭曲,未产生合理的内容;(f)为使用传播注意力机制的结果,修复处与已知区域保持了语义一致性,效果良好.10.13245/j.hust.238196.F009图9消融实验的视觉比较为具体比较有无混合空洞卷积模块与注意力传播的影响,设置消融实验进行定量比较,如表3所示,通过PSNR,SSIM和MSE量化指标进行对比,可以看出本文算法指标较好,呈现效果理想.10.13245/j.hust.238196.T003表3在Paris StreetView数据集上的消融实验指标对比评价指标混合空洞卷积+无注意力传播无混合空洞卷积+注意力传播混合空洞卷积+注意力传播SSIM0.77124.2834.837PSNR0.77224.2934.622MSE0.77424.3734.3083 结语提出算法首先使用部分卷积将待修复图像进行处理,并且对掩膜进行更新;随后将处理后的特征图输入至特征推理网络进行循环推理;接着将循环输出特征图进行特征合并;最后将合并图像进行去残差瓶颈层后处理,以提升网络性能.为了避免使用过大的批量图像进行训练,引入组归一化方式,减少网络的计算量,提升网络的效率.通过与现有几种现有经典方法进行定量和定性的对比实验,结果表明:提出算法在修复大规模连续不规则孔洞时,修复结果纹理结构合理,能有效避免图像失真.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读