基于深度神经网络的图像修复算法综述

2023-10-30 08:57吕建峰邵立珍雷雪梅
计算机工程与应用 2023年20期
关键词:掩膜纹理语义

吕建峰,邵立珍,雷雪梅

1.北京科技大学 自动化学院,北京 100083

2.北京科技大学 顺德创新学院,广东 佛山 528399

3.北京科技大学 信息化建设与管理办公室,北京 100083

图像修复是根据未损坏区域的信息来推测缺失内容并对破损区域进行复原的技术,早期的图像修复主要应用于艺术画作,修复师根据自身的想象力来还原的原本的画作[1]。不同于图像分类[2]、检测[3]等高层视觉语义分析,图像修复任务不仅需要对图像进行特征的提取,还需要输出相应的图像,主要实现的是图像编辑这种底层视觉的任务[4]。

传统图像修复方法包括基于扩散方法和基于样本方法。基于扩散的方法[5-6]利用偏微分方程,根据图像缺失部分边缘的已知信息确定扩散的方向和大小,由四周逐步扩散至中心区域,直到传播至整个缺失部分。对于存在有明显复杂纹理图像的照片来说,使用扩散会出现畸变。并且对于大面积的信息缺失的图片,信息会随着扩散而逐渐丢失,导致中心区域模糊不清,因此该方法不适合用于大区域修复。基于样本方法[7-9]将未知区域与已知区域样本进行相似度匹配,将相似度最高的块直接复制到对应缺失部分。此类方法可以处理较大破损面积,但置信度会随着填充而下降,检索速度和匹配效率较低。传统图像修复方法只能关注图像的结构和纹理,忽略了图像高层的语义信息,对于纹理结构复杂、缺失面积较大的图像都不能处理得很好。深度学习方法能够很好地提取图像深层的语义特征,使缺失区域的修复符合视觉语义一致的效果,因此基于深度学习的图像修复得到广泛研究。

随着卷积神经网络(convolutional neural network,CNN)[10]、自编码器(auto encoder,AE)[11]以及生成对抗网络(generative adversarial network,GAN)[12]的提出,图像修复技术已经能在语义、纹理结构上保持与原图一致,视觉效果日渐趋于真实图像,图像修复技术已经被应用于物质文化遗产保护[13]、医学领域图像处理[14]、日常图像编辑修复[15-16]等领域。

尽管目前国内有部分发表的图像修复综述性工作,但都存在一些方面没有考虑,如缺少质量指标的定量对比、实验数据缺少相关的数值分析、没有对分类的修复方法进行概括总结等。因此本文首先在概述传统图像修复方法及其不足基础上,对近几年基于深度神经网络的图像修复方法按照不同优化方向进行分类与综述;然后介绍了图像修复研究常用的数据集和性能评价指标,并在相关数据集上对具有代表性的图像修复算法进行性能评价和分析总结;最后,对现有图像修复方法目前面临的挑战进行分析,并对未来研究方向进行了展望。本文的主要贡献是按照图像修复的优化方向进行分类综述,并结合相关的实验条件进行了性能分析,包括图像分辨率、掩膜类型以及推理时间,最后总结了图像修复四种优化方向各自的优势、局限性以及适用场景。

1 基于深度学习的图像修复方法

基于深度学习的图像修复是利用深度自编码器(deep auto encoder,DAE)[17]与卷积自编码网络(convolutional auto encoder,CAE)[18]实现的,其通过卷积网络将整个破损图像进行数据信息的特征提取,然后利用解上采样将关键的特征重新组合起来,从而完成修复区域的生成。GAN 主要由生成器G(generator)和判别器D(discriminator)组成,其中生成器G主要任务是用噪声信号通过数据分布来生成新的图像,判别器D的作用则是判别生成的图像是真实图像还是虚假图像。此时判别器做的是不断训练自己的判别能力,既能将真实图片判别为真实,同时也要将生成图片判定为虚假;而生成器需要做的是不断训练自己生成的图片尽可能地真实,以此来使生成器与判别器达到平衡。

自编码网络需要GAN对抗损失来弥补传统像素级别的距离损失,所以目前基于深度学习的图像修复主流是将自编码网络的生成模型和GAN的对抗损失结合起来。按照模型的优化方向,将图像修复方法分为基于网络结构优化的方法、基于注意力机制的方法、基于辅助信息指导的方法以及基于损失函数优化的方法。

1.1 基于网络结构优化的方法

Pathak等人[19]结合了自编码网络与GAN的思想,提出了上下文编码器(context encoders,CE)网络,开创了深度学习图像修复的先河,其网络结构如图1所示。具体来看,context encoders网络将带有缺失区域的图像作为输入,利用编码器提取出图像的高级潜在特征,接着解码器将提取的特征进行上采样生成缺失的图像内容。作者发现仅使用与真实图像之间的L1距离作为重构损失函数会导致修复图像内部模糊不清,并且修复边缘明显,而加入对抗损失可以让生成的图片更加自然,使得修复内部图像更加具有真实性。但context encoders网络仅仅对修复的局部图像进行鉴别、使原图与生成图像边缘出现较为明显的割裂感,大大降低了整体图像的观感,并且context encoders 网络针对的破损图像仅为中心规则掩膜,并不能很好地处理随机的不规则图案。

