陳啟超 黃 剛 張 敏
(南京郵電大學計算機學院 江蘇 南京 210000)
在圖像識別或語義分割等計算機視覺分類任務中,算法需要首先提取圖像或視頻中的特征,深度學習中通常使用卷積神經網絡進行卷積操作,逐像素處理特征語義信息,尋找與標簽的似然性。因此,圖像的語義構成與各像素間的關聯性決定著卷積操作的效率與復雜度。相關研究表明[1-4],陰影作為無關背景語義,其中包含的可用關鍵信息較少,對于分類任務起不到相關作用,但由于其具備與目標前景像素緊密相連且形狀近似的特點,通常會對計算機視覺任務的順利進行產生影響。同時在灰度空間中,陰影對于目標像素語義具備更高的混淆性,導致卷積神經網絡不易發掘出兩者間的顯著區別,從而降低算法訓練與預測的準確性與魯棒性。因此,在常見計算機視覺任務,如智慧駕駛、人臉檢測、目標跟蹤與識別、姿態估計中,圖像的陰影檢測工作顯得格外重要,一個高效、全面、可泛化的陰影檢測模型會提升整個任務的工作效率與能力上限。
注意力機制[5-8]通過對像素級別的語義進行權值分配,提取目標前景最為顯著的特征,引導算法集中處理這些首要目標特征,降低前景與背景的關聯性,達到提高模型的迭代速度與準確性的目的。因此,注意力機制適用于陰影檢測任務,其獨有特性對于圖像中陰影的發掘具備較高的識別靈敏度。
目前已有部分學者提出了陰影檢測算法,但其中大部分算法沒有考慮到注意力機制在此類任務中的適用性以及其本身的高效性,因此最終檢測效果往往達不到預期效果。
針對以上問題,本文通過研究陰影模型,結合并行網絡和密集連接網絡的設計特點,使用深度殘差網絡作為前端模型,提出一種融合注意力機制的深度網絡模型APR(Attention Parallel Resnet)。此模型通過注意力機制提升算法對于陰影的識別能力,將模型的感受野從局部擴大到全局,實現檢測的高效性、可靠性,通過在UCF[9]、SBU[10]陰影模型上進行驗證,結果證明評價指標相比此前方法有一定提升。
本節介紹陰影模型的分析成果,引入注意力機制的宏觀概念并著重闡述本文所提出模型使用的一類注意力算法CBAM[7],為APR算法的詳細描述鋪墊。
陰影是自然界中普遍存在的現象,陰影的存在取決于光線的變化,而不受地形與反射物的影響。陰影的產生本質上是由于光線的投影,當光源如太陽、燈發出光線而被物體遮擋,在光源與物體的投影方向上便會產生陰影。如式(1)所示,陰影模型通常可表示成亮度與反射率的映射關系[1]。
Ii=(ticosθiLd+Le)Ri
(1)
式中:Ii為各像素的RGB三通道向量;ti介于0和1,表示光線被物體遮擋的比例,極端情況下,ti為1表示光線不被物體遮擋,ti為0表示光線完全被遮擋;θi為光線與物體表面形成的法線夾角;Ld為光源亮度;Le為環境光亮度;Ri為各像素的RGB反射比例。
在陰影檢測任務中,陰影模型通常具備與本體語義近似輪廓相符、難以提取所覆蓋的物體或地面像素的特征、在灰度圖中容易被混淆成前景物體等特點。針對這些問題,文獻[11-12]提出傳統HSV空間檢測算法,利用分析陰影和前景的HSV差距來區分陰影;Vicente等[13]提出支持向量機檢測算法,構建SVM分類器對陰影進行有效分類;文獻[14-15]提出邊緣信息檢測算法,使用算子提煉圖像中的低階邊緣信息,獲取前景與陰影的邊緣,從而達到分類效果;Hosseinzadeh等[16]提出神經網絡檢測算法,利用卷積神經網絡對圖像進行卷積處理,獲取高階特征,大大提升準確度;Nguyen等[17]提出生成對抗網絡檢測算法,使用生成器和判別器處理圖像,準確度提升的同時卻大大增加了模型的復雜程度。雖然上述算法都能起到檢測陰影的效果,但并沒有考慮到注意力機制在此類任務中的適用性以及其本身的高效性,導致預測效果不夠理想。
人腦具備強大的注意力集中能力,當眼睛觀看圖像時,注意力很容易被圖像中重要的一些區域所吸引,從而使得大腦能更快接收到對應的重要信息。
在深度學習中,注意力機制的創造源于人腦的注意力模型。注意力機制最初被用于機器翻譯[8],現在已成為神經網絡結構的重要組成部分,并在自然語言處理、統計學習、語音和計算機等領域有著大量的應用。其主要核心觀點在于對每一組輸入生成對應的鍵、值和查詢,通過一種查詢生成鍵與值之間的權重關系,并將這種權重添加到輸入中,為序列中每一元素進行權重的求和操作,從而獲得輸入對于全局的重要程度,實現類似于人腦生成注意力的生理過程。如式(2)所示,注意力機制可表示成鍵、值和查詢間的函數關系。
(2)
式中:Ct表示t序列中生成的注意力;αt,i為t序列第i個輸入鍵的查詢結果,這種查詢往往是一系列的函數操作;hi表示第i個輸入鍵的值。
通過式(2)可知,注意力的生成本質是一種加權求和,基于這一特性,注意力的生成過程在深度神經網絡中通??梢暈槭且环N池化操作。圖1代表一種機器翻譯序列模型生成注意力的過程。

