劉萬軍,佟暢,曲海成
(遼寧工程技術大學 軟件學院,遼寧 葫蘆島 125105)
光線穿過一切不透明物體都會產生陰影,圖像中陰影的存在十分常見。圖像陰影會對目標檢測與識別、圖像分割等問題產生一定影響。因此,去除圖像中的陰影是一個十分重要的研究內容。
去除陰影的算法按實現方法可分為基于物理模型的方法、圖像自身特征的方法、機器學習和深度學習等方法。從物理模型[1-3]出發,進行陰影去除,利用光源與障礙物的關系進行建模,具有一定的可行性,但建模過程的計算量大,所需的計算參數精確度欠缺。多尺度與形態學方法[4]、區域匹配算法[5]、設置紋理置信區間[6]等算法在計算過程中存在著固有的誤差。歸一化植被指數(normalized difference vegetation index,NDVI)陰影影響去除線性模型[7],需對圖片特定區域進行處理。遞歸式陰影注意力模型(recursive shadow attention model,RSAM)、新的生成器結構及多尺度圖像分解法[8-9]具有局限性。機器學習方法提高了陰影檢測與去除的時效性,但監測效果有待提高[10-11]。深度學習框架下圖像陰影去除存在需要大量訓練樣本[12]、復雜照明變化任務去除不明顯[13]、黑色物體誤檢或漏檢問題[14]。當前的主流陰影去除算法,普遍存在模型設計過程中具有局限性以及陰影去除精確度不高的問題。陰影去除算法存在問題可具體總結為兩方面:1)對復雜的紋理或與陰影區域相似的暗區域的情況,圖像的陰影去除效果不明顯;2)半影區域的圖像陰影去除效果不明顯,去除陰影后的圖像留有較小的包圍帶。為了解決這些問題,提出了空洞卷積與注意力機制融合的對抗式圖像陰影去除算法(CDD attention and dilated convolutions of automatic encoding and multiple attention of generative adversarial networks,ADAGAN)。該算法基于生成對抗網絡的思想,將空洞卷積與殘差網絡、注意力編碼相結合。用自定義的空洞卷積殘差塊進行特征提取,提取的特征信息精確性更高,使編碼階段的輸入特征信息更加精準。在自動編碼階段,空洞卷積層的加入,代替了池化層,減少了不可逆的信息損失,使編碼最后三層的輸出包含較大范圍的信息。作為臨近解碼階段的空洞卷積層,是圖像編碼階段全部特征的高度代表,為解碼階段提供更加精確、抽象的特征,即為解碼階段提供更精準的全局的語義特征。在判別網絡中,通過多個注意力網絡,進行編碼的指導,減少了判別網絡的誤差。該算法提升了去除陰影的準確率,減小了生成的無陰影圖像與真實無陰影圖像的誤差。
生成對抗網絡是蒙特利爾大學的Goodfellow Ian 于2014 年提出[15],由生成器和判別器兩部分構成,生成器的作用是生成可以騙過判別器的圖片,判別器的目的是不被生成器生成的圖片騙過,生成器與判別器相互制約,共同成長,迭代至生成器生成的圖片可以騙過判別器。生成器與判別器的直觀感受如圖1 所示。由圖1(a)~(d)顯示了生成對抗網絡(generative adversarial networks,GAN)訓練模型的過程。

圖1 生成器與判別器對抗圖Fig.1 Antagonism graph between the generator and discriminator
注意力機制是在視覺圖像領域首先提出的,實際就是對目標數據進行加權變換,擴展了上下文語義信息。把注意力集中放在重要的點上,而忽略其他不重要的因素,而重要程度的判斷取決于應用場景。
根據應用場景的不同,注意力機制分為空間注意力機制和時間注意力機制??臻g注意力機制一般用于圖像處理方面。根據注意力函數的輸入序列的位置,分為軟注意力機制與硬注意力機制,軟注意力機制使用輸入序列所有隱藏狀態的加權平均值來構建內容向量。軟注意力機制、空間注意力機制,形成的二維注意力圖的對應權值在0~1,越重要分配的權值越大。注意力機制可由空洞殘差網絡與長短期記憶網絡(long short term memory,LSTM)組成,可表示為

