• 沒有找到結果。

以SVM為基礎之影像多階層化法

這章節將介紹利用灰階影像中的分類特徵點來 SVM 訓練,可將灰階影 像轉至兩階層影像,並且可以獲得一個高品質可適應之兩階層影像。基於 第三章的以 SVM 可適應兩階層門檻為基礎,這裡提出一個基於 SVM 可適 應多階層門檻方法。給定階層數(Level)和每一階層比例,在灰階影像中使 用遞迴門檻程序去定義出多門檻曲面。每次遞迴程序會定義出兩個 working level,一個是尚未處理的最低階層(lowest level),另一個假造的階層,它由 是剩下的尚未處理階層組合而成。在 working gray-level 影像呼叫兩階層門 檻方法,產生一個兩階層門檻曲面。每一次的處理都以相同遞迴程序處理,

以低階層像素(low level pixel)累加成多階層影像,而高階層像素(low level pixel)就像在一張新的灰階影像只有 valid pixels 而已。在遞迴終止後,累加 的多階層影像就是最後所要的多階層影像。實驗結果顯示,多階層影像比 全域多階層門檻方法更具有可適應性。。

4-1 從灰階影像擷取兩階層的訓練點

這小節將會說明如何從灰階影像取得 SVM 的兩階層訓練點。首先從灰 階影像獲得邊緣二值影像,然後切成很多個區塊,每一區塊根據邊緣二值 影像取得兩階層的特徵像素。

因為灰階影像中的物件有時會可能位在較偏暗點。在全域灰階影像 中,當物件和背景之間的灰階值非常相近的話,若要將物件精確從較偏暗

地方擷取出來是一件相當複雜的事情。然而,在灰階影像使用 High-Pass Convolution,產生一個全域輪廓二值影像。圖 4-1 (a)為 3*3 高通濾波回旋 積遮罩[28]。灰階影像使用 High-Pass Convolution 運算後,如果數值小於等 於零設為黑點,如果大於零則設為白點。圖 4-1,兩張灰階影像使用 High-Pass Convolution 後,對於全域的邊緣點描述能力非常好。值得注意的是,圖 4-1(c) 是圖 4-1(b)有消除區域後,並標示為粉紅色,且在消除區域的每一像素點的 灰階值都設為最大灰階值 255。區域的消除效果,在圖 4-1(c)二值邊緣影像 消除區域的周圍產生更多邊緣資訊。

(a)

高通濾波迴旋積

working gray- level image

邊緣二值影像

(b)

-1 -1 -1 -1 -9 -1 -1 -1 -1

working gray- level image

(c)

高通濾波迴旋積 邊緣二值影像

圖 4- 1(a)高通濾波回旋積遮罩。透過高通濾波回旋積產生邊緣的二值影像(b)戶外汽車 working gray-level image 並不含無效像素(c)相同的戶外汽車 working gray-level image 含

在灰階影像中,像素 P 其特徵點為 P. , x P. ,y P.glP.vl , 其 中 )

. , .

