張 莉 ,孟范澤 ,劉思霖 ,馮 銳 ,王 鋼 ,蔡 靖
(1.吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,吉林 長春 130026;2.北華大學(xué),吉林 吉林 132013)
隨著科技的發(fā)展以及人們?nèi)粘I罟ぷ髦袑κ謱憹h字識別的需求與日俱增,精確識別手寫票據(jù)、手寫試卷以及檔案信息表等文件中的手寫漢字,將會為社會帶來極大的便利。然而,漢字類別繁多,字形結(jié)構(gòu)復(fù)雜,一直是手寫字體識別中的難點和熱點[1],且個人手寫漢字字體特點也不盡相同[2]。從文獻[3]可以看出,隨著所需識別漢字的數(shù)量以及神經(jīng)網(wǎng)絡(luò)復(fù)雜程度的提升,相應(yīng)的計算時間也會呈指數(shù)形式提升[4-5]。由此可見,實現(xiàn)對手寫漢字圖像的有效分割,將會減少手寫漢字的識別量,相應(yīng)地也降低了手寫漢字識別的復(fù)雜度與計算時間。
為了達到精準(zhǔn)分割、有效識別的目的,本文建立了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)手寫漢字識別模型。對投影法和輪廓檢測法的適用性進行了對比分析,通過實驗對投影法在手寫漢字識別中的適用性進行了驗證。
圖像是由像素組成的,一幅M×N 個像素的數(shù)字圖像,各像素點的灰度值構(gòu)成M 行、N 列的矩陣[6]。圖像被二值化后,有色像素點的灰度值變?yōu)?,無色像素點灰度值為0。二值圖的灰度矩陣A 如式(1)所示:
首先需要對文字圖像進行二值化處理,二值圖像為白底黑字[7-8]。投影法基于這種二值圖像的特點來對圖片分割。用式(2)對每行的像素點進橫向行投影,求得每行的黑色像素點數(shù)記為Sum(i)。
其中,Sum(i)中的首個非零元素即為文字圖像的上邊界,行號記為Row(k)=i,k=1。從Sum 中的i 號元素起對Sum中的元素遍歷,并對x 號元素及x-1 號元素進行異或邏輯運算,結(jié)果每出現(xiàn)一次1,在Row(k+1)中記錄x 的值,并將Sum(i)中最后一個不為0 的元素行號記錄到Row中的最后一個元素,此為文字圖像的下邊界。遍歷結(jié)束后,根據(jù)Row 中記錄的行號,對圖像進行分割并輸出,即可分割出文字圖像中的每行文字。
基于同樣的原理,對分割好的每行文字圖像進行縱向投影,并重復(fù)上述步驟,即可得到每行文字圖像中的每個文字圖像。
本文使用基于MATLAB 的DeepLearning toolbox CNN卷積神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)模型,針對分割算法的適用進行了研究[3],LeNet-5 經(jīng)典CNN 網(wǎng)絡(luò)架構(gòu)原理圖如圖1所示。
圖1 LeNet-5 經(jīng)典CNN 網(wǎng)絡(luò)架構(gòu)原理圖
在圖1中,Input 為輸入圖像;C1、C3 為卷積層,其功能是對輸入數(shù)據(jù)進行特征提取,每一個神經(jīng)元都進行局部的特征提取,在更高層將其整理合并;S2 為采樣層(池化層),池化層對卷積層提取出來的特征圖進行池化處理,可以在減少數(shù)據(jù)處理量的同時保留有用信息,即對圖像由高分辨率向低分辨的轉(zhuǎn)換,通常卷積層池化層交替分布,使得特征圖數(shù)目逐漸增多,分辨率逐漸降低;F5為全連接層,全連接層在卷積神經(jīng)網(wǎng)絡(luò)中可以看作是一個“組合器”,把卷積層提取的局部特征重新通過權(quán)值矩陣組裝起來,形成完整的圖像[9]。
針對手寫體漢字的識別,本文采用的是MATLAB toolbox 中nnet/cnn 目錄下的內(nèi)置函數(shù)“Make predictions on data with network”,其運行結(jié)果界面如圖2 所示,原圖像與其識別結(jié)果均顯示在界面圖中。
圖2 識別結(jié)果界面
為了驗證投影法的適用性,本文選用輪廓檢測法[10-11]與投影法進行對比分析。輪廓檢測法的基本原理是對二值化后的圖片進行頂部和底部輪廓檢測,獲得文字高度。之后分別進行輪廓線的凹檢測和凸檢測,記錄凹、凸輪廓處的位置,確認(rèn)是凹或凸輪廓后,對圖片進行分割,并保存為BMP 圖片。本文選用如圖3 所示大小為972×443 的手寫漢字圖片作為原始圖像。
圖3 原始圖像
以圖3 中的第一行文字為需要識別的目標(biāo)漢字,分別使用投影法和輪廓檢測法對行分割結(jié)果進行列分割,得到目標(biāo)漢字圖像,并對目標(biāo)漢字圖像進行歸一化處理[12-14],送入CNN 神經(jīng)網(wǎng)絡(luò)模型進行識別,流程框圖如圖4 所示。
圖4 手寫漢字識別流程框圖
原始圖像圖1 使用投影法行分割后顯現(xiàn)大小為972×150 的第一行圖像(如圖5(a)所示)、大小為972×150的第二行圖像(如圖5(b)所示)。
圖5 分割結(jié)果
采用第一行文字圖像(圖5(a))進行列分割,得到每個漢字的圖像如圖6 所示。
圖6 分割出的第一行圖像
從原始圖像(圖3)中可以看到,第一行文字從左至右依次為“訣、曙、阿、開、延”,圖像大小依次為138×150、103×150、129×150、98×150、144×150。觀察圖6 分割結(jié)果,投影法準(zhǔn)確地分割出了原始圖像第一行的“訣、曙、阿、開、延”5 個漢字。將圖6 所示的5 個漢字圖像逐個進行歸一化處理并轉(zhuǎn)化為位深度為8 的灰度圖像,送入CNN 卷積神經(jīng)網(wǎng)絡(luò)模型進行識別,識別結(jié)果如圖7所示。
圖7 神經(jīng)網(wǎng)絡(luò)識別結(jié)果圖
從圖7 識別結(jié)果可以看出,分割出的“訣、曙、阿、開、延”的手寫漢字圖像識別結(jié)果為“訣、曙、阿、開、延”,分割后的漢字圖像識別率為100%。采用相同原始圖像,使用輪廓檢測法對圖5(a)進行列分割,分割結(jié)果如圖8 所示。
圖8 輪廓檢測法分割結(jié)果圖
由圖8 可以看出,輪廓檢測法將第一行的 “訣、曙、阿、開、延”5 個漢字拆分成了“讠、氵、夬曙、阝、可、開”,僅有“開”字成功分割,且圖像存在變形,“延”字在分割過程中丟失。將得到的單字圖片歸一化并轉(zhuǎn)化為位深度為8的灰度圖像后,送入神經(jīng)網(wǎng)絡(luò)模型識別結(jié)果如圖9 所示。
圖9 神經(jīng)網(wǎng)絡(luò)識別結(jié)果圖
由圖9 可以看出,分割出的“讠、氵、夬曙、阝、可、開”的手寫漢字圖像識別結(jié)果為“井、況、塊、訣、椰、刊”,分割后的漢字圖像識別率為0%。
綜上實驗對比兩種分割結(jié)果,投影法在手寫漢字識別過程中的分割效果更好。
手寫漢字具有漢字類別繁多、字形結(jié)構(gòu)復(fù)雜、書寫隨意性大等特點,提高手寫漢字識別的準(zhǔn)確度一直是研究的難點和熱點。本文從提高識別準(zhǔn)確度的目的出發(fā),以CNN 卷積神經(jīng)網(wǎng)絡(luò)模型的識別結(jié)果為依據(jù),對比分析了投影法和輪廓檢測法在手寫漢字圖像分割處理中的適用性。研究發(fā)現(xiàn),無論是從圖像分割的結(jié)果來看,還是從文字識別的結(jié)果來看,投影法都是更優(yōu)解。此項研究在手寫漢字識別研究工作者以及手寫文件信息化處理工作者的工作實踐中有著重要影響,同時也為文檔管理類工作者在手寫資料的整理方面提供了一個切實可行的思路。