崔澤乾,白云杰,韓陽,3,陳麗芳
( 1. 華北理工大學 冶金與能源學院,河北 唐山 063210;2.華北理工大學 理學院,河北 唐山 063210;3.華北理工大學 學科建設處,河北 唐山 063210;4.唐山市工程計算重點實驗室,華北理工大學 理學院,河北 唐山 063210)
漢字是中國幾千年文明的結晶,是眾多書法家為中華民族留下的寶貴財富。盡管信息時代早已到來,機械化深入到人們日常生活的方方面面,但仍有眾多用戶保持著漢字手寫的習慣。隨著中國的崛起,越來越多的外國人開始學習漢字,漢字識別的市場前景不言而喻。神經網絡一直是近幾年的熱詞,而Hopfield神經網絡因其具有聯想記憶的特性,被廣泛應用于圖片識別領域。漢字識別系統作為圖片識別的一部分,用Hopfield算法來實現其功能,其合理性毋庸置疑[1,2]。
該項研究將從軟件平臺設計的角度,利用改良后的Hopfield網絡開發出一款具有良好人機交互體驗、具有很好先進性的漢字識別系統。該系統既可以進行手寫輸入,也可以對已有數據進行隨機抽取,同時它還能對包含多個漢字的圖片進行分割處理、逐一識別,并給出識別的準確度。
下載casia數據庫中的中文數據作為圖片數據,邀請多人在該手寫面板上輸入作為手寫數據,并將2個數據集分別保存在DATA1和DATA2中。表1所示為數據集。

表1 數據集
包含多個漢字的圖片數據,將圖片進行高斯降噪、灰度化、二值化等處理,生成只有黑白2種顏色的圖片[3,4]。由于部分漢字是不相連的,輪廓檢測時可能被分離開,所以在檢測前要對圖片進行膨脹化處理,通過輪廓檢測獲取字符的邊界,并分割數據,保存輪廓左上角的位置及輪廓的長度和寬度,通過不斷調整參數,得到需要的輪廓[5,6]。
手寫面板生成的數據圖像,將圖片大小由224*224像素縮小為28*28像素的圖片,然后對圖片進行二值化處理,將圖像從圖片變為28*28像素的矩陣。在進行算法識別之后恢復灰度值大小,將數組矩陣還原為圖片格式,并將圖片由28*28像素放大為224*224像素進行展示。

圖1 圖片處理流程圖
將數據文件的名稱作為數據標簽,格式為"標簽_序號"。這樣設定的好處在于需要獲取數據標簽時,只要獲取數據名稱,然后根據"_"鎖定標簽位置,其中"_"以左為標簽,"_"以右為序號。當輸入新的數據時,在"標簽"欄輸入漢字,系統即可通過檢索庫中已有標簽的個數,自動生成新的標簽序號,方便快捷。處理過程如圖2所示。

圖2 標簽處理
數據集如圖3所示(其中數據名"_"以左為類標簽)。

圖3 數據集
Hopfield網絡的結構類似于生物學的神經系統,可以同時接收多個其他神經元的信息,對信號進行加權處理,并發送至下一個神經元。離散型網絡拓撲結構圖如圖4所示,其中xn為神經元輸出,Tn為閾值:

圖4 離散型網絡-拓撲結構圖
由圖4可以看出,離散型Hopfield網絡是一種單層的神經網絡。每個神經元接收除自己以外的其他神經元反饋回來的信息,并通過各自的權重對信息進行處理,這樣便使得每一個神經元都可以受到其他神經元的控制,達到相互制約和相互影響的作用,從而實現了Hopfield網絡的自反饋。同時每個神經元均設有一個閾值,輸入能量只有大于這個閾值時,神經元才會做出反應。
吸引子是指網絡到達穩定狀態時X的值。它是神經網絡聯想記憶的基礎,在動力學系統中起著關鍵性作用,只有通過它,神經網絡才能進行計算和記憶[7]。因此,Hopfield網絡的求解過程即是數據從初態不斷朝已有的吸引子演化的過程。如圖5所示,長方體的8個頂點代表已有吸引子,初態數據好比在長方體內增加的一個點,它會努力朝著離它最近的頂點移動,如此便實現了根據部分記憶獲取完整記憶的過程,即Hopfield網絡聯想特性[8]。

圖5 Hopfield幾何體
離散型Hopfield神經網絡吸引子具有性質如下:
(1)在離散型Hopfield神經網絡中,如果任意Wij=Wji,并且該網絡狀態調整采用異步方式,那么該網絡一定會收斂于某一個吸引子。
(2)在離散型Hopfield神經網絡中,如果連接權矩陣W為非負定對稱陣,并且該網絡狀態調整采用同步方式,那么該網絡一定會收斂于某一個吸引子。
(3)如果網絡狀態X可以用公式X=f(WX-T)表示,那么該網絡狀態就是Hopfield網絡的一個吸引子。
經典的Hopfield神經網絡會將帶有標簽的數據作為原始吸引子進行訓練[9]。當輸入新的數據時,Hopfield神經網絡通過多次循環運算達到穩定狀態,即生成一個吸引子。此時這個穩定狀態分為2種情況(如圖6所示),一種等同于某一個原始的吸引子①~③,另一種是生成一個未標識的新吸引子④。前者通過原始吸引子對應的數據標簽,對輸入數據進行分類,后者由于新生成的吸引子沒有數據標簽,無法識別該數據。此時如果增加一個相似度對比算法,找到與新吸引子最為相似的原始吸引子,那么輸入數據則視為該吸引子對應的標簽,因此任何被輸入的數據都可以得到最為科學的分類結果[10,11]。

