這章節將介紹利用灰階影像中的分類特徵點來 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.gl 和 P.vl , 其 中 )
. , .
(Px P y 和 P.gl為座標和灰階值。如果像素點 P 是有效的,它有一個擷取 特徵P.vl True;相反的,若不是則P.vl False。除此之外,參考在邊緣二 值影像的對應像素點,像素點 P 可以獲得更多額外的兩階層特徵點 blP. ,如 果像素點(P.x,P.y)在邊緣二值影像是黑點,則P.blLow。反之P.blHigh。 如 4-2 為一個範例。因為像素點P1是無效像素,而像素P2、P3是有效像素,
故P1.vl False、P2.vl True、P3.vl True。值得注意的是,當像素點相對 映的邊緣二值影像像素點為白點時,則像素 P 的P.vl False且P.blHigh。 像素點P2和P3的P2.bl Low和P3.bl High,是因為它們在邊緣二值影像相 對映的像素點是黑點和白點。
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
1 ,PK,H
1 ,PK ,L
2 ,PK ,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.208,IM.3 0.199 IM.2 0.208(f)最後一次暫時的 IM 其 204
. 0 .1
IM ,IM.2 0.208,IM.3 0.199,IM.4 0.205和IM.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 ,階層比例為M 1,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 B i 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 .B low i or IB.low i)) break else if ( I .B low i or IB.low i) break
}
return I B end
image,要注意的是I'G IG IM指I'G是無效的像素集合,但在IM是非 null 的。這個演算法會定義兩個目前階層,分別為li和l(i1,M),l(i1,M)是一個虛擬 階層(pseudo level),表示階層由l ,…, i1 lM組合而成。之後依據I'G呼叫演算 法 2,輸出的二值化影像IB,其中 l and i l(i1,M)為有達到適當階層比例
li。 IM包含了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
I 、IM4 0.205和IM5 0.184。