图1 Context encoder网络结构Fig.1 Network structure of context encoder

常规的卷积网络会把感受野上的所有像素进行卷积,但被污染的图片上的像素分为有效像素和破损像素,同时将其卷积会导致修复边界出现扭曲伪影等视觉问题。Liu等人[20]提出了部分卷积(partial convolutions,PConv),其能够对掩膜按照规定好的公式进行自动更新,避免了无效像素对图像特征提取的影响,同时加大了破损边缘的权重,实现了对不规则破损图像的修复。使用掩码自动更新的部分卷积来代替普通卷积可以有效消除伪影问题,并且部分卷积作为即插即用的模块可以广泛地推广到其他图像修复模型中,且无需任何额外处理操作。但人为设定掩膜更新机制作为硬门控不能自主学习权重系数,具有不同数量的有效像素一同卷积导致边缘信息消失,同时破损像素随着网络深度逐渐消失。因此Yu 等人[21]提出了可学习的门控卷积(gated convolutions,GConv),门控卷积自主学习了破损图像以及掩膜通道和空间位置的动态特征,掩膜同样由特征图作为输入进行卷积操作更新,而不再是通过人为规则更新,门控卷积能够自动学习掩膜的权重,使不规则图像修复边缘过渡更加自然,减少伪影以及扭曲等视觉问题。但GConv网络结构采用了由粗到精的两阶段修复,并在精修复网络中添加了注意力模块,增加了大量网络参数与计算成本。

由于常规卷积只有固定的感受野,因此Wang 等人[22]提出了多列分支结构网络,通过不同卷积核大小的膨胀卷积提取出具有不同感受野以及多分辨率的特征,使解码器能够利用不同层级以及更远的全局特征信息进行图像生成,但此方法面对不同对象和场景的大规模数据集时仍然存在困难。Zhang等人[23]从课程学习中获取灵感,通过合理的修复顺序能够比一次性完成修复获得更好的效果。因此文章将大区域的图像修复划分为了多阶段的区域修复,通过渐进式的修复方式使图像能够从边界逐步向中心完成修复,但此方法只能针对固定的规则掩膜进行设计,并不能处理不规则或者随机的破损图像。

早期图像修复大多采用批归一化(batch normalization,BN)[24]、层归一化(layer normalization,LN)[25]以及实例归一化(instance normalization,IN)[26],这导致破损区域与已知区域一起进行归一化而造成均值方差偏移的问题。Yu等人[27]提出了区域归一化(region normalization,RN),其核心是分别对破损区域和已知区域各自进行归一化处理,通过计算各自的均值和方差以此来区分不同区域的数据分布。由于网络后层区域掩膜已经融合,所以文中还提出了在不需要区域掩模下能自动检测损坏区域并获得掩码的可学习区域标准化(learnable region normalization,RN-L),解决了均值和方差移位问题并增强了破损区域的融合。但该网络需要明确的掩膜信息,对于破损区域与未破损区域难以分辨的图像,或者掩膜信息在卷积过程中被融合,都会导致RN-L 无法确定破损的区域,使修复图像较为模糊。

修复生成的图像不一定要与原图一样,只要看起来合理,就允许产生多种解决方案,Peng 等人[28]通过分层向量量化变分自动编码器(hierarchical vector quantized variational auto-encoder,VQ-VAE)得到离散化的图像结构与纹理信息,纹理生成器将生成的不同粗糙结果通过结构注意力模块来辅助纹理细节的增强,从而实现修复结果的多样化以及确保了图像的视觉质量,但该方法仍只能处理分辨率不高的图像。

传统CNN 无法捕捉长距离的信息,所以CNN 需要通过其他方法来获取全局信息的能力,Zeng等人[29]提出了上下文信息聚合转换(aggregated contextual transformations,AOT)网络,AOT block采用多个不同膨胀率空洞卷积,用门控连接并且代替了普通残差块中的Identity连接,在增强对远距离特征的捕捉的同时也降低了边缘颜色偏差问题,但该网络中AOT block分支数与膨胀率是根据研究设定的,当修复不同大小的图片时需要再次寻找最佳的参数设置。Quan 等人[30]提出了一种三阶段生成网络,其中小感受野的局部细化网络对于修复局部纹理更为有效,而大感受野和注意力方案用于修复长距离细节与大结构,通过局部和全局细化网络组合可以处理不同的修复场景。然而三阶段的网络也会产生更多的参数与计算成本,将局部和全局细化作为一个整体才会实现更高效的存储和计算。Zheng等人[31]提出了级联调制生成网络(cascaded modulation GAN,CM-GAN),该网络具有全局调制块和空间调制块级联的双流解码器,应用全局调制特征图中提取的空间样式调整特征图,从而确保全局和局部生成的一致性,但网络对于合成像人或动物这种特定类型的大型物体方面仍然具有局限性。He等人[32]认为视觉图像具有高度冗余的特点,提出直接随机mask大部分patch来降低冗余信息,而视觉任务中解码器重构更多的是低语义信息像素。因此作者设计了一种非对称的编码器-解码器架构,仅通过对可见Patch进行编码以及通过轻量级的解码器进行图像重建,在加快训练速度的同时提高精度,使模型能够轻松扩展到其他模型中。

