【深度学习】揭秘2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹

作者 | 对白

出品 | 对白的算法屋

编者寄语:

本文看完,相信你会对抖音和快手APP中使用的图像修复技术有一番了解和掌握。

大家好,我是对白。

由于CNN、GAN、Transformer等模型在CV与NLP领域都实现了很好的跨界,最近非常火热的Prompt也开始在多模态领域中有所应用了,因此我们有必要借鉴一些CV领域中Paper的idea,以拓宽自己的视野,那么今天就给大家分享一下图像修复(Image Inpainting)领域中值得一读的六篇顶会论文,希望能给大家带来一些不一样的灵感。

图像修复算法合集

c97854a78f28b94609f8573c2995285e.png

图像修复经典算法对比

469b9e95d17ab98d331c38babbd33f0c.png8ae35355d3f18e848e6b8917b9e65973.png

图像修复经典论文

论文 1. Partial-conv

P-conv:Image Inpainting for Irregular Holes Using Partial Convolutions

Authors:NVIDIA Corporation ECCV 2018

优点:

1. 可以很好地处理任何形状、大小、位置或距离图像边界任何距离的空白。

2. 以前的深度学习方法主要集中在位于图像中心附近的矩形区域,并且通常需要依赖成本很高的后期处理。

3. 此模型能够很好地处理越来越大的空白区域。

解决问题:artifacts、color discrepancy、blurriness.

适用于:irregular masks、rectangular masks.

解决办法:有效元素(unmask pixels)和缺失像素(mask pixels)区别对待,卷积层仅对满足条件有效像素进行卷积和规范操作,然后在根据Mask更新规则对Mask进行自动更新,直至 Mask中所有值均为 1。

网络结构:

输入大小:512×512 image + 512×512 mask

采用 U-net 的网络结构( 《 Globally and locally consistent image completion 》 ),将所有的卷积层替换为部分卷积层( partial convolutional layers ), 同时在decoder 部分上采样使用 nearest neighbor up-sampling,采用Skips links 连接encoder 中的feature map。在最后一个部分卷积层将输入图像(带缺失部分)和网络生成的图像结合,将网络生成的图像非缺失部分全部替换为输入图像的非缺失部分。

Partial Convolutional Layer (部分卷积):

1. Partial convolution operation

令 W 为卷积核的权重,X为当前卷积(滑动)窗口对应的特征(像素)值,M 为X相对应的二进制Mask。b为相对应的偏置值。在图像每个位置部分卷积。通过Mask和re-normalization 来保证卷积操作仅针对有效像素。

93ef051d22ea7a6e6c52f038e9abadff.png

052af37bc3c54308193a2dbf13b155d1.png

2. Mask update function

在进行部分卷积之后,进行Mask 的更新。

更新规则为:如果卷积(滑动)窗口对应的 Mask 值至少有一个对应的1,那么就更新卷积后对应 位置 Mask 为 1

mask 更新规则:

67c8dfdb4002eebf8b156399ed95a5b4.png

待解决的问题:

1.Mask 更新策略为 hard-attention

2.无法解决user-guided image 问题(加入scratch)

3.invalid pixels 随着网络深度增加disappear

4.Channel 共享,可以看做 un-learnable single-channel feature hard-gating

论文 2. Deepfill V1

Deepfill V1:Generative Image Inpainting with Contextual Attention 

Authors:JiaHui Yu CVPR 2018

Coarse network:一个编码器与解码器,在中间层运用了空洞卷积增大感受野

1da9f30f2597760f0a174ea763cfc1c8.png

论文 3. Deepfill V2- Gated Conv

Deepfill V2: Free-Form Image Inpainting with Gated Convolution 

Authors:Jiahui Yu, Zhe Lin, Jimei Yang, Xiaohui Shen, Xin Lu, Thomas Huang, ICCV 2019

Insight Partial Conv 回顾:

28d2bc2db1e086ceb2ea1a4ce15503c6.png

Partial Conv 缺点: 

P-Conv 中Mask 更新的不合理:无论像素多少,只要存在至少一个,就将mask 设置为1;没有满足用户的意愿来进行修复(也就是没有使用 guidance);部分卷积网络的mask 在较深的层逐渐消失,并且消失的规则为只要存在一个像素为有效像素,则设置当前所对应的Mask 为1。

适用于:

irregular masks、rectangular masks、user sketch guidance.

解决办法:

提出gated convolution 来解决将所有元素都视为有效像素这一问题,通过在所有层的每个空间位置为每个通道提供一个可学习的动态特征选择机制,来扩展部分卷积。

Gated convolution :

门控卷积不是采用 hard-gating mask 的 Mask 更新规则,而是采用可学习的soft mask 更新规则。

7bd05f4d15ce65e333a06193e34f2d62.png

Gated convolution (门控卷积)