式中:ci表示整體的某一部分;表示對應ci在t時刻的注意力得分。
長短期記憶網絡是Hochreiter &Schmidhuber于1997 年提出的一種特殊的循環神經網絡(recurrent neural network,RNN),由遺忘門、輸入門和輸出門共同組成。
注意力機制的組成及應用過程如圖2 所示。圖2 為注意力機制在生成對抗網絡中與生成網絡部分結合的構成展示,不僅包含重點關注的內容,也包括周圍的環境信息,注意力機制生成注意力圖指導編碼階段的無陰影圖像的生成。同時,注意力圖受陰影模板(帶陰影的圖片與不帶陰影的真實圖片作差)的影響。具體圖片的注意力圖如圖3 所示。

圖2 生成器注意力網絡Fig.2 Generator attention network

圖3 生成注意力圖示例Fig.3 Example of generating attention map
空洞卷積(atrous convolutions)也稱擴張卷積(dilated convolutions),與普通卷積層相比,引入了一個稱為“擴張率(dilation rate)”的新參數,該參數定義了卷積核處理數據時各值的間距[16]??斩淳矸e具有數據結構保留完整和不使用下采樣(down-sampling)的特性,優點明顯。但多層的空洞卷積也有破壞數據連續性的缺點。
空洞卷積的卷積核是通過在普通的卷積核上填0 實現的,增大了網絡的擴張系數[17],空洞卷積示意如圖4 所示。擴張系數與空洞卷積核的尺寸關系為

圖4 空洞卷積示意Fig.4 Example of dilated convolutions

式中:γ表示空洞卷積的擴張系數;ksize表示普通卷積核尺寸;kdsize表示空洞卷積核尺寸,當γ=1 時即為普通卷積核。
在生成對抗網絡中,為了達到納什平衡[18],需優化,見式(3):

式中:G為生成網絡;D為判別網絡;pdata(x)代表真實分布;pn(z)代表噪聲分布。
注意力機制的損失函數為

損失的計算是通過比較每次生成的注意力圖(At)與對應圖片陰影掩模(M)之間的均方誤差(MSE)進行的。由參考文獻[19-23]得知,N取5,θ取0.8 為宜。
編碼階段的損失(Le)由兩部分構成,即圖片的真實損失(Lr)和模型損失(Lm)。圖片的真實損失為編碼生成的圖片與真實圖片的均方誤差,β取值參考文獻[19]。模型損失為通過VGG 網絡編碼生成的圖片與真實圖片的損失的均方誤差,可表示為

為了解決圖片陰影去除過程中存在的陰影少量遺漏,半影去除不完全的問題,提出了ADAGAN算法。該算法中GAN(generative adversarial networks),即生成對抗網絡,是該算法的主體思想。第1 個A(CDD of attention)指的是生成器中注意力機制特征提取運用CDD(convolutions and dilated convolutions and dilated convolutions)空洞殘差塊;D(dilated convolutions of automatic encoding)指的是在生成器自編碼階段加入的4 層相同結構的空洞卷積層;第2 個A(multiple attention)指的是判別器中的多重注意力網絡。
ADAGAN 算法運用細節信息提取更精細的VGG-E 作為該網絡的預訓練模型。基于生成對抗網絡架構,主體可分為圖片陰影的特征提取、注意力編碼和判別網絡3 部分。其中,特征提取與注意力編碼屬于生成器部分,判別網絡屬于判別器部分。
在生成器部分,對圖片陰影信息進行特征提取,特征提取使用CDD 殘差塊,提取特征作為生成器注意力機制的輸入。在生成器的自編碼階段,加入空洞卷積層。判別器部分由多層卷積注意力(multiple attention)網絡組成。空洞卷積陰影去除算法整體框架如圖5 所示。其中,注意力編碼部分由注意力生成網絡和自動編碼網絡組成。

圖5 空洞卷積陰影去除算法整體框架圖Fig.5 Block diagram of the dilated convolution shadow removal algorithm
生成器與判別器部分相互作用,互相影響,形成表現良好的圖片去除陰影網絡。
為了增加對圖片中陰影信息提取的精確度,在網絡中引入CDD 殘差塊。該方法運用普通卷積與空洞卷積組合的方式,結合殘差網絡的結構,使生成器注意力機制部分的輸入特征更加充分。
空洞卷積能在不增加算法復雜度的情況下,具有更大的感受野,越大的感受野包含越多的上下文關系,但它也會損失信息的連續性,適合大區域的陰影。為了使空洞卷積對小區域的陰影也有很好的特征感知強度,借助殘差網絡的結構,發現二者的結合,有助于提高特征提取階段的精確性。殘差塊對比如圖6 所示。為了特征提取的表達更加精確細致,改變激活函數relu 為lrelu,使值為負數時,也有一定區分,不全為0。

