1. 程式人生 > >影象分割(一)Contour Detection and Hierarchical Image Segmentation

影象分割(一)Contour Detection and Hierarchical Image Segmentation

三個部分:
gPb: global probability of boundary
OWT: Oriented Watershed Transform
UCM: Ultrametric Contour Map
針對各個畫素,計算其作為邊緣的權值(可能性)→用改進後的分水嶺演算法得到區域和邊界→對得到的邊界根據其差異性分層,通過設定閾值來得到細緻程度不同的邊界

gPb: 由mPb和sPb加權求和得到。
mPb:
||計算G(x,y,θ)
對灰度圖任意一個畫素,以其為圓心做圓,並用角度為θ的直徑將圓平分為兩個半圓。
對兩個半圓分別做直方圖統計,用得到的資料計算卡方距離:
X^2 (g,h)=1/2 ∑_i〖(g(i)-h(i))〗^2/(g(i)+h(i))
X^2 (g,h)即為G(x,y,θ),用其來表達θ方向上畫素點的梯度。
||計算mPb
將圖片分解到四個通道:brightness,color a,color b,texture,得到四幅影象。分別計算四個影象的G(x,y,θ)。
使用多個圓形直徑長度δ(作者使用了三個:δ/2,δ,δ),對每一個δ計算其G(x,y,θ)。
mPb(x,y,θ)=∑s∑_iα

(i,s) G_(i,σ(i,s) ) (x,y,θ)
公式含義:對每一個畫素,對其不同直徑下的四個通道的G(x,y,θ)進行加權計算。
sPb:
||計算W_ij
做對稱矩陣W:W_ij=exp⁡(-(_p∈ij^max){mPb(p)}/ρ)表徵畫素之間的相似度。
公式含義:i,j代表兩個距離不超過半徑r的畫素,找到這兩個畫素連成的線段上畫素的最大權值。(ρ=0.1)
||計算特徵向量
令D_ii=∑_jW_ij
由(D-W)ν= λDν,得到前n+1個特徵向量(n=16)。
將每一特徵向量看做一幅圖片,使用Gaussian Directional Derivative Filters對其進行卷積操作得到:{∇_θ ν_k (x,y)}
||計算sPb
sPb(x,y,θ)=∑〖1/√(λ_k ) 〖∙∇〗
θ ν_k (x,y) 〗
gPb:
gPb(x,y,θ)=∑s∑_iα(i,s) G_(i,σ(i,s) ) (x,y,θ)+γ∙sPb(x,y,θ)
最後對該gPb值做sigmoid函式變換,歸一化。

OWT:
對每一個畫素,代入八個固定角度θ∈[0,π],取其最大值作為權。(E(x,y,θ)即為gPb公式)
E(x,y)=〖max〗_θ E(x,y,θ)
則E(x,y)的大小即表徵了每個畫素是邊界的可能性。
以E(x,y)作為輸入,使用分水嶺演算法(WT),將影象轉化為許多區域和分水線。
||改進WT:
先使用原始WT計算得到區域和分水線;
對於每一個分水線,將其分割為許多線段;
計算每個線段的方向,用o(x,y)表示其方向;
使用E(x,y,o(x,y))重新計算每個點的E(x,y);
重新計算每個分水線的強度,即取每個線上所有畫素的權值的平均值作為最終權值。

UCM:
OWT演算法輸出細節度最高的區域集合。
作G=(Ρ_0,Κ_0,W(K_0)),W(K_0)是分水線的強度。
設兩個區域間的差異性為其共同邊界的強度平均值,使用基於影象的融合技術,以影象之間的差異性作為衡量標準,將各區域按照差異性從小到大排序,差異性小的區域被合併。
設定不同的閾值k,就可以得到不同細緻程度的分割(邊緣)。