王強,張小溪,韓一紅
(西北工業大學 陜西 西安 710129)
圖像識別作為圖像技術的一個分支一直是圖像處理和模式識別領域的研究熱點。傳統的模式識別方法應用于圖像識別主要是利用圖像的顏色特征、形狀特征、紋理特征等對圖像進行比較[1-2],根據這些統計特征對圖像之間的相似度做出評價。
人工神經網絡[3](Artificial Neural Network,ANN)的研究雖然自上世紀40年代才開始,但由于具有強大的自適應能力、信息的分布式存儲、并行處理以及能很好的模擬非線性系統,已經在信息處理、模式識別等領域得到越來越廣泛的應用。在圖像識別中常用的神經網絡模型[4-5]有Hopfield神經網絡、BP神經網絡、小波網絡、細胞神經網絡和模糊神經網絡。對于數字圖像來說,采用神經網絡是一種有效的手段,而MATLAB中包括的神經網絡工具箱為相關的算法開發與數據分析提供了非常友好的環境,避開了比較繁雜的子程序編寫任務。
文中應用MATLAB 7.1神經網絡工具箱設計BP神經網絡,利用提取的圖像特征對BP神經網絡進行訓練,從而達到系統自動識別字符圖像的目的。
字符圖像預處理的目的是使字符圖像更清晰,邊緣更明顯,并將每一個字符分割出來便于進行特征提取工作。針對本文選取的字符圖像,給出圖像預處理的一般流程圖如圖1所示。

圖1 字符圖像預處理流程圖Fig.1 Flow chart of character image pre-processing
原始字符圖像及經過預處理之后的圖像如圖2、3所示。

圖2 原始字符圖像Fig.2 Initial character image

圖3 圖像預處理之后的字符Fig.3 Character image after pre-processing
經過圖像預處理后得到的歸一化的結果為每個字符的像素數16×8(16為高度,像素行數;8為寬度,像素列數)大小。
特征提取可以看作是一種特殊的圖像數據的簡化,其目的是從高維的數據中抽取出有效的包含主要信息的低維數據,便于圖像分割和識別。一般來說,良好的特征應該具有可區別性、可靠性、獨立性好、數量少這4個特點。傳統的特征提取方法基于圖像的空頻域特征,包括傅里葉變換、小波變換等算法。
針對本文所要識別的圖像,對預處理之后得到的圖像提取的特征為歐拉數、字符圖像矩陣每行的與每列的黑色像素點之和這兩個特征。
特征1:歐拉數。歐拉數定義為一個區域中的孔數H和連接部分數C的差:E=C-H。圖像的歐拉數是圖像的一種拓撲性質度量,它表明了圖的連通性。
對數字圖像而言,如果圖像的背景用“0”標記,目標物體用“1”標記,則歐拉數計算公式如下:

應用MATLAB軟件可以用bweuler函數來求圖像的歐拉數,調用格式為:

式(2)中,I為輸入的二值圖像,n設置鄰域的大小,即4-鄰域或8-鄰域,默認值為8。不過必須注意,二值圖像的背景為“0”,目標為“1”,檢測出的歐拉數才是目標圖像的歐拉數。
特征2:字符圖像矩陣每行的與每列的黑色像素點之和。這種特征提取方法的算法就是自左向右對經過預處理之后字符圖像進行逐列的掃描,統計每列黑色像素的個數,然后自上向下逐行掃描,統計每行的黑色像素的個數,將統計的結果作為字符的特征矩陣。
BP(Error Back Propagation Network)神經網絡[4,6]是在 1986年由Rumelhant和McClelland提出來的,是目前應用最為廣泛和成功的神經網絡之一。它是一種多層前饋神經網絡,最為普遍的為三層BP網絡,所謂三層包括了輸入層、輸出層和中間層(或稱為隱層)。

圖4 一個典型的BP網絡Fig.4 A typical BP network
BP網絡結構算法可描述如下:
1)設置變量和參數,其中包括訓練樣本,權值矩陣,學習速率。
2)初始化,給各個權值矩陣一個較小的隨機非零向量。
3)隨機輸入樣本。
4)對輸入樣本,前向計算BP網絡每層神經元的輸入信號和輸出信號。
5)由期望輸出和上一步求得的實際輸出計算誤差E(n),判斷其是否滿足要求,若滿足則轉至第8步,不滿足則轉至第6步。
6)判斷是否大于最大迭代次數,若大于則轉至第8步,若不大于,對輸入樣本方向計算每層神經元的局部梯度δ。
7)根據局部梯度修正各個矩陣的權值。
8)判斷是否學完所有的訓練樣本,是則結束,否則轉至第3步。
神經網絡應用于圖像識別的一般模型如圖5所示。

