王國剛,李澤欣,董志豪
(山西大學(xué) 物理電子工程學(xué)院,太原 030006)
作為計算機視覺領(lǐng)域的重要研究課題,目標(biāo)檢測的目的是解決目標(biāo)分類及定位問題。目前,目標(biāo)檢測已廣泛應(yīng)用于智能視頻監(jiān)控[1-3]、無人駕駛[4-5]、智能化交通[6-7]、人臉識別[8-9]、遙感影像分析[10-12]和醫(yī)學(xué)圖像檢測[13-15]等領(lǐng)域。
傳統(tǒng)目標(biāo)檢測算法主要分3個階段來完成目標(biāo)檢測任務(wù),首先進行區(qū)域的選擇,采用不同大小的滑動窗口遍歷截取圖像,產(chǎn)生多個候選框來盡可能檢測所有存在的目標(biāo);然后進行特征的提取,由于傳統(tǒng)目標(biāo)檢測方法的特征大多是人為手動設(shè)計的,因此使用人工設(shè)計的特征提取器提取特征;最后提取到特征后,利用支持向量機[16]、可變形部件模型[17]和AdaBoost[18]等分類器來判別目標(biāo)的類別。該類算法通過工程人員的經(jīng)驗提取特征,檢測精度低,難以滿足實際需求,具有一定的局限性。
2014年,Girshick等提出的R-CNN[19]算法,成功將深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測領(lǐng)域。相較于傳統(tǒng)算法,基于深度學(xué)習(xí)的目標(biāo)檢測算法在性能上更具優(yōu)勢。這類算法可分為兩種,一種是以SSD[20],Efficientdet[21]為代表的單階段目標(biāo)檢測算法,這類算法直接在整張圖片上生成若干候選框,再對這些候選框進行類別、框大小以及位置的回歸預(yù)測。另一種是以R-CNN,F(xiàn)ast R-CNN[22],F(xiàn)aster R-CNN[23]為代表的兩階段目標(biāo)檢測算法,這類算法第一階段先得到存在物品的候選區(qū)域,第二階段再對候選區(qū)域中的候選框進行類別、框大小以及位置的回歸預(yù)測。
深度學(xué)習(xí)目標(biāo)檢測算法采用大量特征來提升性能。但是,基于某些特征的目標(biāo)檢測器泛化性能差,采用了加權(quán)殘差連接(WRC,weighted-residual-connections)、跨階段部分連接(CSP,cross-stage-partial-connections)等特征的YOLOv4[24]目標(biāo)檢測器的泛化性能得到了一定程度的改善。然而,YOLOv4中的空間金字塔池化(SPP,spatial pyramid pooling)模塊未充分提高特征融合網(wǎng)絡(luò)淺、中、深層特征圖的表征能力;檢測頭網(wǎng)絡(luò)特征圖的每個通道權(quán)重都相同,難以凸出重要通道上的信息;且使用了更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),增大了模型參數(shù)量,增加了檢測時間。
針對以上問題,提出一種基于注意力機制和多空間金字塔池化的實時目標(biāo)檢測算法(AMMP,real-time object detection algorithm based on attention mechanism and multi-spatial pyramid pooling)。該算法采用多空間金字塔池化,提取多尺度信息,加強特征融合網(wǎng)絡(luò)的淺、中、深層特征圖的表征能力;引入壓縮激勵通道注意力機制,建模通道間的相關(guān)性,自適應(yīng)調(diào)整特征圖各個通道的權(quán)重,從而使網(wǎng)絡(luò)更加關(guān)注重要特征;特征融合和檢測頭網(wǎng)絡(luò)中使用深度可分離卷積,減少網(wǎng)絡(luò)參數(shù)量,提高算法檢測速度。實驗結(jié)果表明,AMMP算法的均值平均精度(mAP,mean average precision)優(yōu)于7種主流對比算法。與基準(zhǔn)算法相比,該算法在降低復(fù)雜度的同時,提高了檢測準(zhǔn)確度。
YOLOv4由Backbone特征提取網(wǎng)絡(luò)、Neck特征融合網(wǎng)絡(luò)和Head檢測頭網(wǎng)絡(luò)三部分組成。Backbone、Neck分別采用CSPDarknet53網(wǎng)絡(luò)和加入了SPP結(jié)構(gòu)的路徑聚合網(wǎng)絡(luò)[25](PANet,path aggregation network)。CSPDarknet53將CSPNet結(jié)構(gòu)應(yīng)用于Darknet53網(wǎng)絡(luò)中,加速了特征提取過程,該網(wǎng)絡(luò)由5個大殘差塊組成,這5個大殘差塊包含的小殘差單元個數(shù)分別為1,2,8,8,4,即兩個CBM卷積模塊和一個CSPX卷積模塊共同組成一個大殘差塊。SPP結(jié)構(gòu)采用3種不同尺寸的池化核對上層特征圖做最大池化處理,擴大了網(wǎng)絡(luò)的感受野。PANet由上采樣和下采樣兩部分組成,實現(xiàn)了主干網(wǎng)絡(luò)深層特征與淺層特征的融合,提高了網(wǎng)絡(luò)的檢測精度。Head檢測頭網(wǎng)絡(luò)有3個檢測頭,每個檢測頭包含3組候選框的調(diào)整參數(shù),每組候選框的調(diào)整參數(shù)包含1個置信度參數(shù)、4個調(diào)整長寬和坐標(biāo)偏移量的參數(shù)和20個待檢測的類別參數(shù)。通過這些參數(shù),YOLOv4調(diào)整候選框的中心點坐標(biāo)和寬高,生成最終的預(yù)測框。
為提高目標(biāo)檢測準(zhǔn)確度,AMMP在特征融合網(wǎng)絡(luò)構(gòu)建多空間金字塔池化模塊(MSPP,multi-spatialpyramid pooling module)。MSPP包含深層空間金字塔池化模塊(D-SPP,deep-spatialpyramid pooling module)、中層空間金字塔池化模塊(M-SPP,middle-spatialpyramid pooling module)和淺層空間金字塔池化模塊(S-SPP,shallow-spatialpyramid pooling module)3部分,如圖1所示。MSPP借鑒空間金字塔思想,提取局部特征和全局特征,融合多重感受野,從而擴大了主干特征的接收范圍,分離出了重要的上下文信息,提高了模型的檢測精度。
D-SPP、M-SPP和S-SPP采用1×1卷積減少通道數(shù),再經(jīng)3種不同尺寸的池化核做最大池化處理,提取不同尺度的特征信息,最后,采用concat操作,在通道維度上連結(jié)各個分支的特征圖,使輸出特征圖通道數(shù)變?yōu)樵瓉淼乃谋?,從而增強了特征圖的表征能力,如圖2所示。MSPP三部分采用的最大池化操作的池化核大小為K×K,步長為1,填充padding=(K-1)/2,K∈{5,9,13}。
圖2 D-SPP、M-SPP或S-SPP結(jié)構(gòu)
位于AMMP特征融合網(wǎng)絡(luò)深層特征區(qū)域的D-SPP,提高了深層特征區(qū)域特征圖的表征能力。深層特征區(qū)域特征圖經(jīng)過上采樣、特征融合傳入中層特征區(qū)域。M-SPP位于中層特征區(qū)域,提高了中、深層特征區(qū)域特征圖的表征能力。中層特征區(qū)域特征圖經(jīng)上采樣和特征融合傳入淺層特征區(qū)域。位于淺層特征區(qū)域的S-SPP,提高了淺、中、深層特征區(qū)域特征圖的表征能力。網(wǎng)絡(luò)前向傳播過程中,特征融合網(wǎng)絡(luò)深層區(qū)域特征圖的表征能力得到了3次增強,中層區(qū)域特征圖的表征能力得到了兩次增強,淺層區(qū)域特征圖的表征能力得到了一次增強。最后下采樣過程中,將不同尺寸的特征圖送入AMMP的3個檢測頭進行檢測,有效提升了模型對大中小3種目標(biāo)的檢測能力。
AMMP特征融合網(wǎng)絡(luò)通過使用D-SPP、M-SPP以及S-SPP模塊,融合了不同尺度的特征信息,加強了淺、中、深層特征圖的表征能力,提高了檢測精度。
為使最深卷積層關(guān)注重要通道信息,AMMP在檢測頭網(wǎng)絡(luò)構(gòu)建壓縮激勵通道注意力模塊(SECAM,squeeze-and-excitationchannel attention module),如圖3所示。SECAM自適應(yīng)調(diào)整最深卷積層中特征圖的各通道權(quán)重,強化權(quán)值高的通道特征,抑制權(quán)值低的通道特征,使檢測頭網(wǎng)絡(luò)的特征信息表達更充分,從而提升模型檢測性能。
圖3 AMMP的檢測頭網(wǎng)絡(luò)
AMMP檢測頭網(wǎng)絡(luò)中,特征圖的不同通道表示不同目標(biāo)。SECAM通過建模通道間的相關(guān)性,自適應(yīng)調(diào)整特征圖各個通道的權(quán)重,從而實現(xiàn)目標(biāo)的自適應(yīng)選擇,使網(wǎng)絡(luò)更加關(guān)注重要通道特征,如圖4所示。SECAM通過壓縮,激勵和重校準(zhǔn)3個操作得到加權(quán)后的特征圖。壓縮是對特征圖U的每個通道進行的全局平均池化操作,如公式(1)所示:
(1)
圖4 壓縮激勵通道注意力模塊
式中,z表示壓縮通道后得到的特征向量,H和W表示特征圖U的高度和寬度。
激勵通過激活函數(shù)建模特征通道間的相關(guān)性以生成每個通道的權(quán)重,如式(2)所示:
s=Fex(z,W)=σ(W2δ(W1z))
(2)
式中,s表示生成的通道注意力權(quán)重,δ和σ分別表示激活函數(shù)ReLU和Sigmoid,W1和W2表示用于降維操作的特征矩陣。
重校準(zhǔn)將每個通道乘以相應(yīng)的權(quán)重,得到重新標(biāo)定的特征,如式(3)所示:
(3)
AMMP在檢測頭網(wǎng)絡(luò)構(gòu)建壓縮激勵通道注意力模塊。SECAM調(diào)整最深卷積層各通道之間的權(quán)重,從而降低干擾信息的影響,強化檢測頭網(wǎng)絡(luò)提取特征信息的能力,提升模型的檢測性能。
若標(biāo)準(zhǔn)卷積輸入特征圖F、卷積核K的尺寸分別為DF×DF×M和DK×DK×M×N,得到DF×DF×N的輸出特征圖G,則G可由公式(4)計算得到:
(4)
由式(4)可知,標(biāo)準(zhǔn)卷積的計算成本為:
P1=DK×DK×M×N×DF×DF
(5)
其中:DK表示卷積核大小,DF表示輸入特征圖的高度或?qū)挾?,M和N分別表示輸入、輸出通道數(shù),P1表示標(biāo)準(zhǔn)卷積的計算量。
由公式(4)和(5)可知,標(biāo)準(zhǔn)卷積是將卷積核作用在輸入特征圖的所有通道上,這增大了模型參數(shù)量,增加了目標(biāo)檢測時間。為克服這一缺陷,AMMP在圖5所示的特征融合和檢測頭網(wǎng)絡(luò)中使用深度可分離卷積(DSC,depthwise separable convolution),以減少參數(shù)量,提高目標(biāo)檢測速度。
圖5 AMMP的特征融合和檢測頭網(wǎng)絡(luò)
深度可分離卷積將標(biāo)準(zhǔn)卷積分解為逐深度卷積和逐點卷積兩個操作,從而以較小的精度代價減少了網(wǎng)絡(luò)計算量。逐深度卷積將不同的卷積核作用在不同的輸入通道上,以學(xué)習(xí)空間特征;逐點卷積將1×1的卷積核作用在逐深度卷積操作得到的通道上,以學(xué)習(xí)通道特征。
(6)
由式(6)可知,逐深度卷積的計算成本為:
P2=DK×DK×M×DF×DF
(7)
逐深度卷積未對過濾后的信息進行組合。為解決這一問題,深度可分離卷積在逐深度卷積后采用了逐點卷積。若逐點卷積核尺寸為1×1×M×N,則其計算量可由公式(8)得到:
P3=M×N×DF×DF
(8)
深度可分離卷積由逐深度卷積和逐點卷積構(gòu)成,故其計算量為:
P4=P2+P3=DK×DK×M×DF×DF+M×N×DF×DF
(9)
由公式(5)和(9)可得深度可分離卷積與標(biāo)準(zhǔn)卷積計算量之比,如公式(10)所示:
(10)
與基準(zhǔn)模型相比,采用了深度可分離卷積的AMMP模型,減少了參數(shù)量和模型大小,且在保持較高檢測精度的前提下,提高了檢測效率。
AMMP網(wǎng)絡(luò)模型如圖6所示。AMMP在特征融合網(wǎng)絡(luò)構(gòu)建多空間金字塔池化模塊,提取多尺度特征信息,提高Neck網(wǎng)絡(luò)淺、中、深層特征圖的表征能力;在檢測頭網(wǎng)絡(luò)構(gòu)建壓縮激勵通道注意力模塊,自適應(yīng)調(diào)整特征圖各個通道的權(quán)重,強化高權(quán)值通道特征的學(xué)習(xí),提升模型魯棒性;特征融合以及檢測頭網(wǎng)絡(luò)中使用深度可分離卷積,在保持較高檢測精度的前提下,提高模型檢測速度。
圖6 AMMP網(wǎng)絡(luò)模型示意圖
實驗采用PASCAL VOC2007數(shù)據(jù)集。該數(shù)據(jù)集包含20個類別,5 011張訓(xùn)練圖片,4 952張測試圖片。
訓(xùn)練采用的工作站配置為:Intel(R)Xeon(R)CPU,Tesla T4 GPU,167 G內(nèi)存;測試采用的PC機配置為:Intel○RCoreTMi5-8265U CPU,NVIDIA GeForce MX250 GPU,8 G內(nèi)存。深度學(xué)習(xí)框架為pytorch1.2,GPU加速庫版本為CUDA10.0,Cudnn7.4.1.5。
訓(xùn)練階段,采用Adam優(yōu)化器更新網(wǎng)絡(luò)參數(shù),動量、權(quán)重衰減系數(shù)分別設(shè)置為0.9和0.000 5。訓(xùn)練分兩個階段,第一階段凍結(jié)主干網(wǎng)絡(luò),調(diào)整非主干網(wǎng)絡(luò)參數(shù);第二階段釋放主干網(wǎng)絡(luò),調(diào)整整個網(wǎng)絡(luò)參數(shù)。第一階段學(xué)習(xí)率設(shè)置為0.001,Batch size設(shè)置為16,epoch設(shè)置為20;第二階段學(xué)習(xí)率設(shè)置為0.000 1,Batch size設(shè)置為8,epoch設(shè)置為100。
實驗采用F1、查準(zhǔn)率(P,precision)、查全率(R,recall)、平均精度(AP,average precision)和均值平均精度mAP來評估算法性能;且采用參數(shù)量、模型大小和每秒傳輸幀數(shù)(FPS,frames per second)來評價算法復(fù)雜度。此外,通過繪制查準(zhǔn)率-查全率(P-R,precision-recall)曲線和F1曲線,直觀地比較不同算法的檢測性能。
表1給出了8種算法在PASCAL VOC2007數(shù)據(jù)集上的AP和mAP值。由表1可知,AMMP算法的5個類別的AP值為最優(yōu),6個類別的AP值為次優(yōu),8個類別的AP值排名第三。且與SSD、YOLOv3、YOLOv4-tiny、YOLOv4、YOLOv5m、Centernet、Efficientdet-D0算法相比,AMMP算法的mAP分別提升了8.99%、3.83%、8.36%、0.16%、1.92%、7.51%、1.97%。
表1 8種算法的AP以及mAP
置信度閾值變化,查準(zhǔn)率和查全率也隨之變化。實驗設(shè)置不同的置信度閾值,繪制P-R曲線和F1曲線,以直觀比較不同算法的檢測性能。通過分析PASCAL VOC2007的測試集可知,car是最難檢測的類別之一。通過分析PASCAL VOC2007的訓(xùn)練集可知,boat是最能體現(xiàn)樣本不均衡問題的類別之一。故實驗選用car和boat為代表,繪制八種算法在這兩種類別上的P-R曲線和F1曲線,如圖7~10所示。
圖7 car類別的P-R曲線比較
圖8 car類別的F1曲線比較
P-R曲線與橫軸所圍面積越大,算法性能越好。由圖7可知,AMMP算法car類別的P-R曲線和橫軸間的面積最大,故八種算法中,AMMP算法對代表類別car的檢測性能最好。
正負(fù)樣本不均衡時,P-R曲線越平穩(wěn)且和橫軸間的面積越大,算法性能越好。由圖9可知,AMMP算法boat類別的P-R曲線最平穩(wěn)且和橫軸間的面積最大,故樣本不均衡情況下,AMMP算法對代表類別boat的檢測性能優(yōu)于其他算法。
圖9 boat類別的P-R曲線比較
F1曲線越平穩(wěn)且越接近于1,算法的檢測效果越好。由圖8、圖10可知,不管是car類別還是boat類別,AMMP算法的F1曲線最平穩(wěn)且最接近于1,所以AMMP算法對這兩種代表類別的檢測效果最好。
圖10 boat類別的F1曲線比較
表2給出了8種算法在7項評價指標(biāo)上的實驗結(jié)果。由表2可知,8種算法中,雖然AMMP算法的查準(zhǔn)率比Efficientdet-D0、YOLOv4、Centernet算法略低,但AMMP算法的均值平均精度,查全率和F1得分均為最優(yōu)。由表2還可看出,相比基準(zhǔn)模型YOLOv4,AMMP的參數(shù)量、模型大小分別減少27.85 M和106.25 MB;且?guī)蔬_到了33.70幀/秒,滿足實時性要求。
表2 8種算法的客觀評價指標(biāo)對比
為直觀比較AMMP與其他7種主流目標(biāo)檢測算法的性能,實驗選取PASCAL VOC2007測試集中5張待檢測圖片以進行定性分析。圖11~15為8種算法的檢測結(jié)果對比圖。
圖11 待檢圖片1的檢測結(jié)果比較
編號001366的待檢圖片1,包含2個dog目標(biāo)和4個person目標(biāo)。該圖片中的場景,背景復(fù)雜,存在遮擋現(xiàn)象。檢測結(jié)果如圖11所示,由圖可知,SSD、YOLOv4-tiny、YOLOv5m和Centernet算法均漏檢了dog目標(biāo);SSD、Centernet和Efficientdet-D0算法漏檢了person目標(biāo);YOLOv3、YOLOv4和AMMP算法雖無漏檢問題,但AMMP算法的檢測精度更高。
編號003025的待檢圖片2,包含4個sheep目標(biāo)和1個person目標(biāo)。該圖片場景存在目標(biāo)重疊,遮擋現(xiàn)象。檢測結(jié)果如圖12所示,由圖可知,SSD、YOLOv4、YOLOv5m和Centernet算法均漏檢了sheep目標(biāo);YOLOv4-tiny算法對sheep目標(biāo)存在重復(fù)檢測問題;YOLOv3算法sheep目標(biāo)的定位出現(xiàn)嚴(yán)重偏差;Efficientdet-D0算法對所有目標(biāo)的定位精度均低于AMMP算法;AMMP算法無漏檢、重復(fù)檢測及定位精度不高的問題,故性能最好。
圖12 待檢圖片2的檢測結(jié)果比較
編號003858的待檢圖片3,包含6個person目標(biāo)和1個train目標(biāo)。該圖片場景存在遮擋現(xiàn)象,背景陰暗。檢測結(jié)果如圖13所示,由圖可知,SSD、Centernet和Efficientdet-D0算法均漏檢了person目標(biāo);SSD、YOLOv4-tiny、YOLOv4、YOLOv5m和Centernet算法漏檢了train目標(biāo);YOLOv3算法將train目標(biāo)錯檢成boat目標(biāo);AMMP算法無漏檢、錯檢問題,檢測效果最好。
圖13 待檢圖片3的檢測結(jié)果比較
編號006121的待檢圖片4包含3個car目標(biāo)。該圖片場景中,目標(biāo)尺度變化大,背景復(fù)雜,有遮擋現(xiàn)象。檢測結(jié)果如圖14所示,由圖可知,SSD、YOLOv3和YOLOv4-tiny算法均漏檢了car目標(biāo);YOLOv4、YOLOv5m、Centernet和Efficientdet-D0算法雖無漏檢問題,但其檢測精度均低于AMMP算法。
圖14 待檢圖片4的檢測結(jié)果比較
編號006771的待檢圖片5,包含1個tv目標(biāo),1個diningtable目標(biāo)以及6個person目標(biāo)。該圖片場景中,光照不足,背景陰暗。檢測結(jié)果如圖15所示,由圖可知,YOLOv5m漏檢了diningtable目標(biāo);Centernet和Efficientdet-D0算法漏檢了person目標(biāo);SSD、YOLOv3、YOLOv5m、Centernet和Efficientdet-D0算法漏檢了tv目標(biāo);YOLOv4算法把背景錯檢成tv目標(biāo)。YOLOv4-tiny和AMMP算法雖無漏檢、錯檢問題,但AMMP算法檢測精度更高。
圖15 待檢圖片5的檢測結(jié)果比較
為驗證深度可分離卷積(DSC)、多空間金字塔池化(MSPP)以及壓縮激勵通道注意力(SECAM)方法對YOLOv4的優(yōu)化作用,進行了消融實驗,實驗結(jié)果如表3所示。
表3 消融實驗
由表中第1、2行可知,引入DSC后,mAP下降0.56%,模型大小、參數(shù)量分別下降107.8 MB和28.26 M。這表明DSC方法僅以微小的精度代價,換取了模型大小和參數(shù)量近一半的減少。由表中第2、3行可知,引入MSPP后,mAP提升了0.38%。這是因為MSPP方法可提取多尺度特征信息,增強感受野,提高特征圖的表征能力。由表中第3、4行可知,引入SECAM后,mAP提升了0.34%。這是因為SECAM可建模通道間的相關(guān)性,自適應(yīng)調(diào)整特征圖各通道權(quán)重,引導(dǎo)網(wǎng)絡(luò)更多地關(guān)注重要特征。
由表中第1、4行可知,融合DSC、MSPP以及SECAM后,mAP提升0.16%,模型大小、參數(shù)量分別下降106.25 MB和27.85 M。這表明,與基準(zhǔn)算法相比,AMMP算法綜合考慮了檢測精度和速度,在降低復(fù)雜度的同時,提高了檢測準(zhǔn)確度。
本文提出一種基于注意力機制和多空間金字塔池化的實時目標(biāo)檢測算法。該算法采用多空間金字塔池化模塊,提取多尺度信息,融合多重感受野,加強特征融合網(wǎng)絡(luò)的淺、中、深層特征圖的表征能力。引入壓縮激勵通道注意力機制,建模通道間的相關(guān)性,調(diào)整特征圖各個通道的權(quán)重,使網(wǎng)絡(luò)更加關(guān)注重要特征,提升模型魯棒性。特征融合和檢測頭網(wǎng)絡(luò)中使用深度可分離卷積,減少網(wǎng)絡(luò)參數(shù)量,提高模型檢測效率。實驗結(jié)果表明,所提算法的均值平均精度均優(yōu)于其他7種主流對比算法;與基準(zhǔn)算法相比,該算法在降低復(fù)雜度的同時,提高了檢測準(zhǔn)確度。且算法的檢測速率達到33.70幀/秒,滿足實時性要求。之后,本研究將考慮進一步提升算法的準(zhǔn)確性,嘗試加入不同的特征融合網(wǎng)絡(luò)結(jié)構(gòu)以及更優(yōu)的損失函數(shù),在保證算法檢測速度不降低的前提下,進一步提高檢測精度,并且在工程中實現(xiàn)運用。