参考文献
Chatzis S. P., Varvarigou T. A. A Fuzzy Clustering Approach Toward Hidden Markov Random Field Models for Enhanced Spatially Constrained Image Segmentation. IEEE Transactions on Fuzzy Systems 16(5) (2008) 1351-1361
该算法首次将隐Markov随机场模型引入FCM,达到了较好的分割效果。
1、隐Markov随机场模型
随机场是什么?打一个很简单的比喻:现在有一个农民,家里有几块地,开春了,要开始种庄稼,每一块地里种什么庄稼,都具有一个概率,所有位置的概率构成了随机场。
什么是Markov随机场?简单地说,就是某一块地种什么庄稼,只与这块地周围的地种什么庄稼有关,与更远的土地没有关系。
下面给出数学表达。对于图像分割,实际上就是给每个像素打标签,标签表明了每个像素被分进了哪个类别。假设想要将10个像素分成3个类,每个像素只能分进1类中。
令
Q
Q
Q为标签集
Q
=
{
1
,
2
,
3
}
Q=\{1,2,3\}
Q={1,2,3}
其中1表示第一个类,2表示第二个类,依次类推。
令S为索引集
S
=
{
1
,
2
,
.
.
.
,
10
}
S=\{1,2,...,10\}
S={1,2,...,10}
其中1表示第一个像素,2表示第二个像素,依次类推。
则对于任意
j
∈
S
j\in S
j∈S,有
x
j
∈
Q
x_j\in Q
xj∈Q,
x
j
x_j
xj为第
j
j
j个像素所属的类别,可以为1,也可以为2,等等。
此时定义一个概率分布
p
(
x
j
)
>
0
p(x_j)>0
p(xj)>0
表示第
j
j
j个像素为某个类别的概率。该概率分布,就是随机场。
OK,现在讨论Markov随机场~
前面说了,在Markov随机场中,某一个像素属于什么类别只与它周围像素属于什么类别有关系,那么显然,必须首先定义一个能够描述“周围”的方式,在数学上,这种方式为邻域。我们知道,每一个像素都拥有与其紧邻的像素(不考虑位于边缘的像素),即每一个像素都具有邻域。
令
∂
\partial
∂表示所有像素的邻域,即邻域系统。那么现在,就可以用数学语言来描述Markov随机场
p
(
x
j
)
=
p
(
x
j
∣
X
∂
j
)
p(x_j)=p(x_j|X_{\partial_j})
p(xj)=p(xj∣X∂j)
其中,
X
∂
j
X_{\partial_j}
X∂j表示一个集合,包含第
j
j
j个像素邻域中所有像素的类别。
然而,图像是二维的,从而,
j
j
j实际上是一个二维坐标,所以接下来,为了更加详细地描述,需要使用联合概率分布。Hammersley–Clifford理论证明,Markov随机场与Gibbs随机场的联合概率分布是等价的,则Markov随机场的联合概率分布为
p
(
x
j
)
=
p
(
x
j
∣
X
∂
j
)
=
exp
(
−
U
(
x
j
)
)
Z
p(x_j)=p(x_j|X_{\partial_j})=\frac{\exp(-U(x_j))}{Z}
p(xj)=p(xj∣X∂j)=Zexp(−U(xj))
其中,
Z
Z
Z是一个使
p
(
x
j
)
p(x_j)
p(xj)归一化的常数,
U
(
x
j
)
U(x_j)
U(xj)叫做能量函数。
U
(
x
j
)
=
∑
C
V
C
(
x
j
)
U(x_j)=\sum_CV_C(x_j)
U(xj)=C∑VC(xj)
其中,
V
C
(
x
j
)
V_C(x_j)
VC(xj)表示第
j
j
j个像素邻域中某一个基团C的势能,OK,如何表示势能呢,只能说八仙过海,各显神通,目前提出了多种势能表示方法,OK,那么什么是基团,简单地说,就是邻域里面,一个、两个或三个相邻的像素可以拉帮结伙,构成一个个小集团,分别为一阶基团、二阶基团或三阶基团。
人们发现,在实际应用中,
Z
Z
Z的计算量较大,需要一种近似计算方法减少计算量。1975年,J.Besag提出一种伪似然估计法,即
p
(
x
j
)
=
p
(
x
j
∣
X
∂
j
)
=
exp
(
−
∑
j
∈
C
V
C
(
x
j
)
)
∑
x
j
=
1
3
exp
(
−
∑
j
∈
C
V
C
(
x
j
)
)
p(x_j)=p(x_j|X_{\partial_j})=\frac{\exp(-\sum_{j\in C}V_C(x_j))}{\sum_{x_j=1}^3\exp(-\sum_{j\in C}V_C(x_j))}
p(xj)=p(xj∣X∂j)=∑xj=13exp(−∑j∈CVC(xj))exp(−∑j∈CVC(xj))
现在,Markov随机场已经被表示了出来。
然而,实际生活经验告诉我们,将所有像素一视同仁随便分类显然不科学,不同的像素需要根据其灰度值来进行分类,OK,现在引入另一个条件,像素灰度值。
令集合
R
R
R表示所有灰度值,有
R
=
{
0
,
1
,
2
,
3
,
4
,
5
,
.
.
.
,
255
}
R=\{0,1,2,3,4,5,...,255\}
R={0,1,2,3,4,5,...,255}
对于任意
j
∈
S
j\in S
j∈S,有
y
j
∈
R
y_j\in R
yj∈R,
y
j
y_j
yj表示第
j
j
j个像素的灰度。对于一张图像,每个像素的灰度,一定是事先就确定的。那么将灰度
y
j
y_j
yj与像素类别
x
j
x_j
xj放在一起,构成的联合概率分布
p
(
y
j
,
x
j
)
p(y_j,x_j)
p(yj,xj),就是隐Markov随机场。
接下来如何求解
p
(
y
j
,
x
j
)
p(y_j,x_j)
p(yj,xj),是得到隐Markov随机场的关键。
众所周知
p
(
y
j
,
x
j
)
=
p
(
y
j
∣
x
j
)
p
(
x
j
)
p(y_j,x_j)=p(y_j|x_j)p(x_j)
p(yj,xj)=p(yj∣xj)p(xj)
其中,
p
(
x
j
)
p(x_j)
p(xj)已经可以表示,它就是Gibbs随机场的联合概率分布,叫做隐含场,
p
(
y
j
)
p(y_j)
p(yj)叫做观测场。需要求解
p
(
y
j
∣
x
j
)
p(y_j|x_j)
p(yj∣xj),即已知第
j
j
j个像素的类别,它的灰度是多少的概率。一般地,可以利用正态分布,描述
p
(
y
j
∣
x
j
)
p(y_j|x_j)
p(yj∣xj),因为正态分布有参数,所以引入
θ
\theta
θ表示其所有参数,即
p
(
y
j
∣
x
j
)
=
p
(
y
j
∣
x
j
;
θ
x
j
)
=
N
x
j
(
μ
x
j
,
σ
x
j
)
p(y_j|x_j)=p(y_j|x_j;\theta_{x_j})=N_{x_j}(\mu_{x_j},\sigma_{x_j})
p(yj∣xj)=p(yj∣xj;θxj)=Nxj(μxj,σxj)
其中,
μ
x
j
和
σ
x
j
\mu_{x_j}和\sigma_{x_j}
μxj和σxj分别表示第
x
j
x_j
xj类中所有像素灰度值的均值与方差,一定记住,
x
j
x_j
xj表示的是类别标签。将
p
(
y
j
∣
x
j
)
p(y_j|x_j)
p(yj∣xj)画成图像的话,则横坐标为灰度值,纵坐标为概率值,由于分3类,则有3条高斯概率密度曲线。
现在,隐Markov随机场也被表示完成。
OK,现在将隐Markov随机场引入FCM中
2、基于隐Markov随机场的FCM—HMRF-FCM
首先,该算法利用了Ichihashi等人提出的一种基于KL信息惩罚的FCM方法,目标函数如下
J
=
∑
i
=
1
3
∑
j
=
1
10
u
i
j
d
i
j
+
λ
∑
i
=
1
3
∑
j
=
1
10
u
i
j
ln
(
u
i
j
π
i
j
)
J=\sum_{i=1}^3\sum_{j=1}^{10}u_{ij}d_{ij}+\lambda\sum_{i=1}^3\sum_{j=1}^{10}u_{ij}\ln(\frac{u_{ij}}{\pi_{ij}})
J=i=1∑3j=1∑10uijdij+λi=1∑3j=1∑10uijln(πijuij)
其中,
π
i
j
=
p
(
x
j
)
=
p
(
x
j
=
i
∣
X
∂
j
)
=
exp
(
−
∑
j
∈
C
V
C
(
a
i
j
)
)
∑
h
=
j
3
exp
(
−
∑
j
∈
C
V
C
(
a
h
j
)
)
\pi_{ij}=p(x_j)=p(x_j=i|X_{\partial_j})=\frac{\exp(-\sum_{j\in C}V_C(a_{ij}))}{\sum_{h=j}^3\exp(-\sum_{j\in C}V_C(a_{hj}))}
πij=p(xj)=p(xj=i∣X∂j)=∑h=j3exp(−∑j∈CVC(ahj))exp(−∑j∈CVC(aij))
a
i
j
=
(
x
j
=
i
,
X
θ
j
)
a_{ij}=(x_j=i,X_{\theta_j})
aij=(xj=i,Xθj),由于
X
θ
j
X_{\theta_j}
Xθj是一个集合,在实际应用中,不容易直接使用,一般利用平均场估计方法得到
X
θ
j
X_{\theta_j}
Xθj的估计,记为
x
θ
j
′
x'_{\theta_j}
xθj′,则
a
i
j
=
(
x
j
=
i
,
x
θ
j
′
)
a_{ij}=(x_j=i,x'_{\theta_j})
aij=(xj=i,xθj′)
本算法为简化操作,直接利用8邻域中的一阶基团像素标签表达能量函数
U
(
x
j
)
U(x_j)
U(xj),即
U
(
x
j
)
=
−
β
∑
j
=
1
10
∑
l
=
1
8
δ
(
x
j
−
x
l
)
U(x_j)=-\beta\sum_{j=1}^{10}\sum_{l=1}^8\delta(x_j-x_l)
U(xj)=−βj=1∑10l=1∑8δ(xj−xl)
其中,
x
l
x_l
xl为
x
j
x_j
xj的邻域
∂
j
\partial_j
∂j中的像素标签,则有
π
i
j
=
p
(
x
j
)
=
p
(
x
j
=
i
∣
X
∂
j
)
=
β
exp
(
−
∑
l
∈
∂
j
δ
(
i
−
x
l
)
)
∑
h
=
1
3
β
exp
(
−
∑
l
∈
∂
j
δ
(
h
−
x
l
)
)
\pi_{ij}=p(x_j)=p(x_j=i|X_{\partial_j})=\frac{\beta\exp(-\sum_{l\in \partial_j}\delta(i-x_l))}{\sum_{h=1}^3\beta\exp(-\sum_{l\in \partial_j}\delta(h-x_l))}
πij=p(xj)=p(xj=i∣X∂j)=∑h=13βexp(−∑l∈∂jδ(h−xl))βexp(−∑l∈∂jδ(i−xl))
其中
δ
(
x
j
−
x
l
)
\delta(x_j-x_l)
δ(xj−xl)为克罗内克函数,
δ
(
x
j
,
x
l
)
=
{
1
,
x
j
=
x
l
0
,
o
t
h
e
r
w
i
s
e
\delta(x_j,x_l)= \begin{cases} 1,x_j=x_l \\ 0, otherwise \end{cases}
δ(xj,xl)={1,xj=xl0,otherwise
通过拉格朗日乘子法,对
J
J
J最小化,得到隶属度
r
i
j
r_{ij}
rij、聚类中心
μ
i
\mu_i
μi、方差
σ
i
\sigma_i
σi的更新公式
r
i
j
=
π
i
j
exp
(
−
1
λ
d
i
j
)
∑
h
=
1
3
π
i
j
exp
(
−
1
λ
d
i
j
)
,
d
i
j
=
w
2
ln
(
2
π
)
+
1
2
ln
(
∣
μ
i
∣
)
+
(
y
j
−
μ
i
)
2
2
μ
i
r_{ij}=\frac{\pi_{ij}\exp(-\frac{1}{\lambda}d_{ij})}{\sum_{h=1}^3\pi_{ij}\exp(-\frac{1}{\lambda}d_{ij})},d_{ij}=\frac{w}{2}\ln(2\pi)+\frac{1}{2}\ln(|\mu_i|)+\frac{(y_j-\mu_i)^2}{2\mu_i}
rij=∑h=13πijexp(−λ1dij)πijexp(−λ1dij),dij=2wln(2π)+21ln(∣μi∣)+2μi(yj−μi)2
μ
i
=
∑
j
=
1
10
r
i
j
y
j
∑
j
=
1
10
y
j
\mu_i=\frac{\sum_{j=1}^{10}r_{ij}y_j}{\sum_{j=1}^{10}y_j}
μi=∑j=110yj∑j=110rijyj
σ
i
=
∑
j
=
1
10
r
i
j
(
y
j
−
μ
i
)
2
∑
j
=
1
10
r
i
j
\sigma_i=\frac{\sum_{j=1}^{10}r_{ij}(y_j-\mu_i)^2}{\sum_{j=1}^{10}r_{ij}}
σi=∑j=110rij∑j=110rij(yj−μi)2
算法步骤为:
1、随机初始化隶属度
r
i
j
r_{ij}
rij
2、根据隶属度,得到所有像素的类别标签
x
j
=
arg max
i
{
r
i
j
}
x_j=\argmax_i\{r_{ij}\}
xj=iargmax{rij}
3、计算先验概率
π
i
j
\pi_{ij}
πij
4、计算聚类中心
μ
i
\mu_i
μi和方差
σ
i
\sigma_i
σi
4、计算隶属度
r
i
j
r_{ij}
rij
5、若收敛,则输出
r
i
j
r_{ij}
rij,否则返回2
最终的分类标签为
x
j
=
arg max
i
{
r
i
j
}
x_j=\argmax_i\{r_{ij}\}
xj=iargmax{rij}