圖5 神經網絡圖像識別框圖Fig.5 Model of image recognition based on ANN
在設計BP網絡時有大量的工作需要進行,而在Matlab 7.1的神經網絡工具箱中有對應的函數可完成BP網絡設計時所涉及到的全部計算任務。通過應用神經網絡工具箱可以較為便捷地完成BP網絡的設計。
MATLAB神經網絡工具箱中提供的相關函數主要有:BP網絡生成函數newff,神經元變換函數,初始化函數init,學習函數,性能函數,訓練函數train,BP訓練算法函數,仿真函數sim,繪圖函數 poltperf。
應用Matlab神經網絡工具箱[7]實現BP神經網絡的基本步驟如下:
1)網絡創建 通過函數newff生成一個BP網絡,它會根據樣本數據自動確定輸入層、輸出層的神經元的數目,而隱層的層數、隱層神經元數目、隱層和輸出層的變換函數、訓練算法函數由用戶自己確定;
2)網絡初始化 當newff創建網絡對象的同時,自動調動函數init根據缺省的參數對網絡進行連接權值和閾值的初始化;
3)通過函數train對網絡進行訓練 對神經網絡的訓練有2種方式,一種是增加方式,即每輸入一個學習樣本就根據網絡誤差進行連接權值和閾值的更新;另一種是批處理方式,即只有全部學習樣本都學習完成后,才進行網絡連接權值和閾值的更新。函數train采用的是批處理方式,要對其參數進行設置,如學習步長、誤差目標等;
4)網絡仿真 函數sim根據已訓練好的網絡對測試數據進行仿真計算。利用此函數,可以在網絡訓練前后分別進行輸入輸出的仿真,以作比較,從而對網絡進行修改評價。
文中采用3層BP網絡,具體設計如下:
1)輸入層 本文將訓練樣本圖片中提取的字符圖像特征:歐拉數與圖像矩陣每行的與每列的黑色像素點之和作為BP神經網絡的輸入p矩陣。輸入層節點數為25。
2)輸出層 規定:如果網絡輸入為字符“0”則目標輸出t對應列的行元素全為“0.1”,輸入為“1”則t對應列的第一行元素為“0.9”,其余行元素全為“0.1”,輸入為“2”則對應列的第二行元素為“0.9”,其余行元素為“0.1”,依次類推。輸出層節點數為9。
3)隱層 隱層節點數的確定按照下面的經驗公式[8]:

其中,n為輸入節點數,m為輸出節點數,n1為隱層節點數。計算確定隱層的節點數為35。
確定完BP的三層網絡后就可以對網絡進行訓練,然后用訓練好的網絡來進行模式分類實現字符圖像的識別。圖6為網絡的訓練過程。
仿真結果表明,單個字符的識別率不近相同,最高的為字符8,識別率達95%,最低的為字符2,識別率為75.5%,所有字符平均識別率為89%。
由實驗仿真可知,采用神經網絡識別圖像是切實可行的,由于時間關系,目前只是對普通的BP網絡進行了研究應用。下一步的工作是研究BP神經網絡的改進算法,并應用改進的BP網絡提高圖像的識別率以及對復雜圖像的識別。

圖6 BP網絡訓練圖Fig.6 BP network training chart
[1]齊敏,李大建,郝重陽.模式識別導論[M].北京:清華大學出版社,2009.
[2]何明一,衛保國.數字圖像處理[M].北京:科學出版社,2008.
[3]韓力群.人工神經網絡理論、設計及應用[M].北京:化學工業出版社,2007.
[4]周日貴,姜楠,丁秋林.量子Hopfield神經網絡及圖像識別[J].中國圖象圖形學報,2008,13(1):119-123.
ZHOU Ri-gui,JIANG Nan,DING Qiu-lin.Quantum Hopfield neural network and image recognition[J].Journal of Image and Graphics,2008,13(1):119-123.
[5]蘭雪梅,朱建,黃承明,等.BP網絡的MATLAB實現[J].微型電腦應用,2003,19(1):6-8.
LAN Xue-mei,ZHU Jian,HUANG Cheng-ming,et al.BP network realization in MATLAB[J].Microcomputer Application,2003,19(1):6-8.
[6]張海波,董槐林,龍飛,等.基于BP神經網絡的圖像識別研究[J].計算機與現代化,2008(5):17-19.
ZHANG Hai-bo,DONG Huai-lin,LONG Fei,et al.Research on image recognition based on BP neural network[J].Computer and Modernization,2008(5):17-19.
[7]張浩然,韓正之,李昌剛.基于MATLAB的神經網絡辨識與控制工具箱[J].計算機仿真,20(3):72-74.
ZHANG Hao-ran, HAN Zheng-zhi, LI Chang-gang.Neural network based system identification and control toolboxes in MATLAB environment[J].Computer Simulation,20(3):72-74.
[8]戚德虎,康繼昌.BP神經網絡的設計[J].計算機工程與設計,1998,19(2):48-50.
QI De-hu,KANG Ji-chuang.Design of the BP neural network[J].Computer Engineering and Design,1998,19(2):48-50.