劉 智,夏春蕾,戴曙光
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,圖像處理也出現(xiàn)了前所未有的高速發(fā)展。目前常用的圖像處理工具是MATLAB提供的圖像處理工具箱,它提供了一套全方位的參照標(biāo)準(zhǔn)算法和圖像工具,用于對(duì)圖像進(jìn)行處理、分析、可視化和算法開(kāi)發(fā)。一方面,用它增強(qiáng)了圖像的效果,獲得了清晰度更高的圖像;但另一方面,伴隨著信息復(fù)雜程度的提高以及信息量的增大,這種方法由于實(shí)時(shí)性不高往往會(huì)產(chǎn)生滯后和失真現(xiàn)象。
采用FPGA來(lái)進(jìn)行圖像處理的優(yōu)勢(shì)主要是速度快、應(yīng)用靈活。速度快的優(yōu)勢(shì)來(lái)源于FPGA的硬件邏輯,特別是FPGA的并行執(zhí)行和流水線操作。FPGA的邏輯功能全部用硬件電路實(shí)現(xiàn),因此所有的延遲只來(lái)源于門(mén)電路,而一般門(mén)電路的延遲都在納秒級(jí)別,因此用FPGA來(lái)對(duì)圖像實(shí)施處理,可以彌補(bǔ)上面所提到到的缺憾,很好地達(dá)到實(shí)時(shí)性和增加圖像的雙重目的。
圖像銳化是圖像增強(qiáng)的主要應(yīng)用方面,圖像銳化處理的目的是增強(qiáng)圖像邊緣,使目標(biāo)物體的邊緣鮮明,以便于提取目標(biāo)物體的邊界、對(duì)圖像進(jìn)行分割、目標(biāo)區(qū)域識(shí)別以及區(qū)域性狀提取等,為圖像理解和分析打下基礎(chǔ)。而圖像邊緣模糊的實(shí)質(zhì)是平均或積分運(yùn)算造成的,因此可以對(duì)圖像進(jìn)行逆運(yùn)算來(lái)使圖像清晰化,達(dá)到銳化的目的。
圖像銳化有梯度銳化和Laplacian銳化兩種方法,常用的圖像銳化處理方法是基于Laplacian算子的模板運(yùn)算。模板操作實(shí)現(xiàn)了一種鄰域運(yùn)算,即某個(gè)像素點(diǎn)的結(jié)果不僅和本像素的灰度值有關(guān),而且和其鄰域點(diǎn)的值有關(guān)。模塊運(yùn)算在數(shù)學(xué)中的描述是卷積(或互相關(guān))運(yùn)算。
設(shè)▽2為L(zhǎng)aplacion算子,則有:
式(2)為輸入圖像矩陣,其值為灰度值大小。式(3)即為L(zhǎng)aplacian模板,此外還有下面兩個(gè)模板:
比較3個(gè)模板可以得出:式(3)模板只能檢測(cè)水平和垂直方向的邊緣,式(4)模板只能檢測(cè)兩對(duì)角方向的邊緣,而式(5)模板檢測(cè)水平、垂直和兩對(duì)角方向的邊緣。
根據(jù)整體方案的設(shè)計(jì)思路,系統(tǒng)的硬件構(gòu)架框圖如圖1所示。圖像數(shù)據(jù)在FPGA的控制下通過(guò)I2C總線由CMOS圖像傳感器獲得,得到的圖像數(shù)據(jù)在SDRAM controller的控制下存儲(chǔ)在外部雙端口SDRAM中,然后在Image Sharpening中對(duì)得到的數(shù)據(jù)進(jìn)行銳化處理,最后按照VGA時(shí)序標(biāo)準(zhǔn)送入VGA顯示。
其中圖像銳化是本文研究的重點(diǎn),它主要由數(shù)據(jù)緩沖和模板計(jì)算兩部分構(gòu)成,如圖2所示。
由前面的分析可以看出,設(shè)計(jì)的關(guān)鍵在于矩陣(2)的硬件實(shí)現(xiàn)。其在MATLAB中很容易實(shí)現(xiàn),但是在硬件語(yǔ)言中,由于沒(méi)有矩陣的概念,處理起來(lái)比較麻煩。因?yàn)樗龅膱D像增強(qiáng)中用到的基本為3×3矩陣,所以本文討論了在FPGA中怎樣按行來(lái)實(shí)現(xiàn)和處理3×3的矩陣。
本設(shè)計(jì)主要采用了Altera公司的移位寄存器(RAM-based)IP核,其示意圖如圖3所示。前期采集到的圖像數(shù)據(jù)通過(guò)shiftin通道按行進(jìn)入移位寄存器(RAM-based), 經(jīng) IP核 后 有 3個(gè) 輸 出 端 口 :taps0x、taps1x、taps2x。通過(guò)圖4所示的仿真圖可以看出,當(dāng)最后一個(gè)像素X9輸入后,在下一個(gè)時(shí)鐘周期內(nèi)得到的是像素 X1、X4、X7,再下一個(gè)時(shí)鐘周期是 X2、X5、X8,最后一個(gè)時(shí)鐘周期是 X3、X6、X9,實(shí)現(xiàn)了期望的結(jié)果。
模板計(jì)算主要完成式 (1)的計(jì)算,該模塊主要由ALTMULT_ADD和PAPALLEL_ADD及LPM_ABS 3個(gè)IP核來(lái)實(shí)現(xiàn)。ALTMULT_ADD實(shí)現(xiàn)的是乘積累加和功能,其示意圖如圖5所示,計(jì)算公式為mac_2=dataa_0×datab_0+dataa_1×datab_1+dataa_2×datab_2=M9×X9+M8×X8+M7×X7,其中 dataa_1與 dataa_2分別為 dataa_0延時(shí)1個(gè)時(shí)鐘周期和2個(gè)時(shí)鐘周期得到的。PAPALLEL_ADD主要實(shí)現(xiàn)并行加法的功能,完成了流水線操作,縮短了處理時(shí)間。
為了防止出現(xiàn)灰度值為負(fù)和溢出的情況,在后期數(shù)據(jù)處理中加入了求絕對(duì)值的設(shè)計(jì),用LPM_ABS這個(gè)IP核來(lái)實(shí)現(xiàn)。當(dāng)?shù)玫降臄?shù)據(jù)大于255時(shí),最后得到的結(jié)果取255;小于255時(shí),即為輸出結(jié)果。
Altera公司的FPGA開(kāi)發(fā)工具QuartusⅡ開(kāi)發(fā)環(huán)境友好、易操作且自帶有大量免費(fèi)的IP核供設(shè)計(jì)者使用,從而減少了用戶的大量工作,便于設(shè)計(jì)者模塊化開(kāi)發(fā),特別是在完成復(fù)雜系統(tǒng)設(shè)計(jì)的時(shí)候,這些宏功能模塊無(wú)疑將大大減少設(shè)計(jì)風(fēng)險(xiǎn)及縮短開(kāi)發(fā)周期。
一般地,輸入圖像的格式大于 1 280×1 024(60 Hz),這樣的分辨率要求圖像的數(shù)據(jù)傳送帶寬在100 Mpix/s以上,但是一般晶振提供的時(shí)鐘頻率為50 MHz,滿足不了上述要求,因此需要FPGA內(nèi)部帶有鎖相環(huán)。另外,考慮到系統(tǒng)占用的面積和圖像處理需要乘法器的特點(diǎn),要求FPGA的內(nèi)部資源盡量豐富。為此,該系統(tǒng)最終選用了 Altera公司 Cyclone II系列的 EP2C8Q208C8。該芯片最多用戶I/O管腳數(shù)為182個(gè),鎖相環(huán)為2個(gè),邏輯資源為8 256個(gè),存儲(chǔ)器資源為 165 888 bit,嵌入式乘法器9個(gè),完全滿足系統(tǒng)對(duì)FPGA的要求。
按照上述思路和要求選定芯片,建立工程,用Verilog HDL語(yǔ)言編寫(xiě)程序。將灰度圖像讀入MATLAB中,生成文本激勵(lì),然后作為輸入在ModelSim中進(jìn)行仿真,再將仿真得到的輸出數(shù)據(jù)送入MATLAB中,生成經(jīng)銳化處理后的圖像。實(shí)驗(yàn)前后圖像如圖6、圖 7、圖8所示。從實(shí)驗(yàn)得到的結(jié)果可以看出,原本邊緣模糊的圖像經(jīng)過(guò)處理后圖像邊緣變得非常清晰,較好地達(dá)到了銳化處理的目的。通過(guò)對(duì)比兩種模板得到的圖像可知,選擇式(5)模板能取得更好的效果。
本文采用FPGA來(lái)實(shí)現(xiàn)圖像的銳化處理,以Laplacian算法為核心算法,確立系統(tǒng)的總體設(shè)計(jì),完成了主要部分的設(shè)計(jì)。該系統(tǒng)采用全硬件并行算法實(shí)現(xiàn),提高了圖像處理的整體速度,仿真結(jié)果表明,本設(shè)計(jì)符合預(yù)期設(shè)想。
[1]岡薩雷斯.數(shù)字圖像處理(第二版)[M].阮秋琦,譯.北京:電子工業(yè)出版社,2007.
[2]許錄平.數(shù)字圖像處理[M].北京:科學(xué)出版社,2007.
[3]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航天航空大學(xué)出版社,2003.
[4]王冠.Verilog HDL與數(shù)字電路設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006.
[5]葉敏,周文暉,顧偉康.基于FPGA的實(shí)時(shí)圖像濾波及邊緣檢測(cè)方法[J].傳感技術(shù)學(xué)報(bào),2007,20(3):623-627.
[6]Altera Corporation.Altera product data sheets[Z].2008.