论文阅读:You Only Look Yourself: Unsupervised and Untrained Single Image Dehazing Neural Network

提出一种无监督的图像去雾神经网络YOLY,将雾图分解为场景辐射层、传输率层和大气光层,实现图像去雾。网络由J-Net、T-Net和A-Net组成,分别生成清晰图像、传输率图和大气光。YOLY通过自我监督方式重构雾图,实验结果表明其在去雾效果和雾渲染方面具有潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文题目及作者
代码目前还未公布,但是作者在文章中声明会开源。

1. 摘要

    本文研究了单幅图像去雾中的两个具有挑战性和较少接触的问题,即如何在不训练Ground-Truth图像(无监督)和图像集合(未经训练)的情况下使深度学习实现图像去雾。本文提出了一种新颖的方法,称为“You Only Look Yourself”(YOLY),它可能是第一个用于图像去雾的无监督和未经训练的神经网络。
    YOLY使用三个联合子网将观察到的雾图分成几个潜在层,即场景辐射层,传输率层和大气光层。然后,将这三层以自我监督的方式进一步构成雾图。

2. 网络结构及损失函数

    网络结构如图1所示。
网络结构

图1 网络结构

    网络分为三个子网,为:J-Net、T-Net和A-Net,分别用来生成 J ( x ) \boldsymbol{J}(x) J(x) T ( x ) \boldsymbol{T}(x) T(x) A ( x ) \boldsymbol{A}(x) A(x)。整体流程如下:输入一幅有雾图像 x x x,分别送入三个子网J-Net、T-Net和A-Net,得到 J ( x ) \boldsymbol{J}(x) J(x) T ( x ) \boldsymbol{T}(x) T(x) A ( x ) \boldsymbol{A}(x) A(x)。接着,通过公式:
I ( x ) = T ( x ) J ( x ) + ( 1 − T ( x ) ) A (1) \boldsymbol{I}(x) = \boldsymbol{T}(x)\boldsymbol{J}(x) + (1 - \boldsymbol{T}(x))\boldsymbol{A} \tag{1} I(x)=T(x)J(x)+(1T(x))A(1)

生成雾图 I ( x ) \boldsymbol{I}(x) I(x)
    三个子网均有相应的损失函数, I ( x ) \boldsymbol{I}(x) I(x) x x x也构成一个损失函数(后面详细介绍)。下面分别介绍子网及其损失函数。

2.1 The top layer of YOLY

    在YOLY的顶层,损失函数如下:
L R e c = ∥ I ( x ) − x ∥ p (2) \mathcal{L}_{Rec} = \parallel \boldsymbol{I}(x) - x \parallel_p \tag{2} LRec=I(x)xp(2)

    其中 ∥ ⋅ ∥ p \parallel \cdot \parallel_p p p p p范数,本文中采用的是Frobenius范数。Frobenius范数表达式如下:
∥ A ∥ F = ∑ i = 1 m ∑ j = 1 n a i j 2 (3) \parallel \boldsymbol{A} \parallel_F = \sqrt{\sum\limits_{i=1}^{m} \sum\limits_{j=1}^{n} a_{ij}^2} \tag{3} AF=i=1mj=1naij2 (3)

    即Frobenius范数就是矩阵各元素平方和的开方。
     L R e c \mathcal{L}_{Rec} LRec的设计目的在于限制包括子网在内的整个网络,从而利用三个子网生成的组件更好的重建雾图。换句话说,它通过引入雾生成过程(大气散射模型),来引导子网对原图的分解,以及引导子网生成的组件对雾图的重构。

2.2 J-Net

    J-Net输入一幅雾图 x x x,输出该雾图的清晰图像 J ( x ) \boldsymbol{J}(x) J(x)。J-Net采用了一个非退化结构,即没有实现下采样操作,在输入和输出的过程中,不会减小图像的大小。该结构可以避免对 J ( x ) \boldsymbol{J}(x) J(x)细节的损失。J-Net仅包含了卷积层,BN层以及LeakyReLU层。J-Net最后一层采用了sigmoid函数,将输出归一化到 [ 0 , 1 ] [0,1] [0,1]区间内。
    J-Net采用如下的损失函数:
