ShadowDiffusion: When Degradation Prior Meets Diffusion Model for Shadow Removal (Paper reading)

ShadowDiffusion: When Degradation Prior Meets Diffusion Model for Shadow Removal

Lanqing Guo, Nanyang Technological University, Singapore, arXiv, Cited:1, Code: 无, Paper.

1 前言

最近的深度学习方法在去除图像阴影方面取得了令人满意的结果。然而,由于嵌入前的退化和建模能力的不足,它们恢复的图像仍然存在不满意的边界伪影。我们的工作通过提出一个统一的扩散框架来解决这些问题,该框架集成了图像和退化先验知识,以实现高效的阴影去除。具体而言,我们首先提出了一个阴影退化模型,该模型启发我们建立了一个新的展开扩散模型,称为ShandowDiffulation。它通过在退化先验和扩散生成先验的情况下逐步细化期望输出,显著地提高了模型的阴影去除能力,本质上可以作为图像恢复的新的强基线。此外,阴影扩散作为扩散生成器的辅助任务,逐步细化估计的阴影掩模,从而产生更准确和更稳健的无阴影图像生成。我们在ISTD、ISTD+和SRD三个流行的公共数据集上进行了大量的实验,以验证我们的方法的有效性。与现有的方法相比,我们的模型在峰值信噪比方面有了显著的提高,在SRD数据集上从31.69dB提高到34.73dB。

2 整体思想

去阴影任务首先是想获得准确的mask,本文认为估计的阴影不够精细,因为阴影与光照有关,所以本文在使用扩散模型的迭代思想逐步细化阴影。首先训练去噪器U-Net,使其可以估计当前步的噪声图和mask。然后使用HQS思想对当前步生成的x_{t}进行更新,获得无阴影图和mask,不断迭代直到收敛。

3 方法

假设阴影图像 y y y是由无阴影图像 x x x和光照 a a a形成 y = a x y=ax y=ax,这里严格假设亮区域的 a a a值为1,阴影区域的 a a a值为常数 a ∈ ( 0 , 1 ) a \in(0,1) a(0,1)。通常来说,上式过于严格,因为现实光照是不平均的。一般来说,照明退化应该在空间上是可变的,并且高度依赖于阴影信息。因此,本文提出了一种新的阴影退化模型:
y = h x = w m x + ( 1 − m ) x (1) y=hx=wmx+(1-m)x \tag{1} y=hx=wmx+(1m)x(1)
其中, h h h是逐像素照明退化模型,其可以被分解为阴影mask m m m 和照明权重 w w w m m m中阴影区域为1,其余为0。那么式1中 ( 1 − m ) x (1-m)x (1m)x可以理解为对五阴影区域的抠图,前项理解为带权重的阴影区域,则 y y y为空间可变的阴影图像。

3.1 动态掩码感知扩散模型

阴影mask对去除阴影至关重要。本文将阴影去除重塑为一个联合任务,以追求无阴影图像和精化掩模,其中掩模细化将是扩散生成器的辅助任务,在生成无阴影图像的同时逐步精化阴影掩模。考虑条件扩散模型:
p θ ( x 0 : T ∣ y , m 0 : T ) = p ( x T ) ∏ T t = 1 p θ ( x t − 1 ∣ x t , y , m t ) (2) p_{\theta}(x_{0:T}|y, m_{0:T})=p(x_{T})\prod_{T}^{t=1} p_{\theta}(x_{t-1}|x_{t},y,m_{t}) \tag{2} pθ(x0:Ty,m0:T)=p(xT)Tt=1pθ(xt1xt,y,mt)(2)
这里可以理解为,以 y , m t y,m_{t} y,mt作为条件, m 0 : T m_{0:T} m0:T是通过扩散模型逐步细化。去噪器 ϵ θ \epsilon_{\theta} ϵθ以阴影图像 y y y,中间变量 x t x_{t} xt,初始mask m ~ \tilde m m~和时间步 t t t作为输入来预测噪声图 e t e_{t} et和细化mask m t m_{t} mt
e t , m t = ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , y , m ~ , t ) (3) e_{t},m_{t}=\epsilon_{\theta}(\sqrt{\bar \alpha_{t}}x_{0}+\sqrt{1-\bar\alpha_{t}}\epsilon,y,\tilde m,t) \tag{3} et,mt=ϵθ(αˉt x0+1αˉt ϵ,y,m~,t)(3)
当然,去噪器的损失函数需要加上预测 m t m_{t} mt的,这里使用的方法是在去噪网络的最后一层之后增加一个mask预测头,用一个1×1卷积层和一个Sigmoid函数来预测改进后的mask。损失函数为:
L = E x 0 , t , ϵ ∣ ∣ e t − ϵ ∣ ∣ F 2 + E t ∼ [ 1 , T ] ∣ ∣ m t − m g t ∣ ∣ F 2 (4) \mathcal{L} =\mathbb{E}_{x_{0},t,\epsilon}||e_{t}-\epsilon||^{2}_{F}+\mathbb{E}_{t \sim [1,T]}||m_{t}-m_{gt}||^{2}_{F} \tag{4} L=Ex0,t,ϵ∣∣etϵF2+Et[1,T]∣∣mtmgtF2(4)
真实mask可以通过阴影图像和无阴影图像的差获得。去噪器的训练过程如图:
请添加图片描述

3.2 Unrolling-Inspired 扩散采样

