引言
本文提出了基于可編程邏輯門陣列(field programmable gate array,FPGA)的開關融合中值-高斯(open and close mix-median-Gaussian,OCMMG)濾波算法。該算法將脈沖噪聲檢測與中值濾波相結合用于解決混合噪聲中的脈沖噪聲,邊緣檢測與高斯濾波相結合用于解決混合噪聲中的泊松噪聲,該算法還加入了脈沖噪聲判別權重和邊緣置信度表征值2個參數增加圖像保護邊緣的能力。基于FPGA對1×10?3 lx照度條件下EBAPS采集的圖像進行實時處理,以驗證算法的有效性。
1. OCMMG濾波算法原理
OCMMG濾波算法是一種基于中值濾波和高斯濾波的融合濾波方法,首先采用最小四方向差值進行脈沖噪聲檢測,進行第1步濾波處理;然后采用四方向邊緣檢測提取邊緣進行第2步濾波處理,得到最后的濾波圖像。
1.1 最小四方向差值
在一幅含有噪聲的圖像中存在梯度突變的邊緣或角點不會出現非連續性的小異常窗口,根據梯度突變異常情況來判別高頻脈沖噪聲對整體圖像的影響,本文采用最小四方向差值判別脈沖噪聲。

(1)

(2)
式中:Γi 為方向檢測模板; Ω 是以f(i,j) 為中心的鄰域像素集合;f(u,v) 是Ω 內像素(u,v) 處的灰度值;D(x,y)min 是四方向鄰域差值中的最小值;min{} 為集合中的最小值。(3)式為傳統中值濾波公式,將傳統的中值濾波公式引入脈沖噪聲判別權重ρ ,(4)式為改進的濾波公式,也為本文第1步濾波算法處理。

(3)

(4)

(5)
式中:f(x,y)為當前像素灰度值;T1 為脈沖噪聲判別閾值;h 為常數,此處令h=10 ;med() 為像素集合的中值;g(x,y) 為濾波處理之后中心像素灰度值。當D(x,y)min 遠大于T1 時,則認為該像素點為脈沖噪聲的可能性高,此時的ρ 值趨近于1,當前像素點會更大程度地進行中值濾波;反之,則會保持原來像素點的值不變。
1.2 四方向邊緣檢測
本文基于傳統的Sobel[26]算子,提出了四方向Sobel算子進行邊緣提取,增加了45 °和135 °的梯度方向,彌補了傳統Sobel算子對于斜角方向邊緣及角點檢測的不足,并根據窗口邊緣、紋理情況設立邊緣置信度指標表征中心像素為細節紋理的區域。四方向離散型的Sobel掩模如(6)式所示,(7)式為梯度G的計算公式。

(6)

(7)
式中:R是以(p,q)為中心鄰域范圍像素點的集合;(p,q)是鄰域像素點位置。(8)式為傳統的高斯濾波公式,(9)式變換為離散的高斯濾波公式,在(9)式的基礎上引入邊緣檢測判別權重τ,作用與(5)式同理,最終濾波結果為(10)式。

(8)

(9)

(10)

(11)
式中:F(x,y) 為最終濾波后的像素灰度值;w為高斯濾波權重;k為常數,此處令k=10 ;θ為邊緣置信度表征值。OCMMG濾波算法適用于處理脈沖噪聲與泊松噪聲混合污染的圖像。
2. 基于FPGA算法硬件實現
整體硬件設計如圖1所示。整個系統以FPGA為核心,包括驅動模塊、算法模塊、緩存模塊和顯示模塊。

圖 1 系統總體框架設計
2.1 總體邏輯設計
本文中有效像素陣列為1 280×1 024,系統工作時鐘50 MHz,EBAPS驅動時鐘40 MHz。在整個系統工作過程中,EBAPS進行圖像采集,采集到的信號為模擬信號,經過AD模數轉換器將模擬信號轉換為數字信號,圖像數據信號被FPGA接收,將數據進行本文的圖像算法處理,通過VIO模塊實時調節閾值參數,利用AXI4總線協議,將算法處理后的圖像儲存到DDR3[27]中,最后進行編碼輸出,在顯示器上顯示。系統運用了模塊化的思想,模塊中的流水線操作節約了資源,還增加了數據的吞吐量,提高了系統運行速度,達到實時性處理的目的。本文將重點講述算法處理模塊的設計,算法模塊具體流程如圖2所示。