L J = ∥ V ( f J ( x ) ) − S ( f J ( x ) ) ∥ p (4) \mathcal{L}_J = \parallel V(f_J(x)) - S(f_J(x)) \parallel_p \tag{4} LJ=V(fJ(x))S(fJ(x))p(4)

    其中, V ( f J ( x ) ) V(f_J(x)) V(fJ(x))为J-Net的输出 f J ( x ) f_J(x) fJ(x)的亮度, S ( f J ( x ) ) S(f_J(x)) S(fJ(x)) f J ( x ) f_J(x) fJ(x)的饱和度。该损失函数的设计是基于CAP先验(可以看这篇博客)。简单来说,即雾的渲染会增大图像的亮度,减少图像的饱和度,从而使亮度与饱和度的差值增大。所以,在 J ( x ) \boldsymbol{J}(x) J(x)中,该差值应尽可能小。

2.3 T-Net

    T-Net输入一幅雾图 x x x,输出该雾图的传输率图 T ( x ) \boldsymbol{T}(x) T(x)。T-Net和J-Net具有相似的结构,仅有两处不同。第一,J-Net的输出是一幅三通道的图像,而T-Net的输出是一幅单通道的传输率图。第二,T-Net不需要另外的损失函数,仅用YOLY的损失函数优化T-Net的参数。

2.4 A-Net

    A-Net输入一幅雾图 x x x,输出该雾图全局大气光 A ( x ) \boldsymbol{A}(x) A(x)。A-Net中包含了一个编码器,一个对称的解码器以及一个中间块。编码器和解码器都分别包含了四个块。在编码器中,这些块依次包含了一个卷积层,ReLU激活函数层和一个最大池化层。在解码器中,这些块依次执行上采样,卷积,batch normalization以及ReLU激活。
    由于全局大气光 A \boldsymbol{A} A与图像内容无关并且具有全局属性,因此可以合理地假设 A \boldsymbol{A} A是从高斯分布中采样的。为了学习高斯模型,中间块将编码器的输出 z z z转换成高斯分布 N ( μ z , σ z 2 ) \mathcal{N}(\mu_z, \sigma_z^2) N(μz,σz2)(即 z → { μ z , σ z 2 } z \rightarrow \{\mu_z, \sigma_z^2\} z{μz,σz2}),其中 μ z \mu_z μz σ z 2 \sigma_z^2 σz2为高斯模型的均值和方差。通过对高斯模型的重采样,可以产生重新构建的编码 z ^ \hat{z} z^(即 N ( μ z , σ z 2 ) → z ^ \mathcal{N}(\mu_z, \sigma_z^2) \rightarrow \hat{z} N(μz,σz2)z^)。最后,将 z ^ \hat{z} z^输入到解码器,获得大气光组件 f A ( x ) f_A(x) fA(x)

    不理解,网络框架图中A-Net中间块部分也没看懂。

    A-Net的损失函数如下:
L A = L H + L K L + λ L R e g (5) \mathcal{L}_A = \mathcal{L}_H + \mathcal{L}_{KL} + \lambda \mathcal{L}_{Reg} \tag{5} LA=LH+LKL+λLReg(5)

    其中, L H \mathcal{L}_H LH为分解的大气光组件 f A ( x ) f_A(x) fA(x)与大气光 A ( x ) \boldsymbol{A}(x) A(x)的损失, A ( x ) \boldsymbol{A}(x) A(x)可以从 x x x中估计得到。 L K L \mathcal{L}_{KL} LKL L R e g \mathcal{L}_{Reg} LReg为变分推理和正则化项的损失。 λ \lambda λ为非负参数用于调节正则化项损失。

1) L H \mathcal{L}_H LH

     L H \mathcal{L}_H LH定义如下:
L H = ∥ f A ( x ) − A ( x ) ∥ F (6) \mathcal{L}_H = \parallel f_A(x) - \boldsymbol{A}(x) \parallel_F \tag{6} LH=fA(x)A(x)F(6)

     ∥ ⋅ ∥ F \parallel \cdot \parallel_F F参见 ( 3 ) (3) (3)

2) L K L \mathcal{L}_{KL} LKL

     L K L \mathcal{L}_{KL} LKL旨在最小化 z z z和从学习到的高斯模型中重采样的 z ^ \hat{z} z^之间的差距。表达式如下:
