阅读论文《“Double-DIP” :Unsupervised Image Decomposition via Coupled Deep-Image-Priors》

   2019 cvpr的一篇论文,做的是图像分解的先验。个人理解就是分别学习分解图像的先验,遵循的思路是18年DIP那篇论文的思路。即图像恢复任务里,网络会先学习图像的简单自然部分,这里亦然,出发点是混合层的图像比它们单独的组分更加复杂,因此可以进行无监督的分解。在图像的各个组分里,其patch里内部的熵比混合在一起要小。例如对于去雾任务里,有雾图里的分布比无雾图里的分布要复杂多样。
   这篇论文使用了DIP的思想,使用多个DIP去重构图像,因为DIP输出的图像是简单的,因此多个DIP结合可以得到各自简单的分量。其基本架构如下所示:

   论文还观察到的现象是,组合图像比单个成分在DIP的收敛要慢,这与上面的结论相一致。此外,当使用多个DIP时重构图像时,它们更倾向于分离图像,也就是DIP倾向于分出图像不同的组分。所以可以使用多个DIP去分解出图像的不同组分。
   好的分解应当满足以下条件,首先分解恢复的层应当可以结合还原原图像,其次每个层应当尽可能简单,最后各个层应当尽可能相互独立。所以这里设定了下面这些loss,首先是Reconstruction loss,这个loss衡量重构图像和输入图像的差别,其次还有Exlusion loss,减少分解得到的各个层之间的联系。
   每个${DIP}i$输入的是噪声$z_i$,获得输出$y_i = {DIP}{i}(z_i)$,使用权重mask m进行混合,表示如下:

这里的m是依据不同任务而不同的,所以需要使用Regularization loss进行约束,例如对于去雾,其希望传输图t连续且平滑。所有loss是上述Loss的组合。
   当遇到二义性问题时,即当一个单独的层包含多个独立区域时,此时让对两个DIP分别施加约束,分别学习显著和非显著性区域。在迭代数次后进行放松,当有多张图时,可以利用各个图之间层的关系进行约束。在训练时往输入噪声里加入非稳定噪声,提高鲁棒性。论文分别分析了分割、透明层分解和去雾三个任务,这里简要写一下去雾。去雾公式可写为:

这里分解层包括y1=J(x),y2=A(x),m=t(x)。一般去雾方法估计的大气光散射A是均匀的,当然这是不准确的。虽然这样估计A很简单,但是估计t很难,所以不能使用均匀假设。所以这里对A和t分别处理,t被当做mask。这里使用正则Loss去使得t变得平滑(最小化其拉普拉斯正则)。同样,A是内部关联性较强的图像,所以希望||A(x)-A||尽可能小,A是传统估算的均匀A的值。尽管最后得到的结果偏离传统的A很小,但是对于结果很重要。

0%