1.2 基于注意力机制的方法

普通卷积的感受野十分有限,所以基于CNN 的图像修复网络不能很好地将破损区域与较远的已知区域联系起来,这就导致了图像修复缺乏精细的纹理细节[33]。而早期基于样本修复的方法能够通过匹配和复制粘贴补丁块,使得修复的图像拥有高频的纹理细节,但此种方法又不能捕捉到图像的深层信息,导致出现修复的图像语义混乱和不一致。因此人们考虑在自编码网络的基础上加入匹配块,使网络既可以学习到深层的语义信息,又能学习到高频的细节纹理信息。

Yan 等人[34]在U-Net[35]为主干网络的基础上添加了移位连接层,Shift-Net通过将编码层特征和解码层特征以及匹配最相近的特征块进行跳跃连接融合,从而引导编码器对未知区域的特征的修复。Yu 等人[36]引入了注意力机制的概念,通过上下文注意力层从远距离的区域提取出与待修复区域相近的特征,其上下文注意力层如图2所示。具体来看就是将整个图像通过卷积,匹配出已知区域和待修补区域相近的块,然后按照块的得分进行上采样来重建待修补区域,以此提升网络的远距离信息抓取能力。但上述方法都只是关注到缺失区域与已知区域特征信息的相关性,直接将已知区域特征转移修复区域容易导致修复边界信息混乱,以及生成图像内部断层的问题。

图2 上下文注意力层Fig.2 Contextual attention layer

考虑到待修复区域内部自身的相关性,Liu 等人[37]针对破损区域内部特征之间的相关性问题,提出了连贯语义注意力(coherent semantic attention,CSA),其不仅使用注意力机制将破损区域与已知区域建立联系,同时也用CSA 层关注到缺失区域修复中块之间的相关性,有效解决了修复区域内部断层以及扭曲的问题。在计算特征块的相似度时,使用不同大小的块会导致修复的关注点不同,越大的块就越会关注高层语义之间的相似性,相反则会关注图片低层纹理细节之间的相似性,Wang 等人[38]将不同尺度块进行特征融合,然后通过压缩和激励(squeeze-and-excitation,SE)模块来调整不同尺度注意力层的权重,使修复的图片能够关注到纹理细节与全局语义。但上述方法都只是针对注意力提取的特征进行改进,对于边界信息以及整体结构还有待改善。为了保证图像修复纹理细节与高级语义的一致性,Zeng等人[39]基于多尺度特征金字塔的网络结构(feature pyramid network,FPN)[40]提出了金字塔式上下文编码网络。网络同时将浅层提取的纹理细节特征、深层提取的高级语义特征以及注意转移网络学习的注意力得分进行了融合,通过金字塔形式逐层完成多尺度的图像补全。该方法在图像修复的同时也进行了特征层面的补全,将高级语义的学习与纹理细节的学习联系在了一起,保证了纹理与语义的一致性。但多尺度的注意力机制也导致了模型训练时间长、参数大等问题,如今的图像分辨率越来越高,需要修复破损区域的面积越来越大,需要一种轻量级的修复网络解决这些问题。

针对渐进式修复对于大面积破损图像计算量大与时间成本大的问题,Li 等人[41]提出循环特征推理网络,该网络将注意力机制嵌入在循环特征推理模块(recurrent feature reasoning,RFR)中,通过反复利用RFR 的参数使模型轻便化,并用知识一致注意力模块以自适应的方式融合注意力得分,从而逐步完善特征图。虽然上述方法能解决大面积缺失问题,但针对高分辨率图像仍然需要计算成本,为此Yi等人[42]提出了上下文残差聚合网络,第二阶段网络计算的注意力得分不仅用于图像的精细修复,同时也共享在残差聚合的高分辨修复中,该网络的优势在于可以只针对低分辨率图像进行学习,通过上采样并加入高频残差得到最终高分辨的补全图像。此外作者还设计了轻量级的门控卷积,使网络在降低参数数量和推理时间的同时也保持了有效性,大大降低了计算时间和成本。

