參考文獻
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 , . . . , 1 0 }
其中1表示第一個像素,2表示第二個像素,依次類推。
則對於任意j ∈ S j\in S j ∈ S ,有x j ∈ Q x_j\in Q x j ∈ Q ,x j x_j x j 爲第j j j 個像素所屬的類別,可以爲1,也可以爲2,等等。
此時定義一個概率分佈
p ( x j ) > 0 p(x_j)>0 p ( x j ) > 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 ( x j ) = p ( x j ∣ 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 ( x j ) = p ( x j ∣ X ∂ j ) = Z exp ( − U ( x j ) )
其中,Z Z Z 是一個使p ( x j ) p(x_j) p ( x j ) 歸一化的常數,U ( x j ) U(x_j) U ( x j ) 叫做能量函數。
U ( x j ) = ∑ C V C ( x j ) U(x_j)=\sum_CV_C(x_j) U ( x j ) = C ∑ V C ( x j )
其中,V C ( x j ) V_C(x_j) V C ( x j ) 表示第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 ( x j ) = p ( x j ∣ X ∂ j ) = ∑ x j = 1 3 exp ( − ∑ j ∈ C V C ( x j ) ) exp ( − ∑ j ∈ C V C ( x j ) )
現在,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 , . . . , 2 5 5 }
對於任意j ∈ S j\in S j ∈ S ,有y j ∈ R y_j\in R y j ∈ R ,y j y_j y j 表示第j j j 個像素的灰度。對於一張圖像,每個像素的灰度,一定是事先就確定的。那麼將灰度y j y_j y j 與像素類別x j x_j x j 放在一起,構成的聯合概率分佈p ( y j , x j ) p(y_j,x_j) p ( y j , x j ) ,就是隱Markov隨機場。
接下來如何求解p ( y j , x j ) p(y_j,x_j) p ( y j , x j ) ,是得到隱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 ( y j , x j ) = p ( y j ∣ x j ) p ( x j )
其中,p ( x j ) p(x_j) p ( x j ) 已經可以表示,它就是Gibbs隨機場的聯合概率分佈,叫做隱含場,p ( y j ) p(y_j) p ( y j ) 叫做觀測場。需要求解p ( y j ∣ x j ) p(y_j|x_j) p ( y j ∣ x j ) ,即已知第j j j 個像素的類別,它的灰度是多少的概率。一般地,可以利用正態分佈,描述p ( y j ∣ x j ) p(y_j|x_j) p ( y j ∣ x j ) ,因爲正態分佈有參數,所以引入θ \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 ( y j ∣ x j ) = p ( y j ∣ x j ; θ x j ) = N x j ( μ x j , σ x j )
其中,μ x j 和 σ x j \mu_{x_j}和\sigma_{x_j} μ x j 和 σ x j 分別表示第x j x_j x j 類中所有像素灰度值的均值與方差,一定記住,x j x_j x j 表示的是類別標籤。將p ( y j ∣ x j ) p(y_j|x_j) p ( y j ∣ x j ) 畫成圖像的話,則橫座標爲灰度值,縱座標爲概率值,由於分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 ∑ 3 j = 1 ∑ 1 0 u i j d i j + λ i = 1 ∑ 3 j = 1 ∑ 1 0 u i j ln ( π i j u i j )
其中,
π 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}))} π i j = p ( x j ) = p ( x j = i ∣ X ∂ j ) = ∑ h = j 3 exp ( − ∑ j ∈ C V C ( a h j ) ) exp ( − ∑ j ∈ C V C ( a i j ) )
a i j = ( x j = i , X θ j ) a_{ij}=(x_j=i,X_{\theta_j}) a i j = ( x j = 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}) a i j = ( x j = i , x θ j ′ )
本算法爲簡化操作,直接利用8鄰域中的一階基團像素標籤表達能量函數U ( x j ) U(x_j) U ( x j ) ,即
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 ( x j ) = − β j = 1 ∑ 1 0 l = 1 ∑ 8 δ ( x j − x l )
其中,x l x_l x l 爲x j x_j x j 的鄰域∂ 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))} π i j = p ( x j ) = p ( x j = i ∣ X ∂ j ) = ∑ h = 1 3 β exp ( − ∑ l ∈ ∂ j δ ( h − x l ) ) β exp ( − ∑ l ∈ ∂ j δ ( i − x l ) )
其中δ ( x j − x l ) \delta(x_j-x_l) δ ( x j − x l ) 爲克羅內克函數,
δ ( 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} δ ( x j , x l ) = { 1 , x j = x l 0 , o t h e r w i s e
通過拉格朗日乘子法,對J J J 最小化,得到隸屬度r i j r_{ij} r i j 、聚類中心μ 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} r i j = ∑ h = 1 3 π i j exp ( − λ 1 d i j ) π i j exp ( − λ 1 d i j ) , d i j = 2 w ln ( 2 π ) + 2 1 ln ( ∣ μ i ∣ ) + 2 μ i ( y j − μ 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 = 1 1 0 y j ∑ j = 1 1 0 r i j y j
σ 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 = 1 1 0 r i j ∑ j = 1 1 0 r i j ( y j − μ i ) 2
算法步驟爲:
1、隨機初始化隸屬度r i j r_{ij} r i j
2、根據隸屬度,得到所有像素的類別標籤x j = arg max i { r i j } x_j=\argmax_i\{r_{ij}\} x j = i a r g m a x { r i j }
3、計算先驗概率π i j \pi_{ij} π i j
4、計算聚類中心μ i \mu_i μ i 和方差σ i \sigma_i σ i
4、計算隸屬度r i j r_{ij} r i j
5、若收斂,則輸出r i j r_{ij} r i j ,否則返回2
最終的分類標籤爲x j = arg max i { r i j } x_j=\argmax_i\{r_{ij}\} x j = i a r g m a x { r i j }