学习了每个通道和每个空间位置的动态特征选择机制。中间门控值的可视化显示,它不仅能根据背景、mask 、草图来选择特征,还能考虑到某些通道的语义分割 。即使在深层,门控卷积也会学习在不同的通道中示突出显示 mask区域和草图信息,以更好地生成修复结果。

313ca1dff5c5fe20d429db5d61c9c002.png

网络结构:

  • 采用了简单的encoder-decoder network,而不是采用类似 partial conv 的U-net 结构。并且作者发现partial conv 中使用的skip connections 对于本论文提出的方法并没有帮助。这主要是因为对于Mask 区域的中心,这些跳跃连接的输入几乎为零,因此无法将详细的颜色或纹理信息传播到该区域的解码器。对于Hole 边界,由于编码器结构配备了门控卷积,足以产生无缝的结果。

  • 作者将所有的门控卷积替代了传统的卷积。这一做法存在的问题就是引入了额外的参数,为了保持与baseline model 相同的效率,作者将模型的宽度缩小了 25%,在数量和质量上都没有发现明显的性能下降。

7b0093c98023abce2ce7c91259a4f246.png

论文4. Generative Image Inpainting with Adversarial Edge Learning

源码:

https://github.com/knazeri/edge-connect

创新点:

1.一种边缘生成器,给定已知的边缘和图像的灰度像素值,能够在缺失区域产生边缘。

2.一个图像补全网络,将缺失区域的边缘与剩余图像的颜色和纹理信息结合起来,以填充缺失区

域。

3.一个端到端可训练的网络,结合了边缘生成和图像补全,以填补缺失区域的细节。

020a3cd433150502aa63dda199d9f227.png

边缘生成网络 + 图像补全网络

网络结构:

Edge generator 边缘生成网络:GAN 根据各种信息生成具有指导作用的 EdgeMap

5f3dc07b01f6afd3a8ba72b0dbdd44f4.png

d98bdf67fc1f35fb456d10730fc230d8.png

结果:

能够进行图像拼接、移除和编辑。

8e308c314d0f9ea542a7b8638f65295b.png

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍论文5. TTA-Net - Texture Transform Attention for Realistic Image Inpainting‍‍‍‍‍‍‍‍‍‍‍‍‍‍

根据纹理特征和语义特征的相似度计算attention weight,作用到纹理特征上,生成一个reassembled 的纹理。生成的纹理细节非常好。

提出了一种新的网络,利用U-Net 结构,通过在已经验证过的编码解码图像修复网络中添加跳跃连接,直接将编码的纹理传输到解码器。

  • 为了更有效的纹理转移,我们提出了纹理转换注意力模块(TTA),搜索最相似的patch。TTA 模块查找patch 的索引和相似度权重,并将纹理进行相应的重组,并将其传递给解码器。

  • TTA-Net 可以使用特征合成模块,通过深层和浅层纹理的迭代应用来合成纹理更细的图像。

  • 这个前向生成网络在各种数据集上实现了高质量的修复结果,包括 CelebA faces ,CelebA- hq faces, DTD textures 和Places2。

TTA 模块:

d5f76251d14b59d7e09d1d4fe5c32524.png

首先,将上下文特征(contextual feature Q)和精细纹理特征(Fine texture feature P)展开到相同大小,计算相似度权重(作为卷积过滤器)。将所有patch 的相似度权重按通道进行比较,找出最相似的patch 的索引和权重。然后根据索引图折叠纹理特征,生成重构的纹理图(Reassembled texture map T)。纹理图和权重图会送到特征合成模块,与上下文特征融合,最终生成Fusion ration map R。

0d34d31db74b0fb7555e04b028e82185.png

结论:

确实在纹理细节上面,生成的细节非常丰富 。实验也证明了加入正则化能够有效的减少斑驳的棋盘状伪影。

论文 6. VQ - GAN:Taming Transformers for High-Resolution Image Synthesis

源码:

https://github.com/CompVis/taming-transformers

项目主页:

https://compvis.github.io/taming-transformers/

是基于Transformer 的高分辨率图像合成方法。解决了之前 Transformer 局限于低分辨率图像的基本挑战。VQ-GAN 将图像表示为感知上丰富的图像成分的合成形式,避免了直接在像素空间对图像建模的二次复杂度。用CNN 架构对合成成分进行建模,用Transformer 架构对成分进行合成,充分挖掘了二者的互补潜力。

Inpainting 常用损失函数:

d43ce0765d9e0b6e91a197a351ce6e58.png

dbb2b86a52eee17b05d47769465f7693.png

Inpainting 量化评价指标:

09944e31353abf00ca1e56a9ebea5d26.png

17c3ff395dedc1703a2c475063367129.png

3463204f4a281e172516fc038ab5ce99.png


Video Inpainting 数据集:

ba24ed69b50c4b40b919a4197b21fca8.png

 
 

d4d24fdbff30ce9c87a3c85bfc4ffb9e.png

 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》视频课

本站qq群851320808,加入微信群请扫码:

612eab86cddac4c12a9b9a99a9fbba04.png

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值