Transformer[43]最初是针对NLP领域提出的,并且在NLP领域大获成功,Google团队随后也提出了在计算机视觉领域中使用Transformer 视觉自注意力模型(vision transformer,ViT)[44]。卷积网络对全局信息具有局限性且不支持多元输出,而Transformer 拥有很强的结构理解能力但计算量大,为此Wan 等人[45]将两者结合起来,通过颜色离散化和图像压缩来减少计算复杂度,采用双向Transformer 不断将标记为掩膜的token 进行修复,而修复好的token会继续参与新的重建中,以此打破CNN局部感知的空间限制以及循环神经网络(recurrent neural network,RNN)单项传播的顺序限制,最后网络再通过高分辨率掩膜引导CNN 来填充细节纹理。Zheng 等人[46]用Transformer替换了VQ-VAE编码CNN特征生成器,其网络通过代码共享策略能够高效且鲁棒地学习语义丰富的离散特征,最邻近特征经过Transformer 实现未知编码的补全,从而获得多样化的高质量修复结果。但上述方法最后都需要经过CNN 进行高分辨的精修复,并且需要针对不同数据类型训练不同模型以获得通用的代码本。

1.3 基于辅助信息指导的方法

对于图像修复任务,直接将缺失图像映射成完整图像会使得结果过于平滑以及结构扭曲,受到书画修复师以及人类大脑对图像补全认知过程的启发,研究人员开始对图像修复加上先验的辅助信息[47]。基于辅助信息指导的方法类似于由粗糙到精确的两阶段法,首先把破损的图片放到第一个修复网络中,根据未破损的图像信息构建出破损区域的先验信息,然后把输出的辅助信息和原来破损图一起输入到第二阶段修复网络中,来帮助完成图像补全修复任务。不同于常规两阶段法生成粗糙结果的纹理约束,基于辅助信息指导方法生成的主要是高级语义结构的约束,因此增加结构信息指导的修复减少了修复区域与未破损区域之间的过渡平滑与模糊,使修复的图像结构符合原本的语义。

语义分割是对图像中的每一个像素进行分类,Song等人[48]将图像修复过程分为分割预测网络(segmentation prediction net,SP-Net)和分割指导网络(segmentation guidance net,SG-Net),将两个部分串联起来形成语义预测指导网络(segmentation prediction and guidance network,SPG-Net),其网络结构如图3 所示。利用全卷积网络(fully convolutional networks,FCN)[49]得到的破损语义分割图送入SP-Net生成完整的语义信息图,以此作为辅助先验信息来指导图像的生成,有效消除了修复中的类间差异。但面对数据集语义不明显或者存在相同语义的对象时,这种辅助信息往往也会导致相应纹理修复出现问题。受到艺术家工作方式灵感启发,Nazeri等人[50]认为轮廓恢复是图片修补中的一项简单的任务,提出的Edge Connect 网络采取了先生成轮廓线条得到完整边界信息,再指导图像填充色彩的方法。轮廓生成器的作用可以把图片修补任务的难度降低,将修复三通道RGB 图的任务转为修复轮廓的二值图,当修复得到完整的轮廓图片后,再将图像修复的任务转变为上色任务。这个过程相当于把恢复高频信息与低频信息的过程解耦合,使图像修复任务能够有效地重建高频信息。

图3 SPG-Net网络结构Fig.3 Network structure of SPG-Net

但上述方法都有不足之处:首先是在混合场景中直接从缺失图像预测完整语义分割或轮廓图都很困难,而不准确的先验信息将会降低后续图像修复的质量;其次辅助信息的生成与图像修复的过程不应该割裂,而应该是相互促进的。为此Li 等人[51]设计了视觉结构重建(visual structure reconstruction,VSR)层,在图像特征提取的同时进行图像轮廓的更新,通过渐进式的边缘补全指导图像内容的修复,VSR层的主要目的是将结构信息整合到重构的特征映射中,通过共享参数提高彼此的性能,采用单一阶段逐步完成修复。Liao等人[52]提出了单一阶段语义指导图像修复模型,其通过渐进式方式生成更高分辨率的语义分割图像来引导模型获得更精确的修复结果。此外,为了解决语义分割预测的不准确问题,作者还提出了一种可以预测语义分割可信度的评估模块(segmentation confidence evaluation module,SCEM),SCEM 会根据语义分割结果的类别概率生成一个掩膜矩阵,来标记出置信度不高的区域,通过渐进式解码逐渐减少不确定的语义分割以此提高最终语义的准确性。

常用的图像修复方法需要输入破损图像相对应的破损掩膜,但实际生活中往往不知道图像需要修复的是什么区域,或者说标定相应的破损区域相对困难。如果要利用人工标注掩膜,用户则需要仔细手动定位损坏区域,而且对于批量图片操作也会耗费大量时间和精力。较早的盲修复都是针对固定噪声直接端到端进行修复[53],但对于图像缺失区域语义不一致等情况却很难进行处理,因此Wang 等人[54]提出了一种能实现图像盲修复的网络,其中掩码预测网络(mask prediction network,MPN)用于预测视觉不一致区域,MPN的目标是检测所有损坏的区域并生成对应的掩膜矩阵;鲁棒补全网络(robust inpainting network,RIN)用于补全视觉不一致区域,利用概率上下文规范化对输入的预测掩膜进行处理,其误差也会在RIN优化时反向传播到MPN中,使网络中的掩膜预测与图像修复相互关联。

