代码:https://github.com/phoenixtreesky7/mof_dehazing
目录
1. 摘要
逐像素(pixel-wise)估计传输率图会导致过饱和,而逐块(patch-wise)估计会导致边缘的传输率错误估计(Transmission MisEstimated,TME),从而引起去雾图像的边缘伪影。如下图1所示。本文提出了一种Multi-scale Optimal Fusion(MOF)模型,该模型原理为在边缘使用逐像素估计,而在非边缘处使用逐块估计。同时,还提出了两种预处理方法提升该模型的鲁棒性和减少计算复杂度。
2. 提出的方法
2.1 大气散射模型和暗通道先验
太基础,不做介绍。
I
(
x
)
=
J
(
x
)
⋅
t
(
x
)
+
A
(
1
−
t
(
x
)
)
(1)
\boldsymbol{I}(\boldsymbol{x})=\boldsymbol{J}(\boldsymbol{x}) \cdot t(\boldsymbol{x})+\boldsymbol{A}(1-t(\boldsymbol{x})) \tag{1}
I(x)=J(x)⋅t(x)+A(1−t(x))(1)
d Ω ( x ) = min y ∈ Ω ( x ) [ min c ∈ { r , g , b } I c ( y ) ] (2) d_{\Omega}(\boldsymbol{x})=\min _{\boldsymbol{y} \in \Omega(\boldsymbol{x})}\left[\min _{c \in\{\boldsymbol{r}, g, b\}} \boldsymbol{I}^{c}(\boldsymbol{y})\right] \tag{2} dΩ(x)=y∈Ω(x)min[c∈{r,g,b}minIc(y)](2)
t p a ( x ) = 1 − α min y ∈ Ω ( x ) [ min c ∈ { r , g , b } I c ( y ) A c ] t p i ( x ) = 1 − α [ min c ∈ { r , g , b } I c ( y ) A c ] (3) \begin{aligned} & t_{p a}(\boldsymbol{x})=1-\alpha \min _{\boldsymbol{y} \in \Omega(\boldsymbol{x})}\left[\min _{c \in\{r, g, b\}} \frac{\boldsymbol{I}^{c}(\boldsymbol{y})}{\boldsymbol{A}^{c}}\right] \\ & t_{p i}(\boldsymbol{x})=1-\alpha \left[\min _{c \in\{r, g, b\}} \frac{\boldsymbol{I}^{c}(\boldsymbol{y})}{\boldsymbol{A}^{c}}\right] \end{aligned} \tag{3} tpa(x)=1−αy∈Ω(x)min[c∈{r,g,b}minAcIc(y)]tpi(x)=1−α[c∈{r,g,b}minAcIc(y)](3)
t
p
a
t_{p a}
tpa为逐块传输率,
t
p
i
t_{p i}
tpi为逐像素传输率。
J
(
x
)
=
I
(
x
)
−
A
t
(
x
)
+
A
(4)
\boldsymbol{J}(x)=\frac{\boldsymbol{I}(x)-\boldsymbol{A}}{t(x)}+\boldsymbol{A} \tag{4}
J(x)=t(x)I(x)−A+A(4)
2.2 MOF
本文的思想为结合两种传输率估计方法。具体而言,就是在边缘使用逐像素估计,而在非边缘使用逐块估计。如下图2所示,图2(a)为蓝色虚线框处边缘区域(即TME区域),图2(b)为该模型的核心思想(详见后文)。
该模型的公式化如下:
t
m
o
f
(
x
)
=
W
t
m
e
(
x
)
⋅
t
p
i
(
x
)
+
W
t
m
e
‾
(
x
)
⋅
t
p
a
(
x
)
(5)
t_{mof}(\boldsymbol{x})=\boldsymbol{W}_{t m e}(\boldsymbol{x}) \cdot t_{p i}(\boldsymbol{x})+\boldsymbol{W}_{\overline{t m e}}(\boldsymbol{x}) \cdot t_{p a}(\boldsymbol{x}) \tag{5}
tmof(x)=Wtme(x)⋅tpi(x)+Wtme(x)⋅tpa(x)(5)
t
m
o
f
t_{mof}
tmof为该模型得到的理想传输率图,
t
p
i
t_{pi}
tpi和
t
p
a
t_{pa}
tpa为逐像素和逐块传输率图,
W
t
m
e
\boldsymbol{W}_{t m e}
Wtme和
W
t
m
e
‾
\boldsymbol{W}_{\overline{t m e}}
Wtme为结合
t
p
i
t_{pi}
tpi和
t
p
a
t_{pa}
tpa两者的权重。因为
0
<
t
m
o
f
(
x
)
<
1
0 < t_{mof}(\boldsymbol{x}) < 1
0<tmof(x)<1,所以
W
t
m
e
+
W
t
m
e
‾
=
1
\boldsymbol{W}_{t m e}+\boldsymbol{W}_{\overline{t m e}} = 1
Wtme+Wtme=1。
正如前文所说,该模型原理为在边缘使用逐像素估计,而在非边缘处使用逐块估计。转换为数学公式,即在TME区域,最小化
t
m
o
f
t_{mof}
tmof和
t
p
i
t_{pi}
tpi和的差异,在非TME区域,最小化
t
m
o
f
t_{mof}
tmof和
t
p
a
t_{pa}
tpa的差异。结合
(
5
)
(5)
(5),有:
W
t
m
e
‾
(
x
)
≈
0
and
W
t
m
e
(
x
)
≈
1
,
x
∈
T
M
E
W
t
m
e
‾
(
x
)
≈
1
and
W
t
m
e
(
x
)
≈
0
,
x
∉
T
M
E
(6)
\begin{aligned} &\boldsymbol{W}_{\overline{t m e}}(\boldsymbol{x}) \approx 0 \text { and } \boldsymbol{W}_{t m e}(\boldsymbol{x}) \approx 1, \quad \boldsymbol{x} \in T M E\\ &\boldsymbol{W}_{t \overline{m e}}(\boldsymbol{x}) \approx 1 \text { and } \boldsymbol{W}_{t m e}(\boldsymbol{x}) \approx 0, \quad \boldsymbol{x} \notin T M E \end{aligned} \tag{6}
Wtme(x)≈0 and Wtme(x)≈1,x∈TMEWtme(x)≈1 and Wtme(x)≈0,x∈/TME(6)
如图2(b)所示。
该模型的目标函数如下:
min
t
m
o
f
∥
W
t
m
e
⋅
t
m
o
f
−
t
p
i
∥
2
2
+
∥
W
t
m
e
‾
⋅
t
m
o
f
−
t
p
a
∥
2
2
+
λ
t
∥
1
−
t
m
o
f
∥
2
2
+
R
(
t
m
o
f
)
(7)
\min _{t_{mof}}\left\|\boldsymbol{W}_{{t m e}} \cdot t_{mof}-t_{{pi}}\right\|_{2}^{2}+\left\|\boldsymbol{W}_{\overline{t m e}} \cdot t_{mof}-t_{{pa}}\right\|_{2}^{2} +\lambda_{t}\left\|1-t_{mof}\right\|_{2}^{2}+\boldsymbol{R}\left(t_{mof}\right) \\ \tag{7}
tmofmin∥Wtme⋅tmof−tpi∥22+∥Wtme⋅tmof−tpa∥22+λt∥1−tmof∥22+R(tmof)(7)
λ
t
\lambda_t
λt为标准化系数,用于避免无效输出。
R
(
t
m
o
f
)
\boldsymbol{R}\left(t_{mof}\right)
R(tmof)为平滑项。因为
W
t
m
e
\boldsymbol{W}_{t m e}
Wtme和
W
t
m
e
‾
\boldsymbol{W}_{\overline{t m e}}
Wtme为TME区域的掩模,所以首先需要从图像中识别出TME区域。
1) 获取 W t m e \boldsymbol{W}_{t m e} Wtme& W t m e ‾ \boldsymbol{W}_{\overline{t m e}} Wtme
从
(
3
)
(3)
(3)分析可知,TME区域可以大致的用如下公式提取:
D
t
=
max
[
(
1
−
α
d
p
a
)
−
(
1
−
α
d
p
i
)
,
0
]
(8)
D_{t}=\max \left[\left(1-\alpha d_{p a}\right)-\left(1-\alpha d_{p i}\right), 0\right] \tag{8}
Dt=max[(1−αdpa)−(1−αdpi),0](8)
其中, d p a d_{pa} dpa和 d p i d_{pi} dpi为 I / A \boldsymbol{I} / \boldsymbol{A} I/A的逐块和逐像素的暗通道。
由上可知:
d p a = min y ∈ Ω ( x ) [ min c ∈ { r , g , b } I c ( y ) A c ] d_{pa} = \min\limits_{y \in \Omega(x)}[\min\limits_{c \in \{r, g, b\}}\frac{I^c(y)}{A^c}] dpa=y∈Ω(x)min[c∈{r,g,b}minAcIc(y)]d p i = min c ∈ { r , g , b } I c ( y ) A c d_{pi} = \min\limits_{c \in \{r, g, b\}}\frac{I^c(y)}{A^c} dpi=c∈{r,g,b}minAcIc(y)
在非TME区域, d p a d_{pa} dpa和 d p i d_{pi} dpi两者相近,而在TME区域, d p a d_{pa} dpa要小于 d p i d_{pi} dpi。根据这一特性,可以提取TME区域。
如图3所示,图3(a)为
D
t
D_t
Dt,包含了很多纹理信息。但是判别TME区域不需要这些纹理信息,所以通过高斯滤波器进行滤波,结果(用
D
g
D_g
Dg表示)如图3(b)所示。之后再通过
t
a
n
h
tanh
tanh函数增强对比度,结果(用
D
f
D_f
Df表示)如图3(c)所示。可以到看,纹理信息很平滑,但是边缘信息仍然保留着。
定义
W
t
m
e
=
D
f
\boldsymbol{W}_{t m e} = D_f
Wtme=Df,
W
t
m
e
‾
=
1
−
D
f
\boldsymbol{W}_{\overline{t m e}} = 1 - D_f
Wtme=1−Df。
2) 单尺度融合模型
由上定义
W
t
m
e
=
D
f
\boldsymbol{W}_{t m e} = D_f
Wtme=Df,
W
t
m
e
‾
=
1
−
D
f
\boldsymbol{W}_{\overline{t m e}} = 1 - D_f
Wtme=1−Df,
(
7
)
(7)
(7)重写为:
min
t
m
o
f
∥
D
f
⋅
t
m
o
f
−
t
p
i
∥
2
2
+
∥
(
1
−
D
f
)
⋅
t
m
o
f
−
t
p
a
∥
2
2
+
λ
t
∥
1
−
t
m
o
f
∥
2
2
+
R
(
t
m
o
f
)
(9)
\min _{t_{mof}}\left\|D_f \cdot t_{mof}-t_{{pi}}\right\|_{2}^{2}+\left\|(1 - D_f) \cdot t_{mof}-t_{{pa}}\right\|_{2}^{2} +\lambda_{t}\left\|1-t_{mof}\right\|_{2}^{2}+\boldsymbol{R}\left(t_{mof}\right) \\ \tag{9}
tmofmin∥Df⋅tmof−tpi∥22+∥(1−Df)⋅tmof−tpa∥22+λt∥1−tmof∥22+R(tmof)(9)
从
(
9
)
(9)
(9)中不容易直接求出
t
m
o
f
t_{mof}
tmof,转化为下面两个步骤求解:
- 去除平滑项,直接求解下式:
t m o f ( x ) = D f ( x ) ⋅ t p i ( x ) + ( 1 − D f ( x ) ) ⋅ t p a ( x ) + λ t D f 2 ( x ) + ( 1 − D f ( x ) ) 2 + λ t (10) t_{m o f}(x)=\frac{D_{f}(x) \cdot t_{p i}(x)+\left(1-D_{f}(x)\right) \cdot t_{p a}(x)+\lambda_{t}}{D_{f}^{2}(x)+\left(1-D_{f}(x)\right)^{2}+\lambda_{t}} \tag{10} tmof(x)=Df2(x)+(1−Df(x))2+λtDf(x)⋅tpi(x)+(1−Df(x))⋅tpa(x)+λt(10)
本文中, λ t = 1 0 − 6 \lambda_t = 10^{-6} λt=10−6。
- 通过快速GD-GIF平滑 t m o f t_{mof} tmof,下面再讨论。
3) 多尺度融合模型
上述单尺度融合模型中,逐块估计传输率的块大小,该模型不能很好的处理不同分辨率的图像。因此作者提出了多尺度融合模型,即选择多个块大小的逐块融合传输率图,通过权重进行融合求得最终
t
m
o
f
t_{mof}
tmof。具体如下。
首先,需要确定不同的块大小
r
j
(
j
=
1
,
2
,
.
.
.
,
β
)
r^j(j = 1, 2, ..., \beta)
rj(j=1,2,...,β):
r
j
=
⌊
2
j
⋅
log
(
w
×
h
)
⌋
−
1
,
j
=
1
,
2
,
…
,
β
(11)
r^{j}=\lfloor 2 j \cdot \log (w \times h)\rfloor-1, \quad j=1,2, \ldots, \beta \tag{11}
rj=⌊2j⋅log(w×h)⌋−1,j=1,2,…,β(11)
有了不同尺度的块,通过
(
10
)
(10)
(10)可以求得
t
m
o
f
j
t_{mof}^j
tmofj,对于所有
t
m
o
f
j
t_{mof}^j
tmofj,通过不同权重融合成最终
t
m
o
f
t_{mof}
tmof:
t
m
o
f
=
∑
j
β
v
j
⋅
t
m
o
f
j
,
j
=
1
,
2
,
…
,
β
(12)
t_{m o f}=\sum_{j}^{\beta} v^{j} \cdot t_{m o f}^{j}, \quad j=1,2, \ldots, \beta \tag{12}
tmof=j∑βvj⋅tmofj,j=1,2,…,β(12)
v
j
v_j
vj为第
j
j
j个尺度逐块估计传输率的权重,
∑
j
β
v
j
=
1
\sum_{j}^{\beta} v^{j} = 1
∑jβvj=1,定义如下:
v
j
=
e
τ
⋅
∣
r
(
β
−
j
+
1
)
−
1
∣
∑
i
β
e
τ
⋅
∣
r
(
i
)
−
1
∣
,
j
=
1
,
2
,
…
,
β
(13)
\boldsymbol{v}^{j}=\frac{e^{\tau \cdot|r(\beta-j+1)-1|}}{\sum_{i}^{\beta} e^{\tau \cdot|r(i)-1|}}, \quad j=1,2, \ldots, \beta \tag{13}
vj=∑iβeτ⋅∣r(i)−1∣eτ⋅∣r(β−j+1)−1∣,j=1,2,…,β(13)
τ
\tau
τ为比例控制因子,
τ
\tau
τ越大表示权重的不均匀性越大。本文中,
τ
=
0.138
\tau = 0.138
τ=0.138。
通常在该模型中,
J
=
2
J = 2
J=2。
2.3 后处理
1) 快速梯度域引导图像滤波(GD-GIF)
为了抑制 ( 12 ) (12) (12)结果的纹理,增加对 t m o f t_{mof} tmof的快速GD-GIF。
原理详见Gradient Domain Guided Image Filter。
2) 曝光度增强
t
p
a
t_{pa}
tpa通常比
t
m
o
f
t_{mof}
tmof要大,这就导致通过
t
m
o
f
t_{mof}
tmof处理后的图像会偏暗。为了解决这一问题,增加如下自适应的曝光度拉伸:
min
S
∥
1
−
S
⋅
(
I
Y
/
J
Y
)
∥
2
2
+
λ
e
∥
S
−
1
∥
2
2
+
R
(
S
)
(14)
\min _{S}\left\|1-S \cdot\left(\boldsymbol{I}_{Y} / \boldsymbol{J}_{Y}\right)\right\|_{2}^{2}+\lambda_{e}\|S-1\|_{2}^{2}+R(S) \tag{14}
Smin∥1−S⋅(IY/JY)∥22+λe∥S−1∥22+R(S)(14)
这里没看懂。
3. 读后感
本文提出了一种解决逐块估计传输率固有的一个诟病“边缘伪影”的方法。实验结果不错,但是运行时间不是很理想,因为本方法中用到了许多技术,都是比较耗时的。