face impinting based on the diffusion model

Masked Face Inpainting Using Denoising Diffusion Probabilistic Models ---IEEE[1] 2024

这篇文章的实验比较水,但提供了一个方法。 利用DDPM人脸补全方法,该文的方法是基于一个未修改的预训练DDPM.
原始的DDPM是从随机的高斯图像开始生成的,这与要修复的图像之间并无联系,
所以需要修改为图生图的方式。

approach

修改训练过程,将需要补全图像作为一个条件输入,约束推理过程。
使用m来表示掩码,m可能是一个和图像一样大小的矩阵,其值为1的地方表示未被遮挡,值未0的地方表示被遮挡。所以我们可以使用 mx来生成未被遮挡区域图像, x (1 - m)表示被遮挡区域。
我们需要经m*x作为条件输入到模型中。
\[x^known = m\dot x x^unknwon = (1-m) \dot x \]

\(x^knwon\) 是推理开始已知的 \(x^unknwon\)是要推理出来补全在\(x^knwon\)中的。
这是推理过程中的公式。从\(x_t\)推理到\(x_0\).
每一个\(x_t\)是由\(x^knwon_{t-1}\)\(x^unknwon_{t-1}\)组合起来的。 其中\(x^knwon\)是遮挡图像直接加噪来的,不需要去噪。\(x_t^unkown\)应该是从高斯噪声去噪来的。
从公式的意义上来理解,可以认为让denoise参考未遮挡区域,但不对未遮挡区域进行修改,不修改体现为最后用\(x^known\)进行覆盖,保留对遮挡区域去噪的结果,得到的\(x_{t-1}\)由可以在下一次denoise中被参考。

该文章除了训练集以外和人脸图像并无关联,且也没有验证补全图像对人脸识别的影响,还有很多的改进空间。

RePaint: Inpainting using Denoising Diffusion Probabilistic Models[2] --cvpr2022

这篇文章的修复方法和上一篇是一样的,考虑到发布时间,上一篇应该是基于这一篇写出来的。两篇文章的算法介绍一模一样。
采用与预训练DDPM模型开源[3]。 才用diffusion的缺点是推理的速度很慢。
除了diffusion方法外,大多数图像生成基于GAN。
模型仅利用现成的DDPM模型,模型不争对修复任务进行训练。而是在推理过程中利用给定像素来调节。

这里再说一下推理算法,由于再推理过程中需要对掩码区域编码得到m。在实际的应用中,被口罩墨镜等物品遮挡的区域需要先被识别出来再编码得到m,这可能需要用到一些人脸遮蔽检测模型来"画出"被遮挡区域。

结合这篇文章的补全方法和arcface,领域适应迁移学习,也许能达到很好的效果。我们可以通过补全模型生成多个可能的补全图像, 比如一个口罩遮蔽人脸,其鼻子嘴唇形状上是未知的,生成多种组合的补全图像,能产生多个相似度对比参数, 可以设计一种取舍策略来判断是原始图像是否匹配。diffusion的生成图像的特点即为从一个随机高斯噪声开始, 所以每一次补全都能生成不同的图像。

重采样方法

如果只通过一遍采样,补全的图像缺少整体的语义信息,即补全的图像与相邻区域材质相同,而无法产生形状。从knwon图像加噪来的图像没有考虑生成的图像,这带来的不和谐。模型需要毒刺 通过重采用减慢了图像反向扩散的速度,让图像再每一步扩散中多学习几次
从knwon图像加噪

参考

  1. https://ieeexplore.ieee.org/abstract/document/10691588 ↩︎
  2. https://openaccess.thecvf.com/content/CVPR2022/html/Lugmayr_RePaint_Inpainting_Using_Denoising_Diffusion_Probabilistic_Models_CVPR_2022_paper.html ↩︎
  3. https://github.com/andreas128/RePaint` ↩︎

face impinting based on the diffusion model
https://jfsas.github.io/2024/10/16/face-impinting-based-on-the-diffusion-model/
作者
JFSAS
发布于
2024年10月16日
许可协议