AIGC: RePaint 笔记
无监督的扩散去噪模型是个好东西,但是我们需要让模型去适用于不同的任务,RePaint (2201.09865) 就是将现有的去噪模型用在图像修复任务上的一种方法。
Inpainting
Repaint 的整体思路很简单,假设我们有一个训练好的 DDPM 或 DDIM 模型。一个二进制遮罩(binary mask)用 来表示, 所以
代表图像中被遮罩的区域,而
就代表了未被遮罩的区域。
然后我们进行“逆向”过程——从噪音生成图片,然后,我们对遮罩和未遮罩的部分,分别以不同的方式计算下一步 .
对于遮罩的部分,我们直接利用正向过程来计算,即在原图像上面添加高斯噪声——
对于未遮罩的部分,我们利用 DDPM 的逆向过程来计算,
所以现在,我们得到了两张图像 和
. 然后我们将两张图像合并起来,获得
步时的图像:

Resampling
以上的 inpainting 方法有一个缺点,就是生成的图片会缺失一些结构上的信息。为什么会出现这种现象?因为对于 我们是直接从原图像加噪而获得的,所以并没有考虑到
所带来的影响。所以,为了把
也考虑进去,我们使用一种叫做重新采样(resampling)的方法。
我们将获得的 重新利用正向过程
来获得,然后再做一次上述的逆向过程,获得
. 我们当然还可以继续做正向过程获得
. 上述过程可以重复循环地做,其重复的次数,我们用
来表示(
就代表我们重复10次上述颠来倒去的操作)
这里我们再引入一个跳跃步长(jump length)的概念,用 来表示。也就是说,我们连续做
步逆向过程获得
,然后再返回到
.(很明显,上一小节里面
)
所以整个流程如下


完。
B站的公式编辑器经常挂,如果遇到 tex error 之类的问题时,刷新一下页面一般可以解决。