圖6 吸引子
最為常見的圖片相似度對比算法,包括直方圖計算、漢明距離計算、余弦距離計算等。直方圖計算相似度方法是立足于圖片顏色在全局分布變化的差異進行對比,而Hopfield神經網絡產生的吸引子是二值化的數據,不能表現顏色變化的信息,所以不適宜用該相似度算法。漢明距離算法原理簡單易懂,且多用于指紋識別等歸一化圖片數據的處理。所以該系統選用海明距離作為相似度對比算法用于改進Hopfield神經網絡。它的使用方法是對比數據矩陣的相同位置,如果數值相同則掃描下一位,直到掃描完所有數值為止。然后統計數值不同的位數,選擇位數最少的那個吸引子對應的標簽作為分類結果。
圖7所示為漢字識別系統的主流程圖。
3.2.1算法設計
Hopfield神經網絡輸入的數據為數值型,而該系統的輸入數據均為圖片格式,所以在數據預處理中須包含圖像二值化。在"圖片抽取"模式中,數據為數值連續的彩色圖片,因此在二值化之前還要進行圖片灰度化處理,并在二值化后根據峰值的位置對數據進行分割[12,13]。該網絡會將預處理后的數據轉為原有吸引子或新吸引子,當數據為新吸引子時,需進行相似度對比,判斷該數據對應吸引子。算法設計如圖8所示。

圖7 主流程圖

圖8 算法設計圖
3.2.2算法實現
使用Cv2.GaussianBlur對數據圖片進行高斯降噪,用Cv2.cvtColor進行圖片灰度值處理,然后用Cv2.threshold得到圖片二值化數據。對與包含多漢字的圖片,使用Cv2.dilate對漢字進行膨脹化處理,其目的是防止將單個漢字被分開。然后用Cv2.findContours檢測出漢字的輪廓并用Cv2.drawContours描繪出來。
編寫好Hopfield算法的函數,將獲取到的數據集和訓練標簽分別帶入Hopfield神經網絡中進行訓練。使用Neurolab庫中的neurolab.net.newhop創建Hopfield神經網絡,然后將預處理后的數據作為吸引子target送給神經網絡進行訓練。把測試數據輸入給Hopfield神經網絡進行識別,并通過for循環返回識別結果在矩陣中對應的行號。如果沒有標簽與之對應,則進行相似度對比。
對于UI界面設計,主要包括使用說明、模式選擇下拉框、按鈕、手寫錄入面板以及識別結果和準確率展示幾個部分。功能模塊圖如9所示。

圖9 UI界面-功能模塊
圖10所示為用Pyqt5實現程序UI交互界面后的效果圖。其中包括可以進行手寫輸入的窗口(序號⑤),"數據集隨機抽取""圖片抽取"和"鼠標手寫輸入"3種模式的下拉菜單(序號②),識別結果和準確率2個展示界面(序號④)以及程序使用說明(序號①)和退出程序判斷等增強用戶使用體驗的交互功能。同時包括具有不同功能的按鈕(序號③),例如在"數據集隨機抽取"或"圖片抽取"模式下可以使用"數據集抽取"按鈕進行數據集的抽取,在"數據集隨機抽取"和"鼠標手寫輸入"2種模式下可以使用"清除數據"按鈕對手寫輸入窗口進行刷新,點擊"識別"按鈕可以識別輸入窗口內的字體,輸出識別結果和準確率。

圖10 系統主界面
通過手寫面板和漢字標簽輸入,該系統實現訓練集的實時更新。當同一個測試者對漢字進行重復輸入時,Hopfield聯想記憶使漢字識別準確率有了明顯提升。圖11所示為前4次字體識別結果展示,測試8次,其準確率結果如圖12所示。

圖11 識別結果展示

圖12 同字體同漢字-準確率
實驗以測試者A的訓練集訓練Hopfield神經網絡,并以測試者A和B的測試集進行準確率對比。圖13所示為漢字"北"識別準確率對比,A字體準確率為98.3%,B字體為92.5%。研究結果表明,測試者A的字體更容易被識別,Hopfield神經網絡具有字體記憶特性。
通過測試集中100個漢字的識別結果對比,經典Hopfield神經網絡僅能識別出41個,而改進后可以實現漢字的全識別。該結果表明,對于復雜數據,經典Hopfield更容易產生新的吸引子,導致系統識別失敗,增加相似度對比算法,可以彌補這一缺點,系統性能有了明顯提升。

圖13 不同字體-準確率對比
(1)該系統基于改進后的Hopfield神經網絡算法,通過數據庫的抽取和手寫輸入2種方式,實現了單漢字圖像和多漢字圖像的識別功能,經過多次實驗其準確度在80%以上。
(2)該結果展示了改進后Hopfield神經網絡在漢字體識別領域實際應用的可行性,為漢字體識別在算法上提供了一種新的選擇。