本文看完,相信你会对抖音和快手APP中使用的图像修复技术有一番了解和掌握。
大家好,我是对白。
由于CNN、GAN、Transformer等模型在CV与NLP领域都实现了很好的跨界,最近非常火热的Prompt也开始在多模态领域中有所应用了,因此我们有必要借鉴一些CV领域中Paper的idea,以拓宽自己的视野,那么今天就给大家分享一下图像修复(Image Inpainting)领域中值得一读的六篇顶会论文,希望能给大家带来一些不一样的灵感。
图像修复算法合集
图像修复经典算法对比
图像修复经典论文
论文 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 来保证卷积操作仅针对有效像素。
2. Mask update function
在进行部分卷积之后,进行Mask 的更新。
更新规则为:如果卷积(滑动)窗口对应的 Mask 值至少有一个对应的1,那么就更新卷积后对应 位置 Mask 为 1
mask 更新规则:
待解决的问题:
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:**一个编码器与解码器,在中间层运用了空洞卷积增大感受野
论文 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 回顾:
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 更新规则。
Gated convolution (门控卷积)
学习了每个通道和每个空间位置的动态特征选择机制。中间门控值的可视化显示,它不仅能根据背景、mask 、草图来选择特征,还能考虑到某些通道的语义分割 。即使在深层,门控卷积也会学习在不同的通道中示突出显示 mask区域和草图信息,以更好地生成修复结果。
网络结构:
- 采用了简单的encoder-decoder network,而不是采用类似 partial conv 的U-net 结构。并且作者发现partial conv 中使用的skip connections 对于本论文提出的方法并没有帮助。这主要是因为对于Mask 区域的中心,这些跳跃连接的输入几乎为零,因此无法将详细的颜色或纹理信息传播到该区域的解码器。对于Hole 边界,由于编码器结构配备了门控卷积,足以产生无缝的结果。
- 作者将所有的门控卷积替代了传统的卷积。这一做法存在的问题就是引入了额外的参数,为了保持与baseline model 相同的效率,作者将模型的宽度缩小了 25%,在数量和质量上都没有发现明显的性能下降。
论文4. Generative Image Inpainting with Adversarial Edge Learning
源码:
https://github.com/knazeri/edge-connect
创新点:
1.一种边缘生成器,给定已知的边缘和图像的灰度像素值,能够在缺失区域产生边缘。
2.一个图像补全网络,将缺失区域的边缘与剩余图像的颜色和纹理信息结合起来,以填充缺失区
域。
3.一个端到端可训练的网络,结合了边缘生成和图像补全,以填补缺失区域的细节。
边缘生成网络 + 图像补全网络
网络结构:
Edge generator 边缘生成网络:GAN 根据各种信息生成具有指导作用的 EdgeMap
结果:
能够进行图像拼接、移除和编辑。