賈天豪,彭力+,戴菲菲
1.物聯(lián)網(wǎng)技術應用教育部工程研究中心(江南大學 物聯(lián)網(wǎng)工程學院),江蘇 無錫214122
2.臺州市質量安全檢測研究院,浙江 臺州318020
隨著人工智能技術的飛速發(fā)展、深度卷積網(wǎng)絡的出現(xiàn)[1],引入了一些能學習語義、高水平、深層次特征的工具來解決傳統(tǒng)體系結構中存在的問題,使模型在網(wǎng)絡架構、訓練策略和優(yōu)化功能方面的性能得到了顯著提高[2-4]。然而,圖像中小尺度目標區(qū)域相對較小、圖像模糊、信息量不足,導致在卷積神經(jīng)網(wǎng)絡模型中對多尺度、低分辨率、小目標檢測的研究一直是個難題。
目前,視覺任務中解決該問題主要分為兩個方向:一是使用圖像金字塔[5-6]的方式,對圖像進行一定比例的縮放,從而得到一系列不同尺寸的樣本圖像序列,在縮放過程中采用線性差值等方法進行上采樣,同時還可以加入濾波、模糊等處理方式豐富樣本的細節(jié)信息。二是使用特征金字塔[7-8]的方式,通過利用常規(guī)卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)模型內(nèi)部從底至上各個層對同一尺度圖片不同維度的特征表達結構,在單一圖片視圖下生成對其的多維度特征表達,可以有效地賦能CNN模型,從而生成表達能力更強的特征圖。
其中,Liu 等人提出的一階段目標檢測器(single shot multibox detector,SSD)[9]在基礎網(wǎng)絡的頂端額外增加了更多卷積層來構成特征金字塔,并利用不同層次的特征圖定義預選框進行最終預測,這種策略使得小目標在淺層不會丟失太多的位置信息,而大目標在深層也可以很好地定位和識別。Li等人提出利用特征金字塔網(wǎng)絡融合模型高低層語義信息,并將融合結果用于生成新的特征金字塔,從而增強小目標的特征表達能力(feature fusion single shot multibox detector,F(xiàn)SSD)[10]。Singh等人從訓練角度切入,在數(shù)據(jù)的層面思考,采用了一種多尺度的訓練方式——圖像的尺度歸一化(analysis of scale invariance in object detection,SNIP)[11],在金字塔模型的每一個尺度上進行訓練,高效利用訓練數(shù)據(jù),檢測效果得到顯著提升。Fu等人提出通過更換主干網(wǎng)絡并加入反卷積的方式來降低小目標漏檢率的目標檢測算法(deconvolutional single shot detector,DSSD)[12]。Zhou 等人提出scale-transfer Module 對特征圖進行放大或縮小,并分別對不同尺度的特征圖做目標預測(scaletransferrable object detection,STDN)[13]。宋云博等人提出了基于級聯(lián)卷積神經(jīng)網(wǎng)絡的高效目標檢測算法[14]。
雖然上述采用特征金字塔結構的目標檢測器擁有不錯的檢測效果,但是它們在處理多尺度問題時沒有考慮到全局的上下文信息對小目標檢測的影響,并且沒有進一步增強不同尺度下的關鍵特征信息,這使得小目標和低分辨率目標檢測性能還有進一步提升的空間。
因此,本文在SSD[9]算法基礎上提出了引入殘差學習與多尺度特征增強的目標檢測器(object detector with residual learning and multi-scale feature enhancement,RMFE-SSD)。在特征提取網(wǎng)絡中加入增強特征映射塊(enhanced feature map block,EFB)來豐富有效特征層的語義信息,使得模型更加專注于對象區(qū)域。構建含有上下文信息的特征融合塊(contextsensitive feature fusion module,CFB),在增大特征感受野的同時,將細節(jié)信息豐富的淺層特征與語義信息豐富的深層特征進行融合,并通過雙重注意力塊(double attention block,DAB)將關鍵特征嵌入到注意力中,實現(xiàn)空間與通道間的信息關聯(lián),從而增強模型的特征表達能力,提高模型的目標檢測性能。
本文提出的RMFE-SSD 模型包含7 個增強特征映射塊、2 個攜帶上下文的特征融合塊和2 個雙重注意力塊,主干網(wǎng)絡仍采用VGG16[15]進行特征提取。其中,7個EFB用于提高SSD目標檢測器中有效特征圖的特征表達能力,專注于學習除背景外的目標區(qū)域。采用2 個CFB 來擴大主干網(wǎng)絡中淺層特征的感受野,并對Conv4_3、Conv5_3 和Conv7、Conv8_2 兩組不同尺度特征進行融合操作,使得淺層的特征圖具有更多的語義信息,能夠更好地捕獲小目標。2個DAB 用于突出關鍵特征,加強特征在空間和通道上的信息關聯(lián)。整體架構如圖1所示。
圖1 整體網(wǎng)絡結構圖Fig.1 Overall network structure diagram
在基于卷積神經(jīng)網(wǎng)絡的目標檢測模型中,研究者們普遍認為網(wǎng)絡深度越深,模型的非線性的表達能力越強,學習效果越好。然而,網(wǎng)絡的不斷加深會導致模型退化、錯誤率升高的問題。對此,He等人[16]提出在殘差網(wǎng)絡中引入跳躍連接,將一個潛在的恒等映射轉換為對殘差函數(shù)的學習,可以有效地去除相同的特征主體,體現(xiàn)它們之間的差異性,如圖2(a)所示。因此,本文以ResNet[17]中提出的殘差塊為基礎來構建增強特征映射塊,如圖2(b)所示。通過反向傳播的不斷學習,可以有效增強特征圖的細節(jié)特征信息。
圖2 殘差塊與增強特征映射塊結構圖Fig.2 Structure diagram of residual block and enhanced feature map block
本文所提出的增強特征映射塊與ResNet[14]中的殘差塊相比存在兩點優(yōu)勢:(1)本文采用局部特征學習來抑制卷積操作帶來的計算量,兼顧檢測速度與檢測精度。將輸入特征映射f分割為和兩部分,通過3個卷積層提取更多的語義特征后與進行concat連接,其中第一個卷積操作采用1×1的卷積核對特征圖進行降維,第二個卷積操作采用3×3的卷積核進行特征提取,第三個卷積操作采用1×1 的卷積核進行升維。(2)本文對輸入特征映射f額外采用通道平均池化和歸一化處理來提高特征的可辨別性,并在全局范圍內(nèi)捕獲更有效的細節(jié)信息,使得圖像的語義性愈加強烈,進而增強了用于預測的特征金字塔的表達能力。
卷積神經(jīng)網(wǎng)絡能夠提取low/mid/high層的特征,網(wǎng)絡的層數(shù)越多,意味著網(wǎng)絡提取的特征越抽象,越具有語義信息。本文設計的EFB模塊通過引入殘差塊來加深網(wǎng)絡并融合上述兩點優(yōu)勢,在兼顧檢測速度的同時通過歸一化處理突出了附加在通道內(nèi)的語義信息,提高了模型的檢測性能。該模塊的輸出結果通過式(1)進行計算。
其中,C表示卷積操作,上標表示卷積核大小,O表示融合操作,σ表示sigmoid,A表示平均池化。
此外,考慮到精度和速度之間的權衡,本文通過實驗驗證了將輸入特征映射分割成3/4和1/4是最有效的方法(詳見2.3節(jié))。按照這種方式,該模塊可以在兼顧檢測速度的同時提升小目標檢測精度。
現(xiàn)有的特征融合模塊都是將不同尺度的特征圖直接通過上采樣后進行融合,這忽略了部分關鍵的上下文信息,尤其對小目標和低分辨率特征圖而言。本文提出先采用對上下文信息敏感的特征塊CFB 擴大檢測網(wǎng)絡的感受野范圍,豐富對象區(qū)域的上下文信息,然后進行基于反卷積的上采樣融合操作。由于concat 操作只是在通道維度上將不同尺度的特征連接,不能反映不同通道間特征的相關性和重要性[18],本文算法中融合方式采用的是element-sum。
CFB模塊的結構如圖3所示,其主要包含3個分支,并在不同分支上設定不同大小的步長和卷積核,使得網(wǎng)絡具有了更寬的特征映射塊。其中cfb1 和cfb2兩個分支分別通過3×3的卷積核削減通道數(shù)量,獲取全局的特征信息;cfb3和cfb4子分支在cfb2主分支下通過不同大小的卷積核捕獲不同感受野下的上下文信息。特別地,本文將5×5的卷積核替換為2個3×3的卷積核,一方面通過堆疊3×3卷積核提供了更多數(shù)量的激活函數(shù),增加網(wǎng)絡的非線性;另一方面是卷積操作本身并沒有破壞圖像的空間信息,大感受野不具有優(yōu)勢,反而會增加計算量,本文在2.2 節(jié)進行了對比驗證。對于輸入in、輸出out的計算公式為:
圖3 對上下文敏感的特征融合塊Fig.3 Context-sensitive feature fusion module
由于Conv8_2以后的特征圖分辨率過低,對融合效果幫助不大,其帶來額外的計算量會降低檢測效率。本文僅選擇主干網(wǎng)絡中的Conv4_3、Conv5_3 和額外卷積層中的Conv7、Conv8_2 進行特征融合。Conv5_3與Conv7二者擁有同樣的分辨率,但是擁有不同的語義信息,選擇Conv5_3與Conv4_3進行融合對預測模塊來說更有利。如圖1所示,Conv4_3特征圖的尺寸為38×38×512,Conv5_3 特征圖的尺寸為19×19×512,二者分別通過CFB 模塊后進行降維操作,由于淺特征層的特征分布和深特征層之間存在較大的間隙,直接融合效果不好,添加Batch-Norm層進行歸一化處理,這樣也可加速訓練速度,防止梯度消失。Conv5_3 再通過反卷積上采樣后與Conv4_3進行element-sum操作,融合過程如圖4所示。Conv7和Conv8_2的融合過程類似,如圖5所示。
圖4 Conv4_3與Conv5_3的融合過程Fig.4 Fusion process of Conv4_3 and Conv5_3
圖5 Conv7與Conv8_2的融合過程Fig.5 Fusion process of Conv7 and Conv8_2
此外,本文對不同融合方式下的檢測效果進行了對比(見2.2 節(jié)),實驗表明,element-wise-sum 方式比concat擁有更好的效果。
為了驗證引入CFB模塊對于提取目標特征信息的有效性,本文使用熱力圖可視化方法來直觀地對比添加該模塊前后模型對目標區(qū)域敏感程度的情況。如圖6 所示,實驗對Conv4_3 和Conv5_3 兩個有效特征圖進行融合操作,并對比了使用CFB 前后的熱力圖,圖中紅色部分越深說明對這部分的關注度越高。從圖中可以看出,使用CFB 模塊后模型對目標區(qū)域的關注度更加全面,效果更好,這是因為在深淺特征圖的融合操作中,CFB 模塊擴大了特征圖的感受野,豐富對象區(qū)域的上下文信息,使得模型可以更加準確地感知學習,該實驗也進一步驗證了CFB模塊的有效性。
圖6 熱力圖可視化Fig.6 Visualization of heat maps
由于特征圖不斷被卷積操作壓縮,小目標的有效信息變得更少,甚至會被背景信息所覆蓋。本文設計了基于ECA-Net(efficient channel attention networks)[19]的雙重注意力塊,通過空間注意力與通道注意力并聯(lián)的方式,有效捕獲小目標,同時抑制背景信息。
如圖7所示,DAB包含空間注意力和通道注意力兩部分,空間注意力使用兩層感知機進行非線性的特征變換,并利用Sigmoid 函數(shù)實現(xiàn)特征重標定,為每個位置生成權重掩膜并加權輸出,從而使得模型更加聚焦于前景特征而不是背景區(qū)域。通道注意力利用全局平均池化和卷積權重共享的方式賦予每個通道不同的權重系數(shù),并自適應地調(diào)整通道間的特征響應,區(qū)分出重要與非重要的特征信息,使得模型有效地捕獲目標區(qū)域。
圖7 雙重注意力塊Fig.7 Double attention block
空間注意力首先通過1×1 的卷積核削減特征圖的通道數(shù),減少計算量。然后通過兩個3×3的卷積核提取空間信息,期間使用ReLU 函數(shù)進行激活,增加模型的非線性。最后通過Sigmoid 函數(shù)獲取二維空間特征映射,用于對原有特征圖的加權。之所以使用3×3的卷積核來提取空間信息,是因為它能夠在保證相同感受野的情況下減少參數(shù)量。空間注意力輸出結果f1的計算過程如式(3)所示。
其中,C表示卷積操作,上標表示卷積核大小,F(xiàn)表示原有特征圖,σ表示Sigmoid激活函數(shù)。
受ECA-Net[19]的啟發(fā),本文的通道注意力模塊去除了SENet(squeeze-and-excitation networks)[20]模塊中的FC(fully connected)層,直接在全局平均池化(global average pooling,GAP)之后的特征圖上通過一個可以權重共享的1D卷積進行學習,并采用自適應選擇一維卷積核大小k的方法,確定局部跨信道交互的覆蓋率,從而實現(xiàn)通道間的信息交互,通道注意力的輸出f2的計算過程如式(4)所示。對于不同的通道數(shù)C,超參數(shù)k擁有不同大小的值,k和C的對應關系如式(5)所示,其中2 的次方考慮的是通道數(shù)量一般是2的指數(shù)倍。
其中,C1D 表示一維卷積,下標k表示卷積核大小,F(xiàn)表示原特征圖,σ表示Sigmoid激活函數(shù)。
綜上,本文在SSD[9]原特征金字塔上加入EFB、CFB、DAB三部分模塊形成新的特征金字塔,新特征金字塔彌補了原特征金子塔對小目標有效特征信息丟失、語義信息與細節(jié)信息沒有充分融合的不足,利用特征重標定、歸一化處理和豐富對象區(qū)域上下文信息等方法對圖像特征進行了增強,可以自適應地調(diào)整通道間的特征響應,并區(qū)分出重要與非重要的特征信息,這對于模型的檢測性能很有幫助。與原特征金字塔相比,展現(xiàn)出了更有效的特征提取手段和更全面的特征表達。
表1展示了圖像輸入尺度為300×300情況下,用于預測特征金字塔的各層結構參數(shù)。在參數(shù)的選取過程中,按照如下原則進行選?。海?)通常在達到相同感受野的情況下,卷積核越小,所需要的參數(shù)和計算量越小,并且大小為偶數(shù)的卷積核即使對稱地加padding也不能保證輸入特征圖尺寸和輸出特征圖尺寸不變,因此本文選用3×3 的卷積核進行特征提取,選用1×1 的卷積核進行特征降維或升維。(2)由于目前關于每層卷積的通道數(shù)如何選取沒有太多的理論支撐,還是根據(jù)經(jīng)驗進行設定并通過實驗進行驗證調(diào)整。
表1 用于預測的特征金字塔各層結構參數(shù)Table 1 Structural parameters of each layer of feature pyramid used for prediction
本文算法是基于深度學習框架Pytorch1.0實現(xiàn)的,計算機操作系統(tǒng)為64位的Ubuntu16.04,內(nèi)存16 GB,處理器為英特爾i5-8500@3.00 GHz 六核,顯卡為英偉達GTX 1080Ti,顯存11 GB。采用PASCAL VOC 公共數(shù)據(jù)集和自制OAP航拍數(shù)據(jù)集對算法的有效性進行驗證,并分別在300×300 和512×512 分辨率下,對不同算法的檢測性能進行對比。
對比檢測算法包括:(1)SSD[9]。(2)一階段目標檢測器,以SSD 為基礎改進的反卷積單步驟探測器DSSD[12];基于多層特征做預測,并對預測結果做融合得到最終結果的目標檢測器STDN[13]。(3)兩階段目標檢測器,一種利用感興趣區(qū)域內(nèi)部、外部信息的目標檢測器(inside-outside net,ION[21]);基于邊框回歸的實時目標檢測器Faster R-CNN[22]。(4)注意力機制對比算法。ECA-Net[19]、SE[20]、在原有通道注意力的基礎上銜接空間注意力模塊CBAM[23](convolutional block attention module)、移動網(wǎng)絡注意力機制Coordinate Attention[24]。
實驗1在PASCAL VOC數(shù)據(jù)集上的性能對比
PASCAL VOC 挑戰(zhàn)賽[25]是視覺對象的分類識別和檢測的一個基準測試,提供用于訓練模型的訓練集和評估模型的測試集。該數(shù)據(jù)集包含vehicle、household、animal、person 4 個大類,總共20 個小類(加背景21 類)。實驗在VOC2007 和VOC2012 的train+val(16 551張)上進行訓練,使用VOC2007的test(4 952 張)進行測試。訓練過程中,初始學習率為0.000 35,300×300 分辨率下的batch size 設置為32,最大迭代次數(shù)設置為120 000,前500個iteration學習率會逐漸增長,該操作可以加速模型的收斂。當iteration 是60 000、80 000、100 000時,學習率分別乘以0.1。512×512 分辨率下batch size 設置為16,最大迭代次數(shù)設置為160 000,當iteration是80 000、120 000、140 000時,學習率分別乘以0.1。此外,6個用于預測的特征層所對應的先驗框數(shù)量分別為6、6、6、6、4、4。對于300×300輸入的網(wǎng)絡模型的精度變化曲線如圖8所示。
圖8 mAP變化曲線Fig.8 mAP change curve
表2展示了在PASCAL VOC 數(shù)據(jù)集下算法性能對比,采用AP 和mAP 作為評估指標,對于最高單類別目標AP 進行了加粗顯示。對于輸入尺寸為300×300時,RMFE-SSD的平均檢測精度為79.9%,比SSD算法高2.7 個百分點,單類別AP 有12 項最高,同時也高于DSSD、STDN 在內(nèi)的一階段目標檢測模型,相比ION、Faster R-CNN 分別提高了4.3 個百分點、6.7 個百分點。特別是對bottle、chair、plant 等小目標類別上展現(xiàn)了絕對的優(yōu)勢。當輸入尺寸為512×512時,RMFE-SSD的平均檢測精度為81.7%,與SSD512相比提高了2.2 個百分點,同時高于DSSD 在內(nèi)的其他一階段檢測算法。在20 個類別當中有9 個類別的AP 最優(yōu)。這表明了本文模型在不同分辨率下對不同尺度的物體檢測性能提升是有效的,在保證檢測速度的同時減少了漏檢率、誤檢率,提高了檢測精度。
表2 PASCAL VOC 數(shù)據(jù)集上算法性能對比Table 2 Performance comparison of algorithms on PASCAL VOC dataset
實驗2在OAP自制航拍數(shù)據(jù)集上的性能對比
OAP(object aerial photography)自制航拍小目標數(shù)據(jù)集是來自不同傳感器和采集平臺的航拍樣本,由于拍攝距離較遠,圖像中多以小目標為主。其中包含22 761張來自不同傳感器和采集平臺的航拍樣本,包含了車輛、船舶、飛機等13類(加背景14類)小尺度目標。與VOC 數(shù)據(jù)集相比,目標數(shù)量更多、尺寸更小。實驗中使用訓練集(含有10 818張圖片)進行訓練,使用測試集(含有10 943 張圖片)進行測試。訓練過程中,在300×300 分辨率下最大迭代次數(shù)設置為120 000,學習率在80 000和100 000時進行調(diào)整,其他參數(shù)基本與VOC 數(shù)據(jù)集下的訓練參數(shù)設置相同。
實驗中,除了上述實驗的對比算法外,本文還加入了在該數(shù)據(jù)集下具有不錯檢測效果的RSSD[26](rainbow single shot detector)、YOLOv3(you only look once version3)[27]、R-FCN[28](region-based fully convolutional networks)等算法。表3 展示了在OAP航拍數(shù)據(jù)集上的算法性能對比,同樣采用AP和mAP作為評估指標,對于最高單類別目標AP進行了加粗顯示。從實驗結果可以看出,RMFE-SSD 的平均檢測精度為82.7%,比SSD 提高了4.6 個百分點。特別是對于Airplane、Ship、Storage tank 和Tennis court 等小目標,本文算法擁有很大的精度提升,高于其他檢測算法,具有絕對優(yōu)勢。
表3 OAP航拍數(shù)據(jù)集上算法性能對比Table 3 Performance comparison of algorithms on OAP aerial photography dataset
圖9展示了在VOC和OAP航拍數(shù)據(jù)集上對SSD和RMFE-SSD 檢測算法的檢測結果對比,每組對比圖中位于上位置或左側位置的為原始SSD 檢測結果。從圖中可以看出,SSD檢測算法的檢測結果存在檢測不出和漏檢的情況,對遠處目標和密集小目標的檢測效果不好,RMFE-SSD 算法可以很好地處理這些問題。因此,綜合上述實驗表明,RMFE-SSD 檢測模型擁有更好的檢測性能。
圖9 SSD 和RMFE-SSD 在VOC 和OAP數(shù)據(jù)集上的對比Fig.9 Comparison of SSD and RMFE-SSD on VOC and OAP datasets
為了進一步評估RMFE-SSD目標檢測模型中不同模塊的有效性,本文分別對增強特征映射塊、對上下文敏感的特征融合模塊、雙重注意力模塊等進行了消融實驗研究。所有實驗均是使用PASCAL VOC 2007 和PASCAL VOC2012 訓練集進行訓練,使用PASCAL VOC2007 測試集進行測試。表4 展示了使用不同模塊下的檢測結果。
表4 各模塊有效性對比Table 4 Comparison of effectiveness of each module
從表4的第1行可以看出,加入EFB模塊可以使模型的檢測精度提高1.3 個百分點;從第1 行和第2行對比看出,在EFB模塊的基礎上,加入CFB模塊使檢測精度再次提高0.9個百分點,這說明融入上下文信息的特征融合模塊可以有效提高模型的檢測性能;從第2 行和第6 行可以看出,DAB 模塊的加入使模型精度再度提高0.5個百分點。不同的融合方式,模型的檢測性能也是不同的,從第4行和第6行對比看出,采用對應元素相加的融合方式比直接串聯(lián)擁有更好的檢測效果。從第3行和第6行對比看出,將第一個用于預測的特征圖的先驗框數(shù)量調(diào)整為6后,模型的檢測性能有所提高。此外,從第5行和第6行對比看出,將5×5 的卷積核替換為兩個3×3 的卷積核,不僅可以提高檢測的實時性,還能提高模型的檢測精度。綜上所述,本文所提出的相關模塊對模型的檢測性能均起到了積極作用。
在EFB 模塊中,原始特征圖被分為兩部分后進行特征語義的提取。為了比較不同分割比例對模型檢測精度的影響,將分割比例設置為1/4、2/4、3/4、4/4。在實驗中,使用PASCAL VOC2007 測試集測試模型的檢測性能。
實驗結果如表5 所示,從表5 中第3 行和第4 行可以看出,這兩種不同分割比例下檢測精度相同,但是前者的檢測速度快于后者,因此本文算法也采用第3行所示的比例進行分割。
表5 分割比例對模型的影響Table 5 Effect of split ratio on model
為了進一步檢驗DAB 模塊的有效性和合理性,本文選擇了ECA-Net[18]在內(nèi)的幾種具有代表性的注意力機制與本文提出的DAB 模塊進行了對比實驗,表6展示了不同注意力機制下的檢測性能結果。
表6 不同注意力下的檢測性能對比Table 6 Comparison of detection performance under different attention
從表6 中可以看出,本文提出的DAB 模塊可以使得本模型的精度達到79.9%,對模型的檢測精度的提升效果優(yōu)于其他注意力模塊,具有較大優(yōu)勢。
在特征金字塔結構中如何進行有效的尺度變換和如何充分利用全局的上下文信息是提高檢測性能的關鍵問題。本文針對此問題,提出一種引入殘差學習與多尺度特征增強的目標檢測器。首先在網(wǎng)絡中引入基于殘差學習的增強特征映射塊,使得模型更加專注于對象區(qū)域而不是背景,并為有效特征圖提高額外的語義信息;然后采用對上下文信息敏感的特征融合塊,增大有效特征圖的感受野,提高低分辨率下的檢測性能;最后通過雙重注意力塊來抑制背景噪音,側重于沒有學習或者學習程度不足的小物體區(qū)域,進而提高模型的準確性和有效性。為了評估本文模型的性能,將RMFE-SSD 與SSD 和一些基于SSD 改進的模型進行比較,并在PASCAL VOC和OAP兩種數(shù)據(jù)集上進行測試。經(jīng)過對實驗結果對比分析得出,本文算法RMFE-SSD 均有較大的精度優(yōu)勢,具有一定的應用價值和發(fā)展?jié)摿Α?/p>