《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計
基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計
2019年電子技術(shù)應(yīng)用第3期
武昊男,儲成群,任勇峰,焦新泉
中北大學(xué) 電子測試技術(shù)國家重點(diǎn)實(shí)驗室,山西 太原030051
摘要: 針對CMOS圖像傳感器采集圖像過程中的噪聲預(yù)處理問題,提出一種在FPGA中實(shí)現(xiàn)的可配置的自適應(yīng)加權(quán)均值濾波模塊設(shè)計方案。該模塊通過檢測濾波窗口內(nèi)不同方向的方差來確定紋理方向,從而自動生成相應(yīng)的加權(quán)系數(shù),可以對寬度不超過4 094像素的圖像進(jìn)行流水線式的加權(quán)均值濾波處理,達(dá)到去噪保邊的目的。最后經(jīng)過實(shí)驗驗證,當(dāng)圖像寬度為2 048時,輸入輸出延時僅為42.04 μs,滿足實(shí)時性要求,且濾波后的圖像噪點(diǎn)明顯減少,紋理邊緣毛刺消失,能較好地改善圖像質(zhì)量。
中圖分類號: TN791
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.182020
中文引用格式: 武昊男,儲成群,任勇峰,等. 基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(3):32-35,41.
英文引用格式: Wu Haonan,Chu Chengqun,Ren Yongfeng,et al. Self-adaption image weighted mean filter design based on FPGA[J]. Application of Electronic Technique,2019,45(3):32-35,41.
Self-adaption image weighted mean filter design based on FPGA
Wu Haonan,Chu Chengqun,Ren Yongfeng,Jiao Xinquan
Science and Technology on Electronic Test & Measurement Laboratory,North University of China,Taiyuan 030051,China
Abstract: In order to solve the problem of noise preprocessing in the process of image acquisition by complementary metal oxide semiconductor(CMOS) image sensor, a configurable adaptive weighted mean filter module in FPGA is proposed. This module determines the direction of the texture by detecting the variance of different directions in the filter window, thus automatically generating the corresponding weighting coefficients. The weighted mean filter can process image with a width of no more than 4 094 pixels, so as to achieve the goal of de-noising and preserving edges. Finally, the experiment shows that when the image width is 2 048, the delay is 42.04 μs, and it satisfies the real-time requirement. The image noise is obviously reduced. The texture edge burr is disappearing, and the image quality can be improved better after filtering.
Key words : FPGA;CMOS image sensor;mean filtering;fixed noise;logic design

0 引言

    CMOS圖像傳感器相較于傳統(tǒng)的CCD而言,具有更高的集成度,更靈活的圖像捕獲方式,更寬的動態(tài)范圍,加上其低成本、低功耗的特點(diǎn),越來越受到人們的重視并得到廣泛的應(yīng)用。但是CMOS圖像傳感器在采集圖像過程中由于暗電流和放大器偏差等原因?qū)е缕淇乖肼暷芰^差,引起圖像噪點(diǎn)增多,質(zhì)量下降[1],這會直接影響圖像的后期處理工作。為方便圖像的后續(xù)處理,在圖像采集過程中,對圖像進(jìn)行預(yù)處理是十分必要的。

