山丹 張曉旭 叢國(guó)濤
摘要:為滿足符號(hào)識(shí)別系統(tǒng)對(duì)實(shí)時(shí)性、低功耗和小型化的要求,該文設(shè)計(jì)了一種以FPGA為系統(tǒng)核心,輔以O(shè)V7670視頻采集模塊和VGA接口顯示器,實(shí)現(xiàn)對(duì)基本圖形、數(shù)字和英文字母進(jìn)行識(shí)別及結(jié)果顯示。其中,對(duì)圖像的處理及符號(hào)識(shí)別部分由FPGA完成,包括IIC攝像頭配置、緩存、灰度處理、中值濾波、根據(jù)特征識(shí)別基本圖形和數(shù)字、根據(jù)字模匹配程度識(shí)別英文字母、VGA顯示等,充分利用FPGA的高速并行處理的特點(diǎn),結(jié)合片內(nèi)RAM高速處理和片外SDRAM大容量特性,實(shí)現(xiàn)對(duì)視頻數(shù)據(jù)的處理和存儲(chǔ)。同時(shí),系統(tǒng)具有抗干擾性較強(qiáng)、小巧、通用性強(qiáng)等特點(diǎn),可擴(kuò)展為人工智能、車牌識(shí)別等系統(tǒng)使用。
關(guān)鍵詞:FPGA;符號(hào)識(shí)別;圖像處理;中值濾波
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)30-0252-03
Abstract: In order to satisfy the real-time, low-power and miniaturization requirements of symbol recognition system, a system is designed based on FPGA, supplemented by OV7670 video acquisition module and VGA interface displayer to realize the recognition of basic graphics, numbers and English letters. The image processing and symbol recognition part is completed by FPGA, including IIC camera configuration, buffer, gray processing, median filtering, recognition of basic graphics and numbers according to features, recognition of English letters according to the degree of font matching, VGA display and so on. The features of high-speed and parallel processing ability of FPGA are fully utilized in combination with high-speed RAM on chip and large capacity of off-chip SDRAM to achieve the processing and storage of video data. At the same time, the system has strong anti-interference, compact, versatility and other characteristics, which can be extended to artificial intelligence, number plate recognition systems.
Key words: FPGA; Symbol Recognition; Image Processing; Median Filtering
對(duì)圖形、數(shù)字和英文字母等符號(hào)的識(shí)別,作為圖像處理和機(jī)器視覺領(lǐng)域的重要分支,近年來成為廣大學(xué)者研究的熱點(diǎn)和難點(diǎn)。目前,此類系統(tǒng)在信息處理、人工智能、密碼識(shí)別、車牌識(shí)別和交通管理等領(lǐng)域有著廣泛的應(yīng)用前景。而現(xiàn)有系統(tǒng),絕大多數(shù)都是基于PC機(jī)[1] [2]設(shè)計(jì)的,其從實(shí)時(shí)性、功耗、成本和小型化等方面都難以滿足不同應(yīng)用的需求。鑒于此,基于嵌入式平臺(tái)的符號(hào)識(shí)別系統(tǒng)成為研究熱點(diǎn),而FPGA擁有大量邏輯單元和布線資源,具有并行處理、速度快、功耗低、成本低的特點(diǎn),其設(shè)計(jì)靈活,易于維護(hù)和升級(jí),較傳統(tǒng)PC機(jī)及其他以單片機(jī)為核心的嵌入式系統(tǒng),有明顯優(yōu)勢(shì)。因此,本文提出了一種基于FPGA硬件平臺(tái)的符號(hào)識(shí)別方案。
對(duì)符號(hào)的識(shí)別方法目前有很多種,如提取特征的識(shí)別方法[3]、模板匹配方法[4]和人工神經(jīng)網(wǎng)絡(luò)法[5]等。其中,人工神經(jīng)網(wǎng)絡(luò)的方法雖較為流行,但其輸入向量數(shù)據(jù)量大,訓(xùn)練時(shí)間長(zhǎng),網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,實(shí)現(xiàn)難度大;基于特征的識(shí)別方法適用于一些簡(jiǎn)單符號(hào),特征明顯,易提取,如三角形等基本圖形和數(shù)字的識(shí)別;模板匹配方法無須樣本訓(xùn)練,也避免了提取復(fù)雜符號(hào)特征的困難,而是利用符號(hào)圖像的整體特征,大大提高識(shí)別速度和準(zhǔn)確率,適用于如英文字母的識(shí)別。
1系統(tǒng)總體設(shè)計(jì)方案及原理
本系統(tǒng)是由FPGA核心板、OV7670視頻采集模塊、VGA顯示模塊組成,如圖1系統(tǒng)結(jié)構(gòu)框圖所示。
系統(tǒng)工作原理。 ① FPGA核心板采用Altera的CycloneIV系列 4CE6F17 FPGA作為控制和數(shù)據(jù)處理中心,接收由視頻采集模塊送來的圖像幀信息,進(jìn)而經(jīng)過一系列處理并識(shí)別符號(hào)后,產(chǎn)生VGA接口控制時(shí)序,最終將識(shí)別結(jié)果顯示出來。② 視頻采集模塊采用CMOS攝像頭模塊OV7670,通過IIC接口對(duì)其進(jìn)行配置后,開始采集圖像數(shù)據(jù),并通過8位并行接口,每幀圖像傳輸30萬像素?cái)?shù)據(jù),給FPGA單元,供后續(xù)處理。③VGA顯示模塊用于接收來自FPGA的顯示數(shù)據(jù),經(jīng)過D/A轉(zhuǎn)換后,顯示在顯示器上。
2FPGA實(shí)現(xiàn)
2.1 FPGA內(nèi)部電路結(jié)構(gòu)
FPGA內(nèi)部電路作為整個(gè)電路的核心,如圖2所示,主要由IIC配置模塊、并行視頻數(shù)據(jù)緩存模塊、預(yù)處理模塊、基本圖形識(shí)別模塊、數(shù)字識(shí)別模塊、英文字母識(shí)別模塊、VGA接口模塊和狀態(tài)機(jī)模塊組成。這里,為提高圖像識(shí)別精度,節(jié)省FPGA內(nèi)部資源,采用紅色矩形方框作為識(shí)別框,將待識(shí)別符號(hào)置于識(shí)別框內(nèi),之后完成識(shí)別操作;有限狀態(tài)機(jī)模塊協(xié)調(diào)電路動(dòng)作的整體步調(diào),對(duì)電路動(dòng)作的先后順序進(jìn)行控制。
2.2 圖像采集及預(yù)處理模塊
對(duì)于圖像采集部分,首先,在FPGA內(nèi)部實(shí)現(xiàn)IIC接口時(shí)序,并對(duì)OV7670圖像數(shù)據(jù)采集模塊寄存器進(jìn)行設(shè)置,使其每幀圖像以640*480的RGB565格式輸出,由于并行接口位寬為8位,而每個(gè)像素點(diǎn)顏色為16位,分2次傳輸。其中,F(xiàn)PGA外部晶振輸入為50MHz,而IIC接口的通信頻率為10KHz,并行數(shù)據(jù)傳輸頻率為25MHz,所以模塊內(nèi)部需對(duì)50MHz進(jìn)行分頻,產(chǎn)生相應(yīng)時(shí)鐘,供數(shù)據(jù)傳輸用。之后,對(duì)采集進(jìn)來的圖像信息進(jìn)行緩存??紤]到FPGA內(nèi)部存儲(chǔ)器資源有限,而視頻數(shù)據(jù)量較大,這里使用片外SDRAM進(jìn)行緩存,以突發(fā)方式傳輸。由于其讀寫速度較快,在100MHz左右,與輸入圖像信息頻率不一致,所以引入雙端口FIFO解決異步時(shí)鐘域的數(shù)據(jù)傳輸。
對(duì)于圖像預(yù)處理部分,為節(jié)省邏輯資源和減小計(jì)算量,首先完成對(duì)彩色圖像的灰度處理,每個(gè)像素點(diǎn)數(shù)據(jù)由原來的16比特減少為8比特,節(jié)省一半的存儲(chǔ)空間。灰度處理公式如(1)所示。由于式中涉及浮點(diǎn)數(shù)的處理,在FPGA中將浮點(diǎn)數(shù)轉(zhuǎn)為定點(diǎn)數(shù)后,方便電路實(shí)現(xiàn)。所以,將各系數(shù)同時(shí)擴(kuò)大256倍,則公式(1)變成公式(2)的形式。
之后,對(duì)灰度圖像進(jìn)行中值濾波,用統(tǒng)計(jì)排序結(jié)果的中值來代替中心像素的值,濾除脈沖噪聲。采用5ⅹ5濾波窗口,以滑窗形式,不斷在圖像上從左向右,從上向下流水線式滑動(dòng)。對(duì)濾波窗口中25個(gè)值的中值獲取,采用基于比特平面的中值濾波算法[6]來實(shí)現(xiàn)。
最后,對(duì)中值濾波后的圖像進(jìn)行二值化處理,每個(gè)像素點(diǎn)用1和0區(qū)分,供后續(xù)符號(hào)識(shí)別時(shí)用,使后續(xù)計(jì)算變得簡(jiǎn)單、穩(wěn)定、易于電路實(shí)現(xiàn)。
2.3 基本圖形識(shí)別模塊
特征提取的目的是獲取一組少而精的分類特征,即獲取特征數(shù)目少且分類錯(cuò)誤概率小的特征向量。由于三角形、矩形、圓形等基本圖形基本特征比較明顯,這里采用特征法來區(qū)分三角形、矩形和圓型。這里,如圖3所示,用兩條線對(duì)圖形進(jìn)行切割,對(duì)每個(gè)圖形的切割交點(diǎn)記錄橫坐標(biāo),由于圖形線條存在寬度差別,取最左側(cè)交點(diǎn)作為X交點(diǎn)坐標(biāo),比較各個(gè)橫坐標(biāo)點(diǎn)X的大小從而判斷圖形所屬類別。
如圖3(a)所示,當(dāng)用識(shí)別框中心點(diǎn)以下兩條線切割三角形時(shí),X1-X2>閾值,可作為三角形的特征。如圖3(b)所示,當(dāng)用識(shí)別框中心點(diǎn)以下兩條線切割矩形時(shí),|X1-X2|<閾值,可作為矩形的特征。如圖3(c)所示,當(dāng)用識(shí)別框中心點(diǎn)以下兩條線切割圓型時(shí),X2-X1>閾值,可作為圓形的特征。這里,識(shí)別框行坐標(biāo)范圍設(shè)為:100 2.4 數(shù)字識(shí)別模塊 數(shù)字0~9的識(shí)別,同樣采用特征點(diǎn)統(tǒng)計(jì)方式實(shí)現(xiàn)[3]。如圖4所示,以對(duì)數(shù)字3的識(shí)別為例,用三條直線對(duì)數(shù)字進(jìn)行切割,其中,行方向兩條,列方向一條,統(tǒng)計(jì)數(shù)字在三條直線上的特征變化情況,從而達(dá)到圖像號(hào)碼的區(qū)分和識(shí)別。在號(hào)碼的列方向上的2/5和2/3處的橫線與號(hào)碼的交點(diǎn)數(shù)量均為1個(gè);號(hào)碼行方向中間的1/2處作豎線,與號(hào)碼豎直方向的交點(diǎn)數(shù)量為3個(gè)。同樣規(guī)則下,對(duì)0~9所有統(tǒng)計(jì)數(shù)據(jù)進(jìn)行歸類總結(jié),同時(shí)結(jié)合X1和X2交點(diǎn)在Y方向左右情況,作為識(shí)別數(shù)字的特征依據(jù),保存于FPGA片內(nèi)ROM中,供查詢比較用。這里,根據(jù)識(shí)別框坐標(biāo),行方向兩條直線的列坐標(biāo)分別為180和230,列方向直線的行坐標(biāo)為200??紤]到數(shù)字線條粗細(xì)差別,交點(diǎn)個(gè)數(shù)計(jì)算時(shí),以灰度值由0到1變化一次計(jì)數(shù)一次。 2.5 英文字母識(shí)別模塊 對(duì)于英文大寫字母A~Z和小寫字母a~z的識(shí)別,采用模板匹配方式實(shí)現(xiàn),在FPGA片內(nèi)ROM中分別存儲(chǔ)26個(gè)大寫字母和26個(gè)小寫字母的印刷體模板,供查詢比較用。未減少存儲(chǔ)空間需求和減少比較復(fù)雜度,方便FPGA電路實(shí)現(xiàn),這里只取9×9一共81個(gè)點(diǎn)作為模板,黑色區(qū)域?yàn)樽帜竻^(qū)域,用1表示,白色區(qū)域?yàn)榉亲帜竻^(qū)域,用0表示。將識(shí)別框內(nèi)英文字符與模板進(jìn)行比較,結(jié)合不同字母的形狀特征,區(qū)分字母類型。如圖5所示,以字母“B“為例,坐標(biāo)以左上角為(0,0),右下角坐標(biāo)為(8,8),字母‘B的特征位置分別為四個(gè)區(qū)域:(0,2)、(0,3)、(0,4);(1,6)、(1,7)、(2,6)、(2,7);(5,6)、(5,7)、(6,6)、(6,7);(8,2)、(8,3)、(8,4)。這里,為增加與字母‘D的區(qū)分特征,這里增加了第五個(gè)特征區(qū)域(4,3)、(4,4)、(4,5)。每個(gè)特征區(qū)域內(nèi)的點(diǎn)以“或“的形式存在,與被識(shí)別字母的二值化圖像進(jìn)行比較。 為減少比較點(diǎn)數(shù)量,縮小組合邏輯規(guī)模,提高比較效率,這里,對(duì)識(shí)別框內(nèi)二值化后圖像進(jìn)行隔20行掃描一次,隔20列掃描一次,即取行110、130、150、170、190、210、230、250、270與列110、130、150、170、190、210、230、250、270的交點(diǎn)作為與9×9模板的比較點(diǎn),實(shí)現(xiàn)與字母模板的一致性判別。 2.6 VGA接口模塊 VGA接口模塊用來產(chǎn)生VGA顯示器所需要的接口時(shí)序,包括行同步、場(chǎng)同步和數(shù)據(jù)總線信號(hào),并讀取視頻數(shù)據(jù),以25MHz的頻率以RGB565格式送到數(shù)據(jù)總線上。VGA顯示器分辨率為640*480,刷新頻率約為60Hz。 3 實(shí)驗(yàn)結(jié)果與分析 FPGA電路在黑金開發(fā)板AX-301上實(shí)現(xiàn),并配以O(shè)V7670視頻采集模塊和VGA接口顯示器,構(gòu)建系統(tǒng)并驗(yàn)證基于FPGA的符號(hào)識(shí)別系統(tǒng)的實(shí)現(xiàn)效果。圖6為基本圖像識(shí)別前后對(duì)比。圖7數(shù)字識(shí)別前后對(duì)比。圖8英文字母識(shí)別前后對(duì)比。紅色框中為識(shí)別框,將待識(shí)別字符置于識(shí)別框內(nèi);藍(lán)色框?yàn)樽R(shí)別結(jié)果。 4 結(jié)語 本系統(tǒng)充分利用FPGA的高速并行處理能力,配以圖像采集單元和VGA顯示器,實(shí)現(xiàn)了基于FPGA的基本圖像、數(shù)字和英文字母的識(shí)別。電路設(shè)計(jì)既便于FPGA電路實(shí)現(xiàn),又注重算法效率和實(shí)時(shí)性要求。本設(shè)計(jì)具有低功耗、低成本等特點(diǎn),可作為符號(hào)識(shí)別和信息處理的基礎(chǔ),方便實(shí)現(xiàn)功能擴(kuò)展。 參考文獻(xiàn): [1] 王育卜, 白寶興. 印刷體數(shù)字識(shí)別研究與實(shí)現(xiàn)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,39(1):101-102. [2] 殷璇,王生.基于離散Hopfield神經(jīng)網(wǎng)絡(luò)的字母識(shí)別研究[J], 計(jì)算機(jī)與數(shù)字工程,2011,12(1):34-37. [3] 高振斌,趙盼,王霞,等.印刷體數(shù)字識(shí)別系統(tǒng)的FPGA實(shí)現(xiàn)[J].重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,27(2):213-215. [4] 羅佳,劉大剛. 基于整體特征的快速英文字母識(shí)別方法[J]. 計(jì)算機(jī)與數(shù)學(xué)工程,2012,40(9):117. [5] 張翼成,陳欣,楊紅軍,等.基于組合特征的Bp神經(jīng)網(wǎng)絡(luò)數(shù)字識(shí)別方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(3):113-116. [6] 王瑩,高美鳳.基于FPGA的視頻圖像目標(biāo)檢測(cè)系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(6):98-102. 【通聯(lián)編輯:梁書】