• 沒有找到結果。

第四章 車牌辨識系統

4.2 字元辨識系統

4.2.2 光學字元辨識

在這小節要討論的是字元辨識程序,如先前所提,攝影機拍攝的角度可能使 得車牌產生歪斜等情況,則辨識出來的字元可能會變形或是仍有雜訊存在,因此,

字元辨識的部分必須能容忍這些缺失。本研究在字元辨識所採用的方法包含三個 步驟:字元分類、拓樸排序(topological sorting)以及 self-organizing(SO)辨識。

第一個步驟,先把輸入的字元分類成數字或字母,此步驟可參考車牌的組合語意 學,接著計算出輸入的字元之拓樸性質且與文字樣板(template)做比對,若有合 適的文字樣板則可成為一組測試集合,此集合所代表的即為與輸入的字元最佳相 配的文字樣板,而樣板測試會在 SO 字元辨識程序中所執行。

(一) 拓樸分類:文字的拓樸特性包括洞口(hole)數量、端點(endpoint,一個節 點)、T 型節點(三個節點)以及 X 型節點(四個節點)(圖 4-4),這些特性 在空間轉換(旋轉、轉化等等)中保有不變性,然而輸入的字元往往都是不 完整的,故可能會遺失某些拓樸特性。以下規則是利用來拓樸排序:當一個

字元樣板適合某一輸入字元其滿足兩條件,第一是它們之間的洞口數差異數 在[1,-1]範圍之內,第二是它們之間任何類型的節點差異數在[2,-2]範圍之內,

而拓樸分類可以大量減少在測試集合中的字元樣板,因此可以降低字元辨識 的時間複雜度。

(a) 端點 (b) T 型節點 (c) X 型節點 圖 4-4、文字節點類型

(二) 樣板測試:在樣板測試中,主要是利用 SO 字元辨識方法來完成,此方法是 基於 Kohonen 所提出的 SO 神經網路[Koh 89]。其方法概念如下:給予一個 未知字元與一個字元樣板,輸入(input)字元則視為在神經網路中階層(layer)

之間的連結之突觸權重(synaptic weight),而文字樣板在這可視為一個刺激 物(stimulus)且使得神經網路中的神經元被激發,導致神經網路中的突觸權 重逐步地改變,而這些過程會持續到權重穩定下來為止。在這些過程中我們 將突觸權重的改變加總起來,這些改變的總和可以反映出未知字元與字元樣 板之間的相異程度。

C{ ,...,c1 cL}為一個未知的輸入字元其經過拓樸排序後的文字樣板

方程式來描繪,其表示為h r( ),其中 r 為一個位置向量。令uik為連接分別在

乙、實際實作:一開始,根據字元所擁有的洞數量我們把字元分類成 0 個洞、

1 個洞以及 2 個洞三類,每一類當中都會有各自相關的 SO 神經網路,其中 包含 40 個 SO 神經元與兩個輸入神經元,在這三類神經網路中最主要的差異 在於它們的 SO 階層結構,如圖 4-6 所示。

圖 4-6、SO 階層:(a) 0 個洞 (b) 1 個洞 (c) 2 個洞

參考圖 4-7 之範例,假設我們給予一個未知的字元(以“C”舉例),首 先將字元做正規化(1616 像素)目的是為了要與文字樣板大小一樣,接著 計算出字元中的洞數量。在此,輸入的字元(“C”)並沒有洞,所以便把 此字元歸類為 0 個洞的 SO 階層,此未知字元的輪廓(contour)以及文字長 度便可以得知,將文字長度分成近似等長的 40 個區間,接著從任一點開始 沿著輪廓得出二維的位置向量。從圖 4-7 的右半部可知,我們選擇 40 個點數 是因為此數字大約是所有字元樣板的平均輪廓點數之一半,而 40 個輪廓點 的位置向量依擷取順序分配 40 個 SO 神經元的權重向量。

圖 4-7、SO 字元辨識範例

考慮一個二維空間座標且座標軸對應到 SO 神經元的權重向量的兩個構 件,而每一個 SO 神經元的權重向量可在空間中當作一個點,此空間被稱為 神經網路的權重空間。在輸入字元之輪廓點的位置向量分配了 SO 神經元的 權重向量之後,若我們把 SO 神經元的權重向量表示成權重空間中的一個點,

輪廓將會在權重空間中重新建立。

假設從輸入字元之測試集合中所選出的樣板(以“L”舉例)要與字元 做比對,我們以字元的輪廓作為刺激樣本(stimulating pattern)而非整個字 元樣板,而此字元輪廓再三地使神經網路中的神經元被激發直到此突觸權重 穩定下來。在本研究當中,輪廓點一個一個注入到神經網路的輸入階層中。

考慮一個輸入輪廓刺激(stimulus)點 v,與 SO 神經元競爭之下,優勝神經ncnc arg(max1 i 40{w vi })來決定出,其中wi為 40 個 SO 神經元的權 重向量。優勝神經元的第一階(first-order)與第二階(second-order)鄰居稱 之為nc集合都必須加入學習過程:

( ),

k k k c c

w d g r r k N

    (4.15)

而在(4.13)式中的(vwk)被(4.15)式中的dk所取代。dk的計算方式 是利用彈簧模型(spring model)[Che 96],也就是 SO 神經元被假設成彈簧,

彈簧的彈性係數也被假設成神經元之間的突觸權重。參考圖 4-8,其表示出 SO 神經元以及它們的權重向量,權重wk1wk以及wk1分別代表的是 SO

1

nknk以及nk1,其中nkNc中的任何一個學習者,nk1nk1為兩個nk 的第一階鄰居,而此學習者與自己兩個鄰居用係數為uk1,k以及uk k, 1的彈簧 相連,最後刺激點在圖中用 v 來表示。

圖 4-8、彈簧模型

v 可視為一個有吸引力的來源,在學習過程中嚐試運用 fv力來牽引wk朝 有的力代入(4.16)式當中,神經元nk的位移(displacement)為:

2

因此真正在權重空間中的神經元nk之位移為( )t d g rk ( krc)。

累積在N 中所有神經元的位移,達到刺激點 v 的神經分佈,對於所有c 輸入刺激樣本的刺激點都重複上述過程,便能完成樣本的一次迭代,而迭代 會持續至沒有觀察到 SO 神經元有顯著的位移為止,所有 SO 神經元的位移 可視為一個未知字元與字元樣板之間的差異性之評估,圖 4-9 闡述了一些在 迭代過程中從字元“C”外型轉換至字元“L”的中間過程,在這個範例當中 全部的神經元位移總計為 147 個像素,根據實驗,正確文字樣板被選為測試 集合之位移分佈在[23,67]區間。

圖 4-9、一些外型轉換之中間過程(a) 第一次迭代 (b) 第五次迭代 (c) 第

10 次迭代 (d) 第 42 次迭代

丙、備註:本研究的字元辨識方法對於(8,B)以及(0,D)字元組較難以區 分,為了克服此困難,我們事先定義一個不確定性(ambiguity)集合包含了 字元 0、8、B 與 D,在集合中的每一個字元,差異性較大的區域可當作是特 徵區塊(圖 4-10),圖中紅色區域即為特徵區塊。在字元辨識過程中,只要

一個未知字元被分類至不確定性集合中的任一字元,就會額外開始更詳細的 文字比對,且只會針對特徵區塊來做區分。

(a) 數字 0 與字母 D (b) 數字 8 與字母 B 圖 4-10、相似字元之特徵區塊

相關文件