0. Links

源碼(後續將會push包含Multi-Kernel Prediction Networks代碼的版本,敬請期待):

z-bingo/kernel-prediction-networks-PyTorch?

github.com
圖標

1. Introduction

圖像去噪

一直以來都是圖像處理和計算機視覺領域的基礎研究工作。單幅圖像去噪已經通過傳統演算法較好地解決,充分利用了圖像的統計先驗知識;近幾年,深度學習在圖像去噪領域得到了廣泛的應用,通過卷積神經網路(Convolution Neural Networks, CNN)在數以百萬計的訓練集上學習含噪圖像到不含噪圖像之間的映射關係。

而對於多幅圖像的聯合去噪,一般基於平均多個獨立的雜訊可以更準確地估計真實雜訊的假設,通過傳統統計推斷

的放水來解決。然而,當多幀圖像是由手持相機拍攝而得,簡單的時域平均就會由於相機移動或拍攝對需相關移動產生很差的結果。已經有許多技術試圖首先對其多幀圖像,或在去噪操作中包含一些旋轉不變的演算法,進而解決多幀圖像中存在相機移動的情況。此外,對多個已經對齊的圖像塊進行去噪也是很多單幀圖像去噪演算法的根本理念,但是這會非常依賴於圖像內容本身的自相似性,以允許一定程度的偏移。

2018年,UC Berkeley和谷歌研究院聯合提出一種用於多幀圖像去噪的核預測網路(Kernel Prediction Networks, KPN)。KPN具有多幀去噪較高的信噪比優勢以及CNN大容量和通用性強的優勢,可以在較高的雜訊水平(較低的信噪比)情況下依舊取得較好的去噪效果。

KPN的主要貢獻有:

  • 提出了一個將經過後期處理的源自互聯網的RGB圖像轉化為RAW域線性圖像,RAW域圖像是符合直接從相機獲得的圖像的。這一過程使得訓練處的網路對於真實的圖像有較高的泛化能力;
  • 提出了一個新的網路架構,且能夠在紋理圖像和真實圖像上表現出SOTA(State-of-the-art)能力。
  • 提出一個KPN網路的訓練過程,產生用於計算去噪後圖像的多個卷積核,即使是在圖像偏移未知的情況下也是如此。
  • 將雜訊水平的估計值作為網路的輸入,進一步提高KPN對於高雜訊圖像去噪的泛化能力。

2.Related Works

單幀圖像去噪是一個長久的問題,最早源於經典的方法,如各向異性擴散和全變差去噪,這些思想使用圖像的統計先驗知識和非線性優化來完成去噪,而且,這些方法成為了一些圖像和視頻去噪演算法的理論基礎,如:VBM4D、非局部均值等,這些演算法在可以對多個雜訊觀測值進行平均以更好地估計真是信號的假設前提下,對相似的圖像塊進行時間分組並進行聯合去噪。如今,這些思想被廣泛用於多幀圖像的聯合去噪中,尤其是用於由手持相機拍攝的多幀圖像。此類方法首先在很小的像素範圍內對多幀圖像進行塊對齊,然後進行加權平均,如通過維納濾波器估計最優加權係數。

隨著人工智慧的快速發展,基於深度學習已經產生了很多神經網路用語多圖像去噪,以及一些其他的相似任務,如聯合去噪和解馬賽克、去模糊以及超解析度重構等。這些方法與KPN很相似,KPN採用蒙特卡洛模擬進行去噪,該網路的輸出為每個像素所對應的卷積濾核,從而約束輸出空間,以免產生人工幹擾。

3. Problem Specification

多幀圖像去噪的目的是集結多幅含雜訊圖像的信息,產生一幅乾淨的無雜訊圖像,其中,多幀圖像可認為是手持相機拍攝所得。選N幅含有雜訊的圖像 X_1,X_2,ldots,X_N ,其中,以X_1為參考幀,假定所有的輸入圖像色彩空間都為RAW,避免RGB圖像在後期處理過程中丟失圖像原有信息。

3.1 RAW域圖像特性

相機感測器可以在線性色彩空間輸出RAW圖像,其中,像素的量化值和相機感測器中光電子數量成正比。RAW圖像中主要的雜訊為拍攝雜訊,一個方差等於像素亮度的泊松雜訊,以及讀取雜訊,近似為高斯雜訊,主要由各個感測器讀取數據造成。兩個雜訊可以近似地建模為一個與圖像獨立的高斯分佈:

x_p=mathcal{N}(y_p, sigma_r^2+sigma_sy_p)

式中, 為真實亮度為 情況下的雜訊測量值,參數sigma_rsigma_s對於特定相機和ISO都是固定的。

此外,真實圖像中包含由於手抖或場景移動雜訊的偏差,其中,手抖可以通過一個全局模型來很好地估計,但是,場景移動智能通過局部模型來估計。

3.2 合成訓練數據

對於圖像恢復來說,收集GT(Ground of Truth)圖像是非常困難的,這是因為受到了成像系統最優性能的約束。KPN提出了一中用於合成訓練數據的方法,且基於公開數據集Open Images Datasets。

