- 好久没有认真写博客了,10月份之前一直在忙保研的事情(其实也不算很忙,更多是情绪和心态上的内耗,忙起来反而会觉得很轻松吧)。有粉丝私信问我最后去了哪里,博主最后保研到了复旦大学的计算机学院,非常幸运的拿到了学硕资格,做的是ai方向,plus实验室有一个具体方向是多模态图像修复,正是我非常感兴趣的!如果有学弟学妹们需要咨询的话,我会给大家整理一个保研经验贴!
- 也好久没有查看博客,好多粉丝的私信都来不及回,有很多朋友问我3D点云目标检测和Yolov5相关的问题,奈何我能力有限,可能没办法及时回复、讨论(主要是忘了),我会挑时间回复大家的问题的!并且修改一下之前没有完善的帖子(画饼中…),给一些朋友造成了困扰,非常抱歉。
- 10月份到11月初,我在百度实习,主要是做一些论文复现的工作(比赛),认识了很多优秀有趣的朋友,还了解到了图像修复这个有趣但训练起来很魔怔的方向,前一段时间参加了ACML的会议和Online School项目(一些内容我学完了也会更新文章,主要是知识太杂了,根本学不完QAQ),最近选完了毕业设计的题目,未来半年多的时间就要和图像修复结伴了。
- 元宇宙概念的提出,我相信大家都不陌生,其中很多场景都需要依赖GAN来生成内容,欢迎对GAN图像修复感兴趣的朋友留下联系方式一同交流哇。
- 目前我感兴趣的课题:
- 利用结构、纹理、语义引导图像生成(目前很主流的做法)
- Vision transformer & image inpainting(很新哦)
- nlp & image inpainting(很有趣)
- 再次,欢迎讨论和交流~
Title: Free-Form Image Inpainting with Gated Convolution
Source: ICCV 2019 oral
Author: Jiahui Yu, Thomas Huang, et al.
我们提出一种生成式图像修复系统,用自定义样式的掩码和引导来补全图像。该系统基于从数百万张图像中学习到的门控卷积,无需额外的标记工作。所提出的门控卷积解决了传统卷积(vanilla convolution)将所有输入像素视为有效像素的问题,通过在所有层上每个空间位置的每个通道提供了一种可学习的动态特征选择机制来推广部分卷积。而且,由于不规则的掩码可能以任意形状出现在图像的任何位置,为单个矩形掩码设计的全局和局部GAN并不适用于此类情况。因此,通过在密集图像块上应用频谱归一化鉴别器,我们提出了基于图像块的GAN损失,称为SN-Patch GAN。SN-Patch GAN的形式简单,训练快速稳定。自动图像修复和用户指导扩展的结果表明,与以前的方法相比,我们的系统可产生更高质量和更灵活的结果。我们的系统可帮助用户快速移除分散注意力的物体,修改图像布局,清除水印并人脸编辑。代码、演示demo和模型从以下链接获得https://github.com/JiahuiYu/generative_inpainting
图像修复(也称为图像补全或图像孔洞填充)是在缺失区域内合成可替代的内容的任务,以使所作的修改在视觉效果上真实并在语义层面上正确。它允许在照片中移除干扰视觉重点的对象,或修饰原本效果不佳的图像区域。它也可以扩展到包括图像/视频裁剪,旋转,拼接,重新定位,重新构图,压缩,超分辨率,和谐化等一系列任务中。什么是图像修复?
在计算机视觉中,广泛存在两种图像修复方法:使用低级图像特征的补丁块匹配算法和基于深度卷积网络的前馈生成模型。前一种方法[3, 8, 9]
可以合成逼真的平稳纹理,但通常在非平稳情况下(例如复杂的场景,面部和物体)会造成严重的失效。后一种方法[15, 49, 45, 46, 38, 37, 48, 26, 52, 33, 35, 19]
可以利用从大规模数据集中学习到的语义先验知识,以端到端的优雅方式合成非平稳图像中的内容。图像修复的两大主流思路:1)传统方法 PatchMatch补丁块匹配 ,2)DL方法 基于GAN生成图像
[3]Patchmatch: A randomized correspondence algorithm for structural image editing.
[8]Image quilting for texture synthesis and transfer.
[9]Texture synthesis by non-parametric sampling.
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
[45]Foreground-aware image inpainting.
[46]Image inpainting using block-wise procedural training with annealed adversarial counterpart.
[38]Spg-net: Segmentation predictionand guidance network for image inpainting.
[37]Globally and locally consistent image completion.
[48]Wide activation for efficient and accurate image super-resolution
[26]Edgeconnect: Generative image inpainting with adversarial edge learning.
[52]Pluralistic image completion.
[33]Pepsi: Fast image inpainting with parallel decoding network.
[35]Pepsi++: Fast and lightweight network for image inpainting.
[19]Deep video inpainting.
但是,基于传统卷积的深度生成模型自然不适合用于图像孔洞填充,因为空间共享的卷积滤波器将所有输入像素或特征视为相同的有效元素。对于孔洞填充,每层的输入均由孔洞外部的有效像素/特征和掩码区域中的无效像素/特征组成。传统卷积在所有有效、无效和混合(例如,孔洞边界)的像素/特征上应用相同的滤波器,导致在不规则掩码上进行测试时出现视觉伪像,例如色差,模糊和孔周围的明显边缘现象[15, 49]
。基于GAN方法所使用的传统卷积vanilla convolution的问题:无差别化孔洞外部和内部的有效与无效像素或特征。
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
为解决这个局限性,局部卷积[23]
方法被提出,其中利用掩膜和归一化操作来限定卷积操作仅在有效像素上进行。然后,基于一定规则进行掩膜更新步骤,以更新下一层中有效的位置。局部卷积将所有输入位置划分为无效或有效,并将0或1形成的掩码乘以所有层的输入。这个掩码也可以视为单个不可学习的特征门控通道。但是,这种假设有几个局限性。
首先,考虑跨网络不同层的输入空间位置,它们可能包括
(1)输入图像中的有效像素,
(2)输入图像中的掩码像素,
(3)感受野没有覆盖输入图像的有效像素的神经元,
(4)感受野覆盖了输入图像的不同数量的有效像素的神经元(这些有效图像像素也可能具有不同的相对位置),以及
(5)网络深层中的合成像素。启发式地将所有位置分类为无效/有效会忽略这些重要的信息。
其次,如果我们扩展到用户指导的图像修补,其中用户在掩码内提供了稀疏的草图,那么这些像素位置应该被视为有效还是无效?如何正确更新下一层的掩码?
第三,对于部分卷积,“无效”像素将逐层逐渐消失,而基于规则的掩码将在网络深层中全部变为1。但是,要在孔中合成像素,这些深层网络还可能需要有关当前位置在孔内还是孔外的信息。使用全1掩码的局部卷积无法提供此类信息。我们将证明,如果我们允许网络自动学习掩码,掩码可能会则根据当前位置在输入图像中是否被遮挡而产生不同的值,甚至是在深层的网络中。传统卷积vanilla convolution -> 局部卷积partial convolution的问题
[23]Image inpainting for irregular holes using partial convolutions.
我们提出门控卷积用于自定义不规则孔洞的图像修复。它为每个通道和每个空间位置(例如,掩码内部或外部,RGB通道或用户指导通道)学习动态特征门控机制。
具体来说,我们考虑以下公式:首先使用输入特征来计算门控值
g = σ ( w g × x ) g =\sigma(w_g\times x) g=σ(wg×x)( σ \sigma σ是sigmoid函数, w g w_g wg是可学习的参数)。最终输出是学习到的特征与门控值的乘积 y = ϕ ( w x ) ⊙ g y =\phi(wx)\odot g y=ϕ(wx)⊙g,其中 ϕ \phi ϕ可以是任何激活函数。
当(1)掩膜具有随机任意的形状,并且(2)输入不再仅仅是带掩膜的RGB通道,而是具有条件输入(如稀疏草图)时,门控卷积易于实现,并且性能明显更好。对于网络体系结构,我们根据[49]
堆叠门控卷积以形成编码器-解码器网络。我们的修复网络也将上下文注意力模块集成到同一优化网络中[49]
,以更好地捕获远距离依赖关系。解决方案:局部卷积->门控卷积gated convolution
[49]Generative image inpainting with contextual attention.
在不影响性能的情况下,我们将训练目标明显简化为两个术语:像素级重构损失和对抗损失。本文的修改主要用于不规则的图像修复。
由于缺失孔洞可能以任何形状出现在图像中的任何位置,因此为单个矩形掩码设计的全局和局部GAN[15]
方法并不适用。相反,我们提出了一种生成对抗网络的变体,称为SN-PatchGAN,受全局和局部GAN[15]
,MarkovianGAN [21]
,感知损失[17]
和近期诞生的谱归一化GAN [24]
启发。SN-PatchGAN的判别器直接以 R h × w × c \mathbb{R}^{h\times w\times c} Rh×w×c格式计算输出特征图每个点上的hinge损失,形成 h × w × c h\times w\times c h×w×c数量的GAN损失聚焦于不同位置和不同语义(表示在不同通道中)。SN-PatchGAN形式简单,训练快速稳定,可产生高质量的修补效果。解决方案:提出SN-PatchGAN以满足free-form孔洞的需求
[15]Globally and locally consistent image completion.
[21]Precomputed real-time texture synthesis with markovian generative adversarial networks.
[17]Perceptual losses for real-time style transfer and super-resolution.
[24]Spectral normalization for generative adversarial networks.
对于实际的图像补全工具,允许用户交互是至关重要的,因为这可以存在许多可行的解决方案来填充图像中的孔洞。为此,我们提出了一个扩展,以允许用户草图作为引导输入。【表1】总结了与其他方法的比较。方法比较
【表1】与不同方法的比较,包括PatchMatch[3]
, Global&Local[15]
, ContextAttention[49]
,PartialConv[23]
以及本文的方法。图像修复的比较是基于四个维度的:语义理解,非局部算法,不规则掩码和用户指导选项。
[3]Patchmatch: A randomized correspondence algorithm for structural image editing.
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
[23]Image inpainting for irregular holes using partial convolutions.
我们的主要贡献如下:
(1)我们引入了门控卷积,以学习跨所有层的每个空间位置处每个通道的动态特征选择机制,显著提高了生成图像的颜色一致性和自定义孔洞输入的图像的修复质量。
(2)我们提出了一种更实用的基于补丁块的GAN判别器SN-PatchGAN,用于自定义孔洞形状的图像修复。它简单,快速并且可以产生高质量的修复结果。
(3)我们将修复模型扩展到一种交互式模型,以用户草图为指导来获得更多用户期望的修复结果。
(4)我们提出的修复系统在基准数据集(包括Places2自然场景和CelebA-HQ人脸数据集)上实现了比现有SOTA技术更高质量的自定义孔洞的修复。我们证明了所提出的系统可以帮助用户快速去除干扰物体,修改图像布局,清除水印并编辑图像中的人脸。主要贡献
累了…明天接着写