楊朝晨,陳佳悅,邢 可,劉夢尼,高 濤
(1.長安大學 信息工程學院,陜西 西安 710064;2.西北大學 信息科學與技術學院,陜西 西安 710127)
隨著人工智能技術的飛速發展,目標檢測(object detection)已成為計算機圖像處理中一個重要研究課題,在智能交通[1]、人臉識別[2]、智能圖像檢索[3]等領域發揮著重要作用。
傳統的目標檢測算法采用窮舉策略使得模型產生過多冗余窗口,導致模型檢測速度緩慢,面對龐大數據集時過程繁瑣,且對于復雜場景泛化性能差,無法有效處理由于不同姿勢、遮擋等引起的非線性變化,在特征識別上有著難以彌補的劣勢,進而難以有效提高分類水平。
近年來,深度學習憑借其優異的特征提取能力被廣泛應用于目標檢測領域。目前,基于深度學習的目標檢測算法可大致分為兩類:第一類為基于候選區域的兩階段算法,如以RCNN[4]、Fast R-CNN[5]和Faster R-CNN[6]等為代表的一系列目標檢測框架,這類算法準確度較高,但速度較慢;第二類為基于端到端模型的一階段算法,典型代表有SSD[7]、YOLOv3[8]、DSSD[9]等,這類方法利用回歸思想,通過卷積網絡預測回歸邊框及分類概率,無需預先提取候選網絡,直接對圖像中的目標進行位置預測和類別判斷,較二階段算法準確度略低,但檢測速度更快,實時性更高。
然而在實際情況中,圖像中的小目標分辨率低,圖像模糊,攜帶信息較少,使得其特征表達能力弱,算法對小目標的檢測不敏感,誤檢率或漏檢率較高。針對以上問題,一些學者對普通目標檢測算法做出了改進。鄭浦等[10]采用多尺度特征融合的方式,增強淺層特征表達能力對小目標進行檢測。劉順民等[11]使用特征金字塔替代多尺度特征層,充分融合了底層和高層的信息。趙文清等[12]通過將改進的分段比例懲罰因子NMS算法和連續比例懲罰因子NMS算法相結合以提高檢測性能。馬躍等[13]設計了一種融合結構用以豐富特征圖細節信息和語義信息。
上述研究均使用完整特征圖作為特征輸入,然而在實際分類任務中,并非所有特征對特征識別的作用程度都是相同的。因此,針對算法對小目標敏感性較低的問題,該文提出了一種改進的DSSD算法,引入注意力機制突出局部重點區域,在通道維度上增加權重分量進行加權求和表示信息相關度,并將圖片中的空間域信息做對應空間變換,有利于前景小目標的特征學習。
SSD(single shot multibox detector)模型是一種基于回歸的高精度、強實時性的目標檢測算法,其主要設計思想是利用不同尺度的特征圖進行目標的檢測和識別。網絡框架分為基礎網絡和附加網絡兩部分。基礎網絡使用改進的VGG16網絡進行特征提取,附加網絡新增四層級聯卷積層以獲得高維特征圖用于目標檢測。在網絡模型進行訓練時,預測框會以先驗框為基準,通過softmax分類和邊界回歸來獲得真實目標的位置,多尺度特征圖共同參與目標檢測有利于提升目標檢測的精確度。
SSD模型檢測速度較快,對大目標檢測精度較高,但對小目標不敏感,漏檢或誤檢率較高。DSSD模型此基礎上進行了改進,主要是采用ResNet101代替VGG16作為主干網絡,其中ResNet101的Conv3_x卷積層與其后4層級聯卷積層共同構成DSSD模型的特征層;特征層與5層反卷積層共同構成反卷積模塊以擴大模型在小尺度上的高層特征信息,有效改善了小目標的檢測能力;并引入預測模塊提升檢測精度,DSSD模型結構如圖1所示。

圖1 DSSD模型結構
1.2.1 反卷積模塊
為了得到更多的檢測信息,DSSD模型引入反卷積層組成反卷積模塊,反卷積模塊結構如圖2所示。
DM模塊里的需要反卷積的高層特征圖(圖中以A表示)、SSD的卷積低層特征圖(圖中以B表示)和最后得到的融合后的卷積圖(圖中以C表示)與DSSD的沙漏結構中的對應位置如圖所示。融合后的特征圖C送入預測模塊中,作為下一級DM模塊要反卷積的特征圖再進行下一級的DM模塊操作。至于2 H和2 W經過一系列的padding=1,stride=1的3*3卷積后仍保持2 H*2 W的特征圖尺寸。

圖2 反卷積模塊結構
1.2.2 預測模塊
DSSD模型在特征層和反卷積模塊之間又加入了預測模塊,該模塊在SSD預測模塊的基礎上增加了一個殘差學習單元,進一步提高模型的精確度。預測模塊結構如圖3所示。

圖3 反卷積模塊結構
雖然DSSD模型的預測模塊提取更深維度的特征用于分類和回歸,網絡整體構成不對稱的“沙漏”結構,充分利用了上下文信息和層的特征,從而在小目標和密集目標的檢測率上有很大的提高。但上述均使用完整特征圖作為特征輸入,然而在實際分類任務中,并非所有特征對特征識別的作用程度都是相同的。因此,為了突出對特征識別有效的信息并抑制作用小或無效的信息,一些研究引入了注意力機制。
CBAM(convolutional block attention module)[14]是一種簡單有效的混合注意力模塊。通過將注意力過程分為兩個獨立的部分,通道注意力模塊和空間注意力模塊,沿著空間和通道兩個維度依次推斷出注意力權重,然后與原特征圖相乘來對特征進行自適應調整,其網絡結構如圖4所示。

