基於深度學習的影象增強綜述

作者:木瓜子

文章轉自知乎,著作權歸屬作者,侵刪

這篇部落格主要介紹之前看過的一些影象增強的論文,針對普通的影象,比如手機拍攝的那種,比低光照影象增強任務更簡單。

介紹

影象增強的定義非常廣泛,一般來說,影象增強是有目的地強調影象的整體或區域性特性,例如改善影象的顏色、亮度和對比度等,將原來不清晰的影象變得清晰或強調某些感興趣的特徵,擴大影象中不同物體特徵之間的差別,抑制不感興趣的特徵,提高影象的視覺效果。傳統的影象增強已經被研究了很長時間,現有的方法可大致分為三類,空域方法是直接對畫素值進行處理,如直方圖均衡,伽馬變換;頻域方法是在某種變換域內操作,如小波變換;混合域方法是結合空域和頻域的一些方法。傳統的方法一般比較簡單且速度比較快,但是沒有考慮到影象中的上下文資訊等,所以取得效果不是很好。

近年來,卷積神經網路在很多低層次的計算機視覺任務中取得了巨大突破,包括影象超分辨、去模糊、去霧、去噪、影象增強等。對比於傳統方法,基於CNN的一些方法極大地改善了影象增強的質量。現有的方法大多是有監督的學習,對於一張原始影象和一張目標影象,學習它們之間的對映關係,來得到增強後的影象。但是這樣的資料集比較少,很多都是人為調整的,因此需要自監督或弱監督的方法來解決這一問題。本文介紹了近年來比較經典的影象增強模型,並分析其優缺點。

DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks

這是ICCV2017年的一篇文章,Ignatov等人自己構建了一個大的資料集(DPED),包含6K多張照片,使用三部手機和一部單反在多種戶外條件下同時拍攝得到。然後作者針對這三個成對的資料集,提出了一種新的影象增強演算法。透過學習手機拍攝的照片和單反照片之間的對映關係來將手機拍攝的照片提升到單反水平,這是一個端到端的訓練,不需要額外的監督和人為新增特徵。其網路結構採用的是GAN模型,如下:

基於深度學習的影象增強綜述

如圖所示,GAN主要由兩個網路組成,一個生成網路G和一個判別網路D,整個網路是一個對抗的過程,G不斷生成能欺騙D的資料,D不斷提高自己辨別真假的能力,直到達到一個均衡狀態。這裡的輸入影象是手機拍攝的照片,目標影象是單反拍攝的照片,它們是一一對映的關係。生成器CNN結構,首先輸入一張影象,經過一個卷積層預處理後,使用了4個殘差塊,再經過3個卷積層得到增強後的影象;判別器CNN用於判斷增強後的影象和目標影象的真假,生成器生成的影象要儘可能地欺騙判別器,這樣就表明生成的影象與目標影象越接近,也就是增強後的影象效果越好。

影象增強的主要難點之一是輸入影象與輸出影象不能密集匹配(pixel-to-pixel),因此標準的均方誤差不太適用,本文的另一個貢獻是提出了複合的損失函式,包含內容、紋理和色彩三部分。

色彩損失用於衡量增強後圖像與目標影象的色彩差異,對影象先做高斯模糊再計算它們的歐式距離,這樣的好處是可以消除紋理和內容的影響來評估兩影象間的亮度、對比度和主要顏色差異,可以寫成如下形式:

其中,Xb, Yb分別是為X,Y經過模糊的影象,如下:

二維高斯模糊運算元可以寫成如下形式,其中A=0。053, μ=0, σ=3,

使用生成對抗網路(GANs)來衡量紋理質量,因此紋理損失定義為:

FW ,D分別表示生成和判別網路。

計算預訓練好的VGG19網路ReLU層後啟用的feature map的歐式距離作為內容損失,可以保留語義資訊,定義為:

此外,還使用全變分(TV)來增強生成影象的空間平滑性,由於它佔的權重比較小,不會影響影象的高頻部分,且可以抑制一定程度的椒鹽噪聲,定義為:

總的損失函式為:

最終要最佳化的目標函式如下,W為網路要學習的引數,L為總的損失函式,

最後的結果如下:

基於深度學習的影象增強綜述

