介紹
綜述
我將會用三篇博客來同大家討論Graph Cut技術在圖像分割上的應用,歡迎各位在評論中留言討論。
這三篇內容分別是
(TODO list)
- MAP-MRF
- Max-flow/Min-cut
- Grab-cut
這三篇文章先是從estimation theory的角度討論MAP-MRF從而可以引出:通過求一個能量函數的最小化來解決圖像分割問題。這也就等同於 Max-flow/Min-cut問題,最後Max-flow的“升級版”是Grab-cut
在本篇中我將討論MAP-MRF,目的是理解了MAP-MRF會幫助我們理解Max-flow。
圖像分割及其應用方向
作爲系列博文的第一篇,我感覺有必要先提及一下什麼是圖像分割。顧名思義,我們利用模型將一張圖片分成幾個子區域,每個區域內的像素屬於同一個類別,這要求子區域內像素具有相同的特徵。現如今,主要流行的方法是CNN那一支,但是傳統的方法依舊具有很好的潛力。現在,CNN上空浮現着一層陰影那就是我們對於一個特定的網絡,很難回答在訓練過程中究竟發生了什麼。而且CNN對超參很敏感,需要不斷的實驗來得到一個理想的結果。
而通過回顧傳統的方法,可以加深對CNN的理解,也是本篇寫作的出發點,因此我在此討論的更多是公式和思想,代碼實現不在此文範圍內(請查看opencv源碼,如果有需要的話)。
應用方向有很多,比如醫學中,可以用圖像分割來處理x光CT掃描照片,也可以用來做細胞分割等等。在生活場景中可以用來做物品識別。影視行業拿來做摳圖也是可以的,等等。而需要強調的是,凡是具有圖片性質的數據,都可以用圖像分割的技術來幫助分類與定位。
MAP-MRF簡介
MAP-MRF是Maximum a posteriori Markov random fields的縮寫。中文名應該是最大化後驗馬可夫隨機場。MAP-MRF有很廣泛的應用,而在圖像處理領域中,它可以用來做圖像分割。在本文中我們可以看到,MAP-MRF等同於求能量方程的最小值。
MAP-MRF詳情
下文基於**二元圖像分割(binary segmentation)**進行討論
定義
在一個圖片中我們先定義一個集合, 用來表示每一個像素。
我們用集合來表示每一個像素所隸屬的類別,在二元圖像分割中. 0對應背景,1對應前
景。
接着我們定義一個場,
這裏的也叫做場的配置(configuration)
既然是馬可夫場我們還需要定義一個領域系統. 就是像素的領域。
是馬可夫隨機場 當且僅當
- 這也意味着的值只取決於領域內的的值。
我們可以知道吧MRF轉化成Gibbs 分佈,從而可以得到如下公式
(1)
其中c是clique的意思,在圖像處理中這個c等同於我們定義的N。是clique potential, 其實就是一個用來描述區域內像素關係的量。所以在圖像處理這一塊我們可以用鄰域系統來描述clique, 如下的公式:
(2)
- 其中V_{p,q}是用來衡量兩個相鄰像素間的相似程度的函數,隨便你怎麼設計。但是通常要求:
- 非負
- 值的大小於像素間的相似性成正比,於Euclidean距離成反比。
圖像分割問題就是我觀察到一個圖像記作集合,它包含了每一個像素觀測到的值。我需要估算的是 這麼一個likelihood。
根據Bayes’ Law我們可以寫出:
(3)
其中已經在**(2)**中給出了,而是數據分佈情況,是實現知道的。比較簡單的是建立一個直方圖的來獲取它。
那麼這個 MAP 的過程可以寫成對於f:
-
-
-
-
可以看到MAP-MRF 最終可以表示爲求能量方程最小值的問題。 這是一個NP-hard問題,於是就有了很多種的圖割算法來算近似解以提高效率。下一篇博文我將介紹什麼是Max-flow/Min-cut