周克虎,雷 濤,羅 剛
(1.中國科學院光電技術研究所,四川 成都 610209;2.中國人民解放軍63618部隊,新疆 庫爾勒 841000)
光學設備廣泛應用于偵查、測量等領域,現(xiàn)代光學設備一般配置有可見光、紅外等多種波段的探測器,其最終的成像效果受光學系統(tǒng)設計、探測器性能、場景光照條件以及環(huán)境溫度等諸多因素的影響。但對于用戶或設備操作人員,其對于成像效果好壞的感受則直接來源于最終的圖像顯示效果好壞。紅外探測器在光學設備中一般承擔著目標捕獲和高精度位置測量的功能,其圖像經常需回傳指揮中心進行實時顯示。因此,紅外圖像顯示效果的優(yōu)化對于提升設備的成像質量以及用戶體驗有著重要的意義。
在實際項目中,探測器噪聲導致的紅外圖像顯示效果惡化嚴重影響了設備的成像質量。常見的紅外圖像去噪方法主要分為空域方法和變換域方法??沼驗V波主要是利用噪聲空間分布的隨機性,傳統(tǒng)的方法有均值濾波、高斯濾波等。這類空域濾波算法會導致圖像中邊緣和紋理的退化,導致表征圖像細節(jié)信息的關鍵梯度數(shù)據(jù)丟失,輸出圖像整體表現(xiàn)出模糊感。Tomasi等人提出了一種利用灰度距離進行權值修正的空域高斯濾波算法,稱為雙邊濾波(bilateral filter)[1-4]。該算法不僅能夠去掉噪聲,還能夠保持邊緣,解決了傳統(tǒng)空域濾波算法導致的圖像模糊,在很多場合下表現(xiàn)出了較好的去噪效果。但是,該算法沒有利用圖像時域的相關性,無法去除序列圖像顯示時噪聲引起的幀間灰度隨機變化,其時域去噪效果有待提升。
區(qū)別于直接的空間鄰域濾波,非局部均值(non-local means,NLM)濾波算法[5-8]通過圖像中多個相似圖像塊的像素值加權平均進行無噪聲圖像估計,能較好地去除圖像中的高斯噪聲并且能夠保持邊緣。但是該算法計算復雜度高,限制了其在實時顯示場合的使用。
基于變換域的紅外圖像去噪方法主要有基于小波變換的方法[9-12]、基于快速傅里葉變換(fast fourier transform, FFT)的方法以及基于離散余弦變換(discrete cosine transform,DCT)的 方 法 等。BM3D(block-matching and 3D filtering)算法[13-14]結合空域NLM算法和變換域去噪方法,通過塊匹配和三維變換域濾波進行無噪聲圖像估計,在保持圖像邊緣的前提下,實現(xiàn)了優(yōu)良的去噪效果。但該計算復雜度高,難以實時顯示。
此外,隨著深度學習在計算機視覺領域不斷取得突破性進展,深度學習技術在圖像去噪領域獲得了極大的關注[15],同時也涌現(xiàn)了很多優(yōu)秀的算法[16-18]。
在光學設備圖像實時顯示等應用場景中,圖像去噪算法的實時性以及去噪效果均十分重要。本文算法是受雙邊濾波算法的啟發(fā),將空域雙邊濾波算法的核心思想應用至時域,摒棄了傳統(tǒng)視頻去噪時的運動估計流程[19-20],不僅具有很高的實時性,而且實現(xiàn)了較好的紅外序列圖像去噪效果。
雙邊濾波利用鄰域像素點的信息來估計當前像素點的灰度值,以消除噪聲的影響,實現(xiàn)空域去噪。其核心思想是在分配空間鄰域像素點的濾波權值時同時考慮空間距離和灰度差異,以保證濾波窗口內,與待估計像素點的空間距離越近權值越高,與待估計像素點的灰度值差異越小權值越高。
雙邊濾波定義如下:
雙邊濾波的濾波核權值由2個高斯函數(shù)的值ws(i,j)和wr(i,j)相乘得到,這里分別稱為空間距離高斯函數(shù)和灰度距離高斯函數(shù)。對于 (i,j)∈Sxy,定義如下:
對于(2)式,像素位置 (i,j)距離當前濾波像素位置 (x,y)的距離越近,權值越大;反之,則權值越小。而對于(3)式,鄰域像素位置的灰度值g(i,j)與當前濾波像素點的灰度值g(x,y)的差異越小,權值越大;反之,則權值越小。
分析可知,當 σr→∞時雙邊濾波退化為一般的空域高斯濾波。因此,雙邊濾波的實質是引入了濾波鄰域內像素灰度值的影響,對高斯濾波的權值進行了修正,使得在進行當前像素點灰度值估計時,灰度值差異大的鄰域像素點權值降低。由于視覺上的圖像邊緣實質為灰度值的較大變化,上述過程在完成了空域去噪的同時,又很好地保持了邊緣。
對于同一個像素點,其連續(xù)幀間的灰度值受噪聲影響出現(xiàn)隨機變化,這是導致紅外序列圖像顯示效果惡化的關鍵因素。因此,本文從時域濾波的角度,利用連續(xù)歷史幀像素灰度值對當前像素點的灰度值進行估計,實現(xiàn)同一像素位置連續(xù)幀間灰度值的平滑。此外,為了解決時域濾波導致的運動目標拖尾問題,本文引入歷史幀像素灰度值的影響對濾波權值進行修正,避免了時域濾波導致的運動目標拖尾。
將二維圖像g視為時間相關的函數(shù),記為g(t),則有:
式中:g(t)表示當前時刻的探測器輸出圖像;f(t)表示無噪聲影響的原始圖像;n(t)為 噪聲;t為用離散的幀編號表示的時間;N為當前已經采集的圖像總幀數(shù)。
每一個像素點的時域高斯濾波估計值定義如下:
式中:A為 高斯濾波權值歸一化的系數(shù);σs為高斯函數(shù)的方差;K為濾波幀數(shù)。典型地,K=5,σs=5.0時,歸一化的高斯濾波權值(即歷史5幀的權值)如下:
此時的高斯濾波系數(shù)實際為半寬的一維高斯核,且當前幀的權值最高,距離當前幀時間越長的幀對應的權值越小。這個過程完成了單個像素點的時域高斯濾波處理,通過逐像素濾波處理實現(xiàn)整個圖像幀的時域去噪。
對于靜態(tài)場景,上述時域高斯濾波去噪方法已經具備使用價值,但是對于動態(tài)場景,上述方法同一般的視頻去噪方法一樣,會導致運動目標拖尾的出現(xiàn),如圖1和圖2所示。
序列1為制冷型紅外相機拍攝的圖像,圖像的背景主要為天空及部分地面,運動目標為工作中的風力發(fā)電設備,其葉片的幀間運動明顯??梢钥闯觯涍^時域高斯濾波之后,轉動的葉片邊緣出現(xiàn)了明顯的模糊。序列2中,圖像的背景主要為靜止輸電鐵塔及部分天空,運動目標為飛鳥。運動目標的信噪比為5左右,且在幀間存在明顯的位移。經過時域濾波后,運動目標不僅形成了明顯的拖尾,而且整體呈現(xiàn)出嚴重模糊。分析其形成原因發(fā)現(xiàn),在時域高斯濾波的過程中,歷史幀相同位置的灰度值會參與對當前幀像素值的估計,當歷史幀中存在灰度值差異較大的目標時,可能會導致當前幀灰度值估計值偏差大,在運動目標圖像上表現(xiàn)為目標的拖尾。
圖2 紅外序列圖像時域高斯濾波去噪效果(序列2)Fig.2 Denoising effect of temporal Gaussian filtering for infrared sequence images (sequence 2)
通過對動態(tài)場景進行分析發(fā)現(xiàn),運動目標覆蓋的像素點在連續(xù)幀間表現(xiàn)出灰度值突變,與空域上的邊緣、紋理有一定的相似性,均表現(xiàn)出明顯的梯度變化。
受空域雙邊濾波的啟發(fā),引入連續(xù)幀灰度值的影響對高斯濾波的權值進行修正。則對于每一個像素點,新的時域高斯濾波估計值定義如下:
式中:WP為修正后的濾波權值歸一化系數(shù);同空域雙邊濾波一樣,最終的濾波權值由2個高斯函數(shù)的值相乘得到,這里分別稱為時間距離高斯函數(shù)ws(j)和 灰度距離高斯函數(shù)wr(j),定義如下:
式中:σs為時間距離高斯函數(shù)的方差;σr為灰度距離高斯函數(shù)的方差。
可以看出,當 σr→∞時(8)式退化為一般的時域高斯濾波,即(5)式。通過增加灰度距離影響的權值修正系數(shù),避免了灰度差異值過大的歷史幀像素點參與當前像素點灰度值的估計,從而解決了時域高斯濾波導致的運動目標拖尾問題。
時域高斯濾波處理后,紅外序列圖像中背景區(qū)域同一個像素點(取100個固定像素位置,統(tǒng)計連續(xù)100幀)連續(xù)幀間的灰度方差變化如圖3所示。
對于背景區(qū)域的同一個像素點,其連續(xù)幀間灰度變化越平緩(即均方差越?。﹦t顯示效果越好。通過圖3可以看出,經過時域濾波后同一像素位置連續(xù)幀間的灰度值均方差降為原來的1/2左右,可見噪聲導致的連續(xù)幀間的灰度隨機變化被顯著平滑。通過觀察時域濾波處理后的顯示圖像發(fā)現(xiàn),原本幀間動態(tài)變化的噪聲被明顯抑制,顯示效果得到了有效提升。
圖3 紅外序列圖像的連續(xù)幀灰度值變化方差對比圖Fig.3 Comparison diagram of change variance of continuous frame gray values of infrared sequence images
選取有運動目標的場景進行實驗,紅外序列圖像去噪后的效果如圖4和圖5所示。
圖4 不同方法去噪結果對比(序列1)Fig.4 Comparison of denoising results with different methods (sequence 1)
從圖4和圖5可以看出,使用不同的去噪算法圖像中背景部分的噪聲均被一定程度地抑制;而風力發(fā)電機的葉片邊緣以及天空中的飛鳥在去噪后的圖像中均比較清晰,沒有出現(xiàn)明顯的模糊或者拖尾。這說明雙邊濾波算法、NLM算法、BM3D算法以及本文提出的算法,均有較好的保邊去噪效果。
圖5 不同方法去噪結果對比(序列2)Fig.5 Comparison of denoising results with different methods (sequence 2)
通過無噪聲紅外圖像疊加零均值高斯噪聲來仿真不同噪聲水平的含噪圖像序列(序列3為室外場景,序列4為室內場景,分別如圖6和圖7所示),并利用圖像去噪領域常用的峰值信噪比(peak signal-to-noise ratio, PSNR)和結構相似性(structural similarity, SSIM)指標對去噪效果進行定量評價。
圖6 序列3疊加不同水平的高斯噪聲Fig.6 Sequence 3 superimposes different levels of Gaussian noise
對前述的序列3和序列4(圖像大小均為640×480像素)進行實驗,統(tǒng)計了去噪后的PSNR(見表1和表2)和SSIM(見表3和表4)。
表1 序列3不同算法去噪后的PSNRTable 1 PSNR of sequence 3 after denoising with different algorithms dB
表2 序列4不同算法去噪后的PSNRTable 2 PSNR of sequence 4 after denoising with different algorithms dB
表3 序列3不同算法去噪后的SSIMTable 3 SSIM of sequence 3 after denoising with different algorithms
表4 序列4不同算法去噪后的SSIMTable 4 SSIM of sequence 4 after denoising with different algorithms
統(tǒng)計了不同算法的處理時間(硬件配置:i5-8250U 4核CPU,主頻1.8 GHz,內存16 GB),如表5所示。
表5 不同算法的處理時間Table 5 Processing time of different algorithms ms
上述實驗中,所有的濾波窗口尺寸均為11×11像素,NLM算法和BM3D算法的模板尺寸為7×7像素,搜索窗口尺寸為21×21像素。
從實驗數(shù)據(jù)中可以看出,對于不同噪聲水平的圖像序列,4種算法均有效提升了圖像的PSNR和SSIM指標,其中NLM算法和BM3D算法的指標提升十分顯著。不過對于去噪后的圖像(參見圖4和圖5),NLM算法和BM3D算法會導致圖像整體呈現(xiàn)明顯失真。這種失真在圖5中表現(xiàn)的更加突出,其原因是序列2的背景噪聲更加嚴重。
雙邊濾波算法和本文算法導致的失真均比較輕微,但是實驗發(fā)現(xiàn):雙邊濾波對單幀圖像進行處理,沒有利用時域信息,在連續(xù)幀顯示的場合,噪聲導致的連續(xù)幀顯示效果惡化仍然存在;本文提出的算法有效地利用了圖像噪聲幀間分布的隨機性,通過幀間平滑處理抑制噪聲,在紅外序列圖像顯示時取得了良好的效果。
隨著噪聲水平的提高,可以看到本文算法的效果有所下降,這說明本文算法更加適合低噪聲水平的序列圖像去噪。此外,NLM算法和BM3D算法的處理時間均超過了4 s(見表5),難以使用在光電成像設備圖像顯示等實時顯示場合。而本文算法實時性高,可以用于序列圖像的實時顯示。
針對噪聲導致的紅外序列圖像顯示效果惡化,本文通過歷史多幀像素值的加權和對當前幀的像素值進行估計,提出了一種基于時域濾波的噪聲抑制方法。進一步,為了解決時域濾波導致圖像中運動目標產生拖尾和模糊的問題,通過灰度距離高斯函數(shù)對時域高斯濾波權值進行修正,避免歷史幀灰度值差異大的像素值參與當前灰度值估計。實驗表明,本文提出的算法有效地抑制了噪聲對于連續(xù)幀圖像顯示的影響,同時也解決了時域濾波導致場景中的運動目標產生拖尾的問題。通過與圖像去噪領域的優(yōu)秀算法進行對比,表明了本文算法在對圖像實時顯示有需求的光電成像設備等應用場景中,具有較高的實際應用價值。