基于FPGA的脫機手寫體漢字識別系統(tǒng)
1設計摘要
本文引用地址:http://m.butianyuan.cn/article/265048.htm1.1項目背景
漢字作為非字母化、非拼音化的文字,在當今高度信息化的社會里,如何快速高效地將漢字輸入計算機,已成為影響人機交流信息效率的一個重要瓶頸。目前,漢字輸入主要分為人工鍵盤輸入和機器自動識別輸入兩種,其中人工鍵入速度慢且勞動強度大。自動識別輸入分為語音識別和漢字識別兩種,其中漢字識別是將漢字點陣圖形轉換成電信號,然后輸入給數字信號處理器或計算機進行處理,依據一定的分類算法在漢字字符集合中識別出與之相匹配的漢字。因此,研究脫機手寫體漢字識別的目的就是解決漢字信息如何高速輸入的問題,以更方便快速地進行信息加工處理。
脫機手寫體漢字識別在以下領域中具有廣泛的應用前途:
(1)信息處理領域中使用漢字識別技術可以大大提高紙質文檔電子化的效率。若將漢字識別的準確度和速度均提高到比人工輸入更高的程度,便可在提高效率的同時節(jié)省人力資源。
(2)漢字自動識別是辦公自動化、新聞出版等最理想的輸入方法。
(3)很大部分電子文獻是以點陣圖像存儲的,經過漢字識別后以字符存儲,會大大節(jié)省存儲空間,并提高網絡等傳輸速度。
(4)使用FPGA進行漢字識別可以采用并行化計算,從而實現高速低功耗的文字識別。而如果采用人工鍵盤輸入的方式,計算機在大部分時間里處于等待鍵盤敲擊的閑置狀態(tài),從而導致計算機系統(tǒng)利用率不高。
和所有模式識別系統(tǒng)一樣,脫機手寫體漢字識別的主要性能指標是正確識別率和識別速度,從實用角度看,還應考慮系統(tǒng)的復雜性、可靠性和價格等等。對識別系統(tǒng)識別率和識別速度的要求,很難有一種統(tǒng)一的、嚴格的標準,主要根據實際應用的需要來確定。但是作為一種輸入手段,漢字識別系統(tǒng)的性能至少應該可以和其它輸入手段(如人工輸入)相比擬。
以上指標應該是漢字識別系統(tǒng)必須達到的最低要求(在某些需要大量輸入的場合對識別系統(tǒng)性能的要求還應更高),但是由于手寫體漢字的特殊性,要達到上述要求困難較大。手寫體漢字的特殊性可歸納為如下幾條:
(1)字量大,字體多,結構復雜
(2)部分字形相似
(3)書寫變化大:筆畫不規(guī)范;筆畫之間、偏旁部首之間相對位置不固定;連筆書寫或筆畫粘連。
(4)字與字之間相互粘連
正因為手寫體漢字存在以上四特殊之處,脫機手寫體漢字識別被一些學者看成是模式識別的最終目標。目前存在的主要問題有:
(1)脫機手寫體漢字的行、列切分正確率不高;
(2)在特征提取階段,目前尚未找到一組適用于各種字體、筆跡的特征向量;
(3)由于漢字的特征向量維數較高,將待識別漢字的特征向量同樣本庫中的海量模板匹配會占用很多識別時間,直接導致識別性能不高。
如果能采用FPGA進行高速并行計算,使上述困難能得到最大程度的化解,從而使脫機手寫體漢字識別系統(tǒng)達到實用階段,則在實際應用方面和理論研究方面均有重大意義。由于漢字模式類別多,是大類別(或者稱為超多類)模式識別問題,因此其識別涉及到模式識別、圖像處理、數字信號處理、人工智能、模糊數學等多個學科,是一門綜合性技術,有著重要的價值和意義。
1.2系統(tǒng)的設計目標
本次設計要實現的目標就是建立一個圖像處理識別的平臺,使手寫的漢字以圖像文件格式(BMP)的形式輸入FPGA,提取出其特征向量,通過分類識別,轉換為漢字文本。我們需要設計和實現脫機手寫漢字識別系統(tǒng),主要實現樣本采集,預處理,特征提取,分類與識別五個方面。系統(tǒng)的具體目標如下:
(1)使用FPGA對字庫圖像文件進行前期處理,包括字符分割平滑去噪、二值化處理、歸一化、細化等。
(2)使用處理后的標準字符圖像對分類模型進行訓練,使其成為具有字形識別功能的分類器。通過包括神經網絡、筆畫密度、字型特征、四角特征等多種分類器的測試,綜合考慮每種分類器的并行化可能性、漢字特征針對性等,選出合適的分類器分別進行粗分類和細識別,以利用FPGA的并行運算特性大幅度提高識別的效率和準確度。
(3)對多個手寫樣本圖像文件進行并行化的采集和預處理,提出具有價值的字形特征。采用適當的分類器對其進行分類識別,得到漢字國標碼,從而實現手寫體漢字從圖片到文本的轉換。
2系統(tǒng)原理和技術特點
2.1預處理
2.1.1行、字切分
從實際出發(fā),一個完整的脫機手寫體漢字識別系統(tǒng)必須能對輸入的整個手寫體漢字圖像進行一些必要的處理,并從中正確切分出一個個手寫體漢字,形成單個漢字的圖像陣列,以便對其進行方便的單字識別處理。
通常的做法是對漢字圖像從上到下逐行掃描,同時計算每掃描行的像素,獲取圖像的水平投影,利用文字行間空白間隔造成的水平投影空隙,將行分割,再利用字與字之間的空白間隔在圖像行垂直投影上形成的空白間隙,將單個漢字的圖像切割出來。
2.1.2平滑去噪處理
一幅漢字圖像可能存在著各種噪聲,消除圖像中的這些噪聲成分叫做圖像的平滑化,其目的有兩個:一是按特定的需要突出一幅圖像中的有用信息,使?jié)h字圖像清晰,視覺效果好;另一是為適應計算機處理的需要,消除漢字在輸入數字化時所混入的噪聲。
常用的平滑去噪算法有中值濾波、鄰域平均法去噪處理(均值濾波) 、Unger平滑算法等,在接下來的研究中我們將詳細研究討論每種算法的特性并選擇最適合漢字和FPGA特性的一種。
2.1.3二值化
二值化就是把數字字符圖像的灰度數字信號處理成只有O和1兩級灰度的圖像。對灰度圖像二值化能顯著的減小數據存儲的容量,降低后續(xù)處理的復雜度。二值化的基本要求是筆劃中不出現空白并較好的保持原來文字的特征。
最簡單的二值化通過設定固定灰度閾值完成,其關鍵在于閾值的選擇。常用方法有整體閾值法(由灰度級直方圖確定整體閾值)、局部閾值法(由像素灰度值和像素周圍點局部灰度特性確定閾值)、動態(tài)閾值法(不僅與灰度有關,還與該像素坐標位置有關)。局部閾值和動態(tài)閾值雖然能處理質量較差的文字,避免整體閾值法帶來的不應有的失真。但是,一則時間開銷大,二則考慮到實際的局部閾值和動態(tài)閾值選擇算法往往在圖像的某些部位上產生整體選擇不會產生失真,所以,在文字識別中,一般采用整體閾值法。
2.1.4歸一化
單個漢字圖像(或點陣),還必須進行歸一化處理,以消除漢字在位置和大小上的變化。歸一化處理,主要包括位置歸一化和大小歸一化。漢字點陣的歸一化是十分重要的,因為漢字識別主要基于漢字的圖形結構,如果不能將漢字點陣在位置和大小上經歸一化處理一致起來,漢字點陣的相似性比較就無法正確進行。
(1)位置歸一化
主要有兩種,一是重心歸一化,二是外框歸一化。重心歸一化方法是計算出漢字的重心后將重心移到漢字點陣的規(guī)定位置。外框歸一化是將漢字的外框移到點陣規(guī)定位置上。因為重心計算是全局性的,因此抗干擾能力強;各邊框搜索是局部性的,易受干擾影響。而大多數漢字筆劃分布左、右、上、下比較均勻,漢字的重心和漢字字形的中心相差不多,重心歸一化不會造成字形失真,但對個別上下分布不勻的漢字,重心歸一化使字形移動,以致字形超出點陣范圍而造成失真。
(2)大小歸一化
對大小不一的的漢字進行識別,必須有效地進行大小歸一化。常用方法是根據漢字點陣的外圍邊框進行的,先判斷漢字點陣的上、下、左、右的外圍邊框,然后按比例將漢字線性放大或縮小成規(guī)定大小的點陣。
2.1.5細化
在二值化點陣圖像中,漢字圖像中的前景像素點對識別率的貢獻是不一樣的,對識別有價值的漢字信息,主要集中在漢字骨架上,因此經常用細化技術處理原始漢字圖像的前景像素點,將滿足一定條件的像素點保留,不滿足條件的像素點置為背景像素點,最終得到筆劃寬度為1的漢字骨架圖像。細化后的漢字骨架的存儲量比原漢字二值化點陣要少得多,在降低了處理工作量的基礎上又保留了原漢字絕大部分特征,利于特征抽取,保證了識別的高效、正確性。但是細化往往會造成新的畸變,增加了對識別的干擾和困難。細化的算法很多,大體分類如下:
(1)按細化后圖形的連續(xù)性分,有四鄰連接算法,八鄰連接算法和混合連接算法。四鄰接連指的是水平垂直四個方向上的連接,八鄰連接則加上正反斜向共八個方向。
(2)按細化處理過程分,有串行、并行和串并行處理法。FPGA適合并行計算,故我們采用并行處理法,即對邊緣點全部檢測完畢后,再同時改變所有可刪除點的值。
(3)按處理方式分,有單方向,雙方向和四方向細化法。愈是方向多的細化處理方式,細化的速度愈快。
2.1.6預處理仿真示例
2.2特征提取
由于漢字字量大、字體多、結構復雜,我們采用分級分類的方法進行識別,而每級分類應采用最合適的特征提取算法。同時,考慮到FPGA的并行計算特點,應優(yōu)先選用并行性好的算法?;谝陨蟽牲c,我們在對BP神經網絡、字型特征、筆畫密度特征、彈性網格特征、筆畫結構特征、四角特征等能夠提取特征的算法進行了理論分析,有如下討論:
2.2.1基于分類識別的選擇
BP神經網絡:具有自適應性,通過反復訓練不斷修正連接權值以進行特征提取。該方法具有較高的普適性,并且可以通過調整學習方法得到一種較優(yōu)的網絡。但該方法并未利用漢字的特征,適用于子類中單字識別。
字型特征:通過對水平和垂直方向上投影得出的直方圖的分析,可得出一個漢字的字型統(tǒng)計特征(左右、上下等),適于粗分類。
筆畫密度特征:從水平,垂直方向等間隔取多根掃描線,取穿過筆畫數的最大值,形成2維特征向量,適于粗分類。
彈性網格特征:根據筆畫位置將單個漢字分割為幾個網格,通過計算每個網格內筆畫的矢量特征進行特征提取,特征向量較多,適用于子類中單字識別。
筆畫結構特征:通過尋找交叉點和拐點將漢字分為筆段,然后將筆段按傾斜度和連通性合并成筆畫,提取筆畫的矢量特性作為特征向量,向量數較多,適用于子類中單字識別。但該方法同時可以統(tǒng)計出筆畫總數和交叉點總數,可用于粗分類。
四角特征:通過提取四角的筆畫結構特征進行分類,向量中包含四個元素,可結合(5)進行粗分類。
我們將通過MATLAB對以上算法進行實驗,以確定最優(yōu)的分類和子分類中單字識別的算法。
2.2.2基于并行化運算的選擇
BP神經網絡:由于神經網絡由神經元構成,每個神經元的計算以及權值調整計算都為乘法和加法,以上特征使之很適合并行化和流水線計算。
字型特征:投影運算為串并行結合加法運算,最大值計算為串行運算,字型判斷部分為較復雜串并行結合邏輯運算。
筆畫密度特征:水平和垂直掃描運算為串行,多根掃描線并行,取最大值運算為串行。
彈性網格特征:分格后可對每格進行并行化運算,但其中的向量計算包含大量除法,其實現效率有待驗證。
筆畫結構特征:交叉點尋找為并行,傾斜度計算為并行,提取矢量特性為并行,但以上步驟的結果入庫過程為串行掃描。
四角特征:四角可并行運算。
在進行MATLAB進行算法實驗的同時,我們會同時使用System Generator進一步對算法的并行化及流水線計算可能性進行評估實驗,并結合2.2.1進行總體效率評估。
2.3分類識別
在分別對樣本和標準樣本提取特征后,分類和識別可采用神經網絡、決策樹、支持向量機或統(tǒng)計方法等。對于在FPGA上實現文字識別來說,神經網絡和統(tǒng)計方法可行性較好,下面對這兩種算法的特點進行簡單說明。
2.3.1神經網絡
人工神經網絡通過網絡節(jié)點間的連接來存儲信息并完成分類計算。神經網絡分類器通過學習,根據訓練樣本集來調整連接的權值,構造出相應的分類曲面。由于其較強的曲線擬合和模式分類能力,為手寫簽名識別的研究提供了新的手段。
神經網絡有很強的信息處理能力,它能以任意精度逼近連續(xù)非線性函數;它信息處理的并行機制中的冗余性可以實現很強的容錯能力;對復雜不確定問題具有自適應和自學習能力。在一定多的訓練次數以及合適的參數選擇下,神經網絡可以得出很理想的結果。
神經網絡是由大量神經元構成的,其自身的特點使其非常適合并行化和流水線計算。
2.3.2 統(tǒng)計方法
統(tǒng)計方法主要有最近鄰歸類、基于事例的學習等,這些方法本質上是基于某種距離進行相應變換,得到具有另外一些參數的分類公式。統(tǒng)計學上主要用的基本距離公式有絕對值距離、歐氏距離、明斯基距離等。
其中,最小距離分類器作為一種直觀有效的分類方法,在實際應用中受到廣泛重視,尤其對于高維多模式問題,使用類聚等分類方法存在計算量巨大、難以保證算法收斂等問題,距離函數分類器更顯其優(yōu)越性。在實際問題中,常把各類模式矢量的統(tǒng)計平均值作為該類模式的基準模板,用待識別樣本與此基準模板做比較。
統(tǒng)計計算多為乘累加運算,在FPGA中采用分級流水線乘法器和加法器可獲得較高的計算效率。
fpga相關文章:fpga是什么
絕對值編碼器相關文章:絕對值編碼器原理 全息投影相關文章:全息投影原理
評論