文獻(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.
0 引言
CMOS圖像傳感器相較于傳統(tǒng)的CCD而言,,具有更高的集成度,更靈活的圖像捕獲方式,,更寬的動(dòng)態(tài)范圍,加上其低成本,、低功耗的特點(diǎn),,越來越受到人們的重視并得到廣泛的應(yīng)用。但是CMOS圖像傳感器在采集圖像過程中由于暗電流和放大器偏差等原因?qū)е缕淇乖肼暷芰^差,,引起圖像噪點(diǎn)增多,,質(zhì)量下降[1],這會(huì)直接影響圖像的后期處理工作,。為方便圖像的后續(xù)處理,,在圖像采集過程中,對(duì)圖像進(jìn)行預(yù)處理是十分必要的,。
1 降噪方法
高斯噪聲是數(shù)字圖像中最常見的噪聲[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ù),。通過4個(gè)方向上的方差計(jì)算,可以確定濾波窗口與紋理邊緣是否重合,,并判斷出紋理的方向,,據(jù)此生成不同的權(quán)重。這樣就可以達(dá)到較好的去噪保邊的效果,。但如果使用上位機(jī)實(shí)現(xiàn)該算法,,無法保證實(shí)時(shí)性。
通常上位機(jī)處理速度較慢,,無法與圖像采集,、傳輸與存儲(chǔ)系統(tǒng)形成一套流水線,而FPGA具有高速,、并行,、數(shù)據(jù)吞吐量大的特點(diǎn),因此針對(duì)以上問題,,提出一種基于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ù)不足而無法參與運(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],。通過窗口4個(gè)方向上3個(gè)點(diǎn)方差計(jì)算確定該點(diǎn)是噪聲還是紋理邊緣,,如圖2所示。如果濾波窗口與紋理邊緣重合,,4個(gè)方向中與紋理邊緣有交叉的方向,,由于灰度值跳變,會(huì)出現(xiàn)方差較大的情況,。
而與紋理邊緣平行的方向上,,灰度值不會(huì)出現(xiàn)大幅跳變,因此方差較小,。根據(jù)4個(gè)方向的方差,,確定紋理邊緣的方向,再確定其加權(quán)系數(shù),,在穿越圖像紋理邊緣的方向上,,不做濾波處理。方向1到4上生成加權(quán)系數(shù)分別為A,、B,、C、D,。
A=0 0 0
以上權(quán)重的模版矩陣都符合正態(tài)分布的規(guī)律,,且矩陣所有元素的和為2的整數(shù)次冪,在后續(xù)的歸一化運(yùn)算中,,可以通過移位寄存器代替除法器實(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所示,。
3.1 數(shù)據(jù)緩存模塊設(shè)計(jì)
數(shù)據(jù)緩存模塊的功能是將1路12 bit數(shù)據(jù)流,,經(jīng)過緩存和時(shí)序調(diào)整調(diào)整為3路并行的12 bit數(shù)據(jù)流。該模塊使用兩個(gè)深度為4 K,,寬度為12 bit的讀優(yōu)先RAM,,分別用來存儲(chǔ)一行有效圖像數(shù)據(jù)。根據(jù)行同步信號(hào)Hsync和場(chǎng)同步信號(hào)Vsync來判斷傳感器采集回的數(shù)據(jù)是否有效,。
每當(dāng)Hsync的一個(gè)上升沿到來時(shí),,鎖存輸入的數(shù)據(jù),得到每行數(shù)據(jù)的第一個(gè)像素,。經(jīng)過計(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ù)丟失,。
數(shù)據(jù)緩存模塊的一個(gè)關(guān)鍵信號(hào)是行計(jì)數(shù)信號(hào),,當(dāng)一幀圖像數(shù)據(jù)到來即Vsync的一個(gè)上升沿到來時(shí),行計(jì)數(shù)信號(hào)清零,,每次Hsync的上升沿到來時(shí),,行計(jì)數(shù)加1。由于需要對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,,因此第一行和最后一行數(shù)據(jù)做特殊處理,。當(dāng)?shù)谝恍薪M合數(shù)據(jù)到來時(shí),同時(shí)存儲(chǔ)進(jìn)兩個(gè)RAM中,,此時(shí)3個(gè)輸出通道無輸出,。當(dāng)?shù)诙薪M合數(shù)據(jù)到來時(shí),1通道輸出第二行數(shù)據(jù),,2通道和3通道輸出第一行數(shù)據(jù),,如圖5所示。
中間數(shù)據(jù)到來時(shí),,延時(shí)后輸入1通道,,且作為RAM1的輸入。RAM1的輸出同時(shí)輸入至RAM2中,。在數(shù)據(jù)輸入的同時(shí),,將上次存入RAM的數(shù)據(jù)讀出。這樣當(dāng)?shù)贜行數(shù)據(jù)到來時(shí),1通道輸出第N行數(shù)據(jù),,2通道輸出第N-1行數(shù)據(jù),,3通道輸出N-2行數(shù)據(jù),即完成三行數(shù)據(jù)的同步輸出,,邏輯圖如圖6所示,。
當(dāng)最后一行數(shù)據(jù)輸入完成后,開始對(duì)其進(jìn)行擴(kuò)充,。此時(shí)Data_in為無效輸入,,并且RAM1輸出為最后一行數(shù)據(jù),同時(shí)賦值給1通道和2通道,,RAM2輸出倒數(shù)第二行數(shù)據(jù),,賦值給3通道,完成最后一行數(shù)據(jù)的擴(kuò)充,,如圖7所示,。
經(jīng)過RAM緩存后的數(shù)據(jù)輸出受RAM使能控制,由于RAM緩存的圖像數(shù)據(jù)是擴(kuò)展后的數(shù)據(jù),,RAM的使能信號(hào)要在行同步信號(hào)的基礎(chǔ)上擴(kuò)展兩個(gè)時(shí)鐘,。三個(gè)通道的信號(hào)要經(jīng)過適當(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所示。
該模塊由加法器,、減法器和乘法器構(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í),,只需將灰度和通過兩個(gè)移位寄存器即可,。方差計(jì)算完成后,根據(jù)方差生成相應(yīng)的權(quán)重模板及歸一化系數(shù),,作為后續(xù)處理的參數(shù),。為保證處理過程流水線化,此模塊通過四路并行計(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)過三次鎖存,,得到同一行的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)算,。
3.4 求均值模塊設(shè)計(jì)
求均值模塊調(diào)用了兩個(gè)加法器實(shí)現(xiàn)三路同步數(shù)據(jù)的求和運(yùn)算。通過移位寄存器來計(jì)算輸出的均值,。當(dāng)歸一化系數(shù)分別為4和16時(shí),,加法器輸出數(shù)據(jù)經(jīng)過2個(gè)或4個(gè)向右的移位寄存器輸出,如圖10所示,。
12 bit數(shù)據(jù)經(jīng)過乘法器,、加法器的運(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)過權(quán)重生成后,,加權(quán)求和輸出,如圖11所示。
在仿真過程中,,根據(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)均值濾波處理過的圖像,,圖12(d)為本文方法處理后的圖像??梢钥吹轿刺幚韴D像的噪點(diǎn)較多,,且紋理邊緣有毛刺;經(jīng)過傳統(tǒng)加權(quán)均值濾波處理后,,圖像的噪點(diǎn)減少,,紋理邊緣毛刺消失,但比較模糊,;使用本文方法處理后的圖像噪點(diǎn)較少,,同時(shí)邊緣也更加清晰,圖像質(zhì)量得到明顯改善,。通過MATLAB對(duì)處理結(jié)果及原始圖像進(jìn)行均方差MES與峰值信噪比PSNR計(jì)算比較,,結(jié)果見表1。
從表1中圖像的客觀指標(biāo)可以看到,,通過本文方法處理后的圖像相較于傳統(tǒng)加權(quán)均值濾波處理后的圖像,,其峰值信噪比提高1.04 dB。說明本文方法優(yōu)于傳統(tǒng)的加權(quán)均值濾波方法,。
FPGA資源占用率見表2,。由表2數(shù)據(jù)可知,除DSP資源外,,本設(shè)計(jì)的資源占用率低,,而一般圖像采集系統(tǒng)對(duì)DSP需求不高,因此可以方便嵌入CMOS圖像采集系統(tǒng)設(shè)計(jì)中,。
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)