(Px P yP.gl為座標和灰階值。如果像素點 P 是有效的,它有一個擷取 特徵P.vlTrue;相反的,若不是則P.vlFalse。除此之外,參考在邊緣二 值影像的對應像素點,像素點 P 可以獲得更多額外的兩階層特徵點 blP. ,如 果像素點(P.x,P.y)在邊緣二值影像是黑點,則P.blLow。反之P.blHigh。 如 4-2 為一個範例。因為像素點P1是無效像素,而像素P2P3是有效像素,

P1.vlFalseP2.vlTrueP3.vlTrue。值得注意的是,當像素點相對 映的邊緣二值影像像素點為白點時,則像素 P 的P.vlFalseP.blHigh。 像素點P2P3P2.blLowP3.blHigh,是因為它們在邊緣二值影像相 對映的像素點是黑點和白點。

129

working gray- level image 邊緣二值影像

104 根據 SVM 預期的訓練樣本數,將 working gray-level image 分割成多個 區塊。圖 4-2 為分割的範例。N 為 SVM 訓練樣本預期數值。每一個區塊都

的特徵高像素 K H

Pi, ,可以從符合周圍的高像素獲得平均屬性值。圖 5-2 為一 範例。區塊K 會選擇紅色像素點為低像素i K L

Pi, ,特徵高像素是從兩個符合 的周圍高像素

W1

P 和P 混合而成,其標記為綠色。如果區塊沒有”Low”特徵W2

值,在這區塊中特徵低像素的特徵像素會設為 null。具有特徵高像素且不在 消除區域中,則它有”High”特徵值,且是擁有最小灰階值。最後如果區塊中 每一個像素點都是無效像素,則特徵低像素和特徵高像素則設為 null。在灰 階影像總共有

2

N 區塊,N 個 Instances,PK ,L

1PK,H

1PK ,L

2PK ,H

2 ,…, K L

P N , 2

/

H KN

P ,

2

/ ,擷取出後輸入 SVM 作訓練。值得注意,如果 K L

P i,K H

Pi, 若為 null,

則表示不會出現在 SVM 訓練中。

4-2 以 SVM 為基礎之影像多階層化演算法

基於兩階層特徵擷取,這小節將會說明多階層門檻的方法。

首先以基於 SVM 二值化,可以將 working gray level image 做二值化。

首定義 blP. 是像素點 P 在 working gray level image 中,working gray level image 將會切成

2

N 區塊。每一區塊都擁有自己的特徵低和高像素,如果有

必要的話,它可以被設為 null。特徵低和高像素指定為 SVM 的訓練樣本 )}

( ), ( { )},..., 2 ( ), 2 ( { )}, 1 ( ), 1 (

{P R P R P N R N 。從 working gray level image 到二值 化影像,這些受過 SVM 訓練分類像素之有效像素,輸出結果是含有無效像 素的二值化影像。圖 4-3(b)為 4-3(a)二值化的結果,其低階層比例為 0.42。

(d) (e) (f) (a) (b) (c)

圖 4- 3(a)原灰階影像(b)為二值化影像階層比例low 0.42。現在需求為 5 個階層,且 比例都是相同的1 2 ...5 0.2 (c) 第一次暫時的 IM IM.10.204(d)第 二 次 暫 時 的 IM IM.1 0.204 IM.2 0.208 (e) 第 三 次 暫 時 的 IM

204 . 0 .1

IM IM.2 0.208IM.3 0.199 IM.2 0.208(f)最後一次暫時的 IM 204

. 0 .1

IM IM.2 0.208IM.3 0.199IM.4 0.205IM.5 0.184 Algorithm 1: SVM-based bi-level thresholding method

Input: working gray-level image I with invalid pixels G

Output: 二 值 化 影 像 IB 和 訓 練 樣 本 )}{P(1),R(1 )}

