首发:AI公园公众号
作者:Chu-Tak Li
编译:ronghuaiyang
导读
这10篇文章给出了图像修复的一般框架和改进思路。
你好,这篇文章可以看作是对深度图像修复的复习,以及对新手的深度图像修复的介绍。之前已经有10多篇关于图像修复的深度学习方法的文章。是时候简要回顾一下我们所学到的知识了。
什么是深度图像修复?
图1所示,图像修复应用的例子
图像修复是一项任务,填补图像中缺失的像素,使完成的图像看起来很真实,并遵循原始(真实)的上下文。图1显示了一些应用,如删除不需要的目标和交互式图像编辑。只要你想,还有许多可能的应用。
术语
图2,一个masked输入图像(左)和一个完整的图像(右)的例子
给定如图2(左)所示的已损坏/掩码的输入图像,我们通常定义i) 无效/缺失/孔洞像素为位于待填充区域的像素,ii)有效的/留下的/ground truth像素作为我们可以用来帮助填充缺失的像素。注意,我们可以直接复制有效像素,并将它们粘贴到填充图像的相应位置。
介绍
填充图像与一些缺失的部分,最简单的方法是复制粘贴。其核心思想是首先从图像本身的剩余像素或数百万张图像的大数据集中搜索最相似的图像patch,然后直接将patch粘贴到缺失的部分。然而,搜索算法可能是耗时的,它涉及人工设计距离度量指标。其通用性和效率仍有很大的提高空间。
由于基于深度学习的方法和大数据时代,我们现在可以有数据驱动的基于深度学习的图像修复方法,可以生成图像中缺失的像素,具有良好的全局一致性和局部精细纹理。在这篇文章中,我们将专注于10种著名的基于深度学习的修复方法。我相信在你了解了这10种方法后,你也能理解其他的修复论文。
上下文编码器(第一个基于GAN的修复方法,2016)
图3,上下文编码器(CE)的网络结构
Context Encoder (CE, 2016)是第一个基于生成对抗网络GANs的修复算法。本文指出了图像修复工作中一些有用的基本概念。“上下文”一词涉及到整个图像本身的理解,CE的核心思想是Channel-wise全连接层(中间层在网络如图3所示),类似于标准的完全连接层,最主要的一点是,所有前一层的特征对当前层的每个特征都是有用的。这样,网络就可以学习到所有特征位置之间的关系,从而对整个图像有更深层次的语义理解。CE已经被视为一个基准,你可以看我之前的文章。用生成模型来做图像恢复的介绍和回顾:上下文编码器
MSNPS (增强的上下文编码器, 2016)
图4,改版的CE中内容网络和纹理网络(VGG-19)的概要
Multi-Scale Neural Patch Synthesis (MSNPS, 2016)[3]可以被认为是CE的增强版本。本文采用改进的CE算法对图像中的缺失部分进行预测,并利用纹理网络对缺失部分的预测进行装饰,以提高填充后图像的视觉质量。纹理网络的思想来自于风格转换的任务。我们想把最相似的有效像素的样式转移到生成的像素,以增强局部纹理细节。我认为这项工作是粗到细两阶段网络结构的早期版本。第一个内容网络(这里是CE)负责缺失部分的重建/预测,第二个网络(这里是纹理网络)负责填充部分的细化。通过使用膨胀卷积,该网络能够理解图像的上下文,而不需要使用昂贵的全连接层,因此它可以处理不同大小的图像。
除了扩展卷积的全卷积网络外,还与生成器网络一起训练了两个不同尺度的鉴别器。全局判别器着眼于整个图像,局部判别器着眼于填充的中心孔。同时使用全局和局部识别器,填充图像具有更好的全局和局部一致性。请注意,许多后来的图像修复论文都遵循这种多尺度判别器的设计。图像修复中的一个里程碑:全局和局部一致性的图像补全
Patch-based Image Inpainting with GANs (GLCIC的一个变体, 2018)
图6,提出的生成式ResNet体系结构和PGGAN判别器
Patch-based Image Inpainting with GANs可以看作是GLCIC的变体。简单地说,GLCIC中嵌入了两个先进的概念,即残差学习和PatchGAN,进一步提高了GLCIC的修复性能。本文作者将残差连接与膨胀卷积相结合,形成膨胀残差块。传统的GAN判别器也被PatchGAN判别器取代,以鼓励更好的局部纹理细节和全局结构一致性。
传统GAN鉴别器和PatchGAN鉴别器的核心区别在于传统GAN鉴别器只给了一个预测标签(从0到1)来表示输入的真实性而PatchGAN鉴别器给出了矩阵的预测标签(从0到1)来表示输入的每个局部区域的真实性。注意,矩阵中的每个元素都代表输入的一个局部区域。使用多尺度patch合成来做高分辨率的图像复原
Shift-Net (基于深度学习的 “复制粘贴”, 2018)
图7,Shift-Net的网络架构,Shift连接层在32x32的分辨率层上添加
Shift-Net利用了现代数据驱动的cnn的优点和传统的“复制粘贴”方法,提出shift-connection层深进行特征重组。本文主要有两个观点。
首先,作者提出了引导损失,鼓励缺失部分的解码特征(给定掩蔽图像)接近缺失部分的编码特征(给定良好条件图像)。因此,解码过程能够在合理估计良好状态图像中的缺失部分(即缺失部分的ground truth)的情况下填补缺失部分。
其次,提出的Shift连接层具有移位操作,使网络能够有效地借用缺失部分外最近邻居给出的信息,从而细化生成部分的全局语义结构和局部纹理细节。简单地说,我们提供了适当的参考来改进我们的评估。我认为对于对图像修复感兴趣的读者来说,巩固本文提出的观点是有好处的。如何将“复制粘贴”嵌入到图像修复中:Shift-Net使用深度特征重排的图像修复方法
DeepFill v1 (图像修复的一个突破, 2018)
图8,DeepFill v1的网络架构
Generative Image Inpainting with Contextual Attention (CA 2018)(也称为DeepFill v1或CA),可以被视为一个增强版或变体Shift-Net。作者进一步发展了复制-粘贴的思想,并提出了一个可微和完全卷积的上下文注意力层。
与Shift-connection层类似,通过将生成的缺失孔内部特征与缺失孔外部特征进行匹配,我们可以知道缺失孔外部所有特征对缺失孔内部每个位置的贡献。因此,可以使用外部所有特征的组合来细化缺失的洞内生成的特征。与Shift-connection层相比,Shift-connection只有寻找最相似的特征(不是可微的),本文采用软任务,所有特征都有自己的权重来表示他们的贡献。深度图像修复的一个突破
GMCNN (多分支的CNNs进行图像修复, 2018)
图9,提出的网络架构
Generative Multi-column Convolutional Neural Networks (GMCNN, 2018),扩展了足够大的感受野对于图像修复的重要性,并提出了新的损失函数进一步增强了局部纹理生成内容的细节。如图9所示,有三个分支/列,每个分支使用三种不同的滤波器大小。多重感受野(滤波器大小)的使用是由于感受野的大小对图像修复任务很重要。由于局部相邻像素缺失,我们不得不借用远处空间位置的信息来填补局部缺失的像素。
对于损失函数,隐式多样化马尔可夫随机场(ID-MRF)损失的主要思想是引导生成的特征patch在缺失区域之外找到其最近的邻居作为参考,这些最近的邻居应该足够多样化,以便能够模拟更多的局部纹理细节实际上,这种损失是MSNPS中使用的纹理损失的增强版本。在图像恢复中使用多个感受野有什么效果?
PartialConv (不规则孔洞的图像修复, 2018)
图10,通过使用常规的masked图像和提出的局部卷积训练的深度修复方法的视觉比较
Image Inpainting for Irregular Holes using Partial Convolutions (PartialConv或PConv)提出了一种处理多个不规则的孔洞的masked图像的修复方法。显然,本文的核心思想是部分卷积。使用PConv,卷积的结果只依赖于有效像素,因此我们可以控制要在网络内传递的信息。这是第一次针对处理不规则孔洞的修复论文。需要注意的是,之前的修复模型都是在常规的masked图像上进行训练,因此这些模型不适合完成不规则的masked图像。使用部分卷积来推动深度图像修复的极限
EdgeConnect (“先画线,再涂色” , 2019)
图11,EdgeConnect的网络架构,有两个生成器和两个判别器
EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning提供了一种有趣的方式来完成图像修复任务。本文的主要思想是将任务分为两个简单的步骤,即边缘预测和基于预测的边缘图的图像补全。他们首先对缺失区域的边缘进行预测,然后根据预测的边缘信息完成图像。我想说的是,本文中使用的大多数技术已经在我以前的文章中介绍过了。这对你有好处,看看如何各种技术可以一起使用形成一个新颖的深图像修复方法。也许,你可以开发自己的修复模型。先画轮廓,再涂色,一种新的图像修复方法
DeepFill v2 (A Practical Generative Image Inpainting Approach, 2019)
图12,自由图像修复模型的网络结构概述
DeepFill v2或GConv, 2019可能是最实用的图像修复算法,可以直接使用在你的应用中。可以认为是DeepFill v1、Partial Convolution、EdgeConnect的增强版本。本文的主要思想是门控卷积,它是部分卷积的一个可学习版本。通过添加一个额外的标准卷积层和一个sigmoid函数,可以学习每个像素/特征位置的有效性,因此也允许可选的用户草图输入。除了门控卷积外,还采用了SN-PatchGAN来进一步稳定GAN模型的训练。一个实用的生成式深度图像修复方法
最后的想法
我希望大家现在对图像修复有一个基本的了解。我相信在我以前的文章中已经涵盖了大多数常用的深度图像修复技术。如果你看过之前的文章,我想现在你已经能够理解文献中其他的修复论文了。如果你是新来的,很欢迎,我希望这篇文章对你有用。
在我看来,对于图像的修复,对于场景结构复杂,mask比较大的图像(比如缺了50%的像素),仍然很难完成。当然,高分辨率图像的修复也是另一个具有挑战性的任务。所有这些挑战都可以归类为极端图像修复。、我认为,即将到来的最先进的修复方法应该能够解决其中的一些挑战。
—END—
英文原文:https://towardsdatascience.co...
推荐阅读
关注图像处理,自然语言处理,机器学习等人工智能领域,请点击关注AI公园专栏。
欢迎关注微信公众号