圖6 殘差塊對比Fig.6 Residual blocks comparison
在編碼階段加入空洞卷積層,使特征表達更加充分,增大特征的感受范圍,減少計算量。該實驗在7 層卷積后,加入4 層同樣結構的空洞卷積層,通過多層堆疊的方式增加感受野,為后續的解碼過程提取更抽象、更本質的全局的語義特征。
編碼階段可分為編碼與解碼兩個部分,編碼由卷積層與空洞卷積完成,解碼由反卷積與卷積配合完成。
該實驗編碼階段共由11 個卷積層,4 個空洞卷積層,2 個反卷積層以及3 個跳躍連接層組成,各層之間的連接關系見表1。其中編碼階段的輸入為帶陰影的圖像與注意力圖,每層之間的激活函數為LRelu,輸出結果為不帶陰影的圖片。Conv代表卷積層,Dia_conv 代表空洞卷積層,Deconv代表反卷積層,Skip 為跳躍連接層。

表1 去除陰影算法編碼表Table 1 Shadow removal algorithm code
卷積網絡無法有效地捕捉圖像的幾何結構和形狀,而注意力模型可通過不同的權重系數來強調目標的重要性,抑制無關的細節[20],且不需要監督。注意力模型的最終目的是幫助類似編解碼器這樣的框架,更好地學到多種內容模態之間的相互關系,從而更好地表示這些信息,克服其無法解釋從而很難設計的缺陷。因此可以靈活地感知到全局與局部的聯系,提升網絡的感知能力,提高輸出的質量。
注意力機制可分為加法注意力機制和乘法注意力機制,乘法注意力機制是面對加法注意力機制要求編碼與解碼的隱藏層長度必須相同的條件的改進,具有更高的靈活性。因此,在判別器設計中,運用乘法注意力機制。而在多次網絡卷積結構后,特征信息逐漸精簡的同時,重點可能會被分散。因此,在每2 層卷積層中加入乘法注意力機制,突出重點,強調特征,感知全局,提升質量。判別器設計如圖7 所示。

圖7 判別器設計圖Fig.7 Design of the discriminator
1080Ti 顯卡。數據集選取ISTD[21]和SRD[22]。
實驗環境為ubuntu16.10 系統、GeForce GTX ISTD 數據集共1870 對陰影與非陰影數據對,其中訓練集1330 對,測試集540 對。SRD 數據集共3088 對陰影與非陰影數據對,其中訓練集2680 對,測試集408 對。
實驗的評價主要從視覺效果和現流行的衡量指標(結構相似性、峰值信噪比、均方根誤差)進行評價。結構相似性(structural similarity,SSIM)基于圖像亮度、對比度和結構進行評價,可表示為

式中:x、y代表要比較的兩張圖片;μx為x的均值,μy為y的均值;為x的方差;為y的方差;σxy為x和y的協方差;c1=(k1L)2、c2=(k2L)2為兩個常數,避免除0;L為像素范圍;本次實驗k1為0.01;k2為0.03。式(5)的值越接近1,兩圖片相似性越強。
峰值信噪比(peak signal-to-noise ratio,PSNR),單位是dB,數值越大表示效果越好。峰值信噪比基于對應像素點間的誤差,即基于誤差敏感的圖像質量評價。不考慮人眼的視覺特性,會出現評價結果與人的主觀感覺不一致的情況,可表示為

式中:m、n分別為圖像的長與寬;I為真實圖像;K為生成圖像。
均方根誤差(root mean squared error,RMSE)是一個中間的評價指標,很多評價指標都是基于均方根誤差進行的,是均方誤差(MSE)的開根號數,均方根誤差可用來計算陰影圖與非陰影圖的像素級誤差,可表示為

實驗中針對生成器與判別器的特點,并參考文獻[23]來設置學習率參數。其中,生成器網絡學習率為0.002,判別器網絡學習率為0.001,且每進行10000 次訓練,學習率縮小0.1 倍。預訓練參數基于VGG-E 網絡。陰影區與非陰影區的像素差的閾值設為30。
該實驗在ISTD 數據集與SRD 數據集上進行實驗,經過100000 次訓練,實驗最佳結果SSIM可達到0.977,PSNR 為32.2,RMSE 為6.2。因ISTD 與SRD 數據集中各類別圖像在數據集中的占比不一致且同一類別中各圖像陰影區域的占比也不一致,因此分別在兩個數據集的測試集中選取不同類別。在同一類別中選取一副圖片進行測試,并對它們的值進行展示,不同數據集效果對比見表2(其中,圖片1~3 為ISTD 數據集上圖片,圖片4~6 為SRD 數據集上圖片)。