圖1 一種可行的機器翻譯注意力生成模型
注意力機制通常可被分類為Soft&Hard Attention、Global&Local Attention、Hierarchical Attention、Self Attention等,其主要區別取決于鍵與值的相對關系、注意力生成的模式與范圍、查詢函數的種類等因素。
對于計算機視覺任務,注意力機制起到為圖像的每一個像素生成權值的作用。理想情況下,前景像素的權值會不斷增加,背景像素的權值會逐漸減小,通過權值間差距的擴大,起到不同語義分離的效果。
CBAM[7](Convolutional Block Attention Module)是一種在計算機視覺任務中可靠的注意力機制算法,具備簡單的算法結構與可觀的實際效果。CBAM結合了卷積神經網絡的空間和通道,為不同注意域的圖像與特征圖生成各自的注意力,引導模型更高效地區分語義信息。
CBAM由空間域注意力生成模塊和通道域生成模塊組成,并需要使用加權求和操作將這兩種模塊相組合。其中,空間域生成模塊可表示為:

(3)
根據卷積神經網絡輸出的特征圖F,同步進行特征圖的全局平均池化與全局最大池化操作。之后將兩種池化的結果基于通道相連接,再輸入一個目標通道數為1、卷積核為7×7的卷積網絡,在不改變特征圖長寬的條件下,將通道數降為1,再使用激活函數Sigmoid轉化輸出為非線性數據,得到空間域注意力矩陣Ms(F)。圖2表示CBAM的空間域生成模塊。

圖2 空間域生成模塊
通道域生成模塊可表示為:

(4)
在通道域注意力模塊中,將特征圖F同步進行基于通道的平均池化與最大池化操作,再將兩種操作的結果分別輸入相同的多層感知機中,直接相加得到的兩個向量,輸入Sigmoid激活函數,輸出通道域注意力矩陣Mc(F)。圖3表示CBAM的通道域生成模塊。

圖3 通道域生成模塊
在混合域空間,結合空間域與通道域各自生成的權值注意力矩陣,實現特征圖在通道域、空間域的先后順序融合。圖4表示CBAM的注意力融合過程。

