浙江工業(yè)職業(yè)技術(shù)學(xué)院 李 博
由于煤礦井下環(huán)境惡劣,各種強電設(shè)備的電磁干擾較重,井下視頻監(jiān)控圖像往往夾雜著大量的噪聲。市場上普通紅外攝像機的視頻圖像往往被噪聲淹沒,視頻圖像的缺損對管理人員監(jiān)控井下實時情況造成障礙,對煤礦生產(chǎn)造成安全隱患。保護(hù)有用信號、抑制噪聲是圖像預(yù)處理的關(guān)鍵,由電氣開關(guān)動作及電磁干擾引起的脈沖噪聲是井下最典型和嚴(yán)重的噪聲形式,其特點是噪聲點處的灰度值與周圍像素點的灰度值相差較大。椒鹽噪聲即是飽和的脈沖噪聲,對圖像的損害更大[1]。
井下視頻圖像椒鹽噪聲去噪具有數(shù)據(jù)量大、實時性高等要求,采用普通軟件實現(xiàn)的圖像處理器難以滿足海量數(shù)據(jù)處理的實時性要求。針對圖像預(yù)處理階段運算結(jié)構(gòu)較簡單的特點,用硬件的方法實現(xiàn)分布式的算法結(jié)構(gòu),各功能塊可以并行工作,對高速數(shù)字信號處理效果非常理想。中值濾波屬于非線性空間濾波,用中值濾波的方法去除圖像中的椒鹽噪聲,效果顯著。本文應(yīng)用硬件描述語言,采用一種快速的中值濾波改進(jìn)算法進(jìn)行椒鹽噪聲濾波,處理速度快,濾波效果好。
脈沖噪聲的概率密度函數(shù)可由下式給出:
如果b>a,灰度值b顯示為一個亮點,a顯示為一個暗點。當(dāng)Pa和Pb均不為零且其值近似相等時,脈沖噪聲成為椒鹽噪聲。中值濾波方法是非線性圖像增強技術(shù),可以做到既去除噪聲又保護(hù)圖像邊緣,對干擾脈沖和點狀噪聲具有良好的抑制作用,對圖像邊緣能較好地保持。中值濾波的基本原理是把數(shù)字圖像灰度值序列中一點的值用該點的一個鄰域中各點值的中值代替。例如,把一組數(shù)(xi1,xi2,…,xin)按大小順序排列:把某點的特定形狀的鄰域作為一個窗口,中值濾波器是一個含有奇數(shù)個像素的滑動窗口,用窗口內(nèi)各點像素值的中值代替窗口中間點的像素值。設(shè)輸入序列為{xi,i∈I},I為窗口長度為n的像素點集合,則濾波器輸出值為:
中值濾波算法需將每個窗口內(nèi)所有像素點灰度值進(jìn)行比較、排序,并以濾波器輸出值替換對象點的灰度值,所以中值濾波算法在運行過程中要進(jìn)行大量的比較和賦值運算。一個n×n個像素的方形濾波窗口一次要進(jìn)行n2(n2-1)/2次排序比較運算,例如,要使用3×3型窗口處理一幀352×288的視頻圖像,所需的時間約為73毫秒。CIF格式的實時視頻監(jiān)控圖像一秒鐘有30幀畫面,每幀約33毫秒,所以,采用傳統(tǒng)的中值濾波算法是不可能滿足實時性要求的。必須進(jìn)行算法優(yōu)化,提高運行速度,才能實現(xiàn)實時濾波的目標(biāo)。
優(yōu)化的思路是將二維濾波陣列分解為一維,先求出濾波窗口中水平各行像素灰度值的中值,再求出水平各行中值的中值,從而得出濾波結(jié)果。改進(jìn)的算法將一個本來含有n2個像素的二維陣列簡化為(n+1)個僅含n個像素的一維陣列進(jìn)行取中值運算,進(jìn)行一次快速中值濾波只需進(jìn)行n(n2-1)/2次運算,運算次數(shù)減少為原來的1/n,運算速度提高n倍??焖僦兄禐V波雖然將二維陣列分解為一維運算,但最終的濾波結(jié)果既包含窗口中的行信息,又包含列信息,所以用多次一維中值濾波代替二維中值濾波的處理方案是可行的。
對傳統(tǒng)中值濾波算法進(jìn)行并行及流水線結(jié)構(gòu)改進(jìn),如圖1所示。
并行機制就是對同一段時間內(nèi)需要處理的所有任務(wù)分別采用各自獨立的處理通道同時進(jìn)行處理,使處理時間從多個任務(wù)所需時間之和降至最慢任務(wù)所需的時間。圖中將3行數(shù)據(jù)同時用三個比較器進(jìn)行比較,然后將三行的中值再用一個比較器比較得出最終結(jié)果。這樣總處理時間只是其中關(guān)鍵模塊的處理時間,處理速度是順序執(zhí)行的兩倍。
圖1
圖2
圖3
圖4
流水線作業(yè)的實質(zhì)是在明顯制約系統(tǒng)速度的關(guān)鍵路徑上插入寄存器,使信號在時鐘的下一拍到達(dá)目的地,這樣用寄存器截斷了長路徑,縮短了寄存器到寄存器之間的最大延時,因而可以提高整個系統(tǒng)的速度。如上圖所示,本來系統(tǒng)的最大延時為A和B的運算時間之和,現(xiàn)在在A與B之間加入寄存器后,系統(tǒng)的最大延時降為以前的一半,從而使系統(tǒng)的處理速度再提高一倍。由此可知,對于3×3模板的中值濾波算法經(jīng)過并行和流水結(jié)構(gòu)進(jìn)行硬件優(yōu)化后,處理速度是以前的四倍。
另外,在圖像的各個邊緣。由于無法用3×3窗口覆蓋,所以無法直接調(diào)用該中值濾波排序模塊。參考常用的圖像硬件處理系統(tǒng)的做法[2],本文將圖像邊緣像素簡單地設(shè)成“0”,并不影響整個中值濾波的效果。因此只需加一個判斷窗口位置的模塊,如果窗口處于邊緣,則設(shè)為定值,否則,調(diào)用優(yōu)化后的排序模塊[3]。
基于硬件描述語言的快速中值濾波程序設(shè)計流程圖如圖2所示,可以利用QuartusⅡ編譯環(huán)境提供的參數(shù)化宏模塊實現(xiàn)行數(shù)據(jù)存儲緩沖器FIFO1和FIFO2,提高編程效率和程序模塊化程度。
圖像的第n行數(shù)據(jù)以數(shù)據(jù)流的形式在時鐘同步下存入n+1行數(shù)據(jù)緩沖器FIFO2中,當(dāng)?shù)趎行數(shù)據(jù)結(jié)束后,第n行數(shù)據(jù)在時鐘同步下依次從FIFO2中讀出寫入到n行數(shù)據(jù)緩沖器FIFO1中,同時第n+1行數(shù)據(jù)依次存入FIFO2中。當(dāng)攝像機輸出圖像的n+2行數(shù)據(jù)時,F(xiàn)IFO1中存放的圖像的第n行數(shù)據(jù),F(xiàn)IFO2中存放的是圖像的第n+1行數(shù)據(jù)。
在QuartusⅡ中運行基于硬件描述語言的快速中值濾波程序,得到如圖4仿真波形。
由仿真結(jié)果可知,中值濾波算法工作正常,每計算一個3×3窗口的中值僅需要1個時鐘周期的時間。在50MHz工作頻率下,使用快速中值濾波算法優(yōu)化一幀352×288的視頻圖像,耗時約為6毫秒。而CIF格式的實時視頻監(jiān)控圖像每幀約33毫秒,所以中值濾波操作僅占用很小一部分時間資源,不影響實時視頻圖像的連續(xù)性。在中值濾波器的應(yīng)用中,同樣的3×3模板中值濾波若在TS201型DSP上處理,所需時間約為18毫秒。顯然基于硬件描述語言的快速中值濾波比基于DSP的解決方案有更好的實時性優(yōu)勢[4]。
對數(shù)字圖像處理標(biāo)準(zhǔn)圖Lena加入50%的椒鹽噪聲,然后采用本文介紹的方法進(jìn)行快速中值濾波,效果如圖4所示。
將中值濾波后的圖像與原始圖像作比較可以發(fā)現(xiàn),中值濾波算法導(dǎo)致圖形邊界稍微變得模糊了一些,但不明顯,而椒鹽噪聲干擾被很好地抑制,驗證結(jié)果證明基于硬件描述語言的快速中值濾波確實有效。實踐證明,對礦井下數(shù)字視頻信號進(jìn)行快速中值濾波后,視頻圖像的質(zhì)量得到了極大的提高,效果良好。
[1]Nasser Kehtarnavaz,Mark Gamadia.Real-Time Image and Video Processing[M].Morgan& Claypool Pubilshers,2006.
[2]王香菊.圖像去噪方法及應(yīng)用[J].科技情報開發(fā)與經(jīng)濟(jì),2007,17(27):23-25.
[3]Aggelos K.Katsaggelos,Rafael Molina.Super Resolution of Images and Video[M].Morgan & Claypool Pubilshers,2007.
[4]彭波.用于數(shù)字監(jiān)控系統(tǒng)的圖像去噪算法的研究與實現(xiàn)[J].中國農(nóng)業(yè)大學(xué)學(xué)報,2004,9(5):62-66.