1 降噪方法

    高斯噪聲是數(shù)字圖像中最常見的噪聲[2],消除圖像高斯噪聲一般考慮使用均值濾波方法。傳統(tǒng)的鄰域均值濾波法對高斯噪聲可以起到抑制作用[2],但是會引起圖像邊緣部分細(xì)節(jié)的丟失。針對圖像噪聲與紋理邊緣的相似性,文獻(xiàn)[2]提出一種基于置信區(qū)間的自適應(yīng)加權(quán)均值濾波方法。該方法利用高斯噪聲的正態(tài)分布特性,將灰度值處于置信區(qū)間內(nèi)的像素點(diǎn)判斷為噪聲,能在濾除噪聲的同時,保證圖像邊緣不受影響。但該方法需要對噪聲圖像的灰度均值及噪聲的標(biāo)準(zhǔn)差預(yù)先進(jìn)行估計,實(shí)時性較差。文獻(xiàn)[3]提出一種基于灰度值相似度和空間鄰近度的加權(quán)均值濾波算法,不僅考慮到濾波窗口中像素值的灰度值差異,也考慮到距離對中心像素點(diǎn)的影響,根據(jù)其兩個參數(shù)局部鄰域灰度因子和局部鄰域空間因子,生成加權(quán)系數(shù)。該方法相比于傳統(tǒng)的高斯濾波方法有更好的去噪效果,但運(yùn)算量較大,處理速度較慢。

    文獻(xiàn)[4]設(shè)計了一種基于極值點(diǎn)的加權(quán)均值濾波方法。該方法可以根據(jù)圖像的灰度值,自適應(yīng)調(diào)整加權(quán)系數(shù)。通過4個方向上的方差計算,可以確定濾波窗口與紋理邊緣是否重合,并判斷出紋理的方向,據(jù)此生成不同的權(quán)重。這樣就可以達(dá)到較好的去噪保邊的效果。但如果使用上位機(jī)實(shí)現(xiàn)該算法,無法保證實(shí)時性。

    通常上位機(jī)處理速度較慢,無法與圖像采集、傳輸與存儲系統(tǒng)形成一套流水線,而FPGA具有高速、并行、數(shù)據(jù)吞吐量大的特點(diǎn),因此針對以上問題,提出一種基于FPGA實(shí)現(xiàn)的自適應(yīng)加權(quán)均值濾波方法。該方法將文獻(xiàn)[4]提出優(yōu)化算法映射到FPGA中,實(shí)現(xiàn)實(shí)時的圖像處理。

2 算法分析及其FPGA映射

    高斯噪聲是基于像素點(diǎn)的噪聲,因此考慮使用3×3的濾波窗口[5]。采用3×3的窗口對圖像進(jìn)行均值濾波時,圖像第1行和第1列及最后1行和最后1列的像素點(diǎn)會由于數(shù)據(jù)不足而無法參與運(yùn)算。為保證數(shù)據(jù)的完整性,可以采用填充法[6],在處理前先對圖像進(jìn)行2×2的擴(kuò)展。擴(kuò)充后數(shù)據(jù)如圖1所示,白色部分為圖像原始數(shù)據(jù),陰影部分為填充的數(shù)據(jù)。

    濾波模板生成,首先需要檢測窗口中心點(diǎn)是否為極值點(diǎn),如果是則可能是噪聲點(diǎn)或紋理邊緣[7]。通過窗口4個方向上3個點(diǎn)方差計算確定該點(diǎn)是噪聲還是紋理邊緣,如圖2所示。如果濾波窗口與紋理邊緣重合,4個方向中與紋理邊緣有交叉的方向,由于灰度值跳變,會出現(xiàn)方差較大的情況。

wdz4-t1+t2.gif

    而與紋理邊緣平行的方向上,灰度值不會出現(xiàn)大幅跳變,因此方差較小。根據(jù)4個方向的方差,確定紋理邊緣的方向,再確定其加權(quán)系數(shù),在穿越圖像紋理邊緣的方向上,不做濾波處理。方向1到4上生成加權(quán)系數(shù)分別為A、B、C、D。

A=0 0 0

wdz4-t1+t2-x1.gif

    以上權(quán)重的模版矩陣都符合正態(tài)分布的規(guī)律,且矩陣所有元素的和為2的整數(shù)次冪,在后續(xù)的歸一化運(yùn)算中,可以通過移位寄存器代替除法器實(shí)現(xiàn),節(jié)省大量FPGA資源。

