摘要:
針對通用目標檢測方法在復雜環境下檢測小目標時效果不佳、漏檢率高等問題,本文對SSD小目標檢測算法進行改進。利用訓練損失的反饋作為判斷條件,結合數據增強提高模型對復雜環境的抗干擾能力,降低小目標的漏檢率,在網絡中引入注意力機制,增加SENet (Squeeze-and-Excitation)模塊,對模型中的特征通道進行權重重分配,對無效的特征權重進行抑制,提升有用的特征權重占比。實驗結果表明,相比原SSD算法,改進的SSD算法在不引入過多計算量的情況下,能夠有效彌補訓練過程中小目標監督不到位的不足,在VOC數據集和工地安全帽佩戴數據集上,精度都得到了明顯提升。
1. 引言
目標檢測是計算機視覺中最具有挑戰性的任務,目的是在圖像的復雜背景下找到若干目標,并對每一個目標給出一個精確的目標包圍盒并判斷包圍盒中的目標所屬的類別 [1]。深度學習的興起使得目標檢測得到加速發展,準確性和實時性都得到了提升,如Girshick等人提出的R-CNN、Fast R-CNN算法 [2] [3]、Ren等人提出的Faster R-CNN算法 [4]、Joseph等人提出的YOLO算法 [5] 以及Liu等人提出的SSD (Single Shot MultiBox Detector)算法 [6] 等。其中,小目標檢測是目標檢測領域中一個重要的難點問題,實際應用場景復雜、小目標信息不充分,導致小目標的檢測效果始終不是很好。小目標檢測因而成為計算機視覺領域中的一項具有巨大挑戰性的任務。
上述方法僅對常規的目標檢測問題效果較好,但所提取出的特征對小目標的表示能力較差,檢測效果不佳。MS COCO數據集中將尺寸小于32 × 32像素的目標定義為小目標 [7],大于32 × 32像素小于96 × 96像素的目標定義為中目標,大于96 × 96像素的目標為大目標。Huang等人 [8] 對現階段的檢測器進行調研發現,現階段的目標檢測系統的精度,在小目標上的精度普遍比大目標低10倍,原因主要是由于樣本中的小目標分辨率太低,雖然卷積神經網絡的特征提取能力對于大中目標已經足夠,但是對于小目標還是力不從心,小目標能提供給模型的信息過少也是制約目標檢測發展的瓶頸之一。對此,一系列針對小目標檢測的方法應運而生,小目標檢測因而成為熱點研究領域。
Fu等人 [9] 提出DSSD算法,利用ResNet [10] 替換SSD中的VGG [11] 模型,同時為了減少小目標的漏檢率,加入反卷積層(Deconvolution),將圖像分為更小的格子,但因為ResNet中引入殘差連接等,算法的額外開銷較大,比SSD算法的速度略慢。Singh等人 [12] 從訓練角度切入,在數據層面思考,對數據集進行分析,發現訓練樣本中的小目標在待檢測的圖像中占比較小,于是采用一種多尺度的訓練方式——圖像的尺度歸一化(SNIP),在金字塔模型的每一個尺度上進行訓練,高效利用訓練數據,檢測效果得到顯著提升,但是計算成本巨大。Lin等人 [13] 利用特征金字塔網絡(FPN)融合模型高低層語義信息,增強模型提取的特征對小目標的表達能力。雖然上述方法都在一定程度上提升了小目標的檢測精度,由于網絡模型冗余導致的算法實時性不足、模型輕量化導致的精度不夠、數據量不平衡導致訓練不充分等因素,上述方法在實際場景下的檢測效果仍然不理想。
本文基于SSD方法,利用數據增強和注意力機制設計一種小目標檢測算法,在增加計算量可近似忽略的前提下,提升檢測精度。首先,對訓練過程進行優化,采用數據增強的方法加強模型對小目標的監督,以每次迭代過程中的各項目標損失占比為判斷依據,確定是否在下次迭代過程中增強輸入數據,若在當前迭代中小目標貢獻的損失占比小于給定閾值,則下次迭代輸入為增強圖像,反之輸入原圖像;此外加入SENet模塊,提升有效的特征信息權重,抑制作用較小的特征信息權重。實驗結果表明,改進后的SSD算法優于原SSD算法,在實際場景下也能有很好的檢測效果。
2. SSD算法
2.1. 網絡模型
SSD的主要特點是在不同尺度上進行檢測與識別,其網絡模型分為基礎網絡和附加網絡,在基礎網絡的末端添加了幾個特征層作為附加網絡用于預測不同尺度目標以及包圍盒的偏移量和置信度。該算法以VGG-16模型作為特征提取網絡并將其全連接層替換為卷積層,網絡輸入RGB三通道圖像,附加網絡附加4個卷積層。為提高目標檢測精度,SSD算法在不同的尺度上進行檢測,如圖1所示,圖像輸入網絡后從左至右得到6層不同尺寸的特征圖(feature map) Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2,尺寸分別為38 × 38、19 × 19、10 × 10、5 × 5、3 × 3、1 × 1,借鑒Faster RCNN算法中的錨點思想,在特征圖上生成不同尺度不同寬高比的先驗框,而后通過非極大抑制(NMS)等方法輸出最終目標類別和定位結果。
Figure 1. SSD network model
圖1. SSD網絡模型
2.2. SSD優缺點分析
作為單步檢測器,SSD算法以回歸的方式進行分類和定位,并結合Faster RCNN中的錨點思想進行預測,其算法中的先驗框可以使得模型更快的收斂,降低訓練成本。若沒有采用錨點,則直接回歸預測目標的坐標位置,模型難以收斂且計算成本巨大。同時SSD算法選取了模型中的六個特征圖進行多尺度檢測,各個卷積層所輸出的特征圖包含的信息是不同的,深層特征尺寸小,包含的語義信息更豐富,適合檢測大目標,而淺層特征尺寸大,細節紋理特征信息更為豐富,對小目標的檢測很有幫助,其采用的多尺度檢測一定程度上是有利于提升小目標的檢測精度的。
雖然SSD采用了多尺度的檢測機制,利用VGG-16作為網絡模型,通過Conv4_3的大尺度特征圖來預測小目標,但是該層離頂層距離仍然較遠,一個32 × 32的目標經過卷積后在Conv4_3特征圖上大小僅為4 × 4,如此少的像素信息難以對目標進行預測。另一方面,雖然采用了六個特征圖進行預測,但是特征與特征之間都是獨立的,實際上,模型的底層高分辨率特征由于經過的卷積運算較少,包含更多的紋理和細節信息,但包含的語義信息不足,難以區分目標和背景,而高層低分辨率特征語義信息豐富,但卷積下采樣過程中丟失了大量細節信息。同時,淺層特征圖中包含大量通道,不同通道對于網絡的判斷也有差別,有些通道包含的信息更為豐富,有些則不那么重要,SSD算法并沒有在通道上進行注意力關注。綜上,SSD算法在實際應用場景下,對于小目標的檢測效果并不理想。
3. 算法改進
3.1. 數據增強
Mosaic方法 [14] 是由Bochkovskiy等人提出的一種數據增強方法,可以當作是Cutmix [15] 方法的改進版。Cutmix算法對一張圖像進行操作,在待增強圖像上隨機生成一個裁剪框,在裁剪框內填充訓練集中其它數據中相應的位置像素,可以提高訓練的效率。而Mosaic方法在Cutmix基礎上再加入兩張圖像,如圖2所示,采用4張圖像進行混合,極大程度地豐富了訓練圖像的背景以及上下文信息,可以一定程度降低小目標的漏檢率,同時4張圖像的混合使得mini-batch不需要太大,可降低硬件需求。
Figure 2. Mosaic data enhancement example
圖2. Mosaic數據增強示例
3.2. 訓練優化
目標在現實生活中其實是隨處可見的,比如遠距離的交通標志,空中大背景下的小鳥等。MS COCO數據集中設定小于32 × 32大小的目標即為小目標,小目標雖然是很常見的,但其分布卻是不可預測的。MS COCO數據集中,有41.43%的目標是小目標,遠遠高于其他兩種尺度的目標。然而,包含小目標的圖像只占訓練集所有圖像的51.82%,而包含大尺度目標和中等尺度目標的圖像占比分別為70.07%和82.28%。也就是說,現有的環境下,待檢測的大部分目標都是小目標,但是幾乎一半的圖像是不包含小目標的。這種訓練樣本的不平衡,也就導致訓練的不平衡,嚴重阻礙了訓練過程的推進。因此,考慮結合數據增強的策略從訓練過程中去改善這種不平衡。模型在訓練過程中大中小目標都是會反饋一定的損失進行優化驅動的,而在這一過程中,小目標所貢獻的損失往往偏低,這樣一來,訓練好的模型對于大中目標的檢測效果自然更好,這里提出一種優化方法,根據小目標所貢獻的損失占總損失的比例來進行訓練優化,如圖3所示。假定某次迭代d中,來自小目標貢獻的損失占總損失的比例小于給定閾值μ(即表示這次迭代小目標受到的監督不足),則第d +1次迭代采用數據增強后的圖像輸入,反之,則采用原常規訓練圖像(此處閾值根據經驗設置,經過多次不同閾值的設置對比,取0.1最為合適)。對于目標o,其面積So可以近似于它的包圍盒寬高之積ho×wo,S表示第d次迭代中的小目標,MS COCO數據集規定面積小于32 × 32的目標即為小目標,LdSLSd為第d次迭代下小目標的總損失,LdLd為第d次迭代下的總損失,μdSμSd為小目標的損失比。這種優化方法能夠損失分布不均勻以及訓練樣本不平衡的問題。
Figure 3. Training optimization pipeline
圖3. 訓練優化流程圖
3.3. 模型優化
SENet (Squeeze-and-Excitation Networks) [16] 是Hu等人結合注意力機制提出的一種網絡結構,Hu等人曾憑借該結構奪得ImageNet2017競賽圖像分類任務冠軍。該網絡的核心思想在于,通過學習的方式,自動獲取網絡中每一個特征通道的重要程度,而網絡也可以依據這個重要程度去提升有用的特征通道重要性并且抑制對于當前任務用處不大的通道重要性。輸入特征X,經過一系列卷積池化操作得到特征通道數為C的特征U。首先對特征U進行壓縮(Squeeze)操作,沿著空間維度進行特征壓縮,得到通道級的全局特征,這個特征某種程度上具備全局感受野,且輸出的維度與輸入的特征通道數相匹配,表示在特征通道上響應的全局分布,可以讓較淺的層獲得更為全面的感受野。而后進行激勵(Excitation)操作,學習各個通道之間的關系,通過參數w為每個特征通道生成權重。最后再進行權重的重新分配,完成在通道維度上對于特征的重標定,使得模型對于各個通道的特征更有判別能力。
因此,考慮到SSD算法模型中不同的通道對于小目標的檢測也有著不同影響,也可以通過增強有效通道的特征權重,抑制無效通道的特征權重,從而提升SSD算法對于小目標檢測的精度。所以選擇在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2層之后加入SE模塊對特征圖的特征通道進行權重重分配,改進后的結構圖如圖4所示。
4. 實驗
實驗平臺采用如下配置:Ubuntu18.04操作系統,基于Pytorch1.3框架搭建實驗,GPU顯卡型號為RTX2080ti,為充分展現實驗效果,采用兩套數據集,分別為Pascal VOC數據集以及SHWD數據集(工地場景安全帽數據集),其中,為避免產生過擬合等由于數據量不充足造成的問題,選用VOC2007和VOC2012數據集的訓練集作為訓練集,在VOC2012數據集的測試集上進行測試。SHWD數據集提供了用于安全帽佩戴和人頭檢測的數據,包括7581張圖像,其中9044個佩戴安全帽的樣本和111514個正常頭部樣本。
實驗采用VOC2007數據集和VOC2012數據集進行訓練,選取目前幾個比較流行的目標檢測方法進行對比,包括YOLO系列、SSD系列、RCNN系列,可以看出算法的平均精度得到了有效的提高,如表1所示。
Figure 4. Improved network structure diagram
圖4. 改進后的網絡結構圖
Table 1. Comparison of mAP indexes of several target detection algorithms
表1. 幾種目標檢測算法mAP指標對比
具體各類的精度如表2所示,在VOC2007驗證集上進行驗證,將本文改進的SSD算法與原算法對比。可以得知,改進后的模型在bird、bottle、plants、chair等不同小目標類別上相比于原SSD算法均有著不同程度的提高。
算法名稱 | 數據集 | mAP(%) | aero | bike | bird | boat | bottle | bus | car | cat | chair |
SSD | 07 + 12 | 77.6 | 79.9 | 85.1 | 76.1 | 71.7 | 54.0 | 85.6 | 85.9 | 87.1 | 58.6 |
Ours | 07 + 12 | 80.6 | 83.8 | 87.7 | 79.1 | 75.2 | 59.2 | 88.9 | 87.7 | 88.3 | 64.2 |
cow | table | dog | horse | motorbike | person | plant | ship | sofa | train | tv | |
SSD | 83.6 | 76.3 | 85.2 | 87.3 | 86.2 | 79.1 | 50.3 | 78.9 | 77.6 | 87.5 | 77.1 |
Ours | 85.0 | 77.6 | 86.4 | 88.6 | 86.8 | 81.9 | 57.9 | 81.7 | 82.1 | 88.7 | 81.2 |
Table 2. Comparison of different types of AP indexes
表2. 不同類別的AP指標對比
圖5是原SSD算法與本文改進算法的效果對比,可以看出,原SSD算法對于chair、bottle、plant等小尺寸目標檢測效果較差,漏檢率較高,而改進后的SSD算法一定程度上降低了小目標的漏檢率,并且提升了檢測小目標的精度。
Figure 5. Comparison of SSD algorithm and improved SSD algorithm
圖5. SSD算法效果與改進SSD算法效果對比
除了在標準公共數據集下進行比較,為了進一步探究算法的實際應用有效性,在相同的實驗環境下,通過SHWD數據集中的安全帽佩戴進行訓練,將訓練完成后的模型進行測試,測試指標如表3所示,可以看出改進后的算法在該數據集上的平均精度是要高于SSD算法的,同時在識別安全帽是否佩戴的兩種情況下,精度都是要高于原SSD算法的。如圖6所示,圖6左側代表改進SSD算法的效果,圖6右側表示原SSD算法效果。由圖6可以看出,工地場景下遮擋情況較多,原SSD算法容易因為遮擋而沒有檢測到相應目標,甚至可能因為環境光線等因素而出現誤判,而改進SSD算法在遮擋情況下仍然成功檢測到相應目標。
綜合上述實驗可得,本文提出的改進SSD算法相較改進前的算法,一定程度上降低了小目標的漏檢率,同時精度得到有效提高,對于小目標以及遮擋目標的檢測效果也更好,在實際的應用場景下如文中選用的工地環境下,也能得到充分應用,具有一定的實用價值。
算法名稱 | AP (%) | mAP(%) | |||
佩戴安全帽 | 未佩戴安全帽 | ||||
SSD300 | 86.5 | 87.6 | 87.1 | ||
SSD512 | 87.7 | 88.5 | 88.1 | ||
Ours | 90.6 | 91.1 | 90.9 | ||
Table 3. Comparison of two methods in construction site
表3. 工地場景下兩種方法對比
Figure 6. Comparison of two methods in construction site
圖6. 工地場景下兩種方法效果對比
5. 結語
本文針對小目標檢測效果不佳、漏檢率高等問題,對SSD算法進行改進,從小目標的訓練損失占比切入,對每次迭代過程中的損失占比進行監督,結合一些數據增強方法增強了小目標的訓練效果,在計算量增加成本可以忽略不計的情況下提高了檢測效果。并在模型中引入SENet模塊,篩選通道間的注意力并學習通道之間的相關性,對每層的特征通道進行權重重分配,最終改進的SSD算法在小目標的檢測效果上得到了很大的改善,同時在安全帽佩戴數據集上表現優異,在實際場景下也具備一定的應用價值。未來將繼續研究訓練過程的優化和網絡結構的調整以及從多尺度的方面入手,爭求進一步提高精度。
審核編輯:湯梓紅
-
算法
+關注
關注
23文章
4607瀏覽量
92840 -
檢測
+關注
關注
5文章
4480瀏覽量
91443 -
SSD
+關注
關注
21文章
2857瀏覽量
117370
發布評論請先 登錄
相關推薦
評論