圖4 融合注意力生成模塊
CBAM可以在提升重要特征權重的同時,降低無關背景的權重,擴大不同語義間的相對距離,加速模型迭代與優化速度??紤]到CBAM的易用性與高效性,本文提出的APR模型融合并改進了這一算法。
深度殘差網絡[18]在卷積模塊中引用殘差思想,在保證模型不斷向前迭代的同時,提高了優化的準確率。由于其根本特性,每一次殘差操作都實現了輸入與輸出的求和,所得的新的輸出必定不等同于輸入,從根本上解決了網絡面臨的退化問題。近年來,不少學者通過改進殘差網絡,應用于各個領域,達到了傳統卷積神經網絡無法達到的高度。如Zhu等[19]結合殘差網絡Resnet-101,設計全新的小物體檢測模型,效果顯著;Chen等[20]改善了傳統殘差模型,在不影響準確率的情況下,降低了模型的復雜程度,提高了訓練效率。圖5是一種深度卷積殘差網絡中的一個殘差模塊。

圖5 殘差模塊
本文算法APR是一個在深度殘差網絡Resnet50的基礎上,融合注意力模型CBAM,結合并行網絡[21]、密集連接網絡[22]設計思路的高效陰影檢測網絡。在避免網絡深度大幅度增加的前提下,使用注意力機制提取重點特征,并實現了特征融合重用,從而提高了模型的工作效率。
Resnet50網絡具備高效的特征提取能力,隨著網絡深度的增加,特征圖通道數增加,但特征圖尺寸隨之減小,有利于高層次特征的提取??紤]到語義分割任務中圖像尺寸的變化會導致像素級別特征的提取精度降低,結合并行網絡的設計思路,根據Resnet50各殘差塊形狀設計兩類對應的殘差卷積模塊,從不同的尺度維度和感受野獲取圖像更多特征,這兩類殘差卷積模塊與Resnet50殘差塊并行工作,組成并行卷積模塊Parallel Block。圖6表示第一類殘差卷積模塊。

圖6 第一類殘差卷積模塊
此模塊基于殘差網絡設計,將形狀為(n,c,x,y)的特征圖順序輸入5個卷積塊,其中:n為批量大??;c為特征圖通道數;x和y表示特征圖尺寸。首先將特征圖拓展至更高的維度進行特征提取,再逐步通過卷積層降維,壓縮高維特征,精煉圖像信息,最后利用殘差連接,避免網絡退化。本模塊的作用在于提取并行的Resnet50殘差塊在這一層次無法提取到的高維特征,達到提前獲取更多層次信息的作用。與此同時,設計另一類殘差卷積模塊發揮尺度放大作用。圖7表示第二類殘差卷積模塊的結構。

圖7 第二類殘差卷積模塊
本模塊的卷積層利用更大的5×5卷積核,為模型提供更大的感受野,降低了卷積核大小固定帶來的視野局限性,有利于獲取更多的全局信息。放大感受野同時會為注意力模塊提供更多非局部信息,使得注意力的生成更加準確。
上述兩類殘差卷積模塊與原始殘差卷積網絡Rsenet50的殘差塊并行獨立工作,組成并行卷積模塊Parallel Block。其中,三種殘差卷積模塊的輸出最終會基于通道連接。圖8為一個并行卷積模塊的結構。

圖8 并行卷積模塊Parallel Block
并行卷積模塊從不同的角度與方式提取特征,降低了模型的耦合程度,雖然有限地增加了模型的寬度,卻避免增加模型的深度與總體復雜程度以達到同樣的效果,同時使得特征提取更加多樣性,實現了特征提取工作的高效與準確。
研究表明,CBAM[7]是一種高效的混合域注意力生成模型,結合本文設計模型實際情況與模塊間連接需求,需要在其原本基礎上做出一些改進。
結合并行卷積模塊Parallel Block的并行連接思想與壓縮特征的性能,在CBAM空間域生成模塊添加目標通道數為1的卷積層,與原有平均池化、最大池化結果連接再輸入7×7降維卷積層,輸出空間域注意力矩陣。圖9表示改進后的空間域生成模塊。

