譚道強,曾 誠,2,3*,喬金霞,張 俊
(1.湖北大學計算機與信息工程學院,武漢 430062;2.湖北省軟件工程工程技術研究中心(湖北大學),武漢 430062;3.智慧政務與人工智能應用湖北省工程研究中心(湖北大學),武漢 430062)
因光源遮擋,陰影廣泛存在于日常生活中。一方面,陰影雖會導致圖像內容不完整,從而降低目標識別、目標跟蹤、視頻監控、自動駕駛等任務的準確性,但其存在也能為光照光向預估、物體的幾何形狀預測等視覺研究提供相應的依據。所以研究陰影檢測算法,并將其用作計算機視覺任務的預處理步驟,提前標注出陰影區域的位置,避免其與待處理目標的混淆,可提高計算機視覺算法的魯棒性。
傳統的陰影檢測算法通過顏色空間或者光照不變性等物理模型,使用自定義特征,例如顏色、光照變化等來檢測陰影,但無法適用于場景復雜的陰影[1]。近年來,深度學習算法迅速成為主流,文獻[2-6]中提出了完整的本征圖像理論,該理論建立在光照均勻假設的基礎上,利用熵值最小化方法求取灰度不變圖像,但因光照并不均勻,無法得到魯棒的檢測結果。文獻[7]中提出基于支持向量機(Support Vector Machine,SVM)方法分別構建成對區域分類器,使用圖割法算法實現最終預測,但仍然不具備較高的運算效率。隨著卷積神經網絡(Convolutional Neural Network,CNN)[8-9]的出現,陸續提出了一些基于CNN 的陰影檢測算法。文獻[10]中使用CNN 進行陰影檢測,訓練兩個網絡分別用于檢測陰影區域和陰影邊緣,將檢測結果輸入條件隨機場(Conditional Random Field,CRF)得到分類結果,相比之前的算法效果有了明顯的提升。
近年來,對抗學習機制[11-12]進一步提升了陰影檢測的準確性。其中文獻[13]中使用條件生成式對抗網絡(Conditional Generative Adversarial Network,CGAN)實現陰影檢測,提出了生成器和判別器的概念,兩者通過相互對抗使得生成器具備檢測圖像陰影區域的能力,也能得到較為準確的陰影區域。后來,文獻[14]中也借鑒了CGAN 的思想,訓練兩個CGAN 分別實現陰影檢測和陰影去除,多任務互相制約實現陰影的檢測。文獻[15]中采用半監督對抗訓練,不斷優化生成器的陰影檢測器和編碼器實現陰影檢測和去除。由于CGAN 的難以訓練和不穩定性,文獻[16]中依舊采用CNN 為基礎[16-18],分析了陰影區域和非陰影區域之間的聯系,采用四個方向上的空間上下文特征實現了陰影區域的檢測,也取得了不錯的檢測結果。
現有的深度學習算法中,CNN 和GAN 大多數使用級聯網絡形式,增加了模型訓練的難度,不能實現實時檢測的效果,而且預測的效果并不是很好。少數方法用了單級網絡和注意力機制,但是卻忽略了特征通道之間的聯系,導致預測結果并不準確。
為了降低模型訓練難度和提高檢測精度,本文提出一種新型的CNN 模型。以網絡ResNext101[19]作為特征提取模塊,采用雙向特征金字塔網絡[20]為構架,結合通道注意力[21]和空間注意力[22]做融合,同時設計全新的網絡結構混合注意力模型,并將其用于特征金字塔網絡的層與層之間的融合中,既能提高陰影區域的局部關注度,也能更好地結合不同通道之間的聯系度。最后,融合特征金字塔兩個方向的結果取得更加細化的特征,作為最終的陰影檢測結果。
本網絡結構的整體流程如圖1 所示,將帶有陰影的圖像裁剪為416×416大小,作為輸入圖像輸入到神經網絡。網絡中使用ResNext101作為前端特征提取網絡,將RestNext101的conv2、conv3、conv4、conv5 生成的特征圖作為模型的基本特征,特征的大小分別為104×104、52×52、26×26、13× 13。卷積過程中隨深度增加,特征圖尺寸逐步減小,所包含的語義信息越多;越低層的卷積層所包含的位置信息越多。傳統的特征金字塔網絡往往是從深層特征向低層特征做融合,由于深層特征圖通道數減小,會造成特征信息的丟失,導致最后的預測結果不夠準確。
針對上述問題,本文提出兩個方案來減少深層特征語義信息的丟失以及克服信息的單路流動的局限性。一是信息補償機制,用來減少conv5 在向上層特征做融合時導致的語義信息丟失,將信息補償后的特征圖作為深層特征,再向頂層做融合;二是采用雙向結構實現信息的雙路流動性,在保持運行時間變化不大的同時,大幅提高陰影檢測質量。
本文還提出了一個混合注意力模型,用來捕捉陰影區域和非陰影區域的特征差異。注意力機制[22-23]在圖像處理上已得到廣泛的使用,但傳統的自注意力模型往往只關注空間上的特征權重分布,根據生成的Attention Map[22]來區分哪些屬于重要信息,忽略了特征通道之間的聯系。針對此問題,在特征之間融合之前,先分別經過通道注意力模塊生成一組特征通道權重,來給不同的特征通道賦值,標明這些特征通道屬于重要特征或次要特征,將賦值后的特征圖融合后再通過空間注意力模塊,得到兩個相鄰特征層融合后的特征。
混合注意力模型作為各個基本特征之間融合的橋梁,穿插在兩個方向上的特征金字塔網絡上。最后將由深到淺和由淺到深兩個方向上生成的特征圖做特征融合,獲得更加細化的陰影檢測結果,并以此作為最后的預測結果。
因為淺層特征圖尺度大,包含的空間信息較多,而深層特征圖尺度小,包含的語義信息豐富,因此傳統的金字塔模型由深層特征圖向淺層特征圖做融合時,先將深層特征圖降維,將深層特征圖語義信息與淺層特征圖空間信息進行融合,從而得到既有良好空間信息又有較強語義信息的特征圖。但在降維過程中,深層特征圖通道數會減小,導致語義信息損失嚴重,因此本文設計了一個信息補償機制[24-25]來減少深層特征圖由于通道數減小帶來的語義信息損失。
如圖2 所示,將深層特征圖C4降采樣成3 份。這里的降采樣包括兩部分:一個是將C4池化分別降采樣成α×C4、β×C4、γ×C4的寬高的特征,實際使用中α、β、γ分別為0.1、0.2、0.3;另一個是將池化后的結果通過1×1 的卷積,將每份降采樣的通道變成32,再將這三個不同尺度降采樣的結果統一上采樣到C4大小,并把這三者進行合并,通過1× 1、3× 3卷積層方式進行融合,最終得到三個空間補償信息,將這三個空間補償信息分別應用于三個上采樣的特征圖。將通過信息補償的特征與C4做融合得到C5,用C5代替C4,以減少原本C4向上層做融合造成的信息損失。該過程可表示為:

