Zero-DCE
github:https://github.com/wangyin0810/Zero-DCE
一、創新點
-
我們提出了第一個立於成對和不成對的訓練數據的弱光增強網絡,從而避免了過度擬合的風險。因此,我們的方法可以很好地推廣到各種光照條件。
-
設計了一個特定於圖像的曲線,該曲線能夠通過迭代應用自身來近似像素級和高階曲線。這種特定於圖像的曲線可以在較寬的動態范圍內有效地執行映射。
-
在沒有參考圖像(non-references)的情況下,通過間接評估增強質量的任務特定非參考損失函數來訓練深度圖像增強模型的潛力。
二、LE-curve
如圖為模型框架:
1. Light-Enhancement Curve (LE-curve)
曲線具有三個設計目標:
- 每個像素值會被標准化至\([0,1]\), 以防信息丟失.
- 曲線必須是單調的,以防相鄰像素之間的差異消失
- 曲線的形式要盡可能簡單,並且是可微的
為了達到以上三個目標,文中設計了一個二次方曲線:
其中,x為像素坐標; \(LE(I(x);\alpha)\)是輸入I(x)的增強版本; \(\alpha \in [-1,1]\)是曲線的可訓練參數,用於調整LE-curve的級數以及曝光度. 每個像素值都在\([0,1]\)之間,每個運算都是像素層面上的.使用時,在輸入的RGB通道分別應用LE-Curve,這可以更好地保持固有顏色以及避免過擬合。 下圖是不同\(\alpha\)值的LE-curve示意圖:
可以看到設計的曲線可以很好地滿足上述的三個要求。此外,LE-Curve還能增加/減少輸入圖像的動態范圍,這樣不僅可以增強low-light區域,還可以避免過度曝光。
2. High-order Curve
LE-curve可反復應用,以實現更靈活的調整,以應對具有挑戰性的低光條件。
其中,n是迭代的次數,文中將迭代次數設置為8,可以滿足大多數情況. 當n為1時,上式就退化為了基本形式。
如圖所示為high-order Curve,可以看到,相比於(b)中的圖像,其具有更強大的調節能力(更大的曲率)。
3. pixel-wise curve
上述的High-order Curve可以在更寬的動態范圍內調整圖像,但由於α應用於所有的像素,所以仍為global adjustment,global adjustment會over-/under- enhance局部區域,因此我們將全局的\(\alpha\)改為每個像素都有一個\(\alpha\),記每個像素值對應的\(\alpha\)組成的矩陣為\(A\).則曲線為:
假設局部區域內的像素都具有相同的強度(也具有相同的調整曲線,α一致),因此輸出結果中相鄰像素仍保持單調關系,所以pixel-wise的高階曲線也滿足設計的3個要求。
上圖為三個通道的estimated curve parameter map的示例,可以看到不同通道的best-fitting parameter maps具有相似的調整趨勢,但值不同,說其可以代表low-light圖像三通道之間的相關性和差異性。曲線的parameter map能夠准確地表示不同區域的亮度情況(例如牆上的兩個亮點),因此可以直接通過pixel-wise curve mapping進行圖像增強,如(e)所示,明亮區域保留,黑暗區域增強。
三、DCE-Net
輸入為low-light圖像,輸出為一組用於高階曲線的pixel-wise curve parameter maps。本文構建的CNN由7個具有對稱結構的卷積層組成(類似於U-Net),前6層的卷積核為(3x3x32,stride=1)然后接一個ReLU激活,拋棄了down-sampling和bn層(作者認為這會破壞領域像素間的關系),最后一層卷積通道為24(用於8個迭代輪次的parameter maps),接一個Tanh激活函數。
Non-Reference Loss Functions
為了讓DCE-Net學習zero-reference數據,作者提出了Non-Reference Loss Functions損失函數. 分為以下四類:
1. Spatial Consistency Loss
\(L_{spa}\)能夠維持輸入圖像與其增強版本之間的鄰域差異(對比度),從而促進增強后圖像仍能保持空間一致性。
其中,K為局部區域的數量,\(\Omega(i)\)是以區域\(i\)為中心的相鄰的四個區域(top,down,left,right). Y和I分別為增強圖像和輸入圖像的局部區域平均強度值。這個局部區域的Size經驗性地設置為4 x 4,如果為其他Size,loss將會變得穩定下來。
2. Exposure Control Loss
\(L_{esp}\)是為了限制曝光不足以及過度曝光的區域,其可以衡量局部曝光強度的平均值與well-exposedness Level之間的差異。文章根據現有的做法,將E設為RGB空間的gray level,本文實驗設為0.6(在[0.4,0.7]之間幾乎沒差異)
其中, M代表大小為16 x 16的不重疊的區域的個數,Y是Y為增強圖像中局部區域的平均像素強度值
3. Color Constancy Loss
根據Gray-World顏色恆等假設, RGB三個通道的平均值近似同一灰度值,然后分別調至每一像素。設計了\(L_{col}\) 用於糾正增強圖像中的潛在色偏,同時也建立了三個調整通道之間的關系。
其中,\(J^p\) 代表增強圖像通道p的平均強度,(p, q)代表一對通道。
4. Illumination Smoothness Loss
為了保持相鄰像素間的單調關系,在每個curve parameter map A上增加了平滑度損失。
其中,N是迭代的次數\(\nabla_x\) 和\(\nabla_y\) 是橫軸與縱軸方向上的梯度
5. Total Loss
\(W_{col}\)和\(W_{tv_A}\)是Loss的權重.
四、Experiment
為了充分發揮Zero-DCE的寬動態范圍調整能力,訓練集合並了low-light和over-exposed圖像(Part 1 of SICE數據集,3022張不同曝光程度的圖像,其中2422張圖片用於訓練),圖像尺寸為512x512。
batch size為8,單卡2080Ti,使用(0, 0.02)高斯函數初始化權重,bias初始為常量,使用ADAM優化器(lr=\(1e^{-4}\)),Wcol 為0.5,WtvA 為20,從而平衡loss間尺度差距。
1. Ablation Study
Contribution of Each Loss:
從上圖可以看出,移除\(L_{spa}\)會導致對比度降低(例如雲的區域);移除\(L_{exp}\) 會導致低亮度區域曝光不足;移除\(L_{col}\)會出現嚴重的色偏現象;移除\(L_{tv_A}\)會降低鄰域間的相關性,從而導致明顯的artifacts。
Effect of Parameter Settings:
參數方面主要探討Zero-DCE的深度寬度以及迭代的次數。如上圖所示,L-F-N代表Zero-DCE有L層卷積,每層有F個feature map以及迭代次數為N。
Impact of Training Data:
使用不同數據集對Zero-DCE進行訓練:1)原訓練集中(2422)的900張low-light圖像Zero-DCELow ;2)DARK FACE中9000張未標注的low-light圖像Zero-DCELargeL ;3)SICE數據集Part 1 and Part2組合的4800張多重曝光圖像Zero-DCELargeLH
從(d)中可以看出,移除曝光數據后,Zero-DCE都會過度曝光那些well-lit區域(例如臉部);從(e)中可以看出,使用更多的多重曝光的訓練數據,Zero-DCE對黑暗區域的恢復效果會更好。
2. Benchmark Evaluations
1. Visual and Perceptual Comparison
在多個數據集(NPE LIME MEF DICM VV以及SICE的Part2)上與目前SOAT的方法進行了對比。
上圖為不同方法的可視化比較,除此之外,作者還行進行User Study以量化不同方法的主觀視覺質量。
User Study:提供輸入圖像作為參考,邀請15人對這些增強圖像的視覺質量進行獨立評估,標准為——a) 是否存在over-/under-exposed artifacts和over-/under- enhanced區域;b) 是否存在色偏;c) 是否存在不自然的紋理以及噪聲,評分范圍為1-5,越高越好。
Perceptual Index:除了使用US score,還應用perceptual Index來評估感知質量,越低越好。
最后US和PI的結果如下表所示,左列為US,右列為PI。
2. Quantitative Comparisons
速度:
3. face detection in dark
基於DARK FACE數據集的人臉檢測任務上應用了Zero-DCE,可以看到效果還是提升了不少。