圖9 改進后的空間域生成模塊
由于并行卷積模塊Parallel Block的輸出由三個殘差卷積模塊輸出的特征圖基于通道連接而成,之后再輸入注意力生成模塊CBAM,而基于通道連接后的特征圖往往具備更高的通道數,故需在CBAM融合混合域注意力前添加降維卷積模塊,避免后續通道域生成模塊的廣播異常,降維卷積模塊由3×3卷積層、批量歸一化層組合而成。
改進后的注意力生成模塊conv-CBAM由降維卷積模塊、原始的通道域生成模塊和改進的空間域生成模塊組成。
本文設計的陰影檢測網絡APR基于預訓練的殘差卷積網絡Resnet50。其中,Resnet50具有四個不同維度的殘差卷積模塊Residual Block,本模型基于各Residual Block組成四個并行卷積模塊Parallel Block。在每個Parallel Block中會獲得三種形狀一樣的特征圖輸出,基于通道連接后,輸入改進的conv-CBAM注意力模塊,獲得這一層次的加權注意力特征圖并與其他層次得到的特征圖進行密集連接,再輸入下一層次的并行卷積模塊??紤]到模型在經過四個并行卷積模塊后,最終會將圖像尺寸縮小四倍,故添加上采樣轉置卷積層,還原輸出圖像尺寸。圖10為本文設計的陰影檢測網絡APR的模型結構。
由于模型使用并行連接網絡,在模型寬度維度上提取了更多可用特征,故相較于原始Resnet50,去除核心注意力模塊conv-CBAM后,并未額外增加模型深度。通過密集連接各加權注意力特征圖,充分重用特征,獲得額外輸入并相互映射傳遞,避免模型退化,提高了模型的工作效率。

圖10 APR模型結構
為了與之前部分陰影檢測模型進行對比與分析,故使用這些模型在實驗中同樣使用的公共數據集SBU[10]陰影數據集與UCF[9]陰影數據集。SBU數據集包含4 089幅訓練圖像與638幅測試圖像,UCF數據集包含245幅圖像。為了驗證模型跨數據集的泛化能力,將UCF數據集所有圖像用于測試,最終用于本文設計的陰影檢測模型的數據集包括4 089幅訓練圖像和983幅測試圖像。
觀察陰影數據集,存在正負樣本比例不平衡的情況,圖11為具有此類問題的一例訓練集圖像。

圖11 一例訓練集圖像與其真實檢測結果
真實檢測結果中,黑色像素代表背景信息,白色像素表示待檢測陰影信息。本例中,白色陰影像素在全局中所占比例較低。在完整的數據集中,普遍存在此類正負樣本分布不平衡的情況,經過綜合分析,使用Focal Loss[23]作為最終模型訓練的損失函數,式(5)表示Focal Loss的具體定義。
(5)
式中:α取0.25,平衡正負樣本損失;γ取2,減少背景樣本損失,使分類器關注陰影樣本信息。
為了對實驗結果進行分析與比較,采用與之前部分陰影檢測模型相同的評價指標[16-17]:陰影像素檢測錯誤因子SER、非陰影像素檢測錯誤因子NER、平均檢測錯誤因子BER,定義如下:
SER=(1-TP/Np)×100
(6)
NER=(1-TN/Nn)×100
(7)
BER=(SER+NER)/2
(8)
式中:TP、TN分別表示正確檢測的陰影像素數和正確檢測的非陰影像素數;Np、Nn分別表示陰影像素總數和非陰影像素總數,錯誤因子越低代表模型的陰影檢測準確率越高,像素語義信息的分類越正確。
使用SBU和UCF兩大數據集,結合評價標準,本文模型在ubuntu16.04、Python3.6、mxnet-cu100環境下搭建,在一張Tesla P100顯卡上訓練并測試,處理一幅圖片平均耗時0.031 s,預計檢測速度達到32.2幀/s,具備一定的高效實時檢測能力。SBU、UCF兩種測試集具體測試結果與常見同類型陰影檢測模型的對比結果如表1和表2所示。

表1 SBU測試集實驗結果