這篇文章提出了一個照片增強的演算法,將手機照片提升到單反水平,使用的資料集DPED均為自然影象,有實際的應用價值。但也存在一些問題,有一些復原後的影象存在色彩偏差或者對比度過高,顯得不太自然。此外,文中使用GAN在復原高頻資訊時不可避免地會放大噪聲。最大的缺點是它對每種不同手機的資料集都要重新訓練,是一個強監督的過程,通用性不強,後續的工作也對這一演算法進行了改進,提出了一種弱監督的方法。

WESPE: Weakly Supervised Photo Enhancer for Digital Cameras

這是CVPR Workshops2018上的一篇文章,是基於上一篇論文的改進,同一個作者寫的。上一篇論文中最大的侷限性是它對每一個數據集都要重新訓練一個模型,不具有通用性,因此這篇文章中,作者提出一個新的弱監督的網路模型WESPE,輸入資料和輸出資料分別為低質量影象和高質量的影象,但它們在內容上不需要對應,使用一個傳遞性的CNN-GAN結構來學習它們之間的對映關係,其網路結構如下:

基於深度學習的影象增強綜述

我們的目標是要學習源影象X到目標影象Y對映關係,如圖所示,這個網路包含一個生成器對映

一個逆生成對映

, 這裡的G可以看成影象增強器,可視為退化器,為了保證x與 widetildex

內容的一致性,使用VGG19計算內容損失,這樣就可以避免成對的需要內容完全一致的資料集。右側的兩個判別器Dc, Dt分別用於判別增強後圖像與目標影象在顏色和紋理上的差異,最後計算TV損失來得到較平滑的影象。

內容一致性損失,計算原圖x與

idetildex

在VGG19上某一高 維feature map的L2範數,計算公式如下:

判別器顏色損失,計算增強後的影象與目標影象高斯模糊後的差異,如下:

基於深度學習的影象增強綜述

判別器紋理損失,比較增強後圖像與目標影象在灰度狀態下的損失,定義為:

TV損失,為了使生成後的影象比較平滑,定義為:

總的損失為:

實驗結果如下:

基於深度學習的影象增強綜述

基於深度學習的影象增強綜述

本文提出的演算法WESPE是一種弱監督的方式,因此它可以適用於任何戶外的資料集,不需要成對的增強影象來訓練,還用到的資料集有以下幾種:

基於深度學習的影象增強綜述

總的來說,這篇文章最大的貢獻是提出了這種弱監督的方式來增強低質量的影象,雖然它的PSNR和SSIM結果跟強監督的相比還存在一定的差距,但它的創新點還是很有借鑑意義的。

Deep Photo Enhancer: Unpaired Learning for Image Enhancement from Photographs with GANs

這是CVPR2018的一篇文章,作者首次提出了用GANs實現無監督的照片增強,但這裡的無監督並不是完全不需要資料對,同上一篇論文一樣,是指用到的資料集並不是在內容上一致的。本文中使用的two-way GAN與CycleGAN的結構相似,在MIT-Adobe 5K資料集上取得了較好的結果,超過了第一篇論文的方法。首先看一下two-way GAN與1-way GAN結構的差別:

基於深度學習的影象增強綜述

圖中(a)為標準的GAN, X代表源域, Y表示目標域,給定輸入x,經過生成器Gx得到增強後的影象y‘, 判別器Dy用於區分增強後的影象y’和目標影象y。為了得到更好的結果,加強迴圈一致性,就提出了這種two-way GAN,

通常包含一個前向對映

和一個後向對映

。前向對映中,

先經過生成器Gx得到增強後的影象y‘, 得到y’後再經過一個生成器G‘y對映到源域x’, , 檢查x與x”的一致性; 判別器區分y與y‘。在反向過程中, y先經過生 成器Gy得到退化的影象x’,

‘再經過一個生成器G’x得到增強後的圖y‘, 檢查y與y’的一致性; 判別器區分x與x‘。

GAN中的生成器Gx也就是最後的照片增強器,在U-Net的基礎上加入全域性特徵,作者認為全域性特徵包含一些高維特徵,如場景類別、目標類別、整體的光照條件等,有利於單個畫素的區域性調整。完整的網路結構如下:

