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