2 ( ), 2 (

{P R ,…,{P(N),R(N)}

Begin

get the contour binary image of I G for each pixel P in IG

if pixel of (P.x,P.y) in the contour binary image is black,P.bl Low otherwise, P.blHigh

divide IG into blocks K1,K2,…, KN/2, where N is the expected number of training samples for SVM

for each block Ki

if pixel P with the largest gradient and P.blLow exists set pixel P as feature low-level pixel K L

Pi, of K i if qualified neighboring high-level pixels of K L

Pi, exist synthesize feature high-level pixel K L

Pi, by averaging features of the qualified neighboring high-level pixels

else

set P H

Ki., to null

set pixel P as feature high-level pixel K H

Pi, of K i else //all pixels of block K are invalid i

set K L

Pi, and K H

Pi, to null for 1,2,...,N2

i //set training instances for SVM set 1R(i) //the first class

set features PK L x

i, . ,PK L y

i, . and PK L gl

i, . of K L

Pi, as features of P(i) set ) 1

(  N2  i

R //the second class set features PK H x

i, . , PK H y

i, . and PK H gl

i, . of K H

Pi, as features of 2 )

( N i P

train SVM by {P(1),R(1)} )}{P(2),R(2 ,…,{P(N),R(N)}

for each valid P in I G

if SVM categorizes P as class “-1”, P is a low-level pixel else P is a high-level pixel

I is the resultant bi-level image B low

IB. (# of low-level pixels)/ (IB.W*IB.H)

return bi-level image I and B {P(1),R(1)} )}{P(2),R(2 ,…,{P(N),R(N)}

end

給定一灰階影像,指定 M 階層,l ,1 l ,…, 2 l ,階層比例為M1,2,…, M, 且必須滿足。l1<l2<…< lM

M

i i 1

 1。我們的目標是獲得一張 M 階層影 像,且 M 階層比例是理想適當。基於演算法 1,演算法 2 可以讓二值化影 像達到理想的比例。這個演算法首先會先呼叫演算法 1,取得一張二值化影 像 I , 如 果B I 中 的 低 階 層 比 例 非 常 靠 近 階 層 比 例B l , 例 如i

  | .

|IB low i ,則IB是我們所要的比例之影像,否則將進行調整程序。

如果IB中的低階層比例大於階層比例li,例如IB.low i,則方向的參數設 為-1,相反的方向參數設為1。當方向為-1時,訓練的instance之灰階值是 逐漸下降,調整訓練的instance,並再次訓練,然後得到新的IG且低階層比

為 1時,執行一樣的動作,而訓練的 instance之灰階值是逐漸上升。最後演 算法 2會回傳達到適當比例的二值化影像。

Algorithm 2: derive the bi-level image that fits the required level ratios

Input: working gray-level image I with invalid pixels, and the two required G levels l and i l(i1,M)

Output: bi-level image I that fits required level ratio Bi Begin

call algorithm 1 with argument I , and get G I and B {P(1),R(1)}

)}

2 ( ), 2 (

{P R ,…,{P(N),R(N)}

if I .Blow i  //achieved ratio near i return I B

else if IB.low i//more low-level pixels than expected direction=-1

calculate m //mean of gray levels of low-level pixels in low I B else//fewer low-level pixels than expected

direction=1

calculate mhigh//mean of gray levels of high-level pixels in I B while (True){

if direction==-1

1 2 }, 0 ,

* ).

( max{

).

( N

j m

gl j P gl

j

P   low  

else

N N j

m gl

j P gl

j

P   high 1 

}, 2 255 ,

* ).

( max{

).

( 

retrain SVM by the adjusted instances {P(1),R(1)}

)}

2 ( ), 2 (

{P R ,…,{P(N),R(N)}

SVM categorizes all valid pixels into I into levels G l or i l(i1,M)to get new I B

if ((direction==-1)and( I .Blow i  or IB.low i)) break else if ( I .Blow i  or IB.low i) break

}

return I B end

image,要注意的是I'GIGIMI'G是無效的像素集合,但在IM是非 null 的。這個演算法會定義兩個目前階層,分別為lil(i1,M)l(i1,M)是一個虛擬 階層(pseudo level),表示階層由l ,…, i1 lM組合而成。之後依據I'G呼叫演算 法 2,輸出的二值化影像IB,其中 l and i l(i1,M)為有達到適當階層比例

liIM包含了IB中的低階層像素;這總共會重複 M-1次,最後IM會包含了最後 的IB中的高階層像素,其輸出的 M階層影像比例是我們所想要的階層比例。

Algorithm 3: SVM-based multilevel thresholding method

Input: 灰階影像 I G 和階層l ,1 l ,…, 2 lM且階層比例為1,2 ,…, M Output: M 階層影像I M

Begin

null IM

for i=1 to M-1

M

G IG I

I'   //the non-null pixels in I are set as invalid pixels in M I'G derive pseudo level l(i1,M) representing combination of levels l ,…, i1

l M

call algorithm 2 with arguments I'G , l and i l(i1,M) , and get the resultant bi-level image I B

M

M I

I low-level pixels of I B

low B i

M I

I .  .

M

M I

I high-level pixels of I B

1

1

. 1

.

M

i

i M M

M I

I  

return M-level image I M end

在這個範例中,如圖4-3(a)原灰階影像現在需求為5個階層,且比例都 是相同的 0.2

... 5 2

1

。演算法3疊代將會有 4次(=5-1)暫時的IM,但 第四次暫時的IM,會加入最後的IB之高階層像素到最後的IM中。因此如圖 4-3(c)-(f)為三次暫時的IM和最後的IM。圖 4-3(c)第一次暫時的IM,為兩階 層,其IM1 0.204。(d)第二次暫時的IM,為三階層,其IM1 0.204和

IM3 0.199。(f)最後的IM,且為五階層,其IM1 0.204、IM2 0.208、 199

.

3 0

M

IIM4 0.205和IM5 0.184。

相關文件