浙江工業職業技術學院 李 博
由于煤礦井下環境惡劣,各種強電設備的電磁干擾較重,井下視頻監控圖像往往夾雜著大量的噪聲。市場上普通紅外攝像機的視頻圖像往往被噪聲淹沒,視頻圖像的缺損對管理人員監控井下實時情況造成障礙,對煤礦生產造成安全隱患。保護有用信號、抑制噪聲是圖像預處理的關鍵,由電氣開關動作及電磁干擾引起的脈沖噪聲是井下最典型和嚴重的噪聲形式,其特點是噪聲點處的灰度值與周圍像素點的灰度值相差較大。椒鹽噪聲即是飽和的脈沖噪聲,對圖像的損害更大[1]。
井下視頻圖像椒鹽噪聲去噪具有數據量大、實時性高等要求,采用普通軟件實現的圖像處理器難以滿足海量數據處理的實時性要求。針對圖像預處理階段運算結構較簡單的特點,用硬件的方法實現分布式的算法結構,各功能塊可以并行工作,對高速數字信號處理效果非常理想。中值濾波屬于非線性空間濾波,用中值濾波的方法去除圖像中的椒鹽噪聲,效果顯著。本文應用硬件描述語言,采用一種快速的中值濾波改進算法進行椒鹽噪聲濾波,處理速度快,濾波效果好。
脈沖噪聲的概率密度函數可由下式給出:

如果b>a,灰度值b顯示為一個亮點,a顯示為一個暗點。當Pa和Pb均不為零且其值近似相等時,脈沖噪聲成為椒鹽噪聲。中值濾波方法是非線性圖像增強技術,可以做到既去除噪聲又保護圖像邊緣,對干擾脈沖和點狀噪聲具有良好的抑制作用,對圖像邊緣能較好地保持。中值濾波的基本原理是把數字圖像灰度值序列中一點的值用該點的一個鄰域中各點值的中值代替。例如,把一組數(xi1,xi2,…,xin)按大小順序排列:把某點的特定形狀的鄰域作為一個窗口,中值濾波器是一個含有奇數個像素的滑動窗口,用窗口內各點像素值的中值代替窗口中間點的像素值。設輸入序列為{xi,i∈I},I為窗口長度為n的像素點集合,則濾波器輸出值為:


中值濾波算法需將每個窗口內所有像素點灰度值進行比較、排序,并以濾波器輸出值替換對象點的灰度值,所以中值濾波算法在運行過程中要進行大量的比較和賦值運算。一個n×n個像素的方形濾波窗口一次要進行n2(n2-1)/2次排序比較運算,例如,要使用3×3型窗口處理一幀352×288的視頻圖像,所需的時間約為73毫秒。CIF格式的實時視頻監控圖像一秒鐘有30幀畫面,每幀約33毫秒,所以,采用傳統的中值濾波算法是不可能滿足實時性要求的。必須進行算法優化,提高運行速度,才能實現實時濾波的目標。
優化的思路是將二維濾波陣列分解為一維,先求出濾波窗口中水平各行像素灰度值的中值,再求出水平各行中值的中值,從而得出濾波結果。改進的算法將一個本來含有n2個像素的二維陣列簡化為(n+1)個僅含n個像素的一維陣列進行取中值運算,進行一次快速中值濾波只需進行n(n2-1)/2次運算,運算次數減少為原來的1/n,運算速度提高n倍。快速中值濾波雖然將二維陣列分解為一維運算,但最終的濾波結果既包含窗口中的行信息,又包含列信息,所以用多次一維中值濾波代替二維中值濾波的處理方案是可行的。
對傳統中值濾波算法進行并行及流水線結構改進,如圖1所示。
并行機制就是對同一段時間內需要處理的所有任務分別采用各自獨立的處理通道同時進行處理,使處理時間從多個任務所需時間之和降至最慢任務所需的時間。圖中將3行數據同時用三個比較器進行比較,然后將三行的中值再用一個比較器比較得出最終結果。這樣總處理時間只是其中關鍵模塊的處理時間,處理速度是順序執行的兩倍。

圖1

圖2

圖3

圖4
流水線作業的實質是在明顯制約系統速度的關鍵路徑上插入寄存器,使信號在時鐘的下一拍到達目的地,這樣用寄存器截斷了長路徑,縮短了寄存器到寄存器之間的最大延時,因而可以提高整個系統的速度。如上圖所示,本來系統的最大延時為A和B的運算時間之和,現在在A與B之間加入寄存器后,系統的最大延時降為以前的一半,從而使系統的處理速度再提高一倍。由此可知,對于3×3模板的中值濾波算法經過并行和流水結構進行硬件優化后,處理速度是以前的四倍。
另外,在圖像的各個邊緣。由于無法用3×3窗口覆蓋,所以無法直接調用該中值濾波排序模塊。參考常用的圖像硬件處理系統的做法[2],本文將圖像邊緣像素簡單地設成“0”,并不影響整個中值濾波的效果。因此只需加一個判斷窗口位置的模塊,如果窗口處于邊緣,則設為定值,否則,調用優化后的排序模塊[3]。
基于硬件描述語言的快速中值濾波程序設計流程圖如圖2所示,可以利用QuartusⅡ編譯環境提供的參數化宏模塊實現行數據存儲緩沖器FIFO1和FIFO2,提高編程效率和程序模塊化程度。
圖像的第n行數據以數據流的形式在時鐘同步下存入n+1行數據緩沖器FIFO2中,當第n行數據結束后,第n行數據在時鐘同步下依次從FIFO2中讀出寫入到n行數據緩沖器FIFO1中,同時第n+1行數據依次存入FIFO2中。當攝像機輸出圖像的n+2行數據時,FIFO1中存放的圖像的第n行數據,FIFO2中存放的是圖像的第n+1行數據。
在QuartusⅡ中運行基于硬件描述語言的快速中值濾波程序,得到如圖4仿真波形。
由仿真結果可知,中值濾波算法工作正常,每計算一個3×3窗口的中值僅需要1個時鐘周期的時間。在50MHz工作頻率下,使用快速中值濾波算法優化一幀352×288的視頻圖像,耗時約為6毫秒。而CIF格式的實時視頻監控圖像每幀約33毫秒,所以中值濾波操作僅占用很小一部分時間資源,不影響實時視頻圖像的連續性。在中值濾波器的應用中,同樣的3×3模板中值濾波若在TS201型DSP上處理,所需時間約為18毫秒。顯然基于硬件描述語言的快速中值濾波比基于DSP的解決方案有更好的實時性優勢[4]。
對數字圖像處理標準圖Lena加入50%的椒鹽噪聲,然后采用本文介紹的方法進行快速中值濾波,效果如圖4所示。
將中值濾波后的圖像與原始圖像作比較可以發現,中值濾波算法導致圖形邊界稍微變得模糊了一些,但不明顯,而椒鹽噪聲干擾被很好地抑制,驗證結果證明基于硬件描述語言的快速中值濾波確實有效。實踐證明,對礦井下數字視頻信號進行快速中值濾波后,視頻圖像的質量得到了極大的提高,效果良好。
[1]Nasser Kehtarnavaz,Mark Gamadia.Real-Time Image and Video Processing[M].Morgan& Claypool Pubilshers,2006.
[2]王香菊.圖像去噪方法及應用[J].科技情報開發與經濟,2007,17(27):23-25.
[3]Aggelos K.Katsaggelos,Rafael Molina.Super Resolution of Images and Video[M].Morgan & Claypool Pubilshers,2007.
[4]彭波.用于數字監控系統的圖像去噪算法的研究與實現[J].中國農業大學學報,2004,9(5):62-66.