圖2 信息補償結構Fig.2 Architecture of information compensation

其中:C4、C5表示卷積層特征;Conv 表示卷積操作;Cat代表特征拼接。
為了驗證信息補償機制的有效性,分別在網絡中使用信息補償機制和不使用信息補償機制進行對比實驗,實驗預測結果如圖3 所示。在圖中可以看出帶有信息補償機制的網絡在對于陰影區域的邊緣細節預測上效果表現更好。

圖3 信息補償實驗結果Fig.3 Experimental results of information compensation
注意力機制是一種資源分配機制,是對于原本平均分配的資源根據注意力對象的重要程度重新分配資源,重要的單位就多分一點,不重要或者不好的單位就少分一點,注意力機制分配的資源就是權重。但傳統的注意力機制往往只關注單通道上的權重分布,也就是空間信息的分布,往往忽略了特征通道之間的關系,導致預測效果不佳。
為了加強特征通道之間的內在聯系,提升預測精度,本文在做不同尺度的特征融合時引入混合注意力模塊。如圖4 所示:特征融合之前,先將相鄰的兩個特征圖分別輸入通道注意力模塊,給不同尺度的特征分配通道權重,標記出各個特征通道之間的重要程度,再進行特征融合;將融合后的特征圖輸入空間注意力模塊,得到對應的空間特征權重圖,進行點乘操作,得到融合后的特征圖。該過程可表示為:

