包文瑞
摘 ? 要:針對視頻數據中嚴重的混合噪聲問題,提出了一種基于塊的視頻去噪算法。通過對空間域和時間域的相似塊進行分組,將混合噪聲的去噪問題轉化為一個低秩矩陣補全問題,從而得到一個對噪聲統計特征沒有強假設的去噪方法。由此產生的核范數最小化問題通過拉格朗日函數和不動點迭代算法得到有效的解決。實驗驗證了所提出的視頻去噪方法在去除混合噪聲方面的魯棒性和有效性。
關鍵詞:矩陣補全;低秩矩陣;視頻去噪;核范數;不動點迭代
中圖分類號:TN957.52 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A
Video Denoising Based on Low Rank Matrix Complementation
BAO Wen-rui?覮
(Baoji University of Arts and Sciences,Baoji,Shannxi 721013,China)
Abstract: Aiming at the serious mixed noise problem in video data,this paper proposes a block-based video denoising algorithm. By grouping similar blocks in the spatial domain and the time domain,the denoising problem of mixed noise is transformed into a low rank matrix completion problem,and a denoising method with no strong assumptions on noise statistical features is obtained. The resulting kernel norm minimization problem is effectively solved by the Lagrangian function and the fixed point iterative algorithm. The experiment verifies the robustness and effectiveness of the proposed video denoising method in removing mixed noise.
Key words: matrix complement; low rank matrix; video denoising; kernel norm;fixed point iteration
隨著傳感器設計的不斷發展,低端數碼相機在高靈敏度(如低光照條件、高ISO設置和高速率)下的圖像和視頻相對噪聲較多[1],圖像幀的去噪問題十分重要[2-4]。由于攝像機的高速捕獲率,視頻數據往往比單幅圖像的噪聲更大[5]。視頻去噪的目的是通過在時間域和空間域中的信息來有效地消除視頻所有幀中的噪聲。與單幅圖像去噪相比,視頻存在較高的時間冗余[6],現有的圖像和視頻去噪技術大多依賴于單一的圖像噪聲統計模型,如高斯噪
聲[7]。文獻[8]中識別出了五種不同統計分布的圖像噪聲源:固定模式噪聲、放大器噪聲、光子散射噪聲、暗電流噪聲和量化噪聲。
開發一種能夠去除圖像序列中的混合噪聲的視頻去噪算法。所提出的視頻去噪方法在對圖像噪聲的統計特性假設最小的情況下,建立在塊方法相同的“分組協同過濾”方法基礎上,將匹配塊堆棧中的噪聲去除問題轉化為一個低秩矩陣補全問題,該問題可以通過最小化線性約束矩陣的核范數(所有奇異值的L1范數)來有效地解決。實驗表明,基于低秩矩陣補全方法可以有效地消除多個統計分布中混合的復雜噪聲。
1 ? 問題形成和解決方案概述
設F = {fk}K ? k=1為具有K幀的圖像序列。每個圖像fk是其底層干凈圖像gk和噪聲nk的總和:
fk = gk + nk ? ? ? ? ? ? ? ?(1)
視頻去噪的目標是通過從fk中刪除nk來恢復G = {gk}M ? k=1。為了利用視頻中的時間冗余,本文采用了一種基于塊的方法來聯合所有重新移動圖像幀的圖像噪聲nk。對于每個圖像fk,考慮一個以像素 j為中心的圖像塊pj,k,大小為n×n(即n = 8)。
將該塊設置為參考塊,并在所有其他圖像和圖像fk本身的鄰域內搜索類似于pj,k的塊。當存在明顯的圖像噪聲時,假設空間域存在m個塊
{pi,j,k}M ? k=1類似于pj,k。如果將每個塊pi,j,k表示為向量pi,j,k∈Rn2 ,通過連接所有列的塊,則可以組成一個 n2 × m矩陣:
Pj,k = (p1,j,k,p1,j,k,…,pm,j,k) ? ? ? ?(2)
可以將公式(1)改寫為補全矩陣的形式:
Pj,k = Qj,k + Nj,k ? ? ? ?(3)
其中,Qj,k表示補全矩陣gk中的干凈圖像, Nj,k表示噪聲。
圖像噪聲nk或Nj,k通常可建模為具有一定統計特征的隨機變量。由于噪聲源較多且具有不同的統計特性。因此,目的是開發一種僅假設圖像噪聲最小的統計特性方法。
如果數據沒有噪聲且塊能夠完全匹配,那么Qj,k中的所有列向量都有相似的底層圖像結構,Qj,k的秩應該很低,Pj,k中每個行向量的方差應該很小。在這種理想情況下,通過簡單地對Pj,k進行奇異值分解,即可得到Qj,k的良好估計。在復雜噪聲存在的情況下,SVD方法對許多類型的噪聲都很敏感。本文提出了一種更為有效的魯棒估計Qj,k的兩階段方法,即僅需少量的元素即可恢復完整的矩陣。因此只保留非??煽康脑?,而丟棄所有其他元素。在本文方法中,那些遠離行向量均值的Pj,k矩陣元素被認為是高度不可靠且需要丟棄的元素。這些元素可能是脈沖噪聲損壞的像素,也可能是幅值較大的高斯/泊松噪聲損壞的像素,也可能是不匹配塊受干擾的像素。
在介紹本文方法之前,需要定義一些符號來簡化討論。矩陣X的模糊范數定義為:
X的核范數定義為:
‖X‖· := ?(σi(X)) ? ? ? ? ?(5)
其中,σi(X)表示第i個最大奇異值。設X = U∑VT為X的SVD,“軟收縮”算子Dτ(X)定義為[9]:
Dτ(X) = U∑VT ? ? ? ? ? ? (6)
其中,∑τ = diag(max(σi - τ,0)),設Ω為索引集, X|Ω表示僅包含Ω元素的向量。
所提出方法的第一階段,在Pj,k中,可靠的元素是根據它們對同一行中所有元素的平均值的偏差進行識別。令Ω表示所有這些元素的索引集。第二階段的主要任務是從Pj,k的不完整版本中恢復Qj,k,用Pj,k|Ω表示,這實際上是一個矩陣補全問題。即在Qj,k的秩很小的情況下,如何從它的噪聲和不完全觀測中恢復Pj,k|Ω。在本文中,估計Pj,k|Ω的Qj,k通過求解以下最小化問題:
其中, ‖·‖· 為核范數,#(Ω)為集合Ω的大小, 為噪聲標準差的估計值,通過計算每行各元素方差的平均值得到。很多缺失像素的主成分分析(PCA)方法[10]也可用于解決矩陣補全問題。本文選擇上述最小化方法的主要原因是其數學背景嚴謹[11]且求解公式(7)和(8)的可用數值方案實現簡單。
2 ? 具體算法
2.1 ? 塊匹配和分組
隨著時間的推移,匹配相似的塊是視頻處理中一個重要的問題[12]。由于去噪算法中有一個內置的離群值去除器,所提算法對塊匹配的準確性不太敏感。因此,采用了一種快速的三步分層搜索算法。
當視頻數據受到圖像噪聲嚴重干擾時,則不可以直接對噪聲數據應用塊匹配算法。由于脈沖噪聲干擾像素強度范圍較廣(即0或255),像素值上的較大失真會導致兩個塊之間的匹配極不穩定。因此,在塊匹配之前對脈沖噪聲進行預處理,可以提升相似塊組的性能。采用文獻[13]中提出的自適應中值濾波器來識別被脈沖噪聲干擾的像素,并用小鄰域的中值來替換這些受干擾的像素。在存在其他類型圖像噪聲的情況下,通過自適應均值濾波器恢復的像素質量并不好,但足以用于修補匹配。
與VBM3D方法[14]類似,不直接對原始視頻數據應用塊匹配算法。相反,首先使用現有的去噪技術或所提出的算法獲得視頻數據的基本(中間)估計值,然后使用中間去噪的視頻數據進行塊匹配,與未去噪的原始數據相比,這提高了塊匹配的
精度。
2.2 ? 去噪塊矩陣
對于每個塊,通過塊匹配算法在空間和時間域中找到相似的塊來形成矩陣Pj,k。Pj,k的缺失元素集有兩個子集:第一個子集是使用基于自適應中值濾波的脈沖噪聲檢測器的脈沖噪聲干擾的像素。第二個子集包括其值與相應行向量的平均值相差的量大于預先定義的閾值的像素。然后將所有剩余像素的索引包括在內,并形成Ω。
通過求解公式(7)和(8)的最小化問題,可以從Qj,k 未完全觀測Pj,k|Ω中恢復。本文不直接求解公式(7)和(8),而是求解其拉格朗日函數:
2.3 ? 由去噪塊到去噪圖像
將上述兩階段算法應用于輸入圖像幀的每個塊,可以有效地去除所有塊中的大部分噪聲。最后一步是從這些去噪塊合成去噪圖像。在本文中,使用重疊區域對圖像塊進行采樣。因此,每個像素都被幾個去噪塊覆蓋。然后,通過取該像素處去噪塊的平均值來確定圖像中每個像素的值,這將抑制塊邊界附近可能的偽像。
3 ? 實驗分析
實驗中使用的所有視頻數據都是選取YUV測試序列視頻下載網站。默認情況下,我們使用K =50的圖像幀,將“塊大小”設置為8×8像素,樣本引用的塊采樣間隔為4×4像素。將圖像強度范圍設置為[0,255]。對于每個參考塊,在基于L1范數距離函數的每個圖像幀中使用5個最相似的塊。因此,在矩陣完成算法中,參考塊共有250個,矩陣的列維數為250。從塊矩陣中選擇可靠像素的閾值為2σ,其中σ是噪聲標準差的估計值,可以用與 類似的方法獲得。在矩陣補全算法中,迭代終止的標準為公差ε≤10-5或達到最大迭代次數30。
3.1 ? 輸入混合噪聲的圖像數據
由于某些類型的圖像噪聲比其他噪聲(如量化噪聲)小得多,因此可以預先校準(如固定模式噪聲),在實驗中通過以下三種典型噪聲的總和來合成nk:
其中, ngk~N(0,σ2I)為平均值為零且與像素無關的高斯噪聲(放大器噪聲),npk為平均值為零且方差為κnk的泊松噪聲(炮點噪聲),nik為由死點、變頻器或傳輸誤差等構成的脈沖噪聲。脈沖噪聲建模為:
fk(i,j)={0,255}3,脈沖噪聲概率為s時(gk+ngk+npk)(i,j),脈沖噪聲概率為1-s時
其中,{0,255}3為強度值為0或255的三個波段(實驗中使用彩色視頻)。然后根據以上三種噪聲類型的不同參數配置,合成具有不同混合噪聲等級的噪聲圖像幀:(σ,κ,s)。
為了研究所提算法如何隨不同噪聲等級而變化的性能。由于單高斯圖像噪聲不是本文的研究重點,本實驗將高斯噪聲等級固定在σ = 10,泊松噪聲等級κ和脈沖噪聲等級s分別設置在[5,30]和[10%,40%]的范圍內。當視頻序列的σ = 30,κ = 5和s = 30%時,去噪結果如圖1所示。
(a)原始圖像 ? ? ? ? ? (b)對應的噪聲圖像 ? ? ? (c)初始去噪結果
圖1 ? 當σ = 30,κ = 5和s = 30%時,圖像幀去噪結果
視頻序列的圖像幀經過中值濾波器的初始去噪結果通過其定義的PSNR值來衡量:
PSNR(f ?r) = 10 log10 ? ? ? (16)
其中,f為原始數據,f ?r為恢復結果。
當高斯噪聲等級固定在σ = 10時,不同泊松噪聲和脈沖噪聲等級去噪圖像幀的PSNR值如表1所示。
表1 ? 去噪圖像幀的PSNR值
從表1中可以看出,對于一個固定的泊松噪聲等級,當脈沖噪聲等級s從10%增加到40%時,恢復圖像的PSNR值下降很小,這意味著本文的算法對脈沖噪聲具有較強的魯棒性。而當脈沖噪聲等級固定,泊松噪聲等級κ從5增加到30時,恢復圖像的PSNR值會顯著降低。因此,塊匹配對嚴重的泊松噪聲更為敏感,但對脈沖噪聲不太敏感,這是由于本文已經對數據中的脈沖噪聲進行了預處理。
3.2 ? 性能比較
將所提出的去噪方法應用于多個不同混合噪聲等級的視頻,并將結果與現有的兩種視頻去噪方法進行了比較:一種是使用文獻[16]中VBM3D方法的可執行代碼;另一種是基于PCA的方法[10]。其中,文獻[10]中使用深度約束的塊匹配來形成高質量的塊堆棧。由于本文的重點是如何對塊堆棧進行去噪,因此只實現了文獻[10]中的去噪部分,并使用所提出的塊匹配算法來生成塊堆棧。兩種方法所涉及的參數都是根據噪聲等級的真實值來設置。
實驗一:視頻數據被顯著的混合噪聲等級嚴重破壞,即當σ = 30,κ = 15和s = 20%時,去噪結果如圖2所示。
由于VBM3D方法和PCA方法都沒有內置的脈沖噪聲消除器。因此,本文不僅對測試數據運行兩個方法的未修改版本,而且對測試數據運行兩個方法的修改版本,同時進行去除脈沖噪聲的預處理。在應用這兩種方法之前,采用自適應介質濾波方法[17]來消除脈沖噪聲,去噪結果如圖3所示。
相反,本文所提出的算法不使用現有的脈沖噪聲消除器來去除脈沖噪聲。取而代之的是使用現有的脈沖噪聲檢測器來檢測那些受干擾的像素,這些像素將通過對匹配的塊堆棧進一步細化。
顯然,VBM3D方法和基于PCA的方法對脈沖噪聲或異常值都不具有魯棒性,如圖3(a)-(b)所示。通過對脈沖噪聲的預處理,兩種方法的結果得到了很大的改善,如圖3(c)-(d)所示。然而,由于脈沖噪聲之外還存在其他類型的圖像噪聲,因此脈沖噪聲的檢測精度和受干擾像素的估計精度不可避免地會降低。由于對受干擾像素的檢測和估計不準確而導致的異常值會降低塊堆棧去模糊后期的性能。相反,從圖3可以看出,所使用的低秩矩陣綜合方法可以得到較好的視覺效果,并且基于BM3D方法(圖3(c))、基于PCA的方法(圖3(d))和所提出的方法(圖3(e))的PSNR值分別分別為21.5db、21.4db和22.5db,這進一步說明了所提方法的有效性。
實驗二:本文比較了脈沖噪聲預處理方法的結果,并進行了三個數據序列的測試。每個數據序列被不同類型的噪聲干擾。圖4比較了混合噪聲和顯性高斯噪聲(σ = 50,κ = 5和s = 10%)對數據的去噪結果,圖5給出了混合噪聲和顯性泊松噪聲(σ =
從圖4至圖6可以看出,VBM3D方法的結果趨向于平滑圖像細節,而基于PCA的方法的結果仍然有許多明顯的噪聲,而所提出的算法總體上能夠得到較好的去噪結果。
4 ? 結 ? 論
提出了一種基于塊的視頻混合噪聲去噪算法。通過將視頻去噪問題歸結為一個低秩矩陣補全問題,所提出算法不假設圖像噪聲的任何特定統計特性,并且對塊匹配誤差具有魯棒性。通過具體實驗驗證了所提算法的有效性,并與現有的兩種算法進行了比較。在未來的研究中,希望能夠針對泊松噪聲的低階矩陣補全算法展開深入研究。
參考文獻
[1] ? ?楊丹,戴芳. 運動目標檢測的ViBe算法改進[J]. 中國圖象圖形學報,2018,23(12):1813—1828.
[2] ? ?周文忠,郭山紅,王輝,等. 一種基于顏色不變性的視頻煙霧檢測方法[J].信息技術,2018(05):106—110+114.
[3] ? ?XIAO J,TIAN H,ZHANG Y,et al. Blind video denoising via texture-aware noise estimation[J]. Computer Vision and Image Understanding,2018,169:1—13.
[4] ? ?楊帆,張子文,徐侃. 一種新型自適應嵌入式流形去噪視頻運動目標分割算法[J].吉林大學學報:理學版,2017,55(05):1213—1220.
[5] ? ?付歡,韓戰鋼. 基于Harris角點檢測和EEMD的蟻群實驗數據處理方法[J].北京師范大學學報:自然科學版,2018,54(05):593—598.
[6] ? ?周罡.采用雙冗余網絡接口的TMS320DM368視頻存儲系統[J]. 單片機與嵌入式系統應用,2016,16(07):64—67.
[7] ? ?李然,梅臘臘,鄔長安,等. 針對視頻運動補償幀率提升篡改的主動混噪取證算法[J]. 電子與信息學報,2018,40(03):713—720.
[8] ? ?BEY N Y. Extraction of buried multidimensional signals and images in mixed sources of noise[J]. Signal Processing,2018,144:7—18.
[9] ? ?YAN H,SONG X,TIAN K,et al. Quantitative determination of additive chlorantraniliprole in abamectin preparation: investigation of bootstrapping soft shrinkage approach by mid-infrared spectroscopy[J]. Spectrochimica Acta Part A: Molecular and Biomolecular Spectroscopy,2018,191: 296—302.
[10] ?張杰,齊官紅,葉蓬,等. 基于PCA的關鍵幀相似度核聚類檢索算法[J]. 控制工程,2017,24(04):728—735.
[11] ?邱林潤,李蓉蓉. 一種新的基于矩陣秩序數優化的矩陣補全算法研究[J]. 科技通報,2017,33(11):155—157+228.
[12] ?段淑玉,陳艷. 基于塊匹配運動估計的視頻場景切換檢測算法[J]. 廣西科技大學學報,2018,29(04):92—98.
[13] ?孫玉姣,張光斌. 含有脈沖噪聲的圖像復原研究[J]. 電腦知識與技術,2017,13(29):199—202.
[14] ?MOUSSA O,KHLIFA N,ABDALLAH N B. Video despeckling using shearlet tensor-based anisotropic diffusion[J]. Computer Aided Geometric Design,2018,67: 34—46.
[15] ?WEN B,RAVISHANKAR S,BRESLER Y. VIDOSAT:high-dimensional sparsifying transform learning for online video denoising[J]. IEEE Transactions on Image Processing,2019,28(4): 1691—1704.
[16] ?XIAO J,ZOU W,ZHANG S,et al. Video denoising algorithm based on improved dual-domain filtering and 3D block matching[J]. IET Image Processing,2018,12(12): 2250—2257.
[17] ?BUADES A,LISANI J L,MILADINOVI M. Patch-based video denoising with optical flow estimation[J]. IEEE Transactions on Image Processing,2016,25(6): 2573—2586.