圖 2 算法模塊流程圖
2.2 3×3模板生成模塊硬件設計
在FPGA中,圖像的數據信息是以數據流的形式傳輸,一個時鐘周期只能發送一個數據。本文圖像的分辨率是1 280×1 024 @ 30 幀/s,采用寄存器數組移位來生成3×3模板,該寄存器位寬為8 bit,容量是20 504 bit,能夠存下2 563個數據,在數據有效信號為高電平時,數據進入寄存器,并隨著時鐘進行移位,取寄存器中第1個、第2個、第3個、第1 281個、第1 282個、第1 283個、第2 561個、第2 562個和第2 563個數據組成3×3模板。具體流程如圖3所示。

圖 3 3×3模板生成圖
在數據傳輸過程中,取移位寄存器固定位置的數據,完成3×3模板的生成與滑動。設經過移位寄存器固定位置的數據分別為a11、a12、a13、a21、a22、a23、a31、a32和a33,如圖4所示。

圖 4 3×3矩陣映射圖
2.3 最小四方向差值模塊
采用最小四方向差值的方法對脈沖噪聲進行檢測。將3×3模板里的數據與最小四方向差值掩模進行卷積,為了使計算結果始終保持正數,需要將進行減法的兩端數據用大減小,輸出正的4個方向的差值,之后再兩兩進行比較,最后輸出最小四方向差值,具體流程圖如圖5所示。

圖 5 最小四方向差值流程圖
方向1、方向2、方向3、方向4是4個方向的差值,其最小值為最小四方向差值。從3×3窗口到計算出最小四方向差值共消耗了4個時鐘周期。
2.4 快速中值濾波算法模塊
快速中值濾波模塊流程圖如圖6所示。

圖 6 快速中值濾波模塊流程圖
快速中值濾波排序詳細說明:
1) 列數據排序為將每一列中的3個數據兩兩進行比較,劃分出每一列中的最大值data_max、中間值data_med、最小值data_min。
2) 排序1為將3個最大值數據兩兩進行比較,劃分出最大值中的最小值data_max_min;排序2為將3個中間值數據兩兩進行比較,劃分出中間值中的中間值data_med_med;排序3為將3個最小值數據兩兩進行比較,劃分出最小值中的最大值data_min_max;
3) 排序4為將data_max_min、data_med_med、data_min_max 3個數據兩兩進行比較,劃分出中間值data_median,此為3×3窗口的中值數據。
排序完成后,用自帶的仿真工具仿真,發現數據從輸入到選出中值數據輸出共耗時5個時鐘周期,因此對同步信號延時5個周期使數據與數據對齊。
2.5 邊緣檢測模塊
邊緣檢測模塊流程圖如圖7所示。

圖 7 邊緣檢測模塊流程圖
在計算G1、G2、G3、G4時,需要加入判斷,檢測減數和被減數之間的大小關系,保證G1、G2、G3、G4結果為正整數。梯度求和結果G2的計算公式為

(12)
為了節約資源減少計算量,用梯度平方G2代替梯度的值。邊緣檢測模塊從輸入數據到判定是否為邊緣點共消耗了4個時鐘周期。
2.6 高斯濾波模塊
用3×3矩陣[1,2,1;2,4,2;1,2,1]代表離散形式的高斯濾波模型,此濾波模板為一種低通濾波器,與其他濾波器模板相比(如均值濾波),本文濾波模板既加強了中心像素的權重,具有一定的圖像平滑作用,又避免了過度平滑,并且在計算中避免了浮點數的出現,高斯濾波模板如圖8所示。