圖4 混合注意力模塊結構Fig.4 Architecture of hybrid attention module

其中:Cn表示融合后特征;Ci表示卷積層特征;S()表示通道注意力融合,A()表示空間注意力融合;Cat、Conv 分別代表特征拼接和卷積操作。
對在網絡分別使用混合注意力機制和不使用混合注意力機制進行對比實驗,結果如圖5 所示。可以看出,在網絡中加入混合注意力模塊能夠更好地理解圖像的全局上下文信息,區分陰影區域和非陰影區域差異。

圖5 混合注意力模塊實驗結果Fig.5 Experimental results of hybrid attention module
1.2.1 通道注意力生成模塊
通道注意力模塊首先對卷積得到的特征圖進行全局池化操作,再通過全連接得到通道間的全局特征,然后對全局特征進行激勵操作,學習各個通道間的關系,也得到不同通道的權重,最后乘以原來的特征圖得到最終特征。本質上,通道注意力模塊是在通道維度上做注意力操作,這種注意力機制讓模型可以更加關注信息量最大的通道特征,而抑制那些不重要的通道特征。圖6是通道注意力模塊的具體結構。

圖6 通道注意力模塊結構Fig.6 Architecture of channel attention module
1.2.2 空間注意力生成模塊
空間注意力生成模型是將相鄰兩層特征圖經過通道注意力生成模塊后特征進行拼接,再進行空間注意力生成融合。該模塊采用3 個殘差塊,每個殘差塊都使用1×1、3×3、1×1 卷積層組合的基本結構(殘差塊中前兩個使用ReLU 激活函數,第三個為Sigmoid 激活函數)。輸出得到的權重圖,乘以原來的特征圖得到混合注意力模型融合后的特征。圖7 是空間注意力模塊的具體結構。

圖7 空間注意力模塊結構Fig.7 Architecture of spatial attention module
傳統的分類問題常采用交叉熵作為損失函數,用來計算實際預測值與真實標簽的接近程度,再通過反向傳播更新權重。在本網絡中采用雙向金字塔結構,先將每一層的預測特征圖放大至原陰影掩膜大小,然后對其施加監督信號,以促進有用信息向陰影區域的傳播。每一層的損失可表示為:

其中:w為權重值;yi,j為真實陰影掩膜像素(i,j)的真實值,Ci,j為預測陰影像素(i,j)的預測值。
在訓練過程中,二進制交叉熵損失函數用于監督網絡的每個輸出。在本網絡中將所有的陰影預測圖像損失之和作為總損失。總損失包括所有的7個融合特征(6個相鄰特征圖經過混合注意力模塊的融合特征和最后作為預測的融合特征Mi)和C1、C5的損失值之和,所涉及的損失函數如式(4)所示:

