摘 要:在字符識別應(yīng)用系統(tǒng)中,利用圖像傳感器采集到原始圖像數(shù)據(jù)后,大部分圖像處理工作通常由DSP、ARM或微計算機(jī)完成。以鈔票流轉(zhuǎn)智能監(jiān)控系統(tǒng)研發(fā)應(yīng)用為基礎(chǔ),提出一種由FPGA和ARM組成的圖像處理識別系統(tǒng),利用FPGA構(gòu)建了各種噪聲去除、特征提取、圖像增強(qiáng)、模板匹配等圖像硬件處理器,實現(xiàn)對26個英文字母和10個阿拉伯?dāng)?shù)字的快速識別。實踐表明,該系統(tǒng)具有超高的識別速度和超高的性價比。
關(guān)鍵字:匹配矩陣;快速識別;FPGA;圖像處理
中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A
1 概述
數(shù)字圖像處理技術(shù)發(fā)展迅速,應(yīng)用于各個行業(yè)和領(lǐng)域,已成為當(dāng)前研究的熱點。數(shù)字圖像處理方法的研究源于兩個主要應(yīng)用領(lǐng)域:其一是為了便于人們分析而對圖像信息質(zhì)量進(jìn)行提升,其二是為使機(jī)器自動理解而對圖像數(shù)據(jù)進(jìn)行變換、存儲、傳輸及顯示。由于數(shù)字圖像通常含有海量的信息用單線程的CPU難以進(jìn)行復(fù)雜的算法處理,而FPGA所具有的靈活性和強(qiáng)大的并行處理能力可以以較小的硬件開銷實現(xiàn)復(fù)雜的圖像處理過程。人們已經(jīng)開展這方面的研究,文獻(xiàn)[1]討論了用FPGA實現(xiàn)快速中值濾波算法,分析利用Sobel算子和用系統(tǒng)級并行流水線進(jìn)行圖像邊緣檢測硬件電路設(shè)計的優(yōu)點和可行性。文獻(xiàn)[2]設(shè)計了一個利用中值濾波器進(jìn)行圖像預(yù)處理的系統(tǒng),提高程序運算效率。所見研究大都集中于圖像預(yù)處理方面,而在圖像最終識別方面研究甚少。
本文以實際項目鈔票流轉(zhuǎn)智能監(jiān)控系統(tǒng)為依托,利用CIS(接觸式圖像傳感器)獲取鈔票、支票和轉(zhuǎn)賬單的圖像數(shù)據(jù),由FPGA和ARM組成實時圖像識別系統(tǒng),利用FPGA構(gòu)建各種噪聲去除、圖像增強(qiáng)、圖像預(yù)處理、模板匹配等圖像硬件處理器,實現(xiàn)對26個英文字母和10個阿拉伯?dāng)?shù)字的實時識別。利用FPGA大規(guī)模的布爾代數(shù)并行計算特性,以時鐘周期級別的識別速度實現(xiàn)了復(fù)雜的匹配算法,在大幅度降低了硬件成本的同時大幅度提高了識別的速度。其系統(tǒng)結(jié)構(gòu)下圖所示(圖1系統(tǒng)結(jié)構(gòu)圖)。
圖1 系統(tǒng)結(jié)構(gòu)圖
2 圖像采集
由于鈔票流轉(zhuǎn)智能監(jiān)控系統(tǒng)特殊的工作要求,圖像采集是由高速CIS來完成的。CIS采集圖像時與其它圖像傳感器不同,它的成像物距幾乎為零,是按照實物與圖像1:1的比例來完成的,所以采集到的字符圖像大小縮放和形變都非常較小,為后期的識別減少了大量的圖形較正工作。在實驗過程中加入定位裝置以后,經(jīng)過幾千次的采集實驗,均未出現(xiàn)字符圖像較大形變的現(xiàn)象。
3圖像降噪
中值濾波既能消除圖像中的噪聲,而且還能較好地保持圖像的邊緣。因此,本系統(tǒng)采用中值濾波來降噪。中值濾波的基本原理是把數(shù)字圖像中一點的值用該點的一個鄰域(即濾波窗口)中各點值的中值代替。傳統(tǒng)的中值濾波算法使用冒泡法對濾波窗口內(nèi)像素值進(jìn)行排序,從而找出中值,需經(jīng)過12級的比較排序才能找出中值,也就是說,至少要經(jīng)過12個時鐘周期的延時。本文所使用的排序方法對傳統(tǒng)方法進(jìn)行了改進(jìn)[3],它基于三輸入排序單元(每個三輸入單元由若干二輸入單元構(gòu)成),其基本思想并不是對整個鄰域窗口內(nèi)所有的像素值進(jìn)行排序,而是直接找出其中的最大值、最小值和中間值,并不理會其他像素值的排列順序。排序過程如下圖所示(圖2,中值濾波過程圖):
圖2中值濾波過程圖
這種方法比前一種方法減少了邏輯資源的占用量,卻和前一種方法一樣能找出中值。本設(shè)計模塊共進(jìn)行了三級排序操作,每一級都采用了流水線緩存技術(shù),使得每一組3×3鄰域窗口內(nèi)的輸入像素值在每一時鐘節(jié)拍都得到處理,保證了模塊的處理效率。
4 基于FPGA的匹配矩陣構(gòu)建
在本文的識別過程中,運用FPGA的異或門構(gòu)建圖像匹配計算的核心來實現(xiàn)圖像的匹配過程,同時利用位加法器的實現(xiàn)有效像素點個數(shù)的累加,使運算過程的各部分工作同步進(jìn)行。大幅度地提高識別的運算速度,其性價比遠(yuǎn)高于常用CPU系統(tǒng)。
圖像匹配識別算法的基本原理是,將字符模板像素二維矩陣M疊放在待測圖像素矩陣S上。比較M和S的像素。若兩者完全一致,則M和S之差為零,可用以式(1)測度來衡量M和S的相似度。
(1)
FPGA不僅邏輯運算能力突出,而且具有高速并行運算能力,總線帶寬幾乎不受限制,成本很低。系統(tǒng)構(gòu)建了一個由異或門為核心組成的匹配矩陣來完成匹配的過程,那么一次匹配就只需要一個時鐘周期就可以完成,再利用流水線作業(yè)的方式,能夠快速的實現(xiàn)圖像的匹配過程。匹配矩陣結(jié)構(gòu)如圖3所示:
圖像匹配矩陣由待識別FIFO、
模板圖像FIFO、待識別圖像累加器、模板
圖3 匹配矩陣結(jié)構(gòu)圖
圖例累加器、與門矩陣、異或門矩陣、匹配結(jié)果有效判定模塊、匹配結(jié)果累加模塊組成。先將待識別圖像和模板圖像數(shù)據(jù)寫入FIFO,然后分別求出待識別圖像和模板圖像的有效像素個數(shù),如果待識別圖像的有效像素個數(shù)大于模板圖像的有效像素個數(shù)的5倍,就說明待識別圖像受污染情況很嚴(yán)重,匹配的結(jié)果是無效的。5 識別矩陣的實現(xiàn)與仿真
基于匹配算法識別系統(tǒng)的核心部分是匹配矩陣,本系統(tǒng)所設(shè)計的匹配矩陣是以8個像素點為單位進(jìn)行匹配運算,所以在矩陣設(shè)計中,同樣采用8位FIFO作
圖4 匹配矩陣頂層模塊程序設(shè)計圖
為待識別圖像數(shù)據(jù)和模板圖像數(shù)據(jù)的緩存。利用FPFA的可編程“與”運算lpm_and模塊和“異或”運算lmp_xor模塊實現(xiàn)待識別圖像取“骨架”和匹配過程。然后利用前面所設(shè)計的累加器實現(xiàn)待識別圖像像素個數(shù)、模板圖像像素個數(shù)和兩者“骨架”不同像素個數(shù)的統(tǒng)計。能過比較識別圖像像素和模板圖像的像素個數(shù)可判定圖像匹配的結(jié)果是否有效。其頂層模塊程序設(shè)計如圖4所示。
其仿真信號有CLK時鐘信號,SCLR為系統(tǒng)清“0”復(fù)位信號,MPD為模版圖像數(shù)據(jù),SPD為等識別圖像數(shù)據(jù),WR為FIFO寫入信號,RD為讀FIFO信號,RD有效是匹配開始。
仿真結(jié)果顯示,構(gòu)建FPGA匹配矩陣,能在1個時鐘周期里(10ns)完成8個像素點的匹配過程。而PC機(jī)系統(tǒng)每完成一位像素的匹配,最少需要4個總線周期。
圖5 匹配矩陣仿真圖
在常用的FPGA芯片中,可輕易的構(gòu)建10個以上的匹配矩陣,能同時實現(xiàn)80個像素點的匹配。而PC機(jī)的每個總線周期至少需要量2個時鐘周期,以一個640像素大小的匹配為例,PC機(jī)至少需要4×2×640=5120個時鐘周期,2GHZ速率的CPU來計算,最少需要的時間為:2560ns。而一個常用的100MHz的FPGA只需8×10=80ns。而且PC機(jī)系統(tǒng)成本要高很多,因此FPGA在圖像匹配運算中的高性價比是顯而易見的。
結(jié)語
圖像識別處理的實時應(yīng)用越來越多,如人臉識別、高速票據(jù)處理等。傳統(tǒng)的實時圖像處理算法和方法實現(xiàn)的代價太高,而且同樣的算法在不同的實現(xiàn)平臺上時其實際效果也會有巨大差異。本文采用的ARM+FPGA系統(tǒng)能很好的滿足高速實時圖像處理的要求,而且利用FPGA的平行處理能力,在圖像識別領(lǐng)域有進(jìn)一步研究的價值。
參考文獻(xiàn)
[1]王耀南.計算機(jī)圖像處理與識別技術(shù).2001.
[2]胡愛明,周孝寬.車牌圖像的快速匹配識別方法[J].計算機(jī)工程與應(yīng)用 ,2003(7).
[3]方翰華,陳新華,沈國新,焦?jié)h明.基于FPGA圖像濾波算法硬件化設(shè)計[J].電子測量技術(shù),2009.
[4]Rafacel C.Gonzalez,Richard E. Woods Digital Image Processing Second Edition 2007.
[5]王欣,殷肖川,周翔翔.一種改進(jìn)的模版匹配識別算法[J]. 計算機(jī)工程與應(yīng)用, 2007(43).