3 FPGA實(shí)現(xiàn)

    本設(shè)計選用Xilinx FPGA XC6SLX45作為主控芯片,以模塊化設(shè)計理念為指導(dǎo),設(shè)計了分辨率可配置的加權(quán)均值濾波模塊。該模塊由4個部分組成,包括數(shù)據(jù)緩存模塊、權(quán)重生成模塊、加權(quán)求和模塊以及求均值模塊,四個子模塊采用流水線的方式工作,保證數(shù)據(jù)能夠?qū)崟r處理,整體邏輯設(shè)計如圖3所示。

wdz4-t3.gif

3.1 數(shù)據(jù)緩存模塊設(shè)計

    數(shù)據(jù)緩存模塊的功能是將1路12 bit數(shù)據(jù)流,經(jīng)過緩存和時序調(diào)整調(diào)整為3路并行的12 bit數(shù)據(jù)流。該模塊使用兩個深度為4 K,寬度為12 bit的讀優(yōu)先RAM,分別用來存儲一行有效圖像數(shù)據(jù)。根據(jù)行同步信號Hsync和場同步信號Vsync來判斷傳感器采集回的數(shù)據(jù)是否有效。

    每當(dāng)Hsync的一個上升沿到來時,鎖存輸入的數(shù)據(jù),得到每行數(shù)據(jù)的第一個像素。經(jīng)過計數(shù)后,再次鎖存每行數(shù)據(jù)的最后一個像素。輸入的數(shù)據(jù)延時一個時鐘,同時把鎖存的首位數(shù)據(jù)和末位數(shù)據(jù)與輸入數(shù)據(jù)組合,形成一路新的數(shù)據(jù)流,如圖4所示。由于RAM_4 K用于緩存一行擴(kuò)充數(shù)據(jù),因此圖像數(shù)據(jù)的寬度需要小于4 094,否則會造成數(shù)據(jù)丟失。

wdz4-t4.gif

    數(shù)據(jù)緩存模塊的一個關(guān)鍵信號是行計數(shù)信號,當(dāng)一幀圖像數(shù)據(jù)到來即Vsync的一個上升沿到來時,行計數(shù)信號清零,每次Hsync的上升沿到來時,行計數(shù)加1。由于需要對數(shù)據(jù)進(jìn)行擴(kuò)充,因此第一行和最后一行數(shù)據(jù)做特殊處理。當(dāng)?shù)谝恍薪M合數(shù)據(jù)到來時,同時存儲進(jìn)兩個RAM中,此時3個輸出通道無輸出。當(dāng)?shù)诙薪M合數(shù)據(jù)到來時,1通道輸出第二行數(shù)據(jù),2通道和3通道輸出第一行數(shù)據(jù),如圖5所示。

wdz4-t5.gif

    中間數(shù)據(jù)到來時,延時后輸入1通道,且作為RAM1的輸入。RAM1的輸出同時輸入至RAM2中。在數(shù)據(jù)輸入的同時,將上次存入RAM的數(shù)據(jù)讀出。這樣當(dāng)?shù)贜行數(shù)據(jù)到來時,1通道輸出第N行數(shù)據(jù),2通道輸出第N-1行數(shù)據(jù),3通道輸出N-2行數(shù)據(jù),即完成三行數(shù)據(jù)的同步輸出,邏輯圖如圖6所示。

wdz4-t6.gif

    當(dāng)最后一行數(shù)據(jù)輸入完成后,開始對其進(jìn)行擴(kuò)充。此時Data_in為無效輸入,并且RAM1輸出為最后一行數(shù)據(jù),同時賦值給1通道和2通道,RAM2輸出倒數(shù)第二行數(shù)據(jù),賦值給3通道,完成最后一行數(shù)據(jù)的擴(kuò)充,如圖7所示。

wdz4-t7.gif

    經(jīng)過RAM緩存后的數(shù)據(jù)輸出受RAM使能控制,由于RAM緩存的圖像數(shù)據(jù)是擴(kuò)展后的數(shù)據(jù),RAM的使能信號要在行同步信號的基礎(chǔ)上擴(kuò)展兩個時鐘。三個通道的信號要經(jīng)過適當(dāng)?shù)难訒r實(shí)現(xiàn)數(shù)據(jù)的同步。

