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