马尔科夫随机场定义
图片的椒盐噪声可以利用马尔科夫随机场进行滤除。
图像的马尔科夫随机场可形式化地定义如下:
1.位置集合 S = { 1 , 2 , ⋯ N } S=\{1,2,\cdots N\} S={1,2,⋯N}。位置集合中的每一个元素对应图像中的一个像素;
2.一组随机变量 { w n } n = 1 N \{w_n\}^N_{n=1} {wn}n=1N。其中每一个随机变量与位置集合中的一个元素相关联;
3.每一个位置元素都有一个邻居集合 { N n } n − 1 N \{N_n\}_{n-1}^N {Nn}n−1N.
马尔科夫随机场满足马尔可夫性:
P
r
(
w
n
∣
w
S
n
)
=
P
r
(
w
n
∣
w
N
n
)
P_r(w_n|w_{S\\n}) = P_r(w_n|w_{N_n} )
Pr(wn∣wSn)=Pr(wn∣wNn)
因此,马尔科夫随机场可以将变量的联合概率描述为势函数的乘积,即
P
r
(
w
)
=
1
Z
∏
j
=
1
J
ϕ
j
[
w
C
j
]
,
P_r(w) = \frac{1}{Z}\prod_{j=1}^J \phi_j[\mathbf{w}_{C_j} ],
Pr(w)=Z1j=1∏Jϕj[wCj],
其中 ϕ j [ • ] ≥ 0 \phi_j[•]\ge0 ϕj[•]≥0表示第j个势函数。势函数的设置与变量 C j ⊂ { 1 , ⋯ , N } C_j \subset \{1,\cdots,N\} Cj⊂{1,⋯,N}有关。
将模型表示为Gibbs分布如下:
Pr
(
w
)
=
1
Z
exp
[
−
∑
j
=
1
J
ψ
j
[
w
C
j
]
]
\operatorname{Pr}(\mathbf{w})=\frac{1}{Z} \exp \left[-\sum_{j=1}^{J} \psi_{j}\left[\mathbf{w}_{C_{j}}\right]\right]
Pr(w)=Z1exp[−j=1∑Jψj[wCj]]
其中 ψ [ • ] = − l o g [ ϕ [ • ] ] \psi[•] = − log[\phi[•]] ψ[•]=−log[ϕ[•]]表示代价函数,可以返回正值或负值。
图像去噪的模型表示
在滤除椒盐噪声时,
待去噪图像表示为一组变量
x
=
{
x
1
,
x
2
,
⋯
,
x
n
}
\mathbf{x}=\{x_1,x_2,\cdots,x_n\}
x={x1,x2,⋯,xn},其中每一个代表图像所包含的所有灰度值。我们的目的为求解添加噪声前的原始图像
w
=
w
1
,
w
2
,
⋯
,
w
n
\mathbf{w}={w_1,w_2,\cdots,w_n}
w=w1,w2,⋯,wn,其中的每一个变量也代表灰度值。
模型示意图如图1.
马尔科夫随机场的团由图像的网格结构中的相邻像素对组成,即每个像素与其上、下、左、右的像素点组成的像素对。因此,
Pr
(
w
1
…
N
)
=
1
Z
exp
[
−
∑
(
m
,
n
)
∈
C
ψ
[
w
m
,
w
n
,
θ
]
]
\operatorname{Pr}\left(w_{1 \ldots N}\right)=\frac{1}{Z} \exp \left[-\sum_{(m, n) \in \mathcal{C}} \psi\left[w_{m}, w_{n}, \boldsymbol{\theta}\right]\right]
Pr(w1…N)=Z1exp
−(m,n)∈C∑ψ[wm,wn,θ]
ψ [ w m = j , w n = k , θ ] = θ j k \psi\left[w_{m}=j, w_{n}=k, \boldsymbol{\theta}\right]=\theta_{j k} ψ[wm=j,wn=k,θ]=θjk
其中参数 θ j k \theta_{jk} θjk定义了代价函数。当j和k的差值较小时, θ j k \theta_{jk} θjk也较小。因此该代价函数鼓励大多数平滑的去噪方案。
图像去噪需要求解的是
w ^ 1 … N = argmax w 1 … N [ Pr ( w 1 … N ∣ x 1 … N ) ] = argmax w 1 … N [ ∏ n = 1 N Pr ( x n ∣ w n ) Pr ( w 1 … N ) ] = argmax w 1 … N [ ∑ n = 1 N log [ Pr ( x n ∣ w n ) ] + log [ Pr ( w 1 … N ) ] ] \begin{aligned} \hat{w}_{1 \ldots N} & =\underset{w_{1} \ldots N}{\operatorname{argmax}}\left[\operatorname{Pr}\left(w_{1 \ldots N} \mid \mathbf{x}_{1 \ldots N}\right)\right] \\ & =\underset{w_{1 \ldots N}}{\operatorname{argmax}}\left[\prod_{n=1}^{N} \operatorname{Pr}\left(x_{n} \mid w_{n}\right) \operatorname{Pr}\left(w_{1 \ldots N}\right)\right] \\ & =\underset{w_{1 \ldots N}}{\operatorname{argmax}}\left[\sum_{n=1}^{N} \log \left[\operatorname{Pr}\left(x_{n} \mid w_{n}\right)\right]+\log \left[\operatorname{Pr}\left(w_{1 \ldots N}\right)\right]\right] \end{aligned} w^1…N=w1…Nargmax[Pr(w1…N∣x1…N)]=w1…Nargmax[n=1∏NPr(xn∣wn)Pr(w1…N)]=w1…Nargmax[n=1∑Nlog[Pr(xn∣wn)]+log[Pr(w1…N)]]
应用贝叶斯法则并转换到对数域后,上述可以写为
w ^ 1 … N = argmax w 1 … N [ ∑ n = 1 N log [ Pr ( x n ∣ w n ) ] − ∑ ( m , n ) ∈ C ψ [ w m , w n , θ ] ] = argmin w 1 … N [ ∑ n = 1 N − log [ Pr ( x n ∣ w n ) ] + ∑ ( m , n ) ∈ C ψ [ w m , w n , θ ] ] = argmin w 1 … N [ ∑ n = 1 N U n ( w n ) + ∑ ( m , n ) ∈ C P m n ( w m , w n ) ] , \begin{aligned} \hat{w}_{1 \ldots N} & =\underset{w_{1} \ldots N}{\operatorname{argmax}}\left[\sum_{n=1}^{N} \log \left[\operatorname{Pr}\left(x_{n} \mid w_{n}\right)\right]-\sum_{(m, n) \in \mathcal{C}} \psi\left[w_{m}, w_{n}, \boldsymbol{\theta}\right]\right] \\ & =\underset{w_{1 \ldots N}}{\operatorname{argmin}}\left[\sum_{n=1}^{N}-\log \left[\operatorname{Pr}\left(x_{n} \mid w_{n}\right)\right]+\sum_{(m, n) \in \mathcal{C}} \psi\left[w_{m}, w_{n}, \boldsymbol{\theta}\right]\right] \\ & =\underset{w_{1 \ldots N}}{\operatorname{argmin}}\left[\sum_{n=1}^{N} U_{n}\left(w_{n}\right)+\sum_{(m, n) \in \mathcal{C}} P_{m n}\left(w_{m}, w_{n}\right)\right], \end{aligned} w^1…N=w1…Nargmax n=1∑Nlog[Pr(xn∣wn)]−(m,n)∈C∑ψ[wm,wn,θ] =w1…Nargmin n=1∑N−log[Pr(xn∣wn)]+(m,n)∈C∑ψ[wm,wn,θ] =w1…Nargmin n=1∑NUn(wn)+(m,n)∈C∑Pmn(wm,wn) ,
其中 U n ( w n ) U_{n}\left(w_{n}\right) Un(wn)表示像素n处的一元项,而 P m n ( w m , w n ) P_{m n}\left(w_{m}, w_{n}\right) Pmn(wm,wn)表示图像中相邻位置 w m w_m wm和 w n w_n wn的灰度值(标签)为m和n的代价函数。
最大流定义
关于代价函数的优化,我们可以将马尔科夫随机场的推理过程转换为最大流问题。
我们首先考虑二值化图像的情况。二值化图像的代价函数可以设置为以下函数。
P m n ( w m , w n ) = { θ 00 w m = 0 , w n = 0 θ 10 w m = 1 , w n = 0 θ 01 w m = 0 , w n = 1 θ 11 w m = 1 , w n = 1 P_{mn}(w_m,w_n) = \begin{cases} \theta_{00} & w_m=0,w_n=0 \\ \theta_{10} & w_m=1,w_n=0 \\ \theta_{01} & w_m=0, w_n=1 \\ \theta_{11} & w_m=1, w_n=1 \\ \end{cases} Pmn(wm,wn)=⎩ ⎨ ⎧θ00θ10θ01θ11wm=0,wn=0wm=1,wn=0wm=0,wn=1wm=1,wn=1
其中 θ 10 , θ 01 > 0 \theta_{10},\theta_{01} > 0 θ10,θ01>0.
之后我们将MAP模型转换为一个图模型。图像中的每一个像素对应图模型中的一个顶点,图像中的每一对相邻像素点之间都构建一对有向边。之后,在图模型中额外构建两个顶点:源点和汇点。源点到除汇点外的所有顶点拥有一条有向边,除源点外的所有顶点到汇点拥有一条有向边。将图模型简化为只有3个像素点的情况,模型表示如图2.
当最小割切割到相邻像素顶点之间的边时,需要加上相应的代价函数。之后再加上所有像素点的一元项即为所求算式的最优解。求解实例如图3.
对于灰度图像,我们可以定义合适的代价函数,鼓励平滑的情况。但我们定义的代价函数需要满足非凸条件才能转化为最大流图模型进行优化计算。
如图4,a) 二次函数
P
m
n
(
w
m
,
w
n
)
=
κ
(
w
m
=
w
n
)
2
P_{mn}(w_m,w_n)=\kappa(w_m=w_n)^2
Pmn(wm,wn)=κ(wm=wn)2是凸函数,不能作为图模型的代价函数;b) 截断二次函数
P
m
n
(
w
m
,
w
n
)
=
min
(
κ
1
(
w
m
=
w
n
)
2
,
κ
2
)
P_{mn}(w_m,w_n)=\min(\kappa_1(w_m=w_n)^2,\kappa_2)
Pmn(wm,wn)=min(κ1(wm=wn)2,κ2)是非凸函数,可以作为图模型的代价函数;c) Potts模型
P
m
n
(
w
m
,
w
n
)
=
κ
(
1
−
δ
(
w
m
−
w
n
)
)
P_{mn}(w_m,w_n)=\kappa(1-\delta(w_m-w_n))
Pmn(wm,wn)=κ(1−δ(wm−wn))为非凸函数。
MAP模型求解的不足
在本次实验的实际操作中我并没有使用MAP模型进行灰度图像的去噪任务,原因如下:
经实验,当待去噪图像的噪声比例过大时,MAP模型的先验信息过少,去噪效果较差;此外,
像素n处的一元项
U
n
(
w
n
)
U_{n}\left(w_{n}\right)
Un(wn)难以找到合适的经验值进行实际的去噪任务,很容易出现将灰度图片平滑为全白或全黑的情况。
参考文献
S. J. D. Prince, Computer Vision: Models, Learning, and Inference. Cambridge University Press, 2012.