《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計(jì)
基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第3期
武昊男,儲(chǔ)成群,任勇峰,焦新泉
中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)CMOS圖像傳感器采集圖像過(guò)程中的噪聲預(yù)處理問(wèn)題,提出一種在FPGA中實(shí)現(xiàn)的可配置的自適應(yīng)加權(quán)均值濾波模塊設(shè)計(jì)方案。該模塊通過(guò)檢測(cè)濾波窗口內(nèi)不同方向的方差來(lái)確定紋理方向,從而自動(dòng)生成相應(yīng)的加權(quán)系數(shù),可以對(duì)寬度不超過(guò)4 094像素的圖像進(jìn)行流水線式的加權(quán)均值濾波處理,達(dá)到去噪保邊的目的。最后經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,當(dāng)圖像寬度為2 048時(shí),輸入輸出延時(shí)僅為42.04 μs,滿足實(shí)時(shí)性要求,且濾波后的圖像噪點(diǎn)明顯減少,紋理邊緣毛刺消失,能較好地改善圖像質(zhì)量。
中圖分類號(hào): TN791
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.182020
中文引用格式: 武昊男,儲(chǔ)成群,任勇峰,等. 基于FPGA的圖像自適應(yīng)加權(quán)均值濾波設(shè)計(jì)[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而言,具有更高的集成度,更靈活的圖像捕獲方式,更寬的動(dòng)態(tài)范圍,加上其低成本、低功耗的特點(diǎn),越來(lái)越受到人們的重視并得到廣泛的應(yīng)用。但是CMOS圖像傳感器在采集圖像過(guò)程中由于暗電流和放大器偏差等原因?qū)е缕淇乖肼暷芰^差,引起圖像噪點(diǎn)增多,質(zhì)量下降[1],這會(huì)直接影響圖像的后期處理工作。為方便圖像的后續(xù)處理,在圖像采集過(guò)程中,對(duì)圖像進(jìn)行預(yù)處理是十分必要的。

1 降噪方法

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

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

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

2 算法分析及其FPGA映射

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

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

wdz4-t1+t2.gif

    而與紋理邊緣平行的方向上,灰度值不會(huì)出現(xiàn)大幅跳變,因此方差較小。根據(jù)4個(gè)方向的方差,確定紋理邊緣的方向,再確定其加權(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)算中,可以通過(guò)移位寄存器代替除法器實(shí)現(xiàn),節(jié)省大量FPGA資源。

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

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

wdz4-t3.gif

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

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

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

wdz4-t4.gif

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

wdz4-t5.gif

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

wdz4-t6.gif

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

wdz4-t7.gif

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

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

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

wdz4-t8.gif

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

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

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

wdz4-t9.gif

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

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

wdz4-t10.gif

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

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

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

wdz4-t11.gif

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

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

wdz4-t12.gif

wdz4-b1.gif

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

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

wdz4-b2.gif

5 結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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

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

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




作者信息:

武昊男,儲(chǔ)成群,任勇峰,焦新泉

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

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