L K L = K L ( N ( μ z , σ z 2 ) ∥ N ( 0 , I ) ) = 1 2 ∑ i ( ( μ z i ) 2 + ( σ z i ) 2 − 1 − log ⁡ ( σ z i ) 2 ) (7) \begin{aligned} \mathcal{L}_{KL} =& KL(\mathcal{N}(\mu_z, \sigma_z^2) \parallel \mathcal{N}(0, {I})) \\ =& \frac{1}{2} \sum\limits_{i}((\mu_{z_i})^2 + (\sigma_{z_i})^2 - 1 - \log(\sigma_{z_i})^2) \tag{7} \end{aligned} LKL==KL(N(μz,σz2)N(0,I))21i((μzi)2+(σzi)21log(σzi)2)(7)

    其中, K L ( ⋅ ) KL(\cdot) KL()为两个分布之间的KL散度。 z ^ \hat{z} z^ z z z的第 i i i个维度。

    文中没提到 I I I,所以没太看懂这个损失函数。

3) L R e g \mathcal{L}_{Reg} LReg

    为了避免过拟合,加入 L R e g \mathcal{L}_{Reg} LReg损失函数,限制 f A ( x ) f_A(x) fA(x)。公式如下:
L R e g ( x ) = 1 2 m ∑ i = 1 m ( x i − 1 ∣ N ( x i ) ∣ ∑ y i ∈ N ( x i ) y i ) 2 (8) \mathcal{L}_{Reg}(x) = \frac{1}{2m}\sum\limits_{i=1}^{m}(x_i - \frac{1}{|N(x_i)|} \sum\limits_{y_i \in N(x_i)} y_i)^2 \tag{8} LReg(x)=2m1i=1m(xiN(xi)1yiN(xi)yi)2(8)

    其中, N ( x i ) N(x_i) N(xi) x i x_i xi的二阶邻域, ∣ N ( x i ) ∣ |N(x_i)| N(xi)为邻域大小, m m m为像素点 x x x的数量。显然,正则化起均值滤波的作用,使 A ( x ) \boldsymbol{A}(x) A(x)变得平滑。

2.5 Total Loss

    综上,YOLY的总损失函数如下:
L =   L R e c + L J + L H + L K L + L R e g = ∥ I ( x ) − x ∥ F 2 + ∥ V ( f J ( x ) ) − S ( f J ( x ) ) ∥ F 2 + ∥ f A ( x ) − A ( x ) ∥ F 2 + ∑ i ( ( μ z i ) 2 + ( σ z i ) 2 − 1 − log ⁡ ( σ z i ) 2 ) + λ m ∑ i = 1 m ( f A ( x ) i − 1 ∣ N ( f A ( x ) i ) ∣ ∑ y i ∈ N ( f A ( x ) i ) y i ) 2 (9) \begin{aligned} \mathcal{L} =&\:\mathcal{L}_{Rec}+\mathcal{L}_{J}+\mathcal{L}_{H}+\mathcal{L}_{KL}+\mathcal{L}_{Reg} \\ =& \parallel \boldsymbol{I}(x) - x \parallel_F^2 + \parallel V(f_J(x)) - S(f_J(x)) \parallel_F^2 \\ &+ \parallel f_A(x) - \boldsymbol{A}(x) \parallel_F^2 \\ &+ \sum\limits_{i} ((\mu_{z_i})^2 + (\sigma_{z_i})^2 - 1 - \log(\sigma_{z_i})^2) \\ &+ \frac{\lambda}{m}\sum\limits_{i=1}^{m}(f_A(x)_i - \frac{1}{|N(f_A(x)_i)|} \sum\limits_{y_i \in N(f_A(x)_i)} y_i)^2 \tag{9} \end{aligned} L==LRec+LJ+LH+LKL+LRegI(x)xF2+V(fJ(x))S(fJ(x))F2+fA(x)A(x)F2+i((μzi)2+(σzi)21log(σzi)2)+mλi=1m(fA(x)iN(fA(x)i)1yiN(fA(x)i)yi)2(9)

    这一部分直接把我看懵了。前三项在 ( 2 ) ( 4 ) ( 6 ) (2)(4)(6) (2)(4)(6)中没有加平方,后两项在 ( 7 ) ( 8 ) (7)(8) (7)(8)中的 1 2 \frac{1}{2} 21的系数不见了。