结构辅助信息的增加可以使图像语义更清晰,但内部依然会存在混乱的颜色伪影问题,Wang 等人[55]设计了外部-内部修复方法,外部学习通过数据集学习语义知识重建缺失图像的结构,内部学习统计单个图像的颜色数据,渐进式地对图像进行颜色恢复,从而消除了突变颜色振铃的缺陷,但此方法对每个测试图像都需要颜色学习训练,所以推理时间较长,不能完成实时运算。

Zeng 等人[56]设计了将置信度图作为辅助信息来反馈修复准确度,以此来应对图像出现较大破损区域时中心部分修复效果较差的问题。网络通过置信度图的信息循环迭代来指导修正上一次的生成结果,并采用指导式上采用来生成高分辨率的结果。虽然网络处理大面积破损以及高分辨图像有一定优势,但由于网络需要迭代运算,所以计算资源也较大。Guo等人[57]也指出修复过程中纹理信息和结构信息是相互影响、相互促进的,为此提出了一种双流的网络结构。网络拥有纹理和结构的编解码器,用结构约束纹理特征生成,用纹理特征引导结构的重建,将纹理和结构彼此作为辅助信息从而引导恢复。同时网络设计的双向门控征融合模块和上下文特征聚合,使结构和纹理特征之间能够共享和组合信息,从而增强图像纹理细节的一致性。

1.4 基于损失函数优化的方法

Context encoders网络虽然使用了对抗损失作为约束,但其仅仅作用于图像局部区域,因此存在修复区域模糊和边界结构不一致的问题。Iizuka等人[58]在context encoders局部对抗损失基础上新增了全局对抗损失,全局判别网络会把生成图像与原本图像拼接起来判断整体图像的真伪,利用全局对抗损失可以在保证图像全局结构一致性的同时,也使得生成的图像更具真实性,其网络结构如图4所示。

图4 全局局部一致图像补全网络结构Fig.4 Network structure of globally and locally consistent image completion

Johnson 等人[59]提出了感知损失和风格损失概念。感知损失是原始图像与修复图像相似特征之间的L1距离;风格损失为原始图像与修复图像特征图对应格拉姆矩阵的L1 距离[60]。感知损失与风格损失的加入,使图像风格细节受到更多的颜色和纹理约束,用于衡量两张图片之间高级感知及语义差别。利用这种思想,Yang等人[61]通过VGG-19网络[62]的图像特征层进行已知区域与缺失区域特征块的最相近匹配,利用提取的图像深层特征实现了图像纹理的匹配,其本质就是增加了一个纹理约束作为损失函数。文献[22]将感知损失进行隐式多元马尔科夫随机场(implicit diversified Markov random fields,ID-MRF)正则化,采取相对距离来度量特征之间的相似性,与直接相似性度量相比,该方法可以还原更真实的纹理、增加结构的变化。同时为了使修复边界的未知像素受到更强的约束,作者还设计了置信驱动的重建损失,将掩膜卷积得到的权重作用到损失函数中,以此来改变图像不同位置的约束权重。

文献[36]在注意力机制网络中添加了空间权重衰减损失,离待修复区域的边缘越远,其中心修复的图像就越自然,而边缘部分由于和已知区域相连,其纹理结构就会受到已知区域更多的约束。因此作者给边缘部分的损失更大的权重,而离边缘越远,其权重衰减越厉害,从而达到对边缘约束的同时也让缺失区域中心能够不受到原图的影响。后来作者又借鉴了PatchGAN[63]和谱归一化(spectral normalization,SN)[64],在门控卷积网络中加入了简单高效的SN-PatchGAN判别器。其中SN解决了判别器训练不稳定以及模式崩溃的问题;而PatchGAN 又称马尔可夫判别器,其输出为N×N的矩阵,每个Patch对应着原图的一片感受野,判别器将会对每一块Patch 进行鉴别,因此解决了传统判别器受输入分辨率的限制以及判别区域不能为任意形状的问题。文献[29]在PatchGAN 的基础上进行改进,为了突出优化图片生成的部分,将原图部分改为真实,但强行优化生成部分也会导致与原图片部分融合不够充分,通过给硬标签加上高斯滤波进行模糊处理就变成了软便签PatchGAN。

由于缺少已知区域与未知区域对应关系的约束,使用注意力层将已知区域块转移到未知区域可能会导致匹配错误,Zeng等人[65]在精修复网络中加入了上下文重建损失,通过最小化辅助图像的修复损失,鼓励网络寻找最佳的补丁块并移动到相应的位置,使得生成器找到适当的已知区域作为填充。

2 相关数据集与性能分析

2.1 图像修复相关数据集

