Random Walk Algorithm
簡介
Random Walk 演算法是比較早的一種基於圖的方法,其原始論文 [1]
最早發在一個會議上, 後來經過修整發在期刊上 [2]
.
其主要思想是將影象構建成一個無向圖模型,然後通過求解對應的 ofollow,noindex">dirichlet問題 [3, 4]
得到分割結果。
本文主要介紹一些random walker 演算法的原理 , 推導過程 以及一些 實驗結果 。
基於圖的分割演算法基本概念
圖的基本概念
基於圖的分割方式被廣泛使用在自然影象以及醫學影象分割中,如 graph_cut , grab cut
, MRF-MAP
, CRF
, fc-crf
等等一些方法,本文主要介紹基於圖的其中一種方法,叫 random walk
演算法。
首先簡要介紹一些圖的基本概念:
一個圖模型是一組節點和邊的集合: ,其中
叫做圖節點(vertices, nodes),
叫做影象的邊,連線了一個影象的兩個節點
的邊我們用
表示。
每一條邊我們都給它定義一個權重 ,注意,這裡的權重需要滿足
。
還有一個概念是一個節點的 度(degree)
我們定義如下:
這個意思是每個節點的度等於和它相連的邊上的權重之和,表示了這個節點的一個屬性。
下面的這個圖就是一種將我們常見的2維影象表達成圖的一種方式(注意,我這裡說的是 一種方式
,說明還有其他的方式,比如下圖定義的是節點之間4連通的方式,我們還可以定義為8連通的方式,甚至定義為全連線的方式)。其中圓圈就表示影象的每個畫素,相連的曲線就表示每一條邊,並且這個邊還有一個對應的權重。

一種將2維影象用圖表達的方式
權重
在基於圖的影象分析演算法中,權重是一個基本的概念.一般來說,我們用一個函式來表達兩個節點之間的權重,從而可以有各種各樣的函式來表示它.這裡隨機遊走演算法使用的是高斯權重,其表達是如下:
其中 表示影象第i個節點處(也就是畫素i)的灰度值.
因此這個權重的意義我們可以理解如下,如果兩個相鄰畫素的灰度值越接近,那麼他們之間的權重越大,因此他們之間的聯絡也就越大.
Laplacian Martix (拉普拉斯矩陣)
拉普拉斯矩陣[4]可以反映出一個圖的很多有用資訊,其定義方式如下.
其中 就是公式(
)中的節點
的度,
表示節點
的權重.
我們可以用一個直觀的影象來解釋 Laplacian Martix
的概念,如下圖:

Laplacian Martix
一個 Laplacian Matrix
可以看成是一個 Degree Matrix
和一個 Adjacency Matrix
相減得到.
6
個節點,因此三個矩陣都用一個
的矩陣來表示.
- 影象的度矩陣(
Degree Matrix
)[6]揭示了圖中節點的性質,如圖左2所示.例如,如果我們將左1圖中兩個節點中的權重設定為1
,那麼因為節點5
中有三條邊從這個節點中止(也就是說有三條邊和節點5
相連),因此在Degree Matrix
為(5, 5)
的地方就設定為3,其他節點同理.此時我們結合公式(1)以及圖左2就可以理解什麼是Degree Matrix
了. - 影象的鄰接矩陣(
Adjacency matrix
)[7]解釋了兩個節點之間的關係.如圖右2所示.例如,當節點2
和節點1
之間有一條連線線時,那麼我們就將Adjacency matrix
的(1, 2)和(2,1)處設定為1,其他連線線同理類推.不難看出一條性質,就是Adjacency matrix總是沿著對角線對稱的. - 結合公式(
)(
)以及下圖,我們不難理解圖的
Laplacian Matrix
的概念.
隨機遊走演算法的思想
到這裡我們提前總結一下隨機遊走演算法的 主要思想 ,讀者可以讀完後面的內容再回來重新回顧這裡:
隨機遊走演算法將影象分割問題轉化成一個隨機遊走的任務(task)問題,通過將任務建模為一個離散的 Dirichlet
問題[4]並求解,從而得到分割結果.
一個例子
接下來我將舉一個例子來形象的解釋一下隨機遊走演算法是怎麼工作的[8,9]:

