第三章 統一發票對獎系統演算法
3.6 數字辨識
3.6.3 圖片分類
在經過一連串的前處理後,發票數字只剩少許的傾斜,加上原本就有的固定 字型與只有十種變化的特性,因此,本文的圖片分類使用系統複雜度低,速度較 快的樣版比對,但是畢竟是透過光學鏡頭所取得的圖片,少許的扭曲與傾斜,甚 至是字元破碎都會令前處理完的圖片與樣本有部份的差異,所以單一種的樣版比 對正確率相當有限,因此本文使用最小距離法、最大相似度法與區域比對法,組 合成一個階段式的分類器來分類10 種類型的圖片,先用一個方法做第一層分類
,再將容易錯誤的字元進行第二階段的檢查。
3.6.3.1 樣版取樣法
有效的樣版會直接影響辨識的正確率,所以如何取一個有效的樣版是樣版比 對的第一個重要工作,為了增加單一樣版的可靠度,所以取樣版的方式是採用統 計的方法,先手動將樣版的素材進行分類,每個數字各取 Numpattern張人眼可清 楚辨識的正規化二值化數字圖片,對一系列的同樣數字的圖片進行統計(i,j) 位置黑點出現的機率,接著將黑點的張數除以總數 Numpattern得到指定位置黑點 出現的機率Pblack n, ( , )i j (會在之後的最大相似度中使用),越接近 1 表示為黑點的 機率越高,越接近0 表白點的機率越高,將 0~1,轉換為圖片的強度值 0~255 可 以得到如圖3-49 等 10 張灰度值樣版,放大八倍的灰階圖像如圖 3-50。
圖3-49 原始大小的灰階樣版
圖3-50 放大 8 倍的灰階圖像
圖中顏色越深的表示越可能為黑色,顏色越淺的表示越可能為白色,使用 150 進行二值化可以得到圖 3-51,放大八倍的結果圖 3-52。
圖3-51 原始大小的二值化樣版
圖3-52 放大 8 倍的二值化樣版
不同的樣版比對法使用的樣版也會有所不同,依此類推,如果使用的特徵為 Distance Transform,就必需先將取樣圖像轉為 distance Transform 的表示方法,
如圖3-53 所示。
圖 3-53 數字圖片 7 的 distance transform 轉換結果
每一個數字取Numpattern張樣本計算出每個位置的distance transform 平均,
就可以得到十個distance transform 的樣版。
3.6.3.2 最小距離法
最小距離法[51]為比較樣本與測試圖片每個位置的差異,如果差異越小,表 示兩張圖片越接近,其演算法為計算出樣版圖片與測試圖片相同位置的強度差,
如圖3-54 所示,然後將所有位置差值進行加總得到 dn式(3.41)。
一 =
測試 樣版 相異點數=24
圖3-54 樣版圖片與測試圖片相異情形分佈示意圖
1 1 0 0
( , ) ( , )
M N
n n
x y
d f x y g x y
− −
= =
=
∑∑
− (3.41)對應到數字辨識,其中 f 為測試圖片,g 為樣版圖片,x、y 為圖像座標(原 點在左上角),n 為樣版數字的號碼 0-9,共有 10 個,M 為寬,N 為高。每張圖 片對應到一個樣版會有一個dn,對十個數字進行比對,可得到10 個 dn,dn最小
的圖片就是比對的結果(式 3.42)。
arg(min( ))resultmatch = di (3.42)
最小距離法原本使用強度差來當做差異的比較參數,可是強度差容易受到數 字傾斜或是不同粗細的字體所帶來的影響,在此之前我們有提到使用不同的特徵 會影響辨識的結果,所以本文改用包含較完整資訊的 distance transform 圖像做 為比較的參數,如此一來就可以大幅增加辨識可靠度。
black n black n
i j
white n black n
P = −P (3.44)
white n white n
i j
Similarity =α Similarity +β Similarity (3.46) 換句話說就是如果在測試樣本在指定位置為黑點時,就將黑點的相似度放大
α 倍,為白點時,將白點的相似度放大 β 倍,最後將所有的位置加總起來,就可 以得到相似度的值,如果相似度越大,十個數字樣版共可得到十個相似度,其比 對出來的相似度越大,就表示與該樣版越接近,比對的結果就是最大相似度的樣 版,越有可能是對應的英文字器或數字(式 3.47)。
arg(max(resultmatch = Similarityn)),..n=0~ 9 (3.47)
3.6.3.4 階段式樣版比對法
文獻常用搭配不同比對方法來提升正確率的方式[51],來改善單一方法的樣 版比對法正確率有限的缺限(見 4.7 節),為了提升辨識的效果,本文使用前兩節 的技術,實作出一套適用於統一發票自動對獎的階段式樣版比對法,用以達到系 統高辨識率的目標。發票的數字除了1 以外皆有一定的寬度,正規化後的 1 會產 生嚴重的形變套到分類器反而會造成誤判,所以系統一開始先將正規化前寬高比 小於1/3 數字過濾出來,並直接將辨識結果指定為數字 1,雖然此舉可以過濾出 大部份的數字1,但是仍有少數的 1 寬度較寬,仍需透過分類器分類,接下來使 用最大相似度法將測試圖像分為十類,並將容易混淆數字進行分類,進行二次分 類,流程圖如圖3-55。
最大相似度法
distance 區域性 transform 最小距離法
單一數字圖像 第一次 錯別字清單 辨識結果
比對結果
圖3-55 階段式樣版比對法流程圖
因為容易混淆的數字必定有一些部份的相似度相當高,所以在第二次的辨識 裡使用distance transform 的最小距離法進行二次辨識,這裡只取有鑑別度的區塊 樣版進行處理,容易混淆的數字與關鍵區塊如表3-4。
表3-4 易混淆字與關鍵樣版對應
數字 1 2 3 4 5 6 7 8 9 0 容易錯誤的數
字
X X X X 3,6 5 2,3 0,6,9 3,8 6,8 比對的樣版 X X X X
輸出 1 2 3 4 區域distance transform 特徵比對最小值