图像修复作为底层视觉任务,其常用于街景、场景以及人脸等场合,因此图像修复相关数据集主要也分为以上三大类。

在街景上,Paris StreetView数据集[66]拍摄于现实的街景,大多为巴黎街景图片,其包含训练图像14 900张,数据集较早用于图像修复场景,分辨率为963×537;Cityscapes 数据集[67]是以欧洲城市为主的街道场景,其拥有的语义分割和实例分割可以作为辅助信息帮助完成图像修复任务。

对于场景数据集,Places[68]具有1 000 多万张图片,包含了400多种场景,图像分辨率为256×256,主要用于场景环境的高级视觉任务中;ImageNet 数据集[69]具有1 400万张图片,包含两万多个生活场景的物体图像,拥有用于分类、定位和检测任务评估的数据。

针对人脸数据集,Celeba[70]数据集收集了20 万多张人脸图像,包含一万多个身份,分辨率为178×218;CelebaHQ[71]则是高分辨版本的Celeba,分辨率为1 024×1 024;人脸高清数据集(flickr-faces-high-quality,FFHQ)[72]最初作为GAN的基准创建,包含1 024×1 024分辨率的高质量人脸图像,每张图像都有多种属性标签。

由于现有的图片很难找到对应的实际破损图像,所以目前图像修复使用的破损图像数据集基本都是在上述公共数据集上加入掩膜图像生成的。最早使用的主要是中心矩形的规则掩膜,但由于其掩膜不符合实际生活的破损图像,所以文献[20]提供了NVIDIA Mask数据集,其不规则掩膜由视频的两个连续帧之间的遮挡和去遮挡生成,图像分辨率为512×512,该数据集实例如图5所示。文献[21]提出的随机掩膜(free-form masks),主要利用程序代码,通过改变垂直边距、水平边缘、图像尺寸等参数来随机生成相应的掩膜。还有部分文献使用的不规则掩膜也是利用程序代码随机生成的,但其方法在代码上各不相同。上述掩膜都没有人为因素的实际干预,要么存在锋利的边缘,要么就是过渡的涂抹,为此快速绘制不规则掩码数据集(quick draw irregular mask dataset,QD-IMD)[73]提供了手绘制的笔画组合的不规则掩膜图案,图像分辨率为512×512。

图5 NVIDIA Mask数据集Fig.5 NVIDIA Mask data set

2.2 图像修复评价指标

图像修复评价指标分为主观和客观评价指标,由于图像修复属于底层视觉任务,所以其主观评价又显得尤为重要,主要根据人的视觉来对修复图像进行认知,但对于修复结果的好坏也依赖于主观判断能力,并且需要大量的样本才能确保评价结果的一致。下面对常用的客观评价指标进行说明。

平均绝对误差(mean absolute error,MAE),指修复图像与真实图像像素值之差绝对值之和的平均值,即L1 损失函数,MAE 越大则像素差异越大;MAE 越小则与真实图像的像素差异也就越小。峰值信噪比(peak signal to noise ratio,PSNR),该指标评价的是噪声对图像修复差异的影响,PSNR越大,说明修复的图像与真实图像失真越小。结构相似性(structural similarity index,SSIM)[74]用来衡量图片相似度,主要关注边缘和纹理相似性来模仿人类感知,由亮度、对比度和结构三部分组成,SSIM 越大图片相似度越高。弗雷歇距离(Fréchet inception distance,FID)[75],其使用Inception v3[76]网络提取图像特征的均值和方差计算它们分布距离,FID分数越低,代表两者分布越近,两组图像也就越相近。

2.3 图像修复方法性能分析

本节采用MAE、PSNR和SSIM作为评价指标,对前文所述基于深度神经网络的图像具有代表性的修复方法进行性能分析。其中“—”表示此算法文献没有该项性能指标数值,掩膜类型为“不规则掩膜”的数据集为NVIDIA Mask[20]。计算时间能够体现出算法成本和性能的特性,也是体现修复算法质量的重要因素,尤其是实时应用,计算时间更是计算机视觉任务的一项挑战。因此表格也加上了推断时间数据,代表修复一张图像所需要花费的时间。表1~表4 分别列出了在基于网络结构优化、基于注意力机制、基于辅助信息指导、基于损失函数优化具有代表性的算法在常用数据集上的性能。

表1 基于网络结构优化的算法性能Table 1 Algorithms comparison based on network structure optimization

从表1图像分辨率以及掩膜类型可以看出,由于先前图像修复还不太成熟,只能处理低分辨率以及人工放置在图像中心区域规则掩膜的简单图像,但随着编码器-解码器网络结构的优化,能够处理的图像分辨率逐渐提高,也能实现一些复杂的不规则掩膜图像的修复,同时推理时间也在不断缩减。PGN 通过将整体拆分成子任务的渐进式修复,LGNet 将修复分为粗修复、局部精修复和全局优化三阶段修复,这种分阶段思想使MAE和PSNR数值有所提升;而GMCNN通过不同尺寸的卷积核,AOT-GAN 通过不同膨胀系数的卷积都获得了更大的感受野,使CNN 获得了捕捉更长距离信息的能力,从而能够处理更多类型的数据集以及更高分辨率的图像。

