揭秘2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹
点击上方,选择星标或置顶,每天给你送上干货
作者 | 对白
出品 | 对白的算法屋
编者寄语:
本文看完,相信你会对抖音和快手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
结果:
能够进行图像拼接、移除和编辑。
论文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 模块:
首先,将上下文特征(contextual feature Q)和精细纹理特征(Fine texture feature P)展开到相同大小,计算相似度权重(作为卷积过滤器)。将所有patch 的相似度权重按通道进行比较,找出最相似的patch 的索引和权重。然后根据索引图折叠纹理特征,生成重构的纹理图(Reassembled texture map T)。纹理图和权重图会送到特征合成模块,与上下文特征融合,最终生成Fusion ration map R。
结论:
确实在纹理细节上面,生成的细节非常丰富 。实验也证明了加入正则化能够有效的减少斑驳的棋盘状伪影。
论文 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 常用损失函数:
Inpainting 量化评价指标:
Video Inpainting 数据集:
机器学习/对比学习算法交流群
已建立机器学习/对比学习算法交流群!想要进交流群学习的同学,可以直接加我的微信号:duibai996。
加的时候备注一下:昵称+学校/公司。群里聚集了很多学术界和工业界大佬,欢迎一起交流算法心得,日常还可以唠嗑~
后台回复关键词【进群】
加入对比学习/CV/NLP/推荐/算法求职交流群
后台回复关键词【对比学习】
获取最新对比学习
在各大顶会上的论文合集!
往期精彩回顾
对白:对比学习(Contrastive Learning)在CV与NLP领域中的研究进展
ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理
2021最新对比学习(Contrastive Learning)在各大顶会上的经典必读论文解读
推荐系统中不得不学的对比学习(Contrastive Learning)方法
机器学习新宠:对比学习论文实现大合集,60多篇分门别类,从未如此全面
再介绍一篇最新的Contrastive Self-supervised Learning综述论文
最后欢迎大家关注我的微信公众号: 对白的算法屋(duibainotes),跟踪NLP、推荐系统和对比学习等机器学习领域前沿,日常还会分享我的创业心得和人生感悟。想进一步交流的同学也可以通过公众号加我的微信,和我一同探讨技术问题,谢谢!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2019-04-10 安装kubelet报错 : Depends: init-system-helpers (>= 1.18~) but 1.14ubuntu1 is to be installed
2019-04-10 Ubuntu14.04安装nvidia-docker2