表2 UCF測試集實驗結果
通過對比與分析發現,本文算法APR在SBU測試集上具備較好的性能提升,在UCF數據集上NER與BER指標相較于其他模型大幅度下降。跨數據集驗證的成功,證明了本模型具備可靠的泛化能力。且通過與ST-CGAN[25]模型實驗結果對比,證明了本模型在正負樣本上的檢測平衡能力,分類器不會因正負樣本數量比例的不平衡而導致分類結果的不平衡。
圖12為一組測試集數據的目視效果對比,直觀反映了模型的檢測準確程度。

圖12 一組測試數據的檢測結果與真實結果的目視效果對比
通過目視分析,發現測試數據整體檢測準確率較高,對于類別分類基本無誤,能夠高效區分陰影與非陰影語義信息,提取兩者間的特征差距,實現了陰影檢測模型的基本功能。與此同時,由于模型特征提取前端基于Resnet50,總體深度不大,所以對于邊緣信息的提取與分類不夠精細,導致預測結果與真實結果仍有偏差。對于困難情況,如圖12第5列圖像,預測出現了錯誤分類結果,將圖像右上角接近陰影顏色的深色地磚誤識別為陰影。根本原因在于特征的提取不夠徹底,在提取復雜場景的語義信息時易受到干擾,尤其是當非陰影語義信息與陰影語義信息接近時,這種干擾更為明顯。一般來說,不考慮模型訓練的硬件成本與時間成本,擴大網絡深度與提高數據集圖像質量能夠解決這一類問題。
實驗中,為了探究APR模型各模塊起到的作用,搭建了四個參照網絡進行對比驗證。第一個網絡為原始預訓練的Resnet50網絡,僅修改其最后的輸出層;第二個網絡為Resnet50+CBAM網絡,在原始Resnet50網絡的基礎上在各殘差卷積塊間連接未改進的注意力模塊CBAM;第三個網絡為Resnet50+conv-CBAM網絡,在原始Resnet50網絡的基礎上在各殘差卷積塊間連接改進后的注意力模塊conv-CBAM;第四個網絡為Resnet50+Parallel Block+conv-CBAM網絡,即對原始Resnet50各殘差模塊重組,采用前文所述的并行卷積設計思路,組建并行卷積模塊,且各模塊間連接改進后的注意力機制模塊,但各層輸出結果不使用密集連接相連。以上四類網絡結構不同,并且復雜程度越來越高,與采用密集連接思路的完整網絡APR相互對比可分別驗證注意力機制CBAM、改進后的注意力機制conv-CBAM、并行卷積模塊、密集連接設計方法的作用。為保證驗證實驗的可信度,各模型訓練采用相同的損失函數、數據集與訓練策略,并且對預測結果采用相同的評價指標進行評價,具體的各模塊探究實驗結果如表3所示。
觀察實驗結果可知,本文提出的完整模型APR評價指標均優于驗證實驗搭建的四類參照網絡,且這五種網絡隨著模型復雜程度的加深,評價指標數值總體上也逐漸降低,體現了各模塊設計的合理性,確保了本文算法的可信度。
考慮到計算機視覺任務中陰影模型對于圖像前景的干擾,本文設計一個高效的陰影檢測模型APR。分析注意力機制的易用性與加權求和工作機制,結合可避免網絡退化的殘差神經網絡,本文所提出模型在融合了注意力機制與殘差網絡的基礎上,還參考了密集連接與并行連接設計思想,因此具備高效的陰影識別能力與陰影語義提取能力。經過實驗驗證,模型在SBU與UCF數據集上預測表現優秀,評價指標相比于同類對比模型有一定提升,且通過跨模型驗證與模型內部模塊效果探究,證明了模型的結構合理性與其泛化能力。但是,由于陰影模型本身對于前景圖像具備干擾能力,且數據存在正負樣本比例分布不平衡的情況,模型對于陰影邊緣信息的提取與預測不夠精細,并且在復雜場景下,隨著干擾因素的顯著增加,模型對于語義信息的提取會產生一些偏差。如果擴大網絡深度或提高數據集圖像質量會降低復雜場景出現分類錯誤的可能性,隨著模型結構的優化,模型的表現能力會隨之提高,以適應更多復雜場景下的陰影檢測工作,后續研究仍有一定的價值。