上一小节我们重新训练了去噪器,可以得到一个额外的输出。本节介绍如何采样获得清晰图片和mask。我们利用下面的图形-mask联合能量函数,在优化无阴影图像的同时迭代细化mask:
min ⁡ x , m , z , v 1 2 ∣ ∣ h z − y ∣ ∣ F 2 + ψ R ( [ x ∣ m ] ) + ϕ 2 ∣ ∣ v − m ~ ∣ ∣ F 2 s . t . x = z , m = v (5) \min_{x,m,z,v}\frac{1}{2}||hz-y||^{2}_{F}+\psi\mathcal{R}([x|m])+\frac{\phi}{2}||v-\tilde{m}||_{F}^{2} \quad \mathrm{s.t. x=z,m=v} \tag{5} x,m,z,vmin21∣∣hzyF2+ψR([xm])+2ϕ∣∣vm~F2s.t.x=z,m=v(5)
其中, z z z v v v是将(5)转换为约束问题的辅助变量,而 R ( ⋅ ) \mathcal{R(·)} R()是捕获假定的联合图像和掩模先验的正则化。[·|·]表示串联操作。ψ和φ是权衡参数。这里,我们假设退化矩阵h可以由预先训练的退化估计网络估计为 h = D ( y , m ~ ) h=\mathcal{D}(y,\tilde{m}) h=D(y,m~)。为了处理等式约束,引入了两个二次惩罚项,并将问题重写为:
min ⁡ x , m , z , v 1 2 ∣ ∣ h z − y ∣ ∣ F 2 + ψ R ( [ x ∣ m ] ) + ϕ 2 ∣ ∣ v − m ~ ∣ ∣ F 2 + ρ 1 2 ∣ ∣ x − z ∣ ∣ F 2 + ρ 2 2 ∣ ∣ m − v ∣ ∣ F 2 s . t . x = z , m = v \begin{equation} \min_{x,m,z,v}\frac{1}{2}||hz-y||^{2}_{F}+\psi\mathcal{R}([x|m])+\frac{\phi}{2}||v-\tilde{m}||_{F}^{2}+\frac{\rho_{1}}{2}||x-z||^{2}_{F}+\frac{\rho_{2}}{2}||m-v||^{2}_{F} \quad \mathrm{s.t. x=z,m=v} \tag{6} \end{equation} x,m,z,vmin21∣∣hzyF2+ψR([xm])+2ϕ∣∣vm~F2+2ρ1∣∣xzF2+2ρ2∣∣mvF2s.t.x=z,m=v(6)
其中ρ1和ρ2是惩罚参数(对于更简单的解,本文设置了ρ=ρ1=ρ2)。通过采用诸如半二次分裂(HQS)的变量分裂算法,可以通过迭代地解决如下三个子问题来解决优化问题:
[ x ∣ m ] t − 1 = a r g min ⁡ x , m ψ R ( [ x ∣ m ] ) + ρ 2 ∣ ∣ [ x ∣ m ] − [ z t ∣ v t ] ∣ ∣ F 2 z t − 1 = a r g min ⁡ z 1 2 ∣ ∣ h z − y ∣ ∣ F 2 + ρ 2 ∣ ∣ x t − 1 − z ∣ ∣ F 2 v t − 1 = a r g min ⁡ v ϕ 2 ∣ ∣ v − m ~ ∣ ∣ F 2 + ρ 2 ∣ ∣ m t − 1 − v ∣ ∣ F 2 \begin{align} [x|m]_{t-1}&=\mathrm{arg} \min_{x,m}\psi\mathcal{R([x|m])}+\frac{\rho}{2}||[x|m]-[z_{t}|v_{t}]||^{2}_{F} \tag{7} \\ z_{t-1}&= \mathrm{arg} \min_{z}\frac{1}{2}||hz-y||^{2}_{F} + \frac{\rho}{2}||x_{t-1}-z||^{2}_{F} \tag{8} \\ v_{t-1}&= \mathrm{arg} \min_{v}\frac{\phi}{2}||v-\tilde{m}||^{2}_{F} + \frac{\rho}{2}||m_{t-1}-v||^{2}_{F} \tag{9} \end{align} [xm]t1zt1vt1=argx,mminψR([xm])+2ρ∣∣[xm][ztvt]F2=argzmin21∣∣hzyF2+2ρ∣∣xt1zF2=argvmin2ϕ∣∣vm~F2+2ρ∣∣mt1vF2(7)(8)(9)
这里(8)和(9)是带有二次罚项的最小二乘问题,它们有闭合形式的解:
z t − 1 = ( h y + ρ x t − 1 ) / ( h h + ρ 1 ) v t − 1 = ( ϕ m ~ + ρ m t − 1 ) / ( ϕ + ρ ) \begin{align} z_{t-1}&=(hy+\rho x_{t-1})/(hh+\rho_{1}) \tag{10} \\ v_{t-1}&=(\phi \tilde{m}+\rho m_{t-1})/(\phi+\rho) \tag{11} \end{align} zt1vt1=(hy+ρxt1)/(hh+ρ1)=(ϕm~+ρmt1)/(ϕ+ρ)(10)(11)
这里我们获得了 z z z v v v的迭代公式, h h h同样是用神经网络估计得出,算法流程如下:
请添加图片描述

总结

请添加图片描述
可以看到该方法的性能非常好,指标遥遥领先。我认为缺点就是比较复杂,需要一个预训练模型估计退化,然后是采样过程。相对于端到端的结构可能慢很多。但是,作为生成模型,per-pixel指标很高,这很厉害。相对于guide-diffusion,这篇文章的方法确实很新颖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值