【论文笔记2019-03-22】Unsupervised Sin

2019-03-23  本文已影响0人  EverydayRunning

        本文只针对文章中提出的具体方法做梳理,实验结果等不在此贴出。

1.雾霾模型(Haze Model):

                                   I(x)=t(x)J(x)+(1-t(x))A,t(x)=e^{-\beta d(x)}  (1)

            I(x)\in R^N是最终得到的雾霾图像;J(x)是没有雾霾的清晰图像;A是全球大气光成分,分为RGB三个通道;t(x)是透射率,它与视景深度d(x)相关。去霾问题可以描述为:在已知I(x)的情况下,获得上式中的J(x)。那就必须解一个含有3N个方程的方程组,这个方程组有4N+3个未知数(J(x),t(x),A)方程数量小于未知数个数,因此需要额外的先验知识。

2.暗通道先验(Dark Channel Prior):一个图像的暗通道定义为:

                                                             J^{dark}(x)=\min_{c\in r,g,b}(\min_{y\in \Omega (x)}J^c(y))    (2)

其中,J^c(x)表示彩色图像的每个通道,\Omega(x)是中心在x的小图像窗口。

        实际生活中造成暗原色中低通道值主要有三个因素:(1)阴影:汽车、建筑、树木等;(2)彩色物体:也就是其中一个通道占主导,其余通道为零,比如,红花、绿树、蓝海;(3)天然暗色的物体,比如:树干和石头。

        假设A已知,且在一个小的图像窗口内,透射率\widetilde{t}(x)可以认为是常数。对(1)式稍作处理:

                                                            \frac{I^c(x)}{A^c}=\frac{J^c(x)}{A^c}t(x)+1-t(x)    (3)

        暗通道理论指出:J^{dark}\to 0,则(3)式两端求两次最小值运算,并引入修正因子\omega \in [0,1],以保证在去雾的时候保留一定的雾,通常\omega取0.95:

                                                       \widetilde t(x)=1-\omega \min_{c\in r,g,b}(\min_{y \in \Omega(x)}(\frac {I^c(y)}{A^c}))    (4)

3.(Soft Matting):

        (1)式中的雾霾模型和《A closed form solution to natural image matting》中的image matting组成模型很相似,

                                                                            I_i​=α_i​F_i​+(1−α_i​)B_i​    (5)

其输出图像是一个前景图像与背景图像的凸线性组合,受控于\alpha \in [0,1]。用\widetilde{t}(x)替换\alpha

                                                      E(t, \tilde t) = t^TLt+ \lambda (t-\tilde t)^T(t-\tilde t)    (6)

式(6)的第一项有利于成功抠图,第二项代表暗通道的保真度。\lambda确定二者之间的关系程度,\lambda可以取10^{-4}L是类拉普拉斯矩阵,

                                             L_{ij}=\sum_{n|(i,j)\in p_n}(\delta_{ij}-\omega^n_{ij}), \forall i,j=1…N    (7)

                \omega ^n _{ij}=\frac{1}{|p_n|}[1+(I_i-\mu_n)^T(\Sigma _n+\frac{\varepsilon}{|p_n|}U_3)^{-1}(I_j-U_n)]    (8)

ij是以像素点n为中心的小图像窗口p_n处的两个像素点。p_n常取3\times 3=9\mu_n\in R^3,\Sigma^n \in R^{3 \times 3} 是图像窗口的均值和协方差。U_3是单位矩阵。平滑系数\varepsilon 10^{-6}

4.损失函数的实现(Implementation as a loss function)

        将(6)式中的第一项可以通过拉普拉斯矩阵分解改写成更为Tensor-friendly的格式,

                                        E_1(t, \tilde t)=t^TLt= \sum^N _ {n=1} \sum^9 _ {i=1} \sum^9 _ {j=1} \omega ^n _{ij} (t_i-t_j)^2    (9)

        可以将这项连同保真项一起向量化:

                           E(t, \tilde t)=\sum^N _{n=1} \sum^K _{k=1} W\odot (T_I-T_J)^2+\lambda \sum^N _{n=1}(t-\tilde t)^2    (10)

        \odot代表按元素相乘;k \in [1,2,…81]W,T_I,T_J  \in R^{N \times 81}

        可以基于式(10)的损失函数来训练网络参数t_\theta。这一问题就转化为基于只包含雾霾图像的训练集\{I_m\}^M_{m=1}:

                                                           \theta^*=\arg\min_\theta[\frac{1}{M}\sum^M_{m=1}E(t_\theta,\tilde t(I_m))]    (11)

        M是图像数。损失模块的输入输出图如图:

损失模块

5.计算场景辐射

        网络一旦训练完成,新雾霾图像的传输映射t_\theta(x)能够通过前向运算得到。这样是通过雾霾模型(1)来恢复场景辐射,

                                                                                 J(x)=\frac {I(x)-A}{\max(t_\theta(x),t_0)}+A    (12)

        其中,t_0是为了避免分母为零,取0.1。为了恢复丢失的A,采取了文献《Single image haze removal using dark channel prior》中的方法。首先在雾霾图像的暗通道中,剔出0.1\%最亮的像素。然后,选取剩余像素中最亮的像素。 这就是最终选出的A

6.架构

        受《Multi-scale context aggregation by dilated convolutions》文中的CAN网络思想启发,提出了Dilated Residual Network。和CAN相似,保持每个层的分辨率与输入和输出图像的分辨率保持一致。为了获得较为精确的预测值,文中避免了池化层和上采样,而是采用了具有指数型扩张因子的扩张卷积来增加接收场(receptive field)。在每个扩张卷积层之间增加了两个普通的卷积层,来获得更为丰富的非线性表示。

系统架构

        文中的网络由6个扩张残差模块串联而成;每个层由两个常规卷积层和一个扩张卷积层组成。从这个模块到下一个模块,扩张因子增加两倍。每个卷积层的滤波尺度都是3\times 3 \times 32。所有的常规卷积层都跟随着batch normalization和ReLU nonlinearity,扩张卷积层只跟随着batch normalization。最终层是传输映射输出尺寸的线性变换。为了改善梯度流,并将更好的细节传输到输出端,文中在每个block的输入和输出之间添加了额外的Resnet式的跳跃连接。跳跃连接是每个block的输入和输出之间的简单相加。

上一篇 下一篇

猜你喜欢

热点阅读