隨機遊走例子
假設我們有如下任務:一個隨即遊走者(random walker)的任務是沿著圖示的直線運動,每次只能運動相鄰的一個整數點.當他在點x(x=1,2,3,4)時,有兩種選擇,以0.5的概率向左走,或者以0.5的概率向右走.當他走到 5
點時,認為完成任務,也即到家;當走到 0
時,認為任務失敗,無論走到 0
還是 5
,都停止走動.
問題是: 求這個人在任意一點處到達點 5
的概率.
分析:
設 是
Random Walker
在到達0之前能夠到達5的概率,那麼 具有如下性質:
公式(5)和(6)表示:如果從0出發,由於直接停止運動,且不可能到達
5
點,因此概率為0;如果從5出發,直接就達到 5
點,且停止運動,因此概率為1.
公式(7)表示 Random Walker
從任意一個其他點出發,到達 5
點的概率.這個公式直接看可能有點不好理解,我們可以這樣解釋它:假設 E
是事件 小人從點x[x=1,2,3,4]到達節點5
, F
是事件 小人從x點先向左走
, G
是事件 小人從x點先向右走
,顯然F和G是不能同時發生的,且我們從題目中已經知道 向左走和向右走的概率分別是0.5
,因此有下面的公式:
對比公式(8),我們不難理解公式(7)的意義.
結合公式(5-7),我們可以得到下面一組方程:
整理之後如下:
可見,上述的一個求任意一點到達節點 5
的概率問題,被我們轉化為一個求解一組線性方程組的問題,因為係數矩陣為滿秩矩陣,因此方程組必有一組解.
簡單推導
直觀理解
注意:隨機遊走演算法需要事先人為的劃定一些點作為標記點,比如,如果我們要在背景中將前景的某個物體分割出來,就必須在背景中選取一個或者一組點,並且在前景也選取一個或一組點作為初始條件.類比上面的例子,就好像我們讓 一樣.否者線性方程組無法求解.
對於沒有標記的點,我們需要分別計算這個點隨機在整個圖中隨機遊走的過程中 首次 到達前景和背景的概率,然後取概率大一類的作為該點所屬的類別.如下圖所示:

隨機遊走演算法摘自文獻[2]
分別代表
三個部分中的一個代表的點. 和剛才的例子類似,我們需要計算出三張圖,即左下,右下,右上這三張圖,每張圖代表沒有標記的點 首次 隨機遊走到不同標記點的概率,然後取最大的概率對應的label作為該點所屬的類別,從而達到分割的目的.
公式推導
演算法主要優化如下問題:
其中
x
表示待分割影象對應的圖向量, L
是其對應的拉普拉斯矩陣.
為了求解公式(15),我們把圖上的節點分為兩部分,一部分是已經標記的記為 ,另一部分為沒有標記的記為
,並且重新組合拉普拉斯矩陣為如下格式:
則
D
對
求導並令導數為0,我們可以得到下面的等式:
s
用函式的方式對應起來,即
,其中 s
的取值最大為K,K即影象中要分割的區域數.
令
則有:
將s個方程組合到一起,有:
剩下的任務就是使用優化演算法如 共軛梯度下降
來求解線性方程組(也即公式(21))了.
注意
上述推導過程只是粗略的把過程寫了一下,至於為什麼能夠把首達問題轉化為 Dirichlet
問題?為什麼可以通過優化公式(15)就可以得到分割結果? Laplacian
矩陣是如何構建的?以及一些推導的細節問題這裡不過多介紹,詳情請參考文獻[1,2].另外再插一句, 在實現過程中,其核心部分在於構建 Laplacian
矩陣 和矩陣
.詳情參考 原始碼 .
實驗結果

隨機遊走演算法分割結果
參考文獻
[1] L. Grady and G. Funka-Lea, “Multi-label Image Segmentation for Medical Applications Based on Graph-Theoretic Electrical Potentials,” in Computer Vision and Mathematical Methods in Medical and Biomedical Image Analysis, vol. 3117, M. Sonka, I. A. Kakadiaris, and J. Kybic, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2004, pp. 230–245.
[2] L. Grady, “Random Walks for Image Segmentation,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 28, no. 11, pp. 1768–1783, Nov. 2006.
[3] https://en.wikipedia.org/wiki/Dirichlet_problem
[4] [1]L. Grady and E. L. Schwartz, “Anisotropic Interpolation on Graphs: The Combinatorial Dirichlet Problem,” p. 19.
[5] https://en.wikipedia.org/wiki/Laplacian_matrix
[6] https://en.wikipedia.org/wiki/Degree_matrix
[7] https://en.wikipedia.org/wiki/Adjacency_matrix
[8] Random Walks分割
[9] P. G. Doyle and J. L. Snell, “Random walks and electric networks,” p. 118.