文中作者對比了多種GAN方法,WGAN-GP效果最好,但它的表現依賴於梯度懲罰項的引數,因此作者提出了一種自適應的方法AWGAN(Adaptive WGAN),透過實驗證明了將AWGAN擴充套件到2-way GAN中比1-way GAN效果更好。為了使生成器能適應不同的資料分佈,使用獨立的batch normalization層,也就是說除了批歸一化層,其餘所有的生成器共享相同的層和引數。

目標函式包含三部分損失,第一部分為恆等對映,保證輸入影象x與增強後的圖y內容相似,但因為是2-way GAN存在配對的對映y到x’,定義為I:

第二部分為迴圈一致性損失C,定義為:

第三部分是生成對抗損失,判別器AD,生成器AG,定義為:

基於深度學習的影象增強綜述

訓練判別器時,加上梯度懲罰項P,

基於深度學習的影象增強綜述

這一項滿足了Wasserstein distance的1-Lipschitz約束。

最終要最佳化的為:

其中λ 為使用AWGAN得到的自適應權重引數。

生成器損失最佳化下式得到:

本文中採用的資料集為MIT Adobe 5K,作者將它劃分為三部分,第一部分為2250張影象及其對應的修飾後圖像用於有監督的訓練;第二部分是第一部分中2250張影象及另外的修飾後的影象,這樣就保證了輸入影象與輸出影象內容上是不同的,用於無監督訓練;第三部分500張影象用來測試。

最後的實驗結果如下:

基於深度學習的影象增強綜述

基於深度學習的影象增強綜述

除了比較PSNR/SSIM,文中還採用了問卷調查的形式,其中HDR模型取得了最好的結果,從上面的圖也可以看出它的效果比較好,色彩比較鮮豔,但該模型存在一定的侷限性,一些用於訓練的HDR影象是色調對映得到的,會產生光暈效應;若輸入影象比較暗或包含噪聲,本文的模型會放大噪聲。此外,該模型還可以有一些其他應用,如影象分割、臥室影象合成等,取得了不錯的效果。總的來說,這篇論文給我們提供了一種“無監督”做影象增強的方法,並且使用U-Net加入全域性特徵,自適應權重的WGAN和獨立的BN層來學習具有使用者期望特徵的影象。

Classification-Driven Dynamic Image Enhancement

這是CVPR2018的一篇文章,基於分類的動態影象增強,這個論文首次將影象增強任務與分類結合起來,不同於現有的影象增強方法去評判增強後圖像的感知質量,而是用分類結果的準確性來衡量影象增強的質量,在沒有很好的評價指標的情況下,作者Vivek Sharma等人提出了這樣的模型,讓我們從high-level的角度來對影象進行增強,是一種創新和突破。

本文的主要貢獻是聯合最佳化一個CNN用於增強和分類,我們透過動態卷積自適應地增強影象中的特徵來實現這一目標,使得CNN結構能夠選擇性地增強那些有助於提高影象分類的特徵。網路的整體結構如下:

基於深度學習的影象增強綜述

給定一張輸入影象,不是直接用CNN進行分類,而是先用WLS濾波器對影象細節進行增強,再對其進行分類,這樣可以提高分類的可信度。本文的目標是學習一種動態影象增強網路來提高分類準確度,但不是近似特定的增強方法。為此,文中給出了三種CNN結構。

動態增強濾波器:

由圖可知,對於一張輸入的RGB影象I,先把它轉化成亮度-色度(luminance-sschrominance)Y CbCr 彩色空間,增強演算法用於RGB影象的亮度通道,可以使得過濾器修改整體色調屬性和影象銳度,而不影響顏色。再加上色度通道的影象可以得到增強後的影象I’,之後增強後的影象輸入分類網路中進行分類。其中的目標影象作者採用了5種經典的方法對其進行增強,分別為:(1) weighted least squares (WLS) filter, (2) bilateral filter (BF), (3) image sharpening filter (Imsharp), (4) guided filter (GF) ,(5)histogram equalization (HistEq),均使用其預設引數。但在該模型中,每個資料集一次只使用其中一種增強方法,且對每一張輸入影象,都動態得產生特定的濾波器引數。這裡的卷積網路用了AlexNet,GoogleNet, VGG-VD, VGG-16和BN-Inception這五個模型進行測試,其中BN-Inception在分類中表現最好,因此在後續實驗中作為預設結構。分類網路中的全連線層和分類層的引數均使用預訓練好的網路微調得到。