3.2 權(quán)重生成模塊設(shè)計

    權(quán)重生成模塊的目的是檢測濾波窗口的中心像素點(diǎn)是平滑區(qū)域還是邊緣區(qū)域,并根據(jù)檢測結(jié)果生成相應(yīng)的加權(quán)系數(shù)[6],其工作流程如圖8所示。

wdz4-t8.gif

    該模塊由加法器、減法器和乘法器構(gòu)成,數(shù)據(jù)緩存模塊輸出的三行數(shù)據(jù)分別進(jìn)行三次鎖存,得到窗口內(nèi)9個像素點(diǎn)的灰度值Pix0~Pix8。其中Pix3~Pix5作為水平方向;Pix2、Pix4、Pix6作為45°方向;Pix1、Pix4、Pix7作為90°方向;Pix0、Pix4、Pix8作為135°方向,分別計算方差。求灰度和時,中心像素點(diǎn)Pix4權(quán)重為2,另外兩個點(diǎn)權(quán)重為1。這樣計算標(biāo)準(zhǔn)差時,只需將灰度和通過兩個移位寄存器即可。方差計算完成后,根據(jù)方差生成相應(yīng)的權(quán)重模板及歸一化系數(shù),作為后續(xù)處理的參數(shù)。為保證處理過程流水線化,此模塊通過四路并行計算方差,因此占用了較多DSP資源。

3.3 加權(quán)求和模塊設(shè)計

    加權(quán)求和模塊的功能實(shí)現(xiàn)同一行的三個像素點(diǎn)的加權(quán)運(yùn)算。該模塊由3個乘法器及兩個加法器組成,如圖9所示。一路數(shù)據(jù)輸入后,經(jīng)過三次鎖存,得到同一行的3個相鄰像素點(diǎn)。同時輸入乘法器,進(jìn)行加權(quán)運(yùn)算,權(quán)重由權(quán)重生成模塊給出。運(yùn)算完畢后把兩個乘法器的運(yùn)算結(jié)果輸入加法器進(jìn)行求和運(yùn)算,再把得到的結(jié)果與另一個乘法器得到的結(jié)果輸入下一級加法器進(jìn)行求和,得到同行3個像素點(diǎn)的加權(quán)求和輸出,如圖9所示。加權(quán)求和模塊共調(diào)用三次,完成三路數(shù)據(jù)的同步加權(quán)求和運(yùn)算。

wdz4-t9.gif

3.4 求均值模塊設(shè)計

    求均值模塊調(diào)用了兩個加法器實(shí)現(xiàn)三路同步數(shù)據(jù)的求和運(yùn)算。通過移位寄存器來計算輸出的均值。當(dāng)歸一化系數(shù)分別為4和16時,加法器輸出數(shù)據(jù)經(jīng)過2個或4個向右的移位寄存器輸出,如圖10所示。

wdz4-t10.gif

    12 bit數(shù)據(jù)經(jīng)過乘法器、加法器的運(yùn)算后,變成24 bit數(shù)據(jù),但是有效數(shù)據(jù)位不變,只需取低12 bit即可。

4 仿真及實(shí)驗結(jié)果分析

    在ISE邏輯仿真時賦值給該模塊不同的圖像參數(shù),驗證模塊的正確性和可配置性。以9×5分辨率的圖像為例:輸入圖像有效數(shù)據(jù)為1~9,數(shù)據(jù)緩存模塊輸出應(yīng)為擴(kuò)充后的并行3行數(shù)據(jù),經(jīng)過權(quán)重生成后,加權(quán)求和輸出,如圖11所示。

