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