該網路的loss有兩部分組成,用於增強的MSE loss和用於分類的softmax loss,用SGD最佳化器聯合最佳化這兩部分損失,總的損失函式如下:

其中,MSE loss計算的是增強後的亮度影象與用傳統方法增強後的目標影象的均方誤差。a為分類網路中最後一個全連線層的輸出,y為影象I的真實標籤,C為分類數量。聯合最佳化使得損失梯度可以從ClassNet中反向傳播至EnhanceNet,來最佳化濾波器的引數。

靜態濾波器:

在該結構中,靜態濾波器由第一種結構中所有的動態濾波器的平均得到,每個濾波器的權重相等,均為1/K=0。2(K=5);同時,由於增強後的影象可能比原始影象效果還差,因此這邊使用一個恆等濾波器來產生一張原始影象,再將它們與色度影象相加得到增強後的RGB影象以及它們的權重,這個權重表明增強方法對輸入影象的重要性。在分類網路中,輸入為5種方法增強後的影象和原始影象及其對應權重和標籤,輸出為影象類別。和第一種方法一樣,分類網路中的全連線層和分類層的引數均使用預訓練好的網路微調得到。

這裡的損失為權值與softmax損失的加權和,帶權重的loss可寫成如下形式:

基於深度學習的影象增強綜述

其中,K=5,前K個權重相等,均為0。2,第K+1個原始RGB影象的權重設為1。

多動態濾波器:

這個網路結構與第一種結構比較相似,針對每種增強方法使用K個增強網路動態地產生K個濾波器,不同於第二種方法中取相同的權重,這裡的權值根據均方誤差來決定,增強後的影象誤差越小,則權重越大,其計算公式如下:

同樣,這邊也加入恆等濾波器得到原始影象,且權值為1。其損失函式在第二種結構的基礎上加入MSE來聯合最佳化這K個增強網路,公式如下:

透過這種方式來訓練網路可以使這些濾波器更好地增強影象的結構,以便於提高影象的準確率。

實驗結果如下:

基於深度學習的影象增強綜述

總的來說,本文提出了一種CNN結構能效仿一系列的增強濾波器,透過端到端的學習來提高影象分類,由於一般的影象增強方法沒有評判標準,所以將影象增強與分類任務結合起來,以提高影象分類正確率作為影象增強的標準,更具有實際意義。但這種方法存在一些問題,文中使用五種傳統的增強方法來得到目標影象,所以增強網路學習到的結果最好也是接近這幾種方法的結果,且文中沒有具體研究這些增強後的影象,所以不知道它的效果到底如何,只能說明有助於影象的分類。

Range Scaling Global U-Net for Perceptual Image Enhancement on Mobile Devices

這是ECCV-PIRM2018(Perceptual Image Enhancement on Smartphones Challenge)挑戰賽中,影象增強任務第一名的論文,主要用於處理手機等小型移動裝置上的影象增強。現有的影象增強方法在亮度、顏色、對比度、細節、噪聲抑制等方面對低質量影象進行了改進,但由於移動裝置處理速度慢、記憶體消耗大,很少能解決感知影象增強的問題,已有的一些方法也很難直接遷移到手機上使用。移動裝置上的感知影象增強,尤其是智慧手機,最近引起了越來越多的工業界和學術圈興趣,因此本文提出了一個尺度縮放的全域性U-Net網路(Range Scaling Global U-Net,RSGUNet)用於移動裝置上的影象增強。

這篇文章的網路結構如下:

基於深度學習的影象增強綜述

主體框架是U-Net,可以利用不同解析度下影象的feature map。在此基礎上本文做出了兩點改進,一是引入全域性特徵來減少視覺偽影,二是使用range scaling layer代替residuals,也就是逐個元素相乘,而不是相加。作者透過實驗發現這兩點創新可以緩解增強後圖像的視覺偽影。這裡的全域性特徵向量可以看成是一個正則化器,用於懲罰會導致視覺偽影的低解析度特徵,且使用avgpooling來提取全域性特徵比使用全連線層所需要的引數量更少。Range scaling layer可以實現畫素強度的逐畫素縮放,相比於傳統的residual-learning殘差學習網路,本文提出的RSGUNet網路能力更強,它能學習到更精細、更復雜的低質量影象到高質量影象的對映關係。

Loss函式的設計包括L1 loss, MS-SSIM loss, VGG loss, GAN loss and total variation loss。

L1 loss可以獲得色彩和亮度資訊;MS-SSIM loss可以保留更多高頻資訊,有實驗證明,這兩個loss組合比L2 loss的效果要好。

VGG loss保證了增強後圖像和目標影象特徵表現的相似性,它是在預訓練好的VGG計算多個層之間feature map歐式距離的均值得到的。

GAN loss可以近似兩幅影象之間的感知距離,因此最小化GAN loss可以使得生成的影象更加真實。

TV loss可以有效抑制高頻噪聲。

總的loss為這些loss的加權和:

實驗中用到的資料集是DPED中iPhone和Canon這個資料對,訓練集為160000個100*100的patch,驗證集為43000個patch,測試的時候用的是400張原圖,作者對比了一些方法,結果如下:

視覺化結果如下:

基於深度學習的影象增強綜述

PRIM2018影象增強挑戰賽的結果如下:

基於深度學習的影象增強綜述

這篇論文也存在一些問題,它在大多數影象上表現較好,但少數增強後的影象比較黑或者模糊,原因可能是U-Net的下采樣操作,但實驗結果中沒有發現偽影。總的來說,本文提出的結構在主觀上和客觀上都取得了較好的效果,且計算複雜度大大降低,適用於移動裝置上的影象增強。這篇文章也給我們提供了一個新的研究方向,探索新的、輕量級的網路結構來實現實時的影象增強任務。

Fast Perceptual Image Enhancement

這篇文章跟上一篇一樣,也是ECCV-PRIM2018年挑戰賽的,在影象增強任務上獲得第二名,它是在這邊介紹的第一篇論文的模型作為baseline,在它的基礎上改進了生成器模型,判別器模型和loss函式的設計都跟baseline一樣,但其速度大大提升,因此可以適用於移動裝置上。

來看一下baseline和這篇論文的生成器模型:

基於深度學習的影象增強綜述

基於深度學習的影象增強綜述

透過對比可以發現,block的數量從4變成了2,第一層和最後幾層的通道數都大大減少,降低模型的複雜度。此外,為了進一步減少計算時間,還做了一個改進就是空間解析度的減少,多出來的4*4*32和4*4*64其實是一個下采樣(strided convolutional layers),每次卷積後feature map的大小就減半,在兩個residual block後的兩個卷積層相當於是兩個上取樣層(transposed convolution layers),將特徵恢復到原始解析度。在每個解析度下,透過skip connection將相同解析度的feature map學習一個殘差,便於網路學習。作者對比了不同的卷積核大小、通道數及block數對模型效能與速度的影響,結果如下:

基於深度學習的影象增強綜述

可以看到,本文提出的模型在不影響效能的情況下,實現了baseline近6。3倍的加速。雖然該模型由於上取樣過程會引入輕微的棋盤偽影,但它是一個不損失影象質量的更快的模型,本文采用的資料集也是DPED,測試結果如下:

基於深度學習的影象增強綜述

作者對不通道卷積核大小、通道數以及啟用函式進行了實驗,最終權衡了效果和速度,選擇了第三行的引數作為網路結構。

視覺化結果如下:

基於深度學習的影象增強綜述

與baseline相比,本文的方法生成的影象在某些方面更加精細,在邊緣處沒有色彩偽影,且減少噪聲,紋理更清晰。從整體上來說,這篇文章的創新的不是很大,在baseline基礎上網路結構的沒有特別大的改動,但它的計算速度明顯提升,這就表明了基於卷積神經網路的影象增強已經可以產生適用於移動裝置的高質量的結果。

Deep Networks for Image-to-Image Translation with Mux and Demux Layers

這篇論文是ECCV-PRIM2018年挑戰賽影象增強任務的第三名,雖然結果沒有之前兩篇的好,但創新點比較大。第一,這篇論文提出了一種shuffle pixel的上取樣和下采樣層,分別稱為Mux and Demux layers,可以直接在CNN中使用,和標準的池化操作相比,這種方式可以保持輸入資訊不丟失;第二,提出了一種的CNN結構,將Mux,Demux,DenseNet結合起來,在低解析度下處理feature map,效率比較高;第三,本文在DPED方法基礎上引入了一個加權的L1 loss和上下文損失,(contextual loss),為了驗證,使用NIQE index來提高影象的感知質量。

先來看一下Demux和Mux layer,結構如下:

基於深度學習的影象增強綜述

Mux layer類似於pixel shuffling layer,能直接處理feature map產生一個新的feature map,可以直接在卷積神經網路中當成一個上取樣層。Mux先把輸入分為幾個小組,每組四個feature map,按上述規則重新排列,輸出的feature map長寬分別為輸入的兩倍,數量為輸入的1/4。Demux可以看成網路中的下采樣操作,是Mux的逆過程,其feature map數量是輸入的4倍,長寬分別為輸入的1/2。標準的下采樣操作如max pooling, average pooling, strided convolutional 是不可逆的,但本文中提出的這種方式沒有改變任何畫素值,即沒有丟失輸入資訊,這是提高深度學習模型效能的關鍵之一。

本文的網路結構包含一個生成器和一個判別器,判別器和DPED中的結構一樣,生成器有兩種不同的結構,如下:

基於深度學習的影象增強綜述

從圖2中可以看出,生成器處理三種解析度,輸入一張RGB影象先經過下采樣,為了生成高頻細節和高感知質量的影象,每次下采樣後引入噪聲通道,然後輸入到DenseBlock進行處理,再經過一次相同的操作,之後兩次上取樣得到輸出的RGB影象,在每個卷積層後使用instance normalization來調整feature map的全域性引數。圖3中,直接對輸入影象做兩次下采樣操作,得到的feature map比較小,可以減少計算複雜性且提高模型效能。圖4判別器網路包含五個卷積層,每個接著一個LeakyReLU和BN,第1,2,5個卷積層的步長分別為4,2,2。

Loss函式在DPED的基礎上引入了一個加權的L1 loss,如下:

分別計算R,G,B三個通道的L1損失,引數使用的是YUV色彩空間轉換的係數。

還有和一個上下文損失(Contextual Loss),如下:

其中CXij表示兩個特徵之間的相似性,定義為:

基於深度學習的影象增強綜述

Dij表示xi, yi之間的餘弦距離,eps=0。00001, h>0為頻寬係數,最終的上下文損失為:

DPED中的4個損失函式分別如下:

總的損失為:

係數分別為:5000,10,10,0。5,2000。

在DPED上的實驗結果如下:

基於深度學習的影象增強綜述

在衡量影象的PSNR和SSIM之外,本文還引入了一種新的評價機制NIQE。Natural Image Quality Evaluator(NIQE)是一種盲影象質量指數,它基於一組已知的統計特徵,這些特徵對自然影象遵循多元高斯分佈。它可以在沒有任何參考影象的情況下量化自然或真實影象的外觀,提供類似於人類評估的感知質量指數。其值越小,則表示影象感知質量越好,可以看到本文的結果所得的NIQE最低。

視覺化結果如下:

基於深度學習的影象增強綜述

從圖中可以看出,DPED的結果區域性過亮,本文中的方法比其他方法更能平衡對比度和細節,得到高質量的感知影象。但也存在侷限性,當輸入影象過亮或者曝光過度的時候就很難成功轉化為高質量影象,這可能是資料集的影響,DPED中只包含低亮度的影象,因此可以在訓練中加入一些自適應和擴充套件的資料集。

總的來說,本文提出了新的上取樣和下采樣操作,引入了兩個新的損失函式和NIQE這個評價機制,並在實驗中加入噪聲通道,可以有效提高影象感知質量,在低解析度下處理影象,也使得模型複雜度大大降低,適用於手機等移動裝置。

本文亮點總結

1。色彩損失用於衡量增強後圖像與目標影象的色彩差異,對影象先做高斯模糊再計算它們的歐式距離,這樣的好處是可以消除紋理和內容的影響來評估兩影象間的亮度、對比度和主要顏色差異

2。Natural Image Quality Evaluator(NIQE)是一種盲影象質量指數,它基於一組已知的統計特徵,這些特徵對自然影象遵循多元高斯分佈。它可以在沒有任何參考影象的情況下量化自然或真實影象的外觀,提供類似於人類評估的感知質量指數。

TAG: 影象影象增強增強loss生成器