為了生成每組為N陣的訓練圖像,KPN在一幅圖像上取了M個隨機剪切塊,且每個剪切塊的偏移值為Delta_i,服從2維均勻分佈。其中,這幅圖像是原圖像經過4倍下採樣後的圖像,以減少雜訊和編碼壓縮的幹擾;其次,約束隨機偏移值 在下採樣後圖像中的影響為 pm 2像素,這些偏移值都以參考幀為參考零點。

此外,模擬多幀圖像間完全對齊失敗的情況也是非常必要的,實際中,一些圖像很容易被對齊,但是一些圖像也會很難對齊。對於每組圖像,選取一個隨機偏移值n	hicksim 	ext{Poisson}(lambda),之後,對每個非參考幀,採取擲硬幣的方式,以 frac{n}{N} 的概率決定是否要額外添加一個最大 像素的偏移。對於圖像幀數為8的情況,通常選擇 lambda=1.5

為了模擬真實的雜訊,首先對上述圖像幀進行反gamma變化以致於將圖像映射至近似線性的色彩空間;然後,對圖像亮度值隨機尺度化,範圍為left[0.1, 1
ight],這是為了壓縮圖像的動態範圍以接近相機的輸出圖像;最後,在一定範圍內隨機採樣拍攝雜訊和讀取雜訊的參數,對得到的圖像幀添加雜訊。

4. Model

圖1 KPN網路結構圖

KPN網路結構如圖1所示,可以生成逐像素的卷積核,同時對多幀圖像進行配準、去噪,生成一幅乾淨的圖像。KPN基於帶有skip-connection的編碼-解碼器網路架構,有 N^2K 個輸出通道,可變形為N個K	imes K的卷積核,對應於每個像素,輸出圖像hat{Y}可通過如下計算得到:

hat{Y}=frac{1}{N} sum_{i=1}{N} left<f_i^p, V^p(X_i)
ight>

式中,V^p(X_i)是圖像X_i的像素pK	imes K 領域,f_i^p是對應的卷積核,在本次實驗中,選取參數為 K=5,N=8

正如前面提到的,KPN還將雜訊的估計值作為網路的輸入,可通過如下公式進行計算:

hat{sigma}_p=sqrt{sigma_r^2 + sigma_smax(x_p, 0)}

式中,x_p是參考幀的圖像像素的亮度值,假設 sigma_ssigma_r 是已知的。

4.1 Basic Loss Fuction

基本損失函數是與GT圖像相比,像素亮度值的L2距離和梯度的L1距離的加權平均,損失函數用在將亮度值歸一化至1且經過sRGB變換後,使得可以產生更加準確、相關的估計。以 Y^ast 為GT圖像,hat{Y}為KPN輸出圖像,基本損失函數可表示為:

mathcal{l}(hat{Y}, Y^ast)=lambda_2 ||Gamma(hat{Y})-Gamma(Y^ast)||^2_2+lambda_1||	riangledownGamma(hat{Y})-	riangledownGamma(Y^ast)||_1

式中,	riangledown 是梯度運算元,lambda_1 lambda_2是固定的權重因子,Gamma(cdot)是sRGB轉換。

4.2 Anneal Loss Funtion

最小化基本損失函數 mathcal{l}(hat{Y}, Y^ast) 是很直接的,但是KPN卻沒採用這樣的方式。這是因為最小化基本損失函數會使KPN很快收斂並陷入局部極小值。為了能使KPN在訓練時多考慮非參考幀包含的信息,提出了新的退火損失函數。

考慮將KPN輸出的卷積核f_1,f_2, ldots, f_N用於每幀圖像X_1,X_2,ldots,X_N,可以得到N個濾波後的圖像 f(X_1),f(X_2),ldots,f(X_N) ,進而平均產生hat{Y}。對於每一幀中間結果添加損失項,並在訓練中逐漸減小,可得到隨時間變化的損失函數為

mathcal{L}(X;Y^ast,t)=mathcal{l}left(frac{1}{N}sum_{i=1}^{N}f_i(X_i), Y^ast
ight) + etaalpha^tsum_{i=1}^{N}mathcal{l}left( f_i(X_i),Y^ast 
ight)

式中, alphaeta 是兩個超參數,用於控制退火進程, t 是優化過程中的迭代步數。在實驗中,選取 alpha=0.9998,eta=100 ,此時,迭代約40000次後第二項會趨近於0。在這樣的意義下,在訓練前期,KPN著重完成對每幀圖像的配準和降噪,當退火項減小時,多幀圖像之間的聯繫開始佔較大比重。

5. KPN實現及模擬

基於PyTorch神經網路框架,實現了KPN網路架構,完成了合成訓練集等所有的子功能模塊,優化函數選擇Adam,學習步長為5e-4,batch size為8,訓練所用圖像塊尺寸為128,以Nvidia GTX 1080 Ti為硬體平臺,在灰度圖基礎上,將該模型訓練越10小時,取得了較好的結果。(源碼見github)

去噪前
去噪後
去噪前
去噪後

Reference

[1] Burst Denoising with Kernel Prediction Networks

[2] Multi-Kernel Prediction Networks for Denoising of Burst Images


推薦閱讀:
相關文章