Label-Efficient Semantic Segmentation with Diffusion Models

2112.03126.pdf

GitHub - yandex-research/ddpm-segmentation: Label-Efficient Semantic Segmentation with Diffusion Models (ICLR'2022)

Untitled

使用原始图片 $x_0$ 加上噪声,生成扩散第 $t$ 步的图像 $x_t$。

$$ \begin{array} { c } q \left( x _ { t } \mid x _ { 0 } \right) : = \mathcal { N } \left( x _ { t } ; \sqrt { \bar { \alpha } _ { t } } x _ { 0 } , \left( 1 - \bar { \alpha } _ { t } \right) I \right) \\ x _ { t } = \sqrt { \bar { \alpha } _ { t } } x _ { 0 } + \sqrt { 1 - \bar { \alpha } _ { t } } \epsilon , \quad \epsilon \sim \mathcal { N } ( 0,1 ) \end{array} $$

DDPM 模型近似扩散的反向过程:

$$ p _ { \theta } \left( x _ { t - 1 } \mid x _ { t } \right) : = \mathcal { N } \left( x _ { t - 1 } ; \mu _ { \theta } \left( x _ { t } , t \right) , \Sigma _ { \theta } \left( x _ { t } , t \right) \right) $$

其中,我们并不直接使用网络 $\mu _ { \theta } \left( x _ { t } , t \right) \to \tilde \mu_t$,而是使用 $\epsilon_\theta(x_t,t) \to \tilde z_t$,因为 $\tilde u$ 与 $\tilde z$ 满足下式:

$$ \tilde{\boldsymbol{\mu}}_t = \frac{1}{\sqrt{\alpha_t}} \Big( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \tilde{ \mathbf{z}}_t \Big) $$

然后,将这个 $\epsilon_\theta(x_t,t)$ 网络中几个特征层送入 MLP 分类器,对该点位置的像素进行分类。

Experiment

Untitled

作者对比了使用不同扩散步骤的 $x_t$ 送入U-Net $\epsilon_\theta(x_t,t)$,使用其中的不同特征层送入分类器,得到最后的 mIoU 曲线。实验得出:U-Net 解码器中间的层产生的特征似乎是所有扩散步骤中信息量最大的。

Untitled

上图显示了使用 FFHQ 数据集从扩散步骤 {50,200,400,600,800} 上的块 {6,8,10,12} 中提取的特征形成的 k-means 聚类(k=5)。

在块 B=6 中,特征对应于粗略的语义掩码。在 B=12 的特征可以区分细粒度的面部部分,但对粗碎片的语义意义较小。

在不同的扩散步骤中,最有意义的特征对应于后面的特征。我们将此行为归因于这样一个事实,即在反向过程的早期步骤中,DDPM 样本的全局结构尚未出现,因此,在此阶段几乎不可能预测分割掩码。上图中的掩码证实了这种直觉。对于 $t=800$,掩码很难反映实际图像的内容,而对于较小的 $t$ 值的掩码能够反应图像的语义。