代码(MATLAB):https://github.com/caibolun/DehazeNet
代码(PyTorch): https://github.com/thuBingo/DehazeNet_Pytorch
目录
1. 摘要
本文提出了一种称为 D e h a z e N e t \mathrm{DehazeNet} DehazeNet的可训练端到端系统,用于媒体传输估计。 D e h a z e N e t \mathrm{DehazeNet} DehazeNet将雾图像作为输入,并输出其传输率图,随后将其用于通过大气散射模型恢复无雾图像。 D e h a z e N e t \mathrm{DehazeNet} DehazeNet采用基于卷积神经网络的深度架构,其各个层专门设计为体现图像去雾中已建立的假设/先验。具体来说, M a x o u t \mathrm{Maxout} Maxout单元的图层用于特征提取,可以生成几乎所有的与雾相关的特征。我们还在 D e h a z e N e t \mathrm{DehazeNet} DehazeNet中提出了一种新的非线性激活函数,称为双边整流线性单元,它可以提高恢复的无雾图像的质量。 D e h a z e N e t \mathrm{DehazeNet} DehazeNet的组件和现有方法中使用的组件之间建立连接。
2. 雾相关特征
2.1 Dark Channel
暗通道先验是基于对室外无雾图像的大量观察。在大多数无雾块中,至少一个颜色通道具有一些像素,这些像素的强度值非常低,甚至接近零。暗通道定义为局部色块中所有像素颜色的最小值:
D
(
x
)
=
min
y
∈
Ω
r
(
x
)
(
min
c
∈
{
r
,
g
,
b
}
I
c
(
y
)
)
(1)
D(x) = \min\limits_{y \in \Omega_r(x)} (\min\limits_{c \in \{r, g, b\}} I^c(y)) \tag{1}
D(x)=y∈Ωr(x)min(c∈{r,g,b}minIc(y))(1)
其中 I c I^c Ic是 I I I和的RGB颜色通道, Ω r ( x ) \Omega_r(x) Ωr(x)是一个以 x x x为中心的局部块,大小为 r × r r×r r×r。暗通道特征与图像中的雾度高度相关,并用于直接估计介质透射率 t ( x ) ∝ 1 − D ( x ) t(x) \propto1-D(x) t(x)∝1−D(x)。
2.2 Maximum Contrast
根据大气散射,雾会降低图像的对比度,即
∑
x
∥
▽
I
(
x
)
∥
=
t
∑
x
∥
▽
J
(
x
)
∥
≤
∑
x
∥
▽
J
(
x
)
∥
\sum_x \parallel \triangledown I(x) \parallel = t\sum_x \parallel \triangledown J(x) \parallel \le \sum_x \parallel \triangledown J(x) \parallel
∑x∥▽I(x)∥=t∑x∥▽J(x)∥≤∑x∥▽J(x)∥。基于此观察,局部对比度是指
Ω
s
\Omega_s
Ωs中像素强度的方差与中心像素有关,
Ω
r
\Omega_r
Ωr局部对比度的局部最大值定义为:
C
(
x
)
=
max
y
∈
Ω
r
(
x
)
1
∣
Ω
s
(
y
)
∣
∑
z
∈
Ω
s
(
y
)
∥
I
(
z
)
−
I
(
y
)
∥
2
(2)
C(x) = \max\limits_{y \in \Omega_r(x)} \sqrt{\frac{1}{| \Omega_s(y) |} \sum\limits_{z \in \Omega_s(y)} \parallel I(z) - I(y) \parallel^2} \tag{2}
C(x)=y∈Ωr(x)max∣Ωs(y)∣1z∈Ωs(y)∑∥I(z)−I(y)∥2(2)
其中, ∣ Ω s ( y ) ∣ | \Omega_s(y) | ∣Ωs(y)∣对比度特征与介质透射率t之间的相关性在视觉上很明显,因此,通过最大化 ( 2 ) (2) (2)所示的局部对比度,可以增强图像的可见性。
2.3 Color Attenuation
颜色衰减先验(CAP)参考这篇文章,这里不多赘述。
2.4 Hue Disparity
Semi-inverse(半反转)图像定义如下:
I
s
i
(
x
)
=
max
[
I
c
(
x
)
=
1
−
I
c
(
x
)
]
,
c
∈
{
r
,
g
,
b
}
I_{si}(x) = \max [I^c(x) = 1 - I^c(x)], c \in \{r, g, b\}
Isi(x)=max[Ic(x)=1−Ic(x)],c∈{r,g,b}
原图与半反转图像之间的色度差异可以用于检测雾。对于无雾像素,并非所有三个半反值都会从原始值反转,这会导致
I
s
i
(
x
)
I_{si}(x)
Isi(x)和
I
(
x
)
I(x)
I(x)之间的色度变化很大。另一方面,对于有雾像素,所有三个半反值都将翻转,因此不会出现色度变化。色度差异定义为:
H
(
x
)
=
∣
I
s
i
h
(
x
)
−
I
h
(
x
)
∣
(3)
H(x) = | I_{si}^{h}(x) - I^{h}(x) | \tag{3}
H(x)=∣Isih(x)−Ih(x)∣(3)
其中, h h h表示在HSV颜色空间的色度通道。色度差异的原因是由于He描述的图像特性。在无雾区域,由于至少一个通道的特征是较小的值,因此该操作将用其反转数代替该值。 在天空或薄雾区域中,由于所有值均具有较高的值, max \max max操作将返回相同的值。因此,通过这种半反转与原始图像的直接色度比较,能够找到需要还原的像素,同时保留与原始图像相似的颜色外观。
3. 模型介绍
这一部分详见文章。
3.1 Feature Extraction
F 1 i = max j ∈ [ 1 , k ] g i , j ( x ) , g i , j = W 1 i , j ∗ I + B 1 i , j (5) F_1^i = \max\limits_{j \in [1, k]} \mathrm{g}^{i, j}(x), \mathrm{g}^{i, j} = W_1^{i, j} * I + B_1^{i, j} \tag{5} F1i=j∈[1,k]maxgi,j(x),gi,j=W1i,j∗I+B1i,j(5)
3.2 Multi-Scale Mapping
F 2 i = W 2 ⌈ i / 3 ⌉ , ( i \ 3 ) ∗ I + B 2 ⌈ i / 3 ⌉ , ( i \ 3 ) (6) F_2^i = W_2^{{\left\lceil i/3 \right\rceil}, (i \backslash 3)} * I + B_2^{{\left\lceil i/3 \right\rceil}, (i \backslash 3)} \tag{6} F2i=W2⌈i/3⌉,(i\3)∗I+B2⌈i/3⌉,(i\3)(6)
3.3 Local Extremum
F 3 i ( x ) = max y ∈ Ω ( x ) F 2 i (7) F_3^i(x) = \max\limits_{y \in \Omega(x)} F_2^i \tag{7} F3i(x)=y∈Ω(x)maxF2i(7)
3.4 Non-Linear Regression
F 4 = min ( t max , max ( t min , W 4 ∗ F 3 + B 4 ) ) (8) F_4 = \min(t_{\max}, \max(t_{\min}, W_4 * F_3 + B_4)) \tag{8} F4=min(tmax,max(tmin,W4∗F3+B4))(8)
4. 和传统去雾方法的联系
DehazeNet中的第一层特征 F 1 F_1 F1设计用于与雾相关特征的提取。
4.1 Dark Channel
当滤波器
W
1
W_1
W1结构如下,
而 B 1 B_1 B1是一个单位偏差,则特征图的最大输出等于颜色通道的最小值,类似于暗通道(请参见公式 ( 1 ) (1) (1))。
颜色通道乘以-1,则最大值变为最小值,最小值变为最大值。此时再取最大值,就相当于取最小值。即暗通道的思想。
4.2 Maximum Contrast
当滤波器
W
1
W_1
W1结构如下,
F 1 F_1 F1类似于最大对比度(请参见公式 ( 2 ) (2) (2))。
4.3 Color Attenuation and Hue Disparity
当
W
1
W_1
W1包含All-pass filters(见下)和Opposite filters时,相当于提取了
I
I
I中的最大特征图和最小特征图,而这两个操作是RGB空间转换成HSV空间的算法中的原子操作。之后再通过设计相应的算法就能提取颜色衰减和色度差异的特征图了。
5. 损失函数
均方误差:
L
(
Θ
)
=
1
N
∑
i
=
1
N
∥
F
(
I
i
P
;
Θ
)
−
t
i
∥
2
(9)
L(\Theta) = \frac{1}{N} \sum\limits_{i=1}^{N} \| \mathcal{F}(I_i^P; \Theta) - t_i \|^2 \tag{9}
L(Θ)=N1i=1∑N∥F(IiP;Θ)−ti∥2(9)
Θ = { W 1 , W 2 , W 3 , B 1 , B 2 , B 3 } \Theta = \{\mathcal{W}_1, \mathcal{W}_2, \mathcal{W}_3, \mathcal{B}_1, \mathcal{B}_2, \mathcal{B}_3\} Θ={W1,W2,W3,B1,B2,B3}代表网络的参数, I P I^P IP表示图像块。
6. 读后感
这篇文章可以说是传统和深度结合的文章。尽管现在2020年,仍然有CVPR的论文在指标对比上和DehazeNet比较,可见影响力还是挺大的。