張媛媛,張紅英,2
1.西南科技大學 信息工程學院,四川 綿陽 621010
2.西南科技大學 特殊環境機器人技術四川省重點實驗室,四川 綿陽 621010
相比于普通的低動態范圍(low dynamic range,LDR)圖像,高動態范圍(high dynamic range,HDR)圖像具有更大的動態范圍,包含更多的圖像細節[1]。而由于目前成像設備的限制,直接捕獲HDR 圖像是十分困難的。因此,目前HDR 圖像的獲取方式主要是通過計算機圖像處理技術生成,主要有多曝光圖像融合和單曝光圖像生成兩種[2]。多曝光生成的方式需要同一場景的不同曝光程度的圖像,對場景靜態性要求較高。單曝光生成方法只需要構建合適的映射就能完成圖像動態范圍的擴展,沒有此限制,并可以將現有的LDR資源轉換成HDR 資源,已逐漸成為研究熱點。本文主要研究單曝光生成的方法。
單曝光圖像產生HDR圖像是指通過對單幅低動態范圍圖像進行一定的處理過程以及動態范圍的擴展來產生HDR圖像[3]。目前主流的單曝光HDR生成方式主要是反色調映射和偽多曝光融合。反色調映射是指通過對色調映射過程求逆構建反色調映射函數,以此對圖像的動態范圍進行擴展的過程[4]。偽曝光融合是指對正常曝光的LDR 圖像進行處理,生成多幅偽多曝光的圖像,然后對其進行融合產生HDR圖像[5]。反色調映射模型算法通常計算較為簡單,對高質量的LDR 圖像表現較好,但通常存在一定的色彩偏移和細節損失的情況。偽多曝光模型算法能夠較好地保留圖像細節,但通常計算復雜,所需時間較長。
隨著深度學習在計算機領域的發展,卷積神經網絡在圖像處理方面表現出強大的分析處理能力,圖像生成網絡開始發展,能夠根據不同的信息產生不同的圖像,卷積神經網絡開始被應用HDR圖像的生成[6]。Eilertsen等[7]利用VGG16 網絡結構將卷積神經網絡用于單幅LDR圖像產生HDR圖像。通過兩個去除全連接層的VGG16網絡構建一個U型結構的網絡,完成從低動態到高動態的編碼。同時在網絡中加入跳躍連接,充分保留原始圖像的細節信息。該方法主要針對圖像中的過曝光區域進行重建,在圖像的明亮區域表現較好,但在其他區域采用了簡單的反伽馬變換擴展,當圖像整體較暗的時候可能會出現偽影。Endo等[8]提出一種全自動推理網絡,通過模擬相機響應函數從HDR 數據庫中創建LDR 圖像,通過網絡學習圖像的曝光變化,再從單個LDR圖像估算不同曝光的LDR圖像,最后再合成HDR圖像。Lee等[9]提出一種基于擴張卷積的網絡結構。從同一個場景的單個LDR圖像中推斷出不同曝光和光照條件下的LDR圖像,再融合生成LDR 圖像來產生HDR 圖像。該兩種方法都類似于偽曝光融合的方法,能夠較好地擴展圖像的黑暗區域,但圖像整體有點偏白,使圖像亮區域的顏色不如原始LDR鮮亮。產生該結果的原因在于生成圖像堆時,隨著曝光程度的增加,損失了原始圖像明亮區域的細節,出現了整體為白的圖像,且由于要生成多幅圖像,算法的運行時間也較長。Marnerides 等[10]提出一種具有三個分支的擴展網絡,分別為局部分支、擴張分支、全局分支,每個分支負責一個特定的方面,最后將三個分支的結果融合得到最終HDR圖像。該網絡的局部分支和擴張分支避免了下采樣再上采樣的過程,能夠在很大程度上減少背景信息缺失的區域產生偽像的可能,但在復制全局分支結果的時候產生了平滑作用,可能會造成圖像在一定程度上的模糊。
現存的用于單曝光HDR圖像生成的網絡結構都是從其他圖像生成任務的網絡結構延伸出來的,都不夠完善,存在很多缺點。針對欠曝光區域的細節恢復和圖像色彩偏移的問題,本文提出一種基于pix2pix 網絡結構的單曝光HDR 圖像生成方法。采用pix2pix 網絡結構,完成LDR 圖像至HDR 圖像的轉換,通過卷積之后反卷積的方式恢復圖像細節信息,并采用絕對誤差和余弦相似度函數結合的方式構建損失函數對網絡進行訓練。該方法能夠有效地恢復圖像陰暗區域的細節信息,并盡可能保留明亮區域的信息,同時避免圖像泛白的情況,能夠產生質量較好的HDR圖像。
本文所提方法的整個處理流程如圖1所示,通過一一對應的LDR 圖像和HDR 圖像對網絡進行訓練,訓練過程中網絡接收LDR 圖像作為輸入,通過網絡輸出與對數壓縮后的HDR圖像之間的差異優化參數。訓練完成后,輸入測試LDR 圖像,經過網絡處理得到輸出,然后對網絡的輸出做一個指數變換就能得到最終的HDR圖像。

