基于ARM 和Linux的字符采集與識別系統(tǒng)
摘要:提出了一種針對嵌入式系統(tǒng)的字符識別方法。介紹了一種基于ARM9處理器和嵌入式L inux 的字符圖像采集與識別系統(tǒng)。該系統(tǒng)采用嵌入式L inux操作系統(tǒng), 圖像預處理和字符識別的軟件開發(fā)可以脫離硬件。通過開發(fā)不同的識別軟件, 系統(tǒng)可應(yīng)用于名片識別、二維條碼識別、紙幣序列號識別等多種字符識別的場合, 提高了通用性。
傳統(tǒng)紙質(zhì)讀物的數(shù)字化以及諸如條碼識別等字符識別系統(tǒng)都離不開圖像的讀入與識別, 然而目前廣泛使用的字符識別設(shè)備將這兩部分獨立開, 即由圖像讀入設(shè)備(如掃描儀)和安裝于計算機上的識別軟件構(gòu)成, 但這樣的設(shè)備構(gòu)成離不開安裝識別軟件的計算機, 造成成本上升和使用不便。隨著電子產(chǎn)品的普及, 具有攝像功能的電子產(chǎn)品及其上的識別軟件也可以構(gòu)成一個字符識別系統(tǒng), 但是這種識別系統(tǒng)的識別速度受到攝像頭調(diào)焦的限制, 難以廣泛應(yīng)用。文中提出的便攜式字符采集和識別系統(tǒng), 其硬件平臺是基于接觸式圖像傳感器( C IS) 與ARM9處理器S3C2410,軟件平臺是基于嵌入式L inux 系統(tǒng), 可以克服以上兩種設(shè)備的缺點, 同時滿足方便性和快速性的要求。另一方面, 由于設(shè)備基于L inux 操作系統(tǒng), 使得識別軟件的開發(fā)和擴展可以脫離硬件, 大大提高識別系統(tǒng)的通用性。
1.圖像采集模塊
字符識別系統(tǒng)主要由圖像采集模塊和圖像處理模塊組成, 其中圖像采集模塊是整個系統(tǒng)的硬件核心,圖像采集的質(zhì)量直接影響系統(tǒng)的整體性能。線陣C IS每次掃描得到一行像素值, 配合運動平臺的縱向運動可以完成一幅二維圖像的掃描。為保證圖像采集的質(zhì)量, 必須精確控制運動平臺與C IS 之間的工作匹配, 本系統(tǒng)以CPLD 作為圖像采集模塊的控制核心,CIS傳感器、步進電機、ADC 以及高速緩存FIFO 在CPLD的控制協(xié)調(diào)下完成一幅圖像的采集、模數(shù)轉(zhuǎn)換和數(shù)據(jù)緩存。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
圖1系統(tǒng)結(jié)構(gòu)框圖。
1.1硬件平臺
( 1)ARM 處理器。
采用三星公司的ARM9系列S3C2410A 作為處理器, 工作頻率可達203MH z, 片上資源豐富, 可以滿足實時性要求, 為圖像處理提供運行平臺并配合CPLD 完成圖像采集模塊的邏輯和讀寫控制。
( 2)圖像傳感器及運動平臺。
接觸式圖像傳感器( C IS) 具有體積小、重量輕、功耗低、結(jié)構(gòu)緊湊、連接方便以及無阱深等優(yōu)點, 在掃描儀等領(lǐng)域被廣泛應(yīng)用。本系統(tǒng)采用SV643C10型C IS, 其物理分辨率600 dpi( 236 do t /mm ) , 有效掃描寬度292mm, 共688個傳感器像素單元, 其像素輸出頻率為5MH z。
運動平臺由步進電機和光電傳感器等組成, 光電傳感器實現(xiàn)對進紙的檢測, 啟動掃描。步進電機控制掃描件換行, 配合C IS完成圖像的采集。
( 3)信號調(diào)理電路。
信號調(diào)理電路完成對C IS 輸出模擬信號的差分、放大等, 實現(xiàn)降噪和電壓匹配的作用。
( 4)高速A /D轉(zhuǎn)換器。
由于C IS的像素輸出頻率高于處理器內(nèi)部的A /D轉(zhuǎn)換器, 所以本系統(tǒng)采用高速的外部ADC 器件TLC5540, 其最大采樣率40 MB s- 1, 擁有8 位分辨率。
( 5)數(shù)據(jù)緩存。
為了實現(xiàn)ADC 和ARM 的速度匹配, 提高系統(tǒng)工作效率, 在ADC 與ARM 處理器之間加一個F IFO 存儲器作為高速數(shù)據(jù)緩存, 選用Averlog ic公司的1 MB8 bit的AL4V8M 440。
( 6) CPLD模塊。
實現(xiàn)圖像采集模塊的邏輯控制。為C IS傳感器提供的時鐘信號CP 和行轉(zhuǎn)移信號SP。為ADC 提供采集時鐘, 為FIFO 提供讀寫控制和寫時鐘等。
( 7)存儲器。
本系統(tǒng)采用三星公司的64 MB NAND Flash 存儲器K 9F1208作為程序和數(shù)據(jù)的存儲單元, 采用兩片16位的HY57V561620CT- H (總?cè)萘?4MB ) SDRAM作為系統(tǒng)內(nèi)存, 同時作為DMA 方式讀取緩存數(shù)據(jù)的目的存儲器。其中Flash存儲器存儲空間分配情況如圖2所示。
圖2NAND Flash地址分配。
1.2軟件設(shè)計
圖像采集模塊的程序設(shè)計主要任務(wù)是實現(xiàn)該模塊各元器件的協(xié)調(diào)工作以及實現(xiàn)對圖像數(shù)據(jù)的讀取。主要分為3部分內(nèi)容。
( 1) CPLD 上的邏輯設(shè)計。采用VHDL 語言編寫,該程序?qū)⑼獠烤д竦?0MH z輸入進行分頻, 為C IS、ADC、FIFO 等提供時鐘和控制信號, 并為步進電機提供工作時序。
( 2)嵌入式L inux 系統(tǒng)的裁剪、配置和移植。
本系統(tǒng)采用26內(nèi)核, 宿主機環(huán)境為Ubuntu804。
圖3L inux內(nèi)核配置。
( 3) L inux 驅(qū)動程序的編寫。由于采集模塊對于Linux系統(tǒng)來說可看作為一個設(shè)備, 因此該部分程序應(yīng)作為嵌入式L inux 設(shè)備驅(qū)動程序來編寫, 該驅(qū)動程序通過CPLD間接實現(xiàn)采集模塊的邏輯控制和圖像數(shù)據(jù)的讀取, 為應(yīng)用程序的開發(fā)提供底層硬件的接口[ 5 ] 。從FIFO 緩存讀取圖像數(shù)據(jù)采用DMA 方式,DMA的目的存儲器為ARM 系統(tǒng)的SDRAM。
圖像采集模塊工作流程圖和圖像采集效果分別如圖4和圖5所示。
2.圖像識別模塊
本文的目的是構(gòu)建一個通用的字符識別系統(tǒng),圖像采集模塊實現(xiàn)了對掃描件圖像數(shù)據(jù)的獲取。由于系統(tǒng)基于嵌入式L inux, 使得后續(xù)的圖像處理與字符識別軟件設(shè)計可以脫離硬件系統(tǒng)獨立進行, 具有較高的通用性, 可以根據(jù)實際應(yīng)用場合開發(fā)和擴展不同的識別軟件, 本文僅探討手寫體數(shù)字識別的應(yīng)用。
識別算法:
線性判別分析( L inearity D istinct ion Analysis,LDA)是有效的特征抽取方法之一, 廣泛用于人臉識別和字符識別等領(lǐng)域[ 6] 。其基本思想是選擇使F isher準則函數(shù)達到極值的一組矢量作為最佳投影方向, 樣本在該矢量集上投影后, 達到最大的類間離散度和最小的類內(nèi)離散度。為找到投影軸, 應(yīng)最大化類間離散矩陣Sb 和類內(nèi)離散矩陣Sw 的比值:
類間離散矩陣Sb 和類內(nèi)離散矩陣Sw 的定義為
其中, c表示為模式的類別數(shù); j 表示為第j 類的均值(其概率為pj ); 0 為全部樣本均值; xji 為第j 類模式i的h維向量; nj 是第j 類的樣本數(shù); N 是所有樣本數(shù)。j 和0 定義為:
最優(yōu)化問題可以通過Sb 和Sw 的特征值的求解而獲得。如果在樣本離散矩陣中非目標樣本占有比重較大, LDA 并不能保證找到最優(yōu)子空間。LDA 的最優(yōu)分類標準并不一定對分類準確性最優(yōu), 有可能使得已經(jīng)分開的鄰近類引起不必要的重迭。本文采用一種新的加權(quán)LDA 方法( ILDA ), 其計算S^b 和S^w 方法如下:
顯然, 如果( )是個常數(shù), 在投影方向上, S^b和S^w 分別等同Sb 和Sw。如果每一類的( )是不同的, 這將對臨近類的重迭樣本的分類產(chǎn)生影響??梢钥闯? 如果 ij較大, 則( )較小。
實驗樣本取自手寫體通用數(shù)據(jù)庫UC I, 在Bhattacharyya距離( BD)分類器下對加權(quán)線性判別分析與相應(yīng)的算法進行實驗比較和分析, 取得較好的識別性能, 證實了該方法提取的特征的有效性。
3.結(jié)束語
本文采用嵌入式Linux 和ARM 處理器軟硬件平臺, 利用C IS傳感器配合運動平臺實現(xiàn)了圖像的采集和存儲, 為嵌入式字符識別系統(tǒng)構(gòu)建了一個圖像采集平臺。在字符識別的應(yīng)用方面, 探討了廣泛應(yīng)用的手寫數(shù)字識別算法, 在已有的線性判別分析算法基礎(chǔ)上, 提出了一種改進的加權(quán)線性判別分析算法, 并對該算法進行了實驗驗證, 獲得了較好的識別率。