圖 8 高斯濾波模板
將卷積后得到的二進制結果進行歸一化處理,右移4位作為最終的高斯濾波結果。在高斯濾波模塊中,從輸入數據到輸出數據共消耗2個時鐘,因此需要將高斯濾波模塊的輸出數據再延遲2個時鐘,同步信號延遲4個時鐘,與邊緣檢測模塊的數據對齊。
3. 仿真與實驗
本文對測試圖片進行仿真,并設置了多種客觀評價指標對仿真結果進行分析;此外,基于FPGA實現了實時去噪算法,并對實驗結果進行對比。
3.1 仿真實驗對比分析
本文以512×512像素分辨率的Lena、Goldhill、Pepper作為測試圖片來驗證實驗結果,經過反復大量仿真實驗,驗證了本文算法的可行性。根據EBAPS探測器的成像特點,隨著照度的降低,所采集圖像灰度值的分布逐漸降低,灰度范圍逐漸變小,并且存在以泊松和脈沖噪聲為主要噪聲的混合噪聲。本文在3張測試圖片的基礎上降低其對比度和灰度值,并添加一定程度的混合噪聲來模擬不同低照度下的成像效果。通過人眼主觀觀察,將經過上述處理過的圖片添加泊松噪聲和2%的脈沖噪聲較為合適,圖9為仿真測試圖,其中圖9(a)為原始圖像,圖9(b)為模擬偏暗環境光照度下的測試圖,圖9(c)為模擬中等暗環境光照度下的測試圖,圖9(d)為模擬暗環境光照度下的測試圖。

圖 9 仿真測試圖
對不同照度的測試圖片分別進行了中值濾波、高斯濾波、文獻[24]、文獻[25]的算法和本文算法進行處理,得到處理后的結果圖和客觀評價指標。用客觀評價指標對去噪后的圖片進行評價,客觀評價指標有峰值信噪比(PSNR)[28]、結構相似性(SSIM)[29],利用邊緣保持指數(EPI)[30]評價邊緣保留程度。圖10~圖12分別是去噪后的結果對比圖。表1~表3分別是去噪后的評價結果。

圖 10 照度1的去噪結果對比圖
由表1~表3所示,本文算法的3種客觀評價指標均優于與其對比的4種算法,具有更好的去噪能力和保護邊緣的能力,該算法相比于中值濾波和高斯濾波算法,峰值信噪比分別提高了3.23%和16.34%,結構相似性分別提高了14.66%和33.86%,邊緣保持指數分別提高了0.49%和4.21%。與文獻[24]與文獻[25]相比,本文算法在峰值信噪比PSNR、結構相似性SSIM、邊緣保持指數EPI均為最優結果。由圖10~圖12可知,文獻[24]中的算法濾波算法結果良好,去除了大部分的脈沖噪聲,但圖像仍有顆粒感;文獻[25]中的算法在照度越低的情況下,圖像中出現的黑點越多;本文算法的濾波效果圖更符合人眼觀察。

圖 11 照度2的去噪結果對比圖

圖 12 照度3的去噪結果對比圖

表 1 照度1的測試圖去噪后評價結果

表 2 照度2的測試圖去噪后評價結果

表 3 照度3的測試圖去噪后評價結果
3.2 FPGA硬件實驗與結果
本文采用自主研制的EBAPS圖像傳感器,型號為UV1280,分辨率為1 280×1 024像素,像素尺寸為12.5 μm,曝光方式為卷簾式曝光,光譜響應范圍為0.3 μm~0.97 μm,像素時鐘要求小于80 MHz,本文采用40 MHz,輸出為差分模擬信號,需要經過AD芯片轉換成數字信號進行輸出。本文采用的AD芯片為TI公司ADC14C080,是一款具有模擬差分信號輸入、14 bit數字輸出的高性能低功耗的模數轉換芯片,轉換速率高達80MSPS。FPGA型號為XC7A100TI-CSG324,速度等級為-1L。圖13為硬件設備及其內部結構圖,包括鏡頭、EBAPS圖像傳感器、EBAPS轉接底座、AD電路板、FPGA核心板、HDMI顯示板、JTAG轉接板和外部結構。在EBAPS側片加入高壓環,用自主研制的高壓電源給EBAPS加負高壓以實現電子加速,用KLL-04型寬量程微弱光照度計實時測量環境光照度,圖14為高壓電源與照度計圖。

圖 13 硬件設備及其內部結構圖