分析表2数据,从Shift-Net到CA再到CSA,随着注意力方法的不断改进,性能指标数据也在不断提高,但相应的推断时间却越来越长,这是由于注意力的引入使得网络需要处理的数据量增多,从而导致推理时间变慢。随着图像分辨率提高,图像修复的计算时间也需要解决,RFR网络通过循环网络参数以及融合注意力得分使模型轻量化,同时使用了渐进式方法,可以看到在性能指标相差不大的情况下,RFR网络能够处理较大面积的掩膜;CRA 通过残差聚合模块能够在100 ms 内处理2K 甚至4K 分辨率的高清图像;ICT 采用的Transformer结构可以利用自注意力机制获得更远的信息,也拥有更强的全局理解能力强,因此其性能指标在高掩膜占比情况下都优于其他注意力方法,能够很好地实现复杂场景以及大面积破损图像的修复。

表2 基于注意力机制的算法性能Table 2 Algorithms comparison based on attention mechanism

表3 主要是对比EC 与PRVS 两种靠边缘信息指导图像补全的算法,不同于EC 两阶段串联的方法,PRVS算法得益于渐进式方式以及辅助信息与图像补全的相互促进,在不同掩膜占比的情况下性能指标均优于使用二阶段法的EC算法。而VCNet由于缺少了掩膜的输入信息,因此其性能指标不如其他算法,但VCNet 使用掩膜预测网络与补全网络相结合的方法能够实现更为常见的盲修复任务,并且破损区域不再局限于黑白掩膜,还能够处理各种语义不一致的问题,开辟了图像修复新的方向。

表3 基于辅助信息指导的算法性能Table 3 Algorithms comparison based on auxiliary information guidance

从表4可以看出在设计新的图像修复算法时,往往不会只针对其中一种方向进行优化,而是会针对多方面进行不同的优化,通过改进现有的损失函数从而使自身网络的优势发挥更大的作用。如HR针对高分辨率图像引入了感知损失,CA 算法针对注意力引入了空间权重衰减损失,这都使性能指标得到一定程度上的提升。

分析四种不同优化方向的修复算法,由于目前图像修复处理领域没有专门和标准化的基准数据集以及评价指标,从各算法分析结果来看,除了训练的图像分辨率大小以及数据集不一样外,使用的掩膜类型、占比大小也各不相同。从数据集分析上看,对于同一种算法,Places数据集上的性能指标均低于StreetView和Celeba,可以说明场景数据集Places具有更复杂的图像背景,修复对象多样化,使图像修复更为困难。基于人脸图像数据集Celeba 的性能指标最高,因为人脸图像对象单一,不存在冗杂的背景修复,因此人脸修复更为简单。从掩膜类型对比来看,在掩膜占比近似情况下,中心规则掩膜的性能指标基本高于不规则掩膜,由此推断出规则掩膜中心孔洞面积较大,正中心区域距离已知信息区域较远,所以25%的规则掩膜相比于20%~30%占比的随机掩膜边缘约束相对较弱,导致最后修复效果与原图有一定差距,但随着不规则掩膜占比面积的增大,其性能指标下降得也越快,可以反映出大面积修复仍然是图像修复领域的重大难题。总的来说,数据集、掩膜类型、图像分辨率的不同都会对图像修复性能产生很大差异。

作为底层视觉任务的图像修复也离不开人的视觉来对修复图像进行评定,较好的定量评价指标不意味着图像修复的定性评价结果会更好,因此部分文献在实验结果分析中加入了用户评估图像的真实性与自然性。许多图像修复算法都是针对某一问题进行优化,如面部修复、大面积破损修复、高分辨率修复等,其最后通过放大修复图片的局部来体现优化效果,根据不同的优化方向可以总结出其注重优化视觉效果的不同方面。根据上述表格以及上章基于深度学习的图像修复方法的机制、优势、局限性对比可以总结出:

(1)基于网络优化角度的算法主要针对的是对特征提取上的优化,使网络可以捕捉到更深的高级特征,增强语义学习能力,使生成的图像更加符合原本图像的语义,但缺点是对图像纹理学习不足,修复区域上的纹理细节有待提高;

(2)基于注意力机制算法针对图像远距离特征提取以及纹理细节上的优化,通过优化网络颈部,使图像能够在捕捉深层特征的同时也能学习到高频的纹理细节特征,更善于捕捉全局信息,因此基于注意力机制优化的方向在大面积破损修复上表现得更好,但缺点则是增加了计算量,同时修复边缘以及内部语义连贯的问题还是没能得到解决;

