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

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

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

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

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

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

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

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

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

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

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

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

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

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

表1 SBU測試集實驗結(jié)果

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

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