wdz4-t11.gif

    在仿真過程中,根據(jù)數(shù)據(jù)輸入與數(shù)據(jù)輸出的延遲判斷,在輸入圖像寬度為2 048像素情況下,處理延時為42.04 μs,滿足實(shí)時性要求。

    實(shí)驗對象選擇ON公司的CMOS圖像傳感器MT9P031,對采集到的2 048×1 944分辨率的圖像進(jìn)行預(yù)處理。結(jié)果如圖12所示,其中圖12(a)為模板圖像,圖12(b)為采集回的原始圖像,圖12(c)為傳統(tǒng)加權(quán)均值濾波處理過的圖像,圖12(d)為本文方法處理后的圖像??梢钥吹轿刺幚韴D像的噪點(diǎn)較多,且紋理邊緣有毛刺;經(jīng)過傳統(tǒng)加權(quán)均值濾波處理后,圖像的噪點(diǎn)減少,紋理邊緣毛刺消失,但比較模糊;使用本文方法處理后的圖像噪點(diǎn)較少,同時邊緣也更加清晰,圖像質(zhì)量得到明顯改善。通過MATLAB對處理結(jié)果及原始圖像進(jìn)行均方差MES與峰值信噪比PSNR計算比較,結(jié)果見表1。

wdz4-t12.gif

wdz4-b1.gif

    從表1中圖像的客觀指標(biāo)可以看到,通過本文方法處理后的圖像相較于傳統(tǒng)加權(quán)均值濾波處理后的圖像,其峰值信噪比提高1.04 dB。說明本文方法優(yōu)于傳統(tǒng)的加權(quán)均值濾波方法。

    FPGA資源占用率見表2。由表2數(shù)據(jù)可知,除DSP資源外,本設(shè)計的資源占用率低,而一般圖像采集系統(tǒng)對DSP需求不高,因此可以方便嵌入CMOS圖像采集系統(tǒng)設(shè)計中。

wdz4-b2.gif

5 結(jié)論

    針對傳統(tǒng)均值濾波處理圖像時實(shí)時性差等特點(diǎn),結(jié)合FPGA并行處理數(shù)據(jù)的高效性,實(shí)現(xiàn)圖像的自適應(yīng)加權(quán)均值濾波處理,具有可配置、低延時的特點(diǎn)。實(shí)驗結(jié)果表明,本設(shè)計能夠在不影響數(shù)據(jù)傳輸速度的情況下,嵌入圖像采集系統(tǒng)中,形成一套流水線,并有效提高CMOS圖像傳感器采集圖像的質(zhì)量。

參考文獻(xiàn)

[1] 徐琳亮.CMOS圖像傳感器預(yù)處理數(shù)字電路的設(shè)計與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2017.

[2] 陳家益,黃楠,熊剛強(qiáng),等.基于置信區(qū)間的自適應(yīng)加權(quán)均值濾波算法[J].南京理工大學(xué)學(xué)報,2017,41(3):307-312.

[3] 張文娟,康家銀.一種用于圖像降噪的自適應(yīng)均值濾波算法[J].小型微型計算機(jī)系統(tǒng),2011,32(12):2495-2498.

[4] 楊樊,韓艷麗.一種基于極值的自適應(yīng)均值濾波算法[J].紅外與激光工程,2006(S4):116-120.

[5] 彭宏,趙鵬博.邊緣檢測中的改進(jìn)型均值濾波算法[J].計算機(jī)工程,2017,43(10):172-178.

[6] 張文娟,康家銀.一種用于圖像降噪的自適應(yīng)均值濾波算法[J].小型微型計算機(jī)系統(tǒng),2011,32(12):2495-2498.

[7] 郭貝貝,易三莉,賀建峰,等.改進(jìn)的非局部均值濾波算法[J].計算機(jī)工程,2016,42(7):227-231.

[8] 李佐勇,湯可宗,胡錦美,等.椒鹽圖像的方向加權(quán)均值濾波算法[J].中國圖象圖形學(xué)報,2013,18(11):1407-1415.




作者信息:

武昊男,儲成群,任勇峰,焦新泉

(中北大學(xué) 電子測試技術(shù)國家重點(diǎn)實(shí)驗室,山西 太原030051)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。