1 案例背景
手寫體數字識别是圖像識别學科下的一個分支,是圖像處理和模式識别研究領域的重要應用之一,并且具有很強的通用性。由于手寫體數字的随意性很大,如筆畫粗細、字型大小、傾斜角度等因素都有可能直接影響到字元的識别準确率,是以手寫體數字識别是一個很有挑戰性的課題。在過去的數十年中,研究者們提出了許多識别方法,并取得了一定的成果。手寫體數字識别的實用性很強,在大規模資料統計如例行年檢、人口普查、财務、稅務、郵件分揀等應用領域都有廣闊的應用前景"。
本案例講述了圖像中手寫阿拉伯數字的識别過程,對手寫數字識别的基于統計的方法進行了簡要介紹和分析,并通過開發一個小型的手寫體數字識别系統來進行實驗。手寫數字識别系統需要實作手寫數字圖像的讀取功能、特征提取功能、數字的模闆特征庫的建立功能及識别功能。
2 理論基礎
2.1算法流程
首先,讀入手寫數字圖檔進行圖像歸一化處理,統一尺寸,預設為24x24圖像塊,并通過ostu算法進行二值化; 其次, 對二值化圖像進行圖像細化等形态學操作,并按照算法要求進行特征提取;最後,載入模闆矩陣進行比對,選用歐式距離測度,得到識别結果。其算法流程圖如圖所示。

2.2 特征提取
根據手寫數字圖像本身的結構特征,通過計算端點、指定方向直線的交叉點個數來作為特征向量。其主要步驟如下。
(1)垂直交點
對細化後的手寫數字圖像分别在其列寬的:5/12 1/2 7/12處生成垂直的三條直線,提取這三條垂直直線與數字筆劃的交點數并存儲。
(2)水準交點
對細化後的手寫數字圖像分别在其列寬的号号處生成水準的三條直線,提取這1/3 1/2 2/3三條水準直線與數字筆劃的交點數并存儲。
(3)對角交點
對細化後的手寫數字圖像分别取兩條對角直線,提取這兩條對角直線與數字筆劃的交點數并存儲。
由于以上步驟均作用于經細化後的數字圖像,其筆劃簡單且特征穩定,是以對其提取的基本交點及結構端點能反映數字的本質特征,可快速、有效地識别數字字元,并達到較好的識别正确率。
其中,提取筆劃結構端點特征的算法如下。
①目标定位
對細化後的手寫數字圖像按行從上到下、按列從左到右進行順序掃描,定位選擇黑像素點P作為手寫筆劃目标。
②鄰域統計
計算黑色像素P的8鄰域之和N,若N=1,則像素P為端點,端點計數器加1;否則舍棄該點。
③周遊圖像
周遊整個圖像,重複進行目标定位、鄰域統計的操作流程,提取端點特征。依據上述對手寫數字圖像的交點、端點特征提取方法, 本案例中的特征向量VEC由9個分量組成,其排列如下:
VEC=[垂直5/12處交點數, 垂直中線交點數, 垂直7/12處交點數,水準1/3處交點數,水準中線交點數,水準2/3處交點數,左對角線交點數,右對角線交點數,端點數]
2.3 模式識别
本案例采用的是基于模式知識庫的識别方法,是以系統調研的關鍵步驟就是對數字字元的結構特征的分析及其模型的構造。是以,本案例首先對0~9這10個數字字元進行結構分析并模組化,然後提取相關特征,最後構造模闆庫。在實驗過程中,我們選擇規範手寫和自由手寫兩組樣本作為訓練樣本對知識庫進行參數調整,這些訓練樣本由200個規範手寫體樣本和200個自由手寫體樣本組成,通過計算樣本對應分量的算術平均值獲得知識庫中特征向量的每個分量。
通過上述步驟得到的知識庫由兩套模闆組成,在本次實驗過程中,我們選擇基于模闆比對的識别方法,通過計算歐式距離來衡量比對程度。識别系統中的特征向量包含9個分量,且計算距離公式是歐式距離:
是以,在識别過程中分别計算待識别圖像與知識庫中各個模闆特征向量之間的歐式距離,即與0~9這10個數字逐個比較,選擇最小距離對應的數字作為最後的識别結果。
1 matlab版本
2014a
2 參考文獻
[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.
[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.
[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.
[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.