(3)基于辅助信息指导算法则是通过增加先验信息确保了图像的语义结构,加强了模型输入约束,从而使生成图像与原本图像的连接处的语义结构具有一致性,使修复起来更为轻松,因此也更适合修复复杂的对象和场景,但缺点是生成先验信息的准确性会对后续修复产生较大的影响,同时修复内部的纹理细节还需进一步加强;

(4)基于损失函数算法不仅解决了如判别器训练不稳定的问题,同时通过增加新的约束使输出的图像边缘、纹理细节、图像风格以及整体视觉上都有一定的提高,往往模型在对其他方向优化的同时会根据自身的需求来改进损失函数,从而使自身网络的优势发挥更大的作用,但缺点则是网络参数也会相应地有所增大。

总结来看,四种不同的优化方向分别对应了模型的编码解码、网络颈部、输入与输出约束的优化,其在一定程度上都使生成的图像更加真实与自然,更符合人类的视觉观感,而不是单纯地为了指标数值上的提高。

3 图像修复面临的挑战

近年来,应用计算机视觉技术处理图像修复得以普遍关注。相比基于传统方法的图像修复,基于深度学习方法通过优化网络结构、先验信息、损失函数等方法使得网络能够处理不规则遮挡、大面积损失以及纹理细节恢复等问题。虽然图像修复在实验上取得了一定的效果,但针对实际应用还存在很多不足之处,本文在对现有的图像修复方法上进行分析的基础上,针对该领域面临的挑战性的问题归纳如下:

(1)数据集对于深度学习至关重要,如今关于图像修复的数据集大多只是将完好的图片增加掩膜的方式形成破损图像,这样就造成了目前的修复网络并不能很好地将真实生活中遭到破损的图像进行还原。目前已经有工作在对现实场景具有完整语义结构、有意义的物体进行掩膜处理,适用于实际对象去除的任务,未来还需要对相关破损图像以及相应完好图像的收集,使得训练数据集符合大部分图像修复任务的需求。

(2)现有大部分模型存在复杂结构以及大量参数,同时高分辨率图像的修复也意味着更大的计算量和成本。因此如何实现快速、网络结构轻量,是图像修复算法实用化的关键,不仅要考虑到实现修复图像纹理细节与语义结构一致,也要考虑到高分辨率、低延迟的问题,从而实现快速与高质量的修复。目前对高分辨率图像修复研究的工作还相对较少,因此高分辨率修复以及低延迟的推理计算正是目前热门的研究方向之一。

(3)在实际生活中人们对于需要修复的图像往往不能提供相对精确的掩膜,而针对此问题的盲修复网络仅在最近两年内才出现,并且研究得相对较少。需要收集相关的数据集,或者研究相应的检测方法,在某些场合内对图像特定区域进行智能擦除并修复的预处理,如在人脸识别系统上自动对头发遮挡、佩戴的墨镜、口罩进行擦除修复,进而方便后续的识别操作,所以能够实现仅输入破损图片就能够输出修复图像的全自动网络将会成为未来研究的热点问题。

(4)目前图像修复质量评价指标使用较多的是MAE、PSNR和SSIM,这些指标都需要将修复图像与原始图像进行对比,所以生成的图像会尽可能与原图一样,具有一定的局限性。因此可以设计更加系统合理的、无需与原图进行对比的无参考指标,能根据人类视觉对生成图像直接进行评价。同时研究还应该根据图像的边缘、纹理细节、结构等人眼视觉敏感的特征来调整网络结构和参数,使图像修复效果更加符合人眼评判标准。

4 结束语

本文对近几年的图像修复研究进行了综述,总结了图像修复方法中经典模型的设计思路和优势,对模型不同优化方向的图像修复方法进行归纳和分析。通过对已有图像修复方法的分析,可以概括总结为以下方面:基于网络结构优化更注重图像原本语义,基于注意力机制获得远距离较多的细节信息,基于辅助信息指导生成的图像与未破损图像的结构更加一致,基于损失函数优化使整体图像更为自然。目前CNN通过不断优化网络结构来弥补自身远距离信息获取能力不足的缺陷,Transformer的出现也让图像修复生成结果更加多样化,辅助信息指导可以为盲修复等更加艰巨的图像修复任务提供帮助,多方向优化的模型在未来将具有更好的视觉效果,但需要在性能和成本上寻找平衡。未来图像修复研究应该更加关注推理速度以及特定对象目标的盲修复,以满足实际应用的需要。

猜你喜欢
掩膜纹理语义
利用掩膜和单应矩阵提高LK光流追踪效果
一种结合图像分割掩膜边缘优化的B-PointRend网络方法
基于BM3D的复杂纹理区域图像去噪
语言与语义
使用纹理叠加添加艺术画特效
光纤激光掩膜微细电解复合加工装置研发
TEXTURE ON TEXTURE质地上的纹理
多层阴影掩膜结构及其制造和使用方法
“上”与“下”语义的不对称性及其认知阐释
消除凹凸纹理有妙招!