圖4 CBAM模型結構
為了匯總空間特征,通道注意力模塊采用了全局平均池化和最大池化兩種方式來分別利用不同的信息。輸入是一個H×W×C的特征F,先分別進行一個空間的全局平均池化和最大池化得到兩個1×1×C的通道描述。接著將它們分別送入一個兩層的神經網絡,第一層神經元個數為C/r,激活函數為Relu,第二層神經元個數為C。這個兩層的神經網絡是共享的。然后,再將得到的兩個特征相加后經過Sigmoid激活函數得到權重系數Mc。最后,拿權重系數和原來的特征F相乘即可得到縮放后的新特征。
在通道注意力模塊之后再引入空間注意力模塊,給定一個H×W×C的特征F,分別進行一個通道維度的平均池化和最大池化得到兩個H×W×1的通道描述,并將這兩個描述按照通道拼接在一起。然后經過一個7×7的卷積層,激活函數為Sigmoid,得到權重系數Ms。最后,拿權重系數和特征F相乘即可得到縮放后的新特征。
本實驗采用優化后的DSSD模型,引入CBAM混合注意力機制,在保證檢測速度的同時,提高了檢測精度,改進的模型結構如圖5所示。

圖5 改進的DSSD模型結構
在圖5中,反卷積模塊中各卷積層既具有良好的淺層特征表征能力,又具有深層特征語義信息,故在反卷積模塊引入CBAM注意力機制。由于CBAM模塊屬于輕量級模塊,不會帶來大量復雜參數,故對改進的DSSD模型檢測速度基本沒有影響,且一定程度上提高了網絡整體檢測精度和對小目標的檢測精度。
實驗使用的深度學習框架為pytorch,計算機操作系統為Ubuntu16.04,顯卡型號為NVIDIA Quadro P5000。
采用平均精度(average precision,AP)和平均精度均值(mean average precision,mAP)作為模型檢測性能的評價指標,其計算過程如下:按照目標檢測模型預測結果對樣本進行排序,針對逐個樣本將置信度作為劃分正負樣本的閾值,計算查準率(Precision)和召回率(Recall),繪制P-R(Precision and Recall)曲線,將PR曲線上召回率相同的點記為一組,共分為n組,AP的計算公式如下:
(1)
其中,Pi表示第i組的最大精度值,N表示該類別在測試集中的所有實例個數。
最后計算各個類別AP值的均值即為mAP。AP和mAP越高,目標檢測模型的性能越好。
實驗采取2個通用數據集,分別為PASCAL VOC2007和PASCAL VOC2012數據集。PASCAL VOC[15]數據集是一個包含Person、Bird、Cat、Cow、Dog、Horse、Sheep、Aero-plane、Bicycle、Boat、Bus、Car、Motorbike、Train、Bottle Chair、Table、Plant、Sofa、Monitor等20個類別物體的目標檢測數據集。該文使用PASCAL VOC2007和PASCAL VOC2012的trainval部分共16 551張圖片作為訓練集,使用PASCAL VOC2007的test部分作為測試集。
通過一系列的調參實驗后總結出了最適合該模型訓練的相關網絡超參數,具體如下:訓練模型過程中采用Momentum優化算法,動量衰減項為0.9,權重衰減因子設定為0.000 1,步長設定為120 000,batch size為16。學習率為動態的即初始學習率為0.001,前500步學習率為0.000 1,500步后學習率為0.001,80 000步后學習率下降為原來的0.1倍,調整至0.000 1,100 000步后學習率調整為0.000 01。當模型構建完成及參數確定后進行MFF-SSD網絡模型的訓練,網絡模型訓練的全過程被記錄在圖6中。

圖6 模型訓練損失值
由圖6可知:損失值在前5 000步迅速下降;5 000至21 000左右時損失值逐漸趨于穩定狀態;21 000步后損失值趨于穩定。
利用訓練好的網絡對測試集進行檢測,網絡對VOC2007 test部分的檢測精度如表1所示。可以看出所提算法對每個類別的識別精度都有一定程度的提升。

表1 不同算法各個類別目標檢測精度對比結果 %
表2是不同模型在VOC2007數據集上的實驗結果,對比DSSD和所提方法的實驗結果可知,在平均檢測時間略微提升的情況下,所提方法得到了比DSSD更優的實驗精度,證明了算法的有效性。

表2 VOC2007測試集上測試結果
針對當前DSSD模型沒有考慮小目標特點及特征圖通道和空間之間的關系的問題,通過引入CBAM混合注意力模塊,設計了一個針對小目標檢測任務的改進DSSD模型。相比于原DSSD模型,設計的新目標檢測模型在實驗精度提升1.3%情況下,基本沒有增加模型的參數量,檢測速度無明顯降低。實驗的訓練和推理過程仍舊是在高性能計算機上進行,下一步將考慮將檢測模型進一步簡化,在保證精度的同時降低檢測速度。