3. 实验结果

3.1 生成数据集

1) 室内

生成室内数据集客观指标
生成室内数据集主观效果

2) 室外

生成室外数据集客观指标
生成室外数据集主观效果

3.2 真实数据集

感兴趣的去看原文,我这里只贴出作者的结果
对比1
对比2
    说实话,我并不觉得效果很好。

4. 雾的迁移

    本文的层分解网络,能够得到除清晰图像外的两个两个分量——传输率和大气光。因此,根据这两个分量以及大气散射模型,就能够将一幅雾图中的雾迁移到另一幅清晰图像中。换句话说,本文还提供了雾渲染的新方法。
    本文对生成室内和室外图像都进行了实验,篇幅限制这里就不在赘述,感兴趣的可以看原文。这里只展示在真实图像上的雾迁移。
真实图像上的雾迁移
    可以看到,本文提出的雾渲染的方法渲染结果更加真实。

5. 消融实验

    为了验证提出的损失函数的有效性,本文逐一移除 L H \mathcal{L}_{H} LH L K L \mathcal{L}_{KL} LKL L J \mathcal{L}_{J} LJ L R e g \mathcal{L}_{Reg} LReg中的一个,结果如下。
消融实验

6. 总结

    在本文中,我们提出了一种无监督,未经训练的图像去雾神经网络,该网络将雾图分为场景辐射层,传输率层和大气光层。 YOLY的三个优点是:1)无监督特性意味着该方法不使用超出图像内容的信息; 2)未经训练的特征意味着该方法不需要像大多数现有的神经网络一样使用图像集进行训练; 3)可转移的雾度,可以通过以学习和无监督的方式从给定图像中提取雾度来合成新的雾度图像。论文数据集和一个真实世界的数据集证明了我们的方法在定量和定性比较中的有希望的性能。
    尽管我们的方法明显优于大多数现有的无监督浅层(即传统方法)和深层方法,但仅可与最新的有监督图像去雾方法相提并论。 因此,有希望在将来不断提高其性能。 此外,探索如何将我们的方法扩展到其他图像/视频增强任务(如降噪,修复等)也很有价值。

7. 读后感

    才疏学浅,到写完这篇博客,我还没对文中的许多地方云里雾里。包括:1) A-Net中间块的结构;2) L K L \mathcal{L}_{KL} LKL中的 I I I的定义;3) 总损失函数。但是总体来说该文章的思想是懂了。本文最重要的就是提出了一个无监督的去雾网络,但是去雾结果不尽人意。以后如果看懂了,会回来填坑。哈哈坑王驾到,才写了几篇文章,就已经挖了那么多坑。

CVPR 2019中发表了一篇题为“迁移学习:无监督领域自适应的对比适应网络(Contrastive Adaptation Network for Unsupervised Domain Adaptation)”的论文。这篇论文主要介绍了一种用于无监督领域自适应的对比适应网络。 迁移学习是指将从一个源领域学到的知识应用到一个目标领域的任务中。在无监督领域自适应中,源领域和目标领域的标签信息是不可用的,因此算法需要通过从源领域到目标领域的无监督样本对齐来实现知识迁移。 该论文提出的对比适应网络(Contrastive Adaptation Network,CAN)的目标是通过优化源领域上的特征表示,使其能够适应目标领域的特征分布。CAN的关键思想是通过对比损失来对源领域和目标领域的特征进行匹配。 具体地说,CAN首先通过一个共享的特征提取器来提取源领域和目标领域的特征表示。然后,通过对比损失函数来测量源领域和目标领域的特征之间的差异。对比损失函数的目标是使源领域和目标领域的特征在特定的度量空间中更加接近。最后,CAN通过最小化对比损失来优化特征提取器,以使源领域的特征能够适应目标领域。 该论文还对CAN进行了实验验证。实验结果表明,与其他无监督领域自适应方法相比,CAN在多个图像分类任务上取得了更好的性能,证明了其有效性和优越性。 综上所述,这篇CVPR 2019论文介绍了一种用于无监督领域自适应的对比适应网络,通过对源领域和目标领域的特征进行对比学习,使得源领域的特征能够适应目标领域。该方法在实验中展现了较好的性能,有望在无监督领域自适应任务中发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值