Learn to see in the dark

上圖(b)相機ISO調到40萬多(c)本篇論文的output

introduction:
 在low light 情況下,拍攝清楚的照片是非常困難的,,使用短曝光拍照會存在大量噪聲和偏色問題,用長時間曝光又會很模糊,但是現今的方法也很難將照片處理好。
 這篇論文是用raw data 來增強圖片處理,以及製作新的dataset

See in the dark dataset(SID):
5094 張 raw short-exposure images,424 張 long-exposure images當ground truch,這裡的ground truth 極少是因為一張long-exposure image可以對應到許多張short-exposure image(一張乾淨的圖片會有很多不同noise的圖片)
數據集包含了室內和室外的圖像,其中室外場景照度在0.2lux~5lux,室內場景照度在0.03lux~0.3lux。
短曝圖曝光時間設定為1/30到1/10s,對應長曝圖曝光時間設定為其100到300倍,即10到30s。
 20%的images當test set
 10% 為 validation set
 70% 為 train set
 dataset主要由兩種相機獲得的images,而這兩款相機內的raw data 有兩種不同的排列方式(bayer and X-trans)

Bayer vs. X-Trans

上圖是SID dataset images,上兩列為室外,下兩列為室內,都為long-exposure images

method:
bayer被分成四個chennel,X-trans被分成九個chennel,然後減去black level(在 8.補充 說明)再乘上amplification ratio,進入CNN就可得出相同H*W的output。
 下圖為架構圖:

本篇使用的是U-net,因為 input images 很大(e.g., at 4240×2832 or 6000×4000 resolution),排除其他有fully connect layer的model。
 下圖為不同 amplification ratio 的比較:

訓練方法:
 我們使用L1 loss和Adam optimizer,從零開始訓練我們的網絡。在訓練期間,網絡輸入是原始的短曝光圖像,在sRGB 空間中的真實數據是相應的長曝光時間圖像(由一個原始圖像處理庫libraw 處理過得參考圖像)。我們為兩台相機各訓練一個網絡,並將原始圖像和參考圖像之間曝光時間的倍數差作為我們的放大因子(例如,x100,x250,或x300)。在每次訓練迭代中,我們隨機裁剪一個512×512的patch用於訓練並利用翻轉、旋轉等操作來隨機增強數據。初始學習率設定為0.0001,在2000次迭代後學習率降為0.00001,訓練一共進行4000次迭代。

Experiments

condition(2)換成CAN會有顏色上的誤差:

condition(3)直接對raw data上處理更有效

condition(4)(5) Loss function上的結果差不多

condition(6)bayer array 由packed 換成 masked:

condition(7)x-trans 3x3 換成 6x6:

condition(8)如果讓model 學習 histogram equalization 雖然圖片更亮,但是image會較模糊

(a)為histogram equalization 過的 image
(b)為(a)的output
©為histogram equalization 過的 image
(d)為(c)的output

Discussion
製作新的dataset(有low light ground truth images)
 這篇論文還有許多可以改進的方向,包含:
 amplification ratio 需自己設定
 對不同的raw data 需要訓練不同的model
 處理速度可以再加快
 dataset 沒有動物與動態的image

References:
Image denoising:
 total variation[36]
 wavelet-domain processing [33]
 sparse coding [9, 28]
 nuclear norm minimization [12]
 3D transform-domain filtering (BM3D) [7]
 stacked sparse denoising auto-encoders (SSDA) [39, 1]
 trainable nonlinear reaction diffusion (TNRD) [6]
 multi-layer perceptrons [3]
 deep autoencoders [26]
 convolutional networks [17, 41]
 multiple-image denoising [31, 23, 19, 24, 14, 29]

Low-light image enhancement:
 histogram equalization
 gamma correction
 the inverse dark channel prior [8, 29]
 the wavelet transform [27]
 the Retinex model [30]
 illumination map estimation [13]

Noisy image datasets:
 The RENOIR dataset [2]
 The Google HDR+ dataset [14]
 Darmstadt Noise Dataset (DND) [32]

補充
Black level correction:
假設我們在無光的情況下拍照,最理想的image array 內的值都為零,可是因為dark current的緣故,pixel 都大於零.(dark current :當無photon通過感光元件,仍然會產生的微小電流(也是noise來源之一))

Fast Image Processing with Fully-Convolutional Networks:
用multi scale context aggregation net work(CAN)架構作fast image processing而CAN的架構為:
Vgg16+Multi-scale context aggregation+CRF-RNN