論文復現之Kernel Prediction Networks
0. Links
源碼(後續將會push包含Multi-Kernel Prediction Networks代碼的版本,敬請期待):
z-bingo/kernel-prediction-networks-PyTorch1. 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幅含有雜訊的圖像 ,其中,以為參考幀,假定所有的輸入圖像色彩空間都為RAW,避免RGB圖像在後期處理過程中丟失圖像原有信息。
3.1 RAW域圖像特性
相機感測器可以在線性色彩空間輸出RAW圖像,其中,像素的量化值和相機感測器中光電子數量成正比。RAW圖像中主要的雜訊為拍攝雜訊,一個方差等於像素亮度的泊松雜訊,以及讀取雜訊,近似為高斯雜訊,主要由各個感測器讀取數據造成。兩個雜訊可以近似地建模為一個與圖像獨立的高斯分佈:
式中, 為真實亮度為 情況下的雜訊測量值,參數和對於特定相機和ISO都是固定的。
此外,真實圖像中包含由於手抖或場景移動雜訊的偏差,其中,手抖可以通過一個全局模型來很好地估計,但是,場景移動智能通過局部模型來估計。
3.2 合成訓練數據
對於圖像恢復來說,收集GT(Ground of Truth)圖像是非常困難的,這是因為受到了成像系統最優性能的約束。KPN提出了一中用於合成訓練數據的方法,且基於公開數據集Open Images Datasets。
為了生成每組為N陣的訓練圖像,KPN在一幅圖像上取了M個隨機剪切塊,且每個剪切塊的偏移值為,服從2維均勻分佈。其中,這幅圖像是原圖像經過4倍下採樣後的圖像,以減少雜訊和編碼壓縮的幹擾;其次,約束隨機偏移值 在下採樣後圖像中的影響為 2像素,這些偏移值都以參考幀為參考零點。
此外,模擬多幀圖像間完全對齊失敗的情況也是非常必要的,實際中,一些圖像很容易被對齊,但是一些圖像也會很難對齊。對於每組圖像,選取一個隨機偏移值,之後,對每個非參考幀,採取擲硬幣的方式,以 的概率決定是否要額外添加一個最大 像素的偏移。對於圖像幀數為8的情況,通常選擇 。
為了模擬真實的雜訊,首先對上述圖像幀進行反gamma變化以致於將圖像映射至近似線性的色彩空間;然後,對圖像亮度值隨機尺度化,範圍為,這是為了壓縮圖像的動態範圍以接近相機的輸出圖像;最後,在一定範圍內隨機採樣拍攝雜訊和讀取雜訊的參數,對得到的圖像幀添加雜訊。