彭 俊,魏 瓊, 王 君, 童明浩
(湖北工業(yè)大學機械工程學院, 湖北 武漢 430068)
改進中值濾波算法及其FPGA硬件實現(xiàn)
彭俊,魏瓊, 王君, 童明浩
(湖北工業(yè)大學機械工程學院, 湖北 武漢 430068)
[摘要]為了有效抑制數(shù)字圖像在其獲取和傳輸過程中受到的噪聲污染,基于中值濾波,提出一種具有噪聲檢測模塊的改進中值濾波算法,并在FPGA硬件平臺上實現(xiàn),改善了傳統(tǒng)中值濾波會模糊圖像的缺點。由實驗結果分析可知,該算法不僅能有效抑制噪聲,而且還能保存更多的圖像細節(jié),從而提高圖像處理質量。
[關鍵詞]現(xiàn)場可編程門陣列;領域相關性;噪聲檢測;中值濾波
數(shù)字圖像在獲取和傳輸過程中很容易受到噪聲污染。噪聲是模糊真實原始數(shù)據(jù)的一系列不相關數(shù)據(jù),通常是獨立的,與圖像像素不相關,并且隨機分布在圖像中,會嚴重降低圖像質量,引起圖像信息的大量丟失,給圖像識別和分析造成困難。脈沖噪聲污染普遍發(fā)生在數(shù)字圖像中。脈沖噪聲分為椒鹽噪聲和隨機噪聲。被椒鹽噪聲污染的圖像,噪聲像素點只會取圖像動態(tài)范圍的最大值和最小值。尖銳而突然的干擾是圖像產生椒鹽噪聲的主要原因。隨機脈沖噪聲是圖像原始數(shù)據(jù)被圖像動態(tài)范圍內任何值代替。線性濾波是減少噪聲的一種方法,但是它就算是在低密度噪聲中也會嚴重模糊圖像。基于統(tǒng)計排序理論的中值濾波,是因為其具備出色的抑制噪聲魯棒性和圖像邊緣信息保存能力而被廣泛應用于航空航天、生物醫(yī)學和通信工程等領域。中值濾波是將圖像每一像素點的灰度值用采樣窗口內排序后所有像素灰度值中值代替。傳統(tǒng)中值濾波計算量大,耗費大量邏輯資源和時間資源。已不適用于對圖像處理實時性要求越來越高的當下。經過王宇新[1]、李新春[2]等人對算法的不斷改進,中值濾波算法圖像處理速度有了一定提高。但是,由于它會對圖像原始信息產生不必要的代替,在一定程度上會使圖像變模糊。李飛飛[3]在中值濾波中加入閾比較環(huán)節(jié),使得所處理的圖像更加清晰。
本文在李雙全濾波算法[4]的基礎上,提出了基于FPGA硬件平臺的具有噪聲檢測模塊的改進濾波算法。即先通過閾值比較來檢測可能出現(xiàn)的噪聲點,然后用采樣窗口中心像素點同周圍領域像素相關性來再次深入檢測噪聲點。對于圖像原值保留,噪聲點用除窗口中心像素點外相鄰像素中值代替。經過Quartus11.0SP1編程和Modelsim6.6d仿真實驗,將本文算法與文獻[1—3]算法的性能進行比較,結果表明該改進濾波算法不僅能有效去除噪聲,還能保存更多圖像細節(jié),從而提高圖像質量。
1改進濾波算法
與傳統(tǒng)中值濾波算法不同的是,本文濾波算法加入了噪聲檢測模塊。首先通過閾值比較來對噪聲進行初步檢測。然后,用窗口中心像素點同周圍領域像素點相關性的比較分析來深入檢測噪聲。若檢測為信號點,則保留原值;若檢測為噪聲點,則用除窗口中心像素點外領域像素中值代替。
本文采用3×3的采樣濾波窗口,窗口范圍內對應中心像素為x22,窗口內除中心像素外其他8個像素設為集合P,則P={x11,x12,x13,x21,x23,x31,x32,x33},其中值Pmed。通過設定閾值Ta,來判斷白鹽噪聲灰度值范圍[255-Ta,255]和黑椒噪聲灰度值范圍[0,Ta]。設定比較誤差閾值Tb。
噪聲檢測模塊原理:
1)初步判斷:用|x22-xk|>Tb,xk∈P不等式來對噪聲進行初步檢測。如果對于任意xk∈P該式都成立,則可判斷該點為噪聲點;如果只對于部分xk該式成立,則需要深入判斷。
“初步判斷”用比較誤差閾值Tb來對椒鹽噪聲進行初步檢測和濾除;而“深入判斷”則是通過考慮領域像素相關性來區(qū)分噪聲點和信號點。經上述噪聲檢測模塊處理后,能有效檢測并濾除噪聲。
2FPGA硬件實現(xiàn)
本文濾波算法采用3×3采樣窗口,處理的圖像數(shù)據(jù)是256×256像素大小,8bit。圖像數(shù)據(jù)由Matlab軟件讀取并轉換成16進制“.txt”文本,再用Modelsim仿真波形。將16進制“.txt”文本內容作為激勵信號串行讀入FPGA。仿真后產生的輸出信號保存為“.txt”文本,由Matlab轉換成圖片顯示。其中,F(xiàn)PGA電路結構如圖1所示。
圖 1 FPGA電路結構框圖
由圖1可知,本文濾波算法分為采樣窗口模塊、行列計數(shù)器模塊和噪聲檢測模塊等3個模塊。3個模塊分別在同一時鐘信號clk和復位信號rstn下工作。
2.1采樣窗口模塊
如圖2所示,采樣窗口模塊由9個寄存器和2個FIFO組成。每次FPGA對圖像進行噪聲檢測,必須先緩存256×2+3個數(shù)據(jù),采樣模塊才能開始獲得3×3窗口內的圖像數(shù)據(jù)。3個寄存器和1個FIFO緩存1行256個像素。所以每個寄存器存儲1個像素,F(xiàn)IFO存儲253個像素。通過采樣窗口模塊,可將圖像數(shù)據(jù)由串行輸入轉變?yōu)椴⑿?×3窗口輸出,加快圖像處理速度。本文使用的是Altera公司的FPGA芯片,可在Quartus軟件中使用IP核,通過MegaWizard Plug-In Manager直接生成FIFO。
圖2 采樣窗口生成電路圖
2.2行列計數(shù)器模塊
在對一副灰度圖像進行噪聲檢測和濾波處理的過程中,3×3的采樣窗口不斷向右滑動。采樣窗口每當?shù)竭_該行末端,采樣窗口跳到下行始端。行列計數(shù)器模塊通過行列計數(shù)功能來判斷圖像處理是否到達邊緣或者處理完畢[5]。當采樣窗口中心元素x22位于每行第一列和最后一列時,噪聲檢測模塊失效。本文濾波算法對圖像邊界處的圖像數(shù)據(jù)采取保留處理,即輸出原值x22。
2.3噪聲檢測模塊
噪聲檢測模塊又分為求8位數(shù)中值模塊、緩存模塊和算法模塊。為了算法模塊中的噪聲檢測,要向算法模塊中輸入領域8位像素中值和采樣窗口模塊9個元素。
2.3.1領域8位中值模塊運用文獻[6]中排序網絡理論 。如圖3所示,首先將8位數(shù)分成兩組,每組通過6個比較器生成有序序列,將所生成的兩組有序序列利用合并網絡,通過合并排序算法,可得到該8位數(shù)的按升序排列的有序序列。最后,將序列第4位和第5位數(shù)取平均值,即可得到該8位數(shù)中間值。為了節(jié)省FPGA資源,利用兩位數(shù)之和右移一位操作完成兩位數(shù)取平均。
圖 3 領域8位中值模塊
2.3.2緩存模塊由圖2可見,采樣窗口輸入像素與中值Pmed有7個時鐘周期的延時。為了保證采樣窗口輸入像素與領域中值Pmed能在同一個周期中輸入算法模塊,采取對采樣窗口輸入像素緩存7個時鐘周期輸出到改進中值濾波算法模塊中。
2.3.3算法模塊將緩存模塊緩存后的像素和領域8位中值模塊的中值Pmed按本文改進濾波算法進行處理。利用改進濾波算法,對采樣窗口的中心像素x22進行噪聲檢測。如果是噪聲,則輸出中值Pmed,否則輸出原值x22。
3仿真實驗
用Quartus11.0SP1在ALTERA的EP4CE15F23C8芯片里實現(xiàn)。布局布線仿真后,最高工作頻率可達148 MHz。
先用Matlab將分辨率為256×256 、8bit的圖像轉成256×256的灰度值矩陣。以16進制格式保存在“.txt”文檔中。然后以灰度值矩陣為圖像數(shù)據(jù)輸入信號轉化成Modelsim 6.6d的激勵文件。經Modelsim 6.6d仿真測試結果保存為“.txt”格式,通過Matlab轉換為圖像顯示。在256×256的cameraman圖像中加入10%的椒鹽噪聲,經Matlab中值濾波,F(xiàn)PGA傳統(tǒng)中值濾波和本文算法濾波處理后輸出如圖4所示。由實驗結果比較分析知,Matlab中值濾波和FPGA傳統(tǒng)中值濾波雖然可以濾波全部噪聲,但是由于圖像部分原值被中值代替,使圖像變模糊。本文濾波算法處理后的圖像,不但噪聲已經全部濾除,而且圖像細節(jié)保護得較好。
圖 4 濾波算法仿真結果圖片顯示
4性能指標分析
本文采用最小均方差MSE和峰值信噪比PSNR作為對椒鹽噪聲圖像處理的性能指標。MSE值越小,PSNR值越大,圖像處理的質量越高。
圖像分辨率為M×N的最小均方誤差的計算公式:
(1)
峰值信噪比的計算公式為:
(2)
式中,n為圖像的深度。
對分辨率為256×256的Lena添加10%噪聲密度,將本文濾波算法與Matlab中值濾波,F(xiàn)PGA傳統(tǒng)中值濾波和李飛飛[3]改進濾波算法的性能比較(表1),本文濾波不但擁有最高的圖像質量,而且保持著FPGA傳統(tǒng)中值濾波的高效圖像處理速度,約為Matlab中值濾波處理一幀圖像速度的83倍。
表1 4種濾波算法性能比較
本文所用PC機為Intel Pentium G640 2.80 GHz 雙核處理器
首先用Matlab對Lena圖像添加不同密度的椒鹽噪聲;然后,分別用Matlab中值濾波、FPGA傳統(tǒng)中值濾波和本文濾波算法,處理含不同密度噪聲的Lena圖像;最后用Matlab計算各個算法PSNR值。將這些數(shù)據(jù)用Word制作成折線圖(圖5)。對比分析知,在同一噪聲密度的情況下,本文濾波算法圖像處理后得到的PSNR值最大。
圖 5 處理不同噪聲密度Lena下各個濾波算法PSNR值比較
[1]王宇新,賀圓圓,郭禾,等.基于FPGA的快速中值濾波算法[J].計算機應用研究,2009,26(1):224-226.
[2]李新春,趙璐.基于中值濾波算法濾波器的FPGA實現(xiàn)[J].計算機系統(tǒng)應用,2011,20(9):82-85.
[3]李飛飛,劉偉寧,王艷華.改進的中值濾波算法及其FPGA快速實現(xiàn)[J].計算機工程,2009,34(14):175-177.
[4]李雙全,張宇,孫廣明.消除椒鹽噪聲的改進濾波算法[J].計算機工程,2008,34(10):171-175.
[5]張杰.基于FPGA的數(shù)字圖像處理[D].武漢:武漢科技大學,2009.
[6]潘金貴,顧鐵成,李成法,等.算法導論(第二版)[M].北京:機械工業(yè)出版社,2006,433-445.
[責任編校: 張眾]
Improved Median Filtering Algorithm and Its Hardware Implementation of FPGA
PENG Jun, WEI Qiong, WANG Jun, TONG Minghao
(SchoolofMechanicalEngin.,HubeiUniv.ofTech.,Wuhan430068,China)
Abstract:In order to effectively suppress the noise pollution in the process of image acquisition and transmission, this paper presents an improved median filtering algorithm with noise detection module based on the median filtering. And it is implemented successfully in the FPGA hardware platform. It has improved the shortcoming that the traditional median filter will blur the image. The experimental results show that the proposed algorithm can not only suppress the noise effectively, but also save more details of the image, so as to improve the quality of image processing.
Keywords:FPGA; correlation of domain; noise pixel detection;median filtering
[收稿日期]2016-01-25
[作者簡介]彭俊(1990-), 男, 湖北鄂州人,湖北工業(yè)大學碩士研究生,研究方向FPGA圖像處理,機器人學
[通訊作者]王君(1977- ),男,湖北蘄春人,湖北工業(yè)大學教授,研究方向機器人學、先進制造技術與裝備、新能源技術
[文章編號]1003-4684(2016)02-0042-03
[中圖分類號]TP391
[文獻標識碼]:A