本網絡訓練以Python3.6 和PyTorch1.0 來建立深度學習模型,使用NVIDIATeslaV100 32 GB 顯卡進行模型訓練。在網絡訓練中使用SBU[7]和UCF[10]陰影檢測數據集作為訓練數據集:SBU 數據集包含4 089 張訓練圖像和638 張測試圖像,UCF 包含110 張訓練圖像和110 張測試圖像。將原始圖像縮放為416×416大小,并以0.5的概率對調整后的圖像水平翻轉做預處理。前端特征提取網絡使用ResNext101,直接使用ImageNet 數據上訓練得到的模型參數初始化前端特征提取模塊。
實驗的一些其他超參數包括:學習率為0.005,衰減系數為0.9;動量為0.9;權重衰減系數0.000 5;批次大小8;訓練迭代期6 000;優化器為隨機梯度下降(Stochastic Gradient Descent,SGD);信息補償機制超參α=0.1,β=0.2,γ=0.3。
本文使用SBU 數據集的測試集及整個UCF 數據集做預測,并進行定性及定量評價。如圖8 所示為本文方法、DA[26]、DSC[17]、A+DNET[16]、ST-CGAN[14]在SBU 數據集上的陰影檢測結果。可以看出,對于容易引起混淆的困難陰影,DA、DSC、A+DNET、ST-CGAN 四種方法都出現了大面積的檢測錯誤,而本文方法仍然能夠作出較準確的判斷。一些較為簡單的場景下,如圖8(a)的第1~3副圖像,本文方法與對比方法的預測都比較準確,本文方法只表現出了較小的提升;但是在復雜場景下,如圖8(a)的第4、5兩幅圖像,欄桿所在位置由于光照原因產生了較大的陰影,其他方法在預測時都漏檢了很多陰影區域,而本文方法仍然能有效地檢測到該區域陰影。相較于其他方法,本文方法對陰影的定位更加準確,同時能夠分辨真實的陰影區域和外觀類似陰影的非陰影區域,錯誤檢測的像素數目更少。這也證實了混合注意力模型對陰影檢測的正面作用。

圖8 不同方法在SBU數據集上的陰影檢測結果Fig.8 Shadow detection results of different methods on SBU dataset
如圖9 所示為本文方法、DA、DSC、A+DNET、ST-CGAN 在UCF上進行跨數據集效果驗證的結果。

圖9 不同方法在UCF數據集上的陰影檢測結果Fig.9 Shadow detection results of different methods on UCF dataset
為了對實驗結果進行客觀評價,采用相同的評價指標[16-17]:陰影像素檢測錯誤因子(Shadow Error Rate,SER)、非陰影像素檢測錯誤因子(Non-shadow Error Rate,NER)、平衡誤差率(Balance Error Rate,BER)和正確率(Accuracy),定義分別如下:

其中:TP、TN、Np、Nn分別為陰影像素正確檢測數目、非陰影像素正確檢測數目、陰影像素總和、非陰影像素總和。SER、NER、BER越小,說明陰影檢測的正確率越高,分類效果越好;Accuracy 越高越好。本文將BER、Accuracy 作為最主要的指標。
表1 展示了各個方法在SBU、UCF 數據集的客觀指標值。相較于DSC 算法,本文方法在SBU 數據集上的BER 降低了約30%,在跨域數據集UCF 上的BER 則降低了約11%。該實驗結果也驗證了本文方法的性能。

表1 各個方法實驗結果比較Tab.1 Experimental results comparison of different methods
本文針對陰影檢測問題提出了新的檢測模型,使用ResNext101 作為前端特征提取網絡,并結合特征金字塔網絡設計思想融合不同的特征層。考慮到深層特征圖在融合上采樣的過程中導致深層特征的語義丟失,提出了信息補償機制,來彌補上采樣過程中的信息丟失;還考慮到傳統的注意力機制只注重空間上的特征分布,忽略了特征通道之間的聯系,提出了混合注意力模型,以加強通道特征之間的聯系。在SBU、UCF 數據集上進行的對比實驗結果顯示,本文方法優于對比算法。在未來的工作中,將進一步研究在某些光照條件較弱或復雜場景下,如何更高效率地結合圖像中的語義信息和空間信息,將模型應用于陰影去除任務中。