圖 14 高壓電源與照度計
本次實驗分別在1×10?1 lx、1×10?2 lx、1×10?3 lx環境光照度的條件下進行圖像采集,采用固定光圈,固定負電壓2 000 V,將采集到的未經處理的圖像和經過本文濾波算法實時處理的圖像進行對比。
需要注意的是采集到的圖像會出現條帶狀噪聲及黑色點狀污漬,此為EBAPS工藝所導致,不在本文考慮范圍之內,故可以忽略。圖15~圖16為室內靜態環境結果對比圖,圖17為夜晚外部環境實驗結果對比圖。

圖 15 靜態靶標實驗結果對比圖

圖 16 靜態SF實驗結果對比圖

圖 17 夜晚外部環境實驗結果對比圖
在采集真實圖像時,本文采用同一靜態場景的多幀疊加求均值的方式濾除隨機噪聲并作為理想參考圖像,分別計算仿真軟件與FPGA經過本文濾波算法后的PSNR、SSIM和EPI。如表4所示,從表中可以看出FPGA硬件實現的客觀評價指標與仿真效果相差不大,可以認為二者處理結果相符。

表 4 仿真軟件與FPGA算法客觀評價一致性檢驗
除此之外,本文加入了3種照度下存在運動目標的圖像進行對比分析,通過上位機進行視頻圖像的采集,截取視頻圖像中的某一幀進行實驗結果對比,圖18為運動目標實驗結果對比圖。

圖 18 運動目標實驗結果對比圖
由圖15~圖18可以看出,在環境光照度越低的情況下,圖像的對比度和灰度均降低,在1×10?3 lx照度條件下,圖像邊緣明顯,此時設置的邊緣置信值較大,當環境光照度降低時,需要適當調小邊緣置信值來增大邊緣識別度,在該算法的細節展示上能夠看出,噪聲被去除的同時邊緣并未存在明顯的模糊現象,在處理靜態和動態、室內和室外的場景都具有良好的去噪效果。
在圖像處理速度方面,針對分辨率為1 280×1 024像素的圖像進行處理時,由圖19可以看出,仿真軟件處理一幀圖像的時間為46.637 s,根據圖20所示的仿真波形可以看出,FPGA處理一幀圖像所需時間大約為33.28 ms,約是仿真軟件處理速度的1 401倍,遠快于仿真軟件的處理速度,能夠達到實時性處理的要求。

圖 19 仿真軟件圖像處理運行時間

圖 20 FPGA圖像處理運行時間
4. 結論
為了去除包括泊松噪聲和脈沖噪聲的混合噪聲,本文提出了一種基于FPGA實現的用于低照度條件下EBAPS圖像的實時OCMMG濾波算法。其主要解決思路為:針對像素異常點的突變,根據設置的判定閾值,采樣最小四方向差值提取可疑像素點,進行第1步濾波處理;根據設置的邊緣置信度表征值,采用四方向Sobel算子提取邊緣,進行第2步濾波處理。仿真結果表明,無論是主觀評價和客觀評價指標,本文算法均為最優結果,具有一定的優越性。硬件實現結果顯示,本文算法能夠有效去除EBAPS圖像在1×10?3 lx條件下的混合噪聲,同時又能保留邊緣信息,并且滿足圖像處理實時性的要求,可以作為低照度環境中提高圖像質量的有效濾波方法。需要注意的是,文中設置的脈沖噪聲判別閾值和邊緣置信度表征值都為固定值,隨著環境光照度變化,噪聲大小也會發生變化,固定值會對圖像處理造成一定影響。所以,在閾值的選取方面仍需開展進一步研究。
-
FPGA
+關注
關注
1660文章
22421瀏覽量
636624 -
噪聲
+關注
關注
13文章
1158瀏覽量
49271 -
可編程邏輯
+關注
關注
7文章
527瀏覽量
45413 -
濾波算法
+關注
關注
2文章
97瀏覽量
14396
原文標題:基于FPGA的低照度條件下EBAPS圖像混合噪聲去除算法
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
特定溫度條件下的應變測量方案
低頻條件下電壓噪聲最低的運放LT1028該如何進行設計?
如何解決圖像去噪在去除噪聲的同時容易丟失細節信息的問題
Nyxel 2是用于在低至無環境光條件下運行的圖像傳感器
低照度攝像機有哪些分類,它的優勢是什么
火車車號圖像識別系統如何應對不同光照條件下的識別問題?
基于FPGA的低照度條件下EBAPS圖像混合噪聲去除算法
評論