圖1 算法處理流程圖Fig.1 Algorithm processing flow chart
在圖像生成算法中使用最多的是自編碼網絡的結構,本文采用pix2pix網絡結構[11]。它是自編碼網絡的結構的一種,用以從給定的特征圖生成與真實環境相似的圖像。該結構包含8 個卷積層和8 個反卷積層,每個卷積層之后都有一個歸一化層。其基本結構如圖2所示。

圖2 網絡結構Fig.2 Network structure
該網絡在卷積編碼階段,只進行8 次卷積,每一層卷積都采用3×3的卷積核,卷積步長設置2,每一卷積后圖像的尺寸都減小一半,最終將特征圖像的尺寸減小至一個像素值。然后采用卷積核大小為4×4 的反卷積對特征圖像進行擴展,逐步恢復矩陣尺寸,卷積步長設置為2。每一次反卷積后都通過跳躍連接的方式與卷積過程對應尺寸的特征層鏈接,此時特征層的寬度擴展為原來的兩倍,然后再進行下一次反卷積。
在常用圖像生成網絡結構中,通常采用卷積然后池化的方式來進行下采樣,然后再采用反卷積的方式上采樣,并且在上采樣的過程中需要使用1×1的卷積方式實現與跳躍連接層的線性結合,因此會增加網絡的深度,在圖像生成任務中,容易產生梯度消失的情況,使生成的圖像中存在偽像。如圖3 所示,(a)為一個存在偽像的原始U-Net 網絡結構實驗結果,(b)為該圖像偽像局部放大圖像。

圖3 原始U-Net實驗結果Fig.3 Results of original U-Net experiment
而pix2pix網絡結構在卷積過程中通過設置卷積步長為2使特征圖尺寸每次減小一半,以此方式來代替池化過程,在上采樣過程中也只通過反卷積的方式來融合上一次反卷積的結果和跳躍連接層,不需要進行1×1的卷積來進行線性組合,以此簡化了網絡結構,減少因網絡過深產生梯度消失的可能。并且該網絡在每一個卷積層和反卷積后都進行標準歸一化,以增加訓練速度,防止過擬合。
在自編碼網絡結構中,通常采用ReLU函數作為激活函數,ReLU 函數是一個分段線性函數,如圖3 所示,主要進行單側抑制操作,將輸入的所有負值都取0,正值保持不變。其表達式如下:

在HDR圖像生成任務中,經過歸一化的圖像,特別是在像素值較低的區域,包含很多細微的變化。在卷積過程中這些值可能會使結果中包含負值,如果采用ReLU函數,則可能直接損失掉該部分的特征信息。為了保留這部分信息,采用Leaky ReLU函數作為卷積過程中的損失函數。其表示式如下:

區別于ReLU 函數,它通過乘以一個小值的方式,使負值部分具有一定的斜率,不直接映射為0,如圖4所示。將這部分負值保留下來,能夠盡可能地保留圖像的細節。

圖4 激活函數對比圖Fig.4 Comparison chart of activation function
在反卷積過程中,除最后一層外仍然采用ReLU激活函數,以保證輸出沒有負值。在最后一層采用Sigmoid激活函數,將輸出的值轉換到[0,1]以內。
如圖5所示,為只使用ReLU激活函數和使用Leaky ReLU激活函數的結果對比。可以看出只使用ReLU函數損失了天空黑暗區域的細節,且產生了一些偽像。

圖5 不同激活函數結果對比Fig.5 Comparison of different activation functions
損失函數是用來估量模型的預測值與真實值的不一致程度,是一個非負實值函數。它是生成網絡模型學習優化的必備條件。它定義的是生成網絡模型的學習目標與學習模式。在圖像生成任務中通常需要根據不同的需求來設計不同的損失函數,以保證有效性和提高收斂速度。
在圖像生成任務中,最常用的損失函數是均方誤差(mean square error,MSE)函數,它是真實值與預測值的差值的平方然后求平均值,表示為:

而HDR 圖像包含很豐富的細節信息,像素之間的變化很小,歸一化之后這種差異會變得更小,特別是在圖像較為黑暗的區域,可能數據變化十分微小,如果采用MSE 函數則可能忽略掉這些細微的變化,會造成圖像在一定程度上的模糊。因此,本文采用一個絕對誤差來代替,直接計算真實值與預測值的差值的絕對值,公式如下:

但只是使用絕對誤差作為損失函數,無法保證圖像顏色的準確性。因此,本文引入余弦相似度來確保圖像顏色不發生改變。
余弦相似度是指用向量空間中兩個向量的夾角的余弦值作為衡量兩個個體差異的標準,余弦值越接近1就表示夾角越接近0度,也就是兩個向量越相似。其計算公式為:

將單幅LDR圖像擴展為HDR圖像最關鍵的就是對圖像亮度的擴展,因此可以通過計算圖像亮度再計算絕對誤差。最后將損失函數確定為:

式中,L表示圖像的亮度,通過圖像亮度計算公式得到:

λ為調整余弦相似度貢獻值的常數因子,本文取值為5;Ii表示圖像第i位置的R、G、B分量組成的向量;k為向量的個數。這樣可以確保每個像素指向三維RGB空間的同一方向,從而保證顏色的穩定性,特別是對于HDR圖像中經常出現的低亮度值。因為這些分量的微小變化對絕對損失沒有太大的貢獻,但卻會引起顏色的明顯偏移。
如圖6 所示,為采用不同損失函數的對比實驗結果。從圖中可以看出采用均方誤差損失函數時所得的圖像十分模糊,采用絕對損失函數時所得的圖像雖然比較清晰,但顏色與原始圖像相差較大,而采用本文損失函數所得的結果能夠在擴展圖像亮度的同時保證圖像色彩的準確性。

圖6 不同損失函數對比結果Fig.6 Comparison of different loss functions
1.4.1 數據獲取
訓練卷積神經網絡需要大量的數據集,但目前公開的用于HDR圖像生成的數據集大多數都是針對多曝光融合的,直接用于單曝光HDR 圖像生成還較少。這樣的數據集通常包含從欠曝光到過曝光的一系列圖像,本文通過對Fairchild[12]、Kalantari[13]、Cai[14]等提供的多曝光圖像數據集進行篩選,從中選取明暗差異較大,但包含大部分場景信息的圖像作為重建HDR 圖像的輸入,最終整理出600對LDR-HDR圖像對。
在其他圖像處理任務中,為了獲取更多的數據,通常會采用對圖像進行隨機色彩、亮度、旋轉、鏡像等方式進行數據集的擴充。在HDR 圖像生成任務中,生成的圖像會受輸入圖像色彩和亮度的影響,如果圖像色彩和亮度偏移過多,可能會造成在訓練時模型不穩定無法收斂的情況。因此本文只通過旋轉和鏡像的方式擴充數據集,對圖像進行隨機角度的旋轉與水平和垂直方向的鏡像。
卷積神經網絡模型的輸入通常是固定,而人們所獲得的圖像的大小往往是不統一的,因此還需要將圖像裁剪至人們需要的大小。考慮到網絡訓練效率,將訓練圖像的大小設置為256×256。圖像經過旋轉后周圍可能會出現黑邊,如果直接進行裁剪可能會剪切到黑邊部分,這樣不利于網絡的學習,因此對這樣的圖像采用雙線性差值法進行填充,保證旋轉后的圖像沒有黑邊,然后再進行隨機位置裁剪。
1.4.2 圖像歸一化
將圖像作為神經網絡的輸入還需要進行歸一化操作,將其像素值轉化到[0,1]以內。通常普通的LDR 圖像包含255 個灰度級,歸一化時將像素值除以255 就可以。但在HDR 圖像中,其儲存類型可能包含的數據范圍十分廣泛,無法采用此方式進行歸一化。因此,本文直接用圖像像素值除以該圖像像素中的最大值進行歸一化操作,計算公式如下:

采用這種方式歸一化,能夠使LDR 圖像和HDR 圖像像素值最大的地方歸一化后值都為1。
1.4.3 HDR圖像壓縮
HDR圖像包含的細節層次豐富,數據間差異微小,與LDR 圖像的數據類型不同,通常都采用高精度數據類型儲存。直接通過將LDR圖像轉換成HDR圖像是十分困難的,網絡難以分辨差異。因此,本文對HDR圖像進行一個可逆的對數變換,將數據進行轉化,方便網絡學習。計算公式如下:

式中,μ代表壓縮量,通常取值為5 000;H是原始HDR圖像。在網絡訓練完成后,對網絡的輸出結果做該函數的反變換就可以得到最終的HDR圖像。
1.4.4 訓練環境
整個模型使用的基本環境為Python3.6.5、TensorFlowgpu1.10.0、OpenCV4.2.0、numpy1.14、cudnn7.6.5、cuda9.0。在模型的訓練過程中,使用Adam反向傳播算法來優化參數,將初始學習率設置為0.000 1,指數衰減速率分別設置為0.99 和0.999。將訓練的batchsize 設置為8。在GPU 為NVIDIA RTX2080Ti 的計算機上訓練100 萬次得到結果,訓練時間約為2天。
現實世界中場景信息復雜,包含的信息多種多樣,面對不同的場景,算法預測的結果可能會出現差異。本文通過對不同場景的圖像進行實驗,并與Eilertsen 算法[7]和Endo 算法[8]進行對比,并從主觀感受和客觀指標兩方面對算法性能進行分析。
HDR 圖像與普通圖像不同,它擁有更大的動態范圍和更豐富的細節信息,雖然可以通過色調映射的方式在普通的顯示器上進行顯示,但很多HDR 圖像的差異信息在進行壓縮后會弱化,使肉眼無法分辨。同時,主觀視覺感受可能受到多種因素的影響,使不同的人有不同的視覺感受。因此需要一些客觀的評價指標來進行對比分析。
本文采用常用的圖像質量評價指標峰值信噪比(peak signal to noise ratio,PSNR)[15]、結構相似度函數(structural similarity index measure,SSIM)[16]以及專門用于HDR圖像質量評價的可見差異預測器(visible differences predictor,VDP)[17]對算法結果進行測評。其中PSNR 與SSIM 由于數據類型的原因,不適合直接使用HDR圖像進行對比,使用這兩個指標時,將算法生成的HDR 圖像和標準的HDR 圖像都經過色調映射之后再進行對比。
PSNR 是一種基于誤差敏感的圖像質量評價,只計算圖像對應像素點的差異,不考慮人眼的視覺特性,而人眼對圖像的感知會受亮度對比差異和臨近域的影響,因此PSNR 的結果經常會出現與人眼主觀感受不一致的情況。PSNR 通過簡單的均方誤差進行定義,單位為dB,表示為:

式中,MAX_I表示測試圖像像素的最大值;I為測試圖像;I′為參考圖像;M和N表示圖像的寬和高。
SSIM的理論基礎是人眼視覺系統場景中結構的自適應調整,通過比較圖像結構信息的改變來判斷圖像相似程度,從而得到客觀的質量評價。SSIM 衡量的是圖像亮度、對比度和結構變化三個量的復合效果,簡化計算公式為:

式中,μx和μy分別表示測試圖像和標準圖像的均值;σx和σy是標準偏差;σxy是兩個圖像的協方差;c1、c2分別為小常數,以避免分母為0而出現錯誤。SSIM函數計算的結果在[0,1]之間,兩幅圖像越相似,計算結果就越接近于1。
HDR-VDP-2是基于人類視覺差異來評估兩幅圖像之間的相似性。該方法認為兩幅圖像的差異是由不同的噪聲輸入引起的,首先模擬人眼的光學特性和視網膜通路,再通過噪聲模擬以及多尺度分解算法模擬光在人眼內部的散射過程,以此來模擬人眼對場景動態范圍的處理過程。對結果打分,最高值為100,表示兩幅圖像完全相同。HDR-VDP-2 是專門針對HDR 圖像質量評價的標準,注重于衡量圖像的動態范圍特征,對圖像的其他特征的改變不能很好體現,如色度和結構特征等。雖然它存在一定的局限性,但依舊被廣泛應用于HDR 圖像質量的評價。
為了證明本文在損失函數、網絡結構上的改進帶來的性能增益,進行如下消融實驗。
表1所示為采用不同網絡結構訓練100萬次所需的訓練時間。從表中可以看出原始U 型神經網絡所需的訓練時間最久,遠超過pix2pix網絡,而采用Leaky ReLU函數會在一定程度上增加訓練時間,大約每增加1 000次訓練平均增加2 s的時間。

