楊 愷 黃樹成
(江蘇科技大學計算機學院 鎮(zhèn)江212000)
隨著智能手機、數碼相機等電子設備的普及,人們獲取圖像的手段越來越多。面對海量圖像數據,基于圖像內容的分析、檢索和理解越來越引起人們的關注,漢字識別也變得越來越重要。
為了能夠有效定位圖像中的文字區(qū)域,近代學者提出了很多優(yōu)秀的文本定位算法,如Kim[1]通過將圖像進行分塊,然后再結合支持向量機的方法,對文字范圍進行劃分;Bertini[2]通過計算圖像角點特征,并進行深一步地歸納提取,然后區(qū)分出圖像中的文字范圍;Hyeran[3]采用了一種基于數學形態(tài)學的方法,通過提取圖像形態(tài)學特征,來定位出圖像中文字所在的范圍等。
我國在2000年開始對彩色圖像文字分割技術進行研究,如周源華[4]利用顏色邊緣來對彩色圖像中的文本進行檢測提?。还悾?]提出了一種基于顏色邊緣點和游程平滑的文本文字提取算法等。
但對于自然場景中拍攝的漢字圖像,運用上述算法出現了漢字識別效率低下,錯誤率高等問題,針對這些問題,本文提出了一種融合K-means和RBF神經網絡的漢字識別算法,改進了傳統神經網絡算法不易收斂的缺點,用實驗證明了該算法在漢字識別方面具有較高的準確率和識別效率。
下面將分別介紹傳統RBF神經網絡算法,K-means算法和減聚類算法。
徑向基函數神經網絡(Radial Basis Function Neural Network,RBFNN),是一種特殊的三層前向神經網絡。它具有最佳逼近性能和全局最優(yōu)特性,網絡結構簡潔明了、訓練快速等優(yōu)點。
RBF神經網絡也是典型的前饋式神經網絡,由輸入層、隱含層和輸出層三層神經元構成。圖1為RBF神經網絡結構圖,由圖可以明顯看出,其結構與簡單的BP神經網絡相同,都是三層網絡結構。
圖1 RBF神經網絡結構
其中第一層為輸入層節(jié)點,第二層為隱含層節(jié)點,第三層為輸出層節(jié)點。首先,輸入信號通過第一層進入到第二層,然后使用徑向基(RBF)函數進行計算,常用的RBF函數有Gauss函數、反演S型函數等,最后第三層利用線性函數計算出結果。
首 先,假 設 訓 練 數 據 集 為X={x1,x2,x3,…,xm},其中第i個訓練樣本為其中,即樣本數量為m,特征數為n。如果隱含層節(jié)點個數為s,則第i個訓練樣本xi所對應的隱含層的第j個節(jié)點的RBF函數,如式(1)所示:
其中cj為隱含層第j個節(jié)點的數據中心,σj為該RBF函數的寬度為xi到cj的歐式距離。最后,如果輸出層節(jié)點的個數為t,輸出層對隱含層輸出的節(jié)點應用線性函數,如式(2)所示:
其中k=( )
1,2,3,…,t,s為隱含層節(jié)點個數,ωjk為隱含層第j個節(jié)點到輸出層第k個節(jié)點之間的權值。
這里采用Gauss函數作為RBF函數,該函數曲線比較光滑,并且表示形式相對簡單,解析性好,有利于對結果進行分析。
在RBF神經網絡中,最重要的就是隱含層,具有承前啟后的作用。通過確定徑向基函數的中心點,就可以確定神經網絡輸入層與隱含層之間的某種映射關系,這種關系就是構造隱含層的基石。利用該關系可以將輸入層的矢量矩陣映射到隱含層空間中,在這其中不需要進行網絡調參。然后隱含層將向量從低維度線性不可分,映射到高維度線性可分,并輸出線性加權和,在這其中則需要進行網絡調參。原來神經網絡的輸入層到輸出層的映射是非線性的,但是通過隱含層的映射,輸出層對隱含層有了可調的線性參數。該可調的線性參數即為網絡的權值,而權值則可通過線性方程組直接求解出來,這樣便極大地提高了神經網絡的學習速度,且有效地避免了可能出現的局部極小問題。
K-means算法的宗旨是計算出最小類內距離,使聚類域內所有樣品到聚類中心距離的平方和最小。算法的具體流程如下。
1)隨機選k個樣本作為聚類中心,計算其他樣本點與它們之間的距離,根據最小類內距離原則將各個樣本分配到最近的聚類中心;
2)計算k個聚類結果內各個樣本的均值,然后根據均值重新選取聚類中心;
3)把重新選取的聚類中心再繼續(xù)進行聚類計算;
4)重復上述步驟,直到前后兩次聚類后的聚類中心相同時停止。
通過上述步驟可以知道:K-means算法容易受到聚類中心的個數和初始聚類中心的選擇影響,造成聚類結果的波動,并且極易陷入局部最優(yōu)解。
為了解決K-means算法的上述問題,引入減聚類算法。Chiu[6]提出一種減聚類算法,將每個樣本都認為是潛在的聚類中心,然后計算“峰”函數來確定聚類中心。
該算法可以把計算量與樣本個數認為是簡單的線性關系,使其與問題維度無關,解決了一般聚類算法中容易出現的“維數災難”問題。同時該方法還可以為其他聚類方法提供初始聚類中心,故在K-means算法中將其引入。
其具體算法步驟如下。
1)給定數據集X,根據式(3)計算每個樣本的密度值,密度值越大則該樣本的臨近包含其他樣本數目越多。
其中,n為數據集X的樣本個數,xi為第i個樣本,γa∈R+,γa為xi的一個鄰域半徑。
2)選出步驟1)中最大的密度值Dm1,將對應的樣本xm1作為初始聚類中心,再根據式(4)對樣本密度值進行更新;
其中:γb=λγa,λ∈R+,γb表示為一個密度指標函數顯著減少的鄰域,一般λ=1.5。
3)選出步驟2)中最大的密度值Dm2,將對應的樣本xm2作為第二個聚類中心,再將Dm2,xm2代入式(4)中,對樣本密度值進一步更新,然后選擇下一個聚類中心,直到滿足式(5)時,終止循環(huán)。
終止循環(huán)的物理意義是當前最高密度值與初始最高密度值相比非常小,即當前聚類中心包含極少樣本點,則可忽略該聚類中心,結束聚類。
本文的融合K-means和RBF神經網絡算法主要是引入減聚類算法來確定K-means算法的初始聚類中心及其個數,再用K-means算法來確定RBF神經網絡算法的徑向基函數的中心,之后確定徑向基函數的寬度以及隱含層到輸出層之間的權值,最后輸出結果。整體算法框架圖如圖2所示。
圖2 算法框架圖
融合K-means和RBF神經網絡的漢字識別算法具體步驟如下:
1)使用式(6)對訓練數據集進行歸一化處理,使樣本數據的每一個維度都屬于[]
0,1。其中,xmin=0,xmax=255,為彩色圖像RGB的最小值與最大值,xij為訓練數據集第i個樣本的第j個維度數據。
2)通過減聚類算法確定初始聚類中心,具體實現步驟如下:
(1)根據式(3)計算每個數據點的密度值,選取其中最大密度值Dm1的樣本點xm1作為初始聚類中心,記s=1;
(2)根據式(4)對數據點進行密度更新,找到當前最大密度值Dmi;
(3)如 果Dmi滿 足 式(5),則 轉(4);否 則s=s+1,并將具有當前最大密度值的樣本點作為第s個聚類中心,轉(2);
(4)聚類結束,確定s個初始聚類中心。
3)運用K-means算法進行文字特征類提取。計算所有數據點與聚類中心的距離
k中總的數據個數。
6)如果ck'≠ck,轉到3),否則K-means聚類結束,轉到7)。
7)根據已知聚類中心之間的距離,通過式(7)來確定RBF神經網絡算法隱含層節(jié)點的徑向基函數的寬度σk。
其中,樣本集合gk滿足:
8)確定RBF神經網絡隱含層到輸入層的權值ωjk。權值可通過梯度下降法來計算得到。
首先記式(8)為RBF神經網絡誤差函數:
其中Pik為第i個輸入節(jié)點在第k個輸出節(jié)點時的實際輸出值,Oik為第i個輸入節(jié)點在第k個輸出節(jié)點時的期望輸出值。
然后采用式(9)確定權值:
權值ωjk的修正公式為
其中ωjk為第j個隱含層節(jié)點與第k個輸出層節(jié)點之間的權重,ξ為學習率,本文取ξ=0.008。
9)當隱含層節(jié)點過多的時候,需要精簡隱含層節(jié)點。當隱含層節(jié)點cj的輸出權值滿足式(10)時,可以刪除該節(jié)點。
其中ωmin為最小的臨界權值。
本文選取的數據集為ICDAR 2019大會中,美團聯合國內外知名科研機構和學者主辦的“中文門臉招牌文字識別”比賽的公開數據集(ICDAR 2019 Robust Reading Challenge on Reading Chinese Text on Signboards,ICDAR 2019 RRCRCTS)。該數據集共25000張圖片,每張圖片是由完全獨立的不同個人、采用不同設備、在不同地點和不同時間和不同環(huán)境下所拍攝的不同商家的門臉招牌圖片。
該數據集以中文文字為主,標注內容比較完備,每張圖片均標注了單個字符的位置和文本,以及各字符串的位置和文本。在這25000張圖片中,選取2000張圖片用于訓練,200張用于驗證,300張用于測試。所有實驗均采用python語言實現,實驗 環(huán) 境 為Windows10,python3.6,CPU主 頻 為2.70GHz,8G內存,256G固態(tài)硬盤。
融合K-means和RBF神經網絡算法來進行文字識別,通過對數據集圖像中文字部分進行單字劃分,然后對單字圖像進行特征提取,再匹配訓練樣本庫。本次實驗中,準確率為所有單張圖片的識別準確率之和的均值,識別效率為單位時間內識別出的正確漢字個數,具體的測試結果如表1所示。
表1 三種神經網絡算法識別結果統計
從表1可以看出,在數據集ICDAR 2019 RR?CRCTS上,傳統BP神經網絡算法雖然準確度很高,但識別效率非常低下,而本文的融合K-means和RBF神經網絡算法相比于傳統的RBF神經網絡算法而言,其準確度與識別效率均高于后者。初步實驗證明,融合K-means和RBF神經網絡算法有著較高的準確率,能有效地提高漢字識別效率,具有一定的實用價值。
本文研究了傳統RBF神經網絡算法和傳統K-means算法,在面對傳統RBF神經網絡算法中分類精度不高和傳統K-means算法對初始聚類中心敏感等問題,提出了融合K-means和RBF神經網絡的漢字識別算法。首先用減聚類算法改進K-means算法,消除它對初始聚類中心的敏感,防止聚類結果的波動,再用優(yōu)化后的K-means算法構造RBF神經網絡的隱含層節(jié)點,提高計算速度。為了驗證該算法,本文采用ICDAR 2019 RRCRCTS數據集進行實驗,實驗結果表明該算法有著一定的優(yōu)勢和實用價值。