基于SoPC的嵌入式文字識別系統(tǒng)設(shè)計
摘 要: 設(shè)計了一種基于SoPC的嵌入式文字識別系統(tǒng)。在FPGA平臺下,基于SoPC框架搭建軟硬件協(xié)同系統(tǒng),設(shè)計硬件電路完成文字圖像的采集和預(yù)處理,嵌入Linux系統(tǒng),使用其下的識別引擎完成文字圖像的識別。采用Altera公司的SoPC builder構(gòu)建系統(tǒng)框架,Quartus II完成硬件電路的設(shè)計,在宿主機Linux環(huán)境下完成了軟件部分的交叉編譯并嵌入到FPGA平臺。整體設(shè)計在DE2-70開發(fā)板上完成了系統(tǒng)驗證。
關(guān)鍵詞: 文字識別;可編程邏輯器件;可編程片上系統(tǒng);Linux
計算機文字識別也被稱為光學(xué)文字識別[1]OCR(Optical Character Recognition),在智能計算機和辦公自動化領(lǐng)域有著極其重要的應(yīng)用。文字識別的基本原理是通過諸如照相機、掃描儀等圖像輸入設(shè)備獲取文字圖片,經(jīng)過圖像處理后使用光學(xué)模式判別等算法分析文字圖片,最后將判斷出的文字編碼儲存起來從而完成文字識別。
文字識別設(shè)備對識別速度要求較高,因此圖像采集和預(yù)處理的速度十分關(guān)鍵。同時對識別率要求高,識別字體種類多,因此選用帶學(xué)習(xí)功能的軟件引擎非常重要。另外系統(tǒng)需要交互界面和大量外圍設(shè)備的驅(qū)動,因此需要引入操作系統(tǒng)以方便設(shè)計開發(fā)。
1 SoPC系統(tǒng)設(shè)計
系統(tǒng)功能設(shè)計的整體方案如圖1所示。各部分功能介紹如下:
(1)圖像采集功能,通過外接的攝像頭模塊完成圖像的采集;
(2)由硬件模塊完成文字圖像預(yù)處理功能,能夠?qū)Σ杉奈淖謭D像進(jìn)行傾斜糾正[2]、圖像分割[3]、二值化[4]等處理,保證系統(tǒng)的性能和速度,以提高后續(xù)的文字識別率;
(3)文字圖像識別功能,能夠?qū)⑽淖謭D像中的文字識別出來并保存在TXT中;
(4)識別結(jié)果的存儲和發(fā)送功能,能夠?qū)⒆R別結(jié)果文件存入SD卡或U盤中,或者通過網(wǎng)絡(luò)發(fā)送給上位機;
(5)交互界面功能:能夠通過LCD模塊或者外接的VGA設(shè)備等輸出設(shè)備以及鍵盤、觸摸屏或者鼠標(biāo)等輸入設(shè)備與使用者交互。
整個系統(tǒng)由一塊FPGA和攝像采集、輸入輸出等外圍設(shè)備組成。FPGA硬件模塊完成攝像采集控制和圖像預(yù)處理,CPU作為系統(tǒng)主控控制外設(shè)和硬件模塊的數(shù)據(jù)流。文字識別模塊和外圍設(shè)備驅(qū)動在Linux平臺上進(jìn)行開發(fā)或移植。
本文采用Altera Cyclone2系列的FPGA,通過Altera提供的SoPC技術(shù),可以將Nios Ⅱ軟核處理器和外圍設(shè)備接口IP通過Avalon總線連接起來,并集成在一塊FPGA上。圖2是系統(tǒng)的SoPC設(shè)計。
2 系統(tǒng)硬件設(shè)計
文字識別硬件設(shè)計主要包括文字圖像的采集控制和文字圖像的預(yù)處理。文字圖像的預(yù)處理又分為邊緣檢測、傾斜糾正、文字區(qū)域提取、二值化。硬件模塊總體設(shè)計圖如圖3所示。