表2 不同數據集效果對比Table 2 Comparison of effect of different data sets
該算法分別在ISTD 和SRD 數據集上選取3 個圖片進行展示,可見該算法的陰影去除效果較好,對相對復雜地物的陰影去除效果也表現良好,視覺感受上不存在半影情況。不同數據集實驗效果如圖8 所示。圖8 共6 組圖片,前3 組(圖(a)~(i)) 為ISTD 數據集的測試圖片,后3 組(圖(j)~(r))為SRD 數據集的測試圖片。

圖8 不同數據集實驗效果Fig.8 Experimental renderings of different data sets
實驗是基于GAN 網絡與空洞卷積、注意力結合的思想進行的,分別在特征提取、自編碼、判斷網絡進行巧妙設計。其中特征提取運用空洞殘差塊,自編碼加入空洞卷積,判別網絡加入多層乘法注意力網絡。逐步改進實驗效果見表3。由表3可知,CDD 殘差塊的引用,雖具有更大的感受野,但因破壞了信息的連續性,造成客觀衡量指標的降低,為了兼顧感受野與信息的連續性,即主觀視覺感受與客觀衡量指標,在運用CDD 殘差塊的同時引入注重連續性的注意力機制(LSTM 為核心模塊),解決了特征提取過程增加感受野與關注信息連續性的問題,提升陰影區域特征提取的精確性。因此,綜合使用CDD 殘差塊與注意力機制時,客觀衡量指標有明顯的提升。

表3 逐步改進實驗效果Table 3 Gradual improve ment of the experimental effect
表3 指標為SRD 訓練集上,20000 次訓練后,隨機選取一幅圖像(MG_4699)進行測試的結果,逐步改進實驗視覺效果如圖9 所示。

圖9 逐步改進實驗視覺效果圖Fig.9 Gradual improve ment of the visual effect of the experiment
通過圖9 這組實驗可以看出:在判別網絡中嵌入多重注意力,可以提高陰影去除的效果。空洞殘差塊使特征提取階段具有更大的感受野,但同時也破壞了信息的連續性。由表3 可知,在加入空洞殘差塊后,客觀測量指標有所下降。但從圖9 的圖像的視覺效果來看,圖像的主觀視覺效果比較好。因此,把兩者結合進行實驗,發現實驗無論在視覺效果,還是在圖像測試指標上,都比其他效果要好。
為了證明該算法的有效性,用該算法與參考文獻[5,14,21]進行對比。文獻[5]為依靠圖像自身特性進行的陰影去除的方法,按文獻[5]的思路與參數進行對比實驗。文獻[14]與文獻[21],均在ISTD(訓練集1330 對,測試集540 對) 與SRD(訓練集2680 對,測試集408 對)數據集上進行訓練與測試,參數配置參考各自原文獻。對比實驗的方法,均與本文算法在同實驗條件下進行,視覺效果如圖10、11 所示。圖像在ISTD 數據集測試指標對比見表4。

圖10 算法對比視覺效果圖1Fig.10 Algorithm comparison visual effect chart 1


圖11 算法對比視覺效果圖2Fig.11 Algorithm comparison visual effect chart 2

表4 算法測量指標對比Table 4 Comparison of algorithm measurement indexes
本文針對圖片陰影去除過程中出現的陰影遺漏現象及半影部分去除不全面的問題,提出空洞卷積與注意力融合的對抗式圖像陰影去除算法。該算法用新型的空洞殘差塊進行特征提取,加大感受野的同時減少了計算量,加強了特征感知的強度。編碼階段,空洞卷積層增加了特征表達的充分性,具有更為全局的語義信息,減少計算復雜度。注意力機制的引入加強了網絡對全局與部分的把控。本算法的陰影去除效果,無論從測量指標還是視覺感受,都達到了比較理想的效果。該算法也可以遷移到其他同類型的監督學習的應用中。
本文提出的算法也存在一些不足之處,算法對于小規模數據集的效果不夠明顯,且生成的圖像與原圖可能會存在一些細微誤差。