表1 不同網絡訓練時間對比Table 1 Comparison of different network training time
表2所示為只采用ReLU 激活函數和Leaky ReLU激活函數實驗結果的客觀指標對比結果。從表中可以看出使用LeakyReLU激活函數后,在PSNR值、SSIM值和HDR-VDP上都有更好的表現。

表2 不同激活函數對比Table 2 Comparison of different activation functions
表3所示為采用不同損失函數實驗結果的客觀指標對比。從表中可以看出只使用均方誤差損失函數的結果并不理想,而使用絕對誤差損失函數在SSIM 值和HDR-VDP 上的表現都優于均方誤差函數,但PSNR 值卻較低。而使用絕對誤差結合余弦相似度作為損失函數所得的結果在PSNR值、SSIM值和HDR-VDP上都有明顯的提高。

表3 不同的損失函數對比Table 3 Comparison of different loss functions
同時將本文結果與現有兩種較經典的基于卷積神經網絡算法的實驗結果進行比較分析。
圖7展示了一個有建筑物背光面的場景的實驗結果(示例1)。其中圖(a)為原始LDR圖像,圖(b)為Endo算法結果,圖(c)為Eilertsen 算法結果,圖(d)為本文算法結果。圖中對欠曝光區域和過曝光區域都進行了標注。通過對比可以看出,Endo 算法能夠較好地恢復圖像的欠曝光區域,但圖像整體存在一個偏白的情況。Eilertsen算法結果圖像顏色較為鮮亮,但欠曝光區域信息恢復不足,且圖像過曝光區域存在一定的細節損失。本文算法產生的結果圖像顏色鮮亮并且能夠較好地恢復圖像欠曝光區域的細節信息,同時較好地保留過曝光區域的信息。
表4為圖7對應的客觀評價指標的計算結果。從表中可以看出本文算在PSNR和HDR-VDR指標上高于其他兩種算法,SSIM結果高于Endo算法,略低于Eilertsen算法,整體表現較好。

圖7 示例1實驗結果對比圖Fig.7 Comparison of experimental results of example 1

表4 示例1客觀評標指標對比Table 4 Comparison of objective evaluation indexes of example 1
如圖8所示,展示的是一個既具有室外明亮區域又具有室內陰暗區域的場景圖像(示例2)。從圖中可以看出三種算法都能夠較好地恢復圖像中欠曝光區域的細節信息,但在圖像中的過曝光區域Endo算法和Eilertsen算法都存在顏色偏白的現象,視覺效果不如原始LDR圖像。本文算法不僅能夠較好地恢復欠曝光區域細節信息,還能較好地還原圖像色彩信息,產生顏色鮮亮的HDR圖像。

圖8 示例2實驗結果對比圖Fig.8 Comparison of experimental results of example 2
表5為圖8所對應的客觀評價指標的計算結果。從表中可以看出本文算法結果的PSNR、SSIM、HDR-VDP值均高于其他兩種算法。

表5 示例2客觀評標指標對比Table 5 Comparison of objective evaluation indexes of example 2
為了體現算法的有效性,本文還統計了100幅測試圖像的PSNR、SSIM、HDR-VDP 結果的平均值,本文算法的PSNR平均值為25.564 5 dB,SSIM平均值為0.919 3,HDR-VDP 平均值為70.150 2。Endo 算法的PSNR 平均值為20.452 4 dB,SSIM平均值為0.908 0,HDR-VDP平均值為63.944 9。Eilertsen算法的PSNR平均值為20.733 1 dB,SSIM 平均值為0.842 4,HDR-VDP 平均值為67.506 1。本文算法的結果均高于其他幾種算法。
針對HDR圖像生成過程中欠曝光區域的細節恢復和圖像色彩偏移的問題,本文提出一種使用pix2pix 網絡結構生成單曝光HDR 圖像的生成結構,相比于普通的圖像生成網絡結構,pix2pix結構取消了池化層,簡化了網絡結構,在卷積過程中采用Leaky ReLU 激活函數,能夠有效地保留圖像的細節信息。為保證圖像的色彩不發生偏移,采用絕對誤差和余弦相似度函數結合的方式構建損失函數,選取了明暗差異較大的圖像構建數據集對網絡進行訓練。然后通過不同場景的圖像進行實驗,并與其他幾種算法做了比較。通過對比分析,本文算法能夠在擴展圖像動態范圍的同時有效地恢復圖像陰暗區域的細節信息,并盡可能保留明亮區域的信息,同時避免圖像泛白的情況,但由于網絡結構的限制,對于一些特殊的圖像依舊會出現偽像的情況。