王冬麗,廖春江,牟金震,周 彥
1.湘潭大學(xué) 自動(dòng)化與電子信息學(xué)院,湖南 湘潭 411105
2.上海航天控制技術(shù)研究所,上海 201109
目標(biāo)檢測技術(shù)在人民生產(chǎn)生活中有著廣泛的應(yīng)用,如目標(biāo)跟蹤與識(shí)別、行人檢測、人臉識(shí)別、無人駕駛、醫(yī)療診斷、智能監(jiān)控系統(tǒng)等。在小目標(biāo)檢測中,由于目標(biāo)背景復(fù)雜度高、光照或遮擋、小目標(biāo)邊緣信息不顯著等,使得小目標(biāo)檢測效果較差?;诖?,針對(duì)目標(biāo)檢測領(lǐng)域中小目標(biāo)的檢測能力仍需要進(jìn)一步提高。
近年來,深度學(xué)習(xí)進(jìn)入快速發(fā)展階段,圖像處理技術(shù)得到不斷提高?;诰矸e神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的圖像檢測方法[1]研究已成為目標(biāo)檢測領(lǐng)域的熱點(diǎn)問題。目前,基于深度學(xué)習(xí)的方法已成為機(jī)器視覺研究領(lǐng)域的重要方法[2-3],目標(biāo)檢測中采用深度學(xué)習(xí)方法提取的深度特征較傳統(tǒng)的機(jī)器學(xué)習(xí)方法提取人工特征能更好表征目標(biāo)特性[4]。此外,深度學(xué)習(xí)方法的檢測精度相比機(jī)器學(xué)習(xí)方法有顯著的提高,同時(shí)能夠讓提取的目標(biāo)特征具有更強(qiáng)魯棒性[5],如SSD[6](Single Shot Multibox Detector)、DSSD[7](Deconvolutional Single Shot Detector)、DSOD[8](Deeply Supervised Object Detector)、RSSD[9](Rainbow SSD)、FSSD[10](Feature Fusion Single Shot Multibox Detector)、YOLO[11](You Only Look Once)、R-CNN[12](Region-based Convolution Neural Networks)、SPPnet[13](Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)、Mask-RCNN[14]、Fast R-CNN[15]、Faster R-CNN[16]、R-FCN[17](Region-based Fully Convolutional Networks)模型等。
為了提高SSD 算法對(duì)小目標(biāo)的檢測精度,Liu 等[3]在SSD模型上做了相關(guān)改進(jìn)工作,充分利用深淺層特征信息,使用殘差網(wǎng)絡(luò)提升特征網(wǎng)絡(luò)的表征能力,提出了DSSD模型,但是該方法極大降低了檢測速度。Bharat等[18]提出 SNIP(Scale Normalization for Image Pyramids)算法,該算法主要思想是對(duì)特征圖進(jìn)行不同倍數(shù)上采樣,通過實(shí)驗(yàn)給出相對(duì)最優(yōu)的檢測小目標(biāo)的特征圖尺寸,最后通過Soft-NMS[19]融合不同分辨率下的檢測結(jié)果,效果顯著。Liu 等提出RFB[20](Receptive Field Block),將RFB與SSD結(jié)合,有效增大感受野大小,進(jìn)一步提高網(wǎng)絡(luò)模型特征提取能力,提高了目標(biāo)檢測準(zhǔn)確率。Zhu等提出的FSAF[21](Feature Selective Anchor-Free)模型使得目標(biāo)能夠自動(dòng)選擇最合適的特征,實(shí)現(xiàn)模型的自動(dòng)化學(xué)習(xí),F(xiàn)SAF模塊集成到SSD網(wǎng)絡(luò)結(jié)構(gòu)中,進(jìn)一步提高了小目標(biāo)檢測精度。
本文提出了改進(jìn)SSD的目標(biāo)檢測方法,主要用于改進(jìn)SSD 在小目標(biāo)檢測上的不足。該方法先對(duì)SSD 模型深層特征層進(jìn)行雙線性插值放大與淺層特征層進(jìn)行特征融合,充分利用深層特征層語義信息以提升淺層特征網(wǎng)絡(luò)對(duì)小目標(biāo)的表征能力。再對(duì)中層特征層卷積前與卷積后的特征層進(jìn)行特征融合操作,使融合后的特征層語義信息更強(qiáng),提升中層網(wǎng)絡(luò)對(duì)中目標(biāo)的檢測能力。此外,本文還將先驗(yàn)框尺寸相對(duì)原圖比例進(jìn)行調(diào)整,并調(diào)整SSD模型相應(yīng)超參數(shù)值,進(jìn)而產(chǎn)生一組對(duì)小目標(biāo)檢測能力更強(qiáng)的新的網(wǎng)絡(luò)模型。最后在新的網(wǎng)絡(luò)模型上進(jìn)行目標(biāo)的分類與定位任務(wù)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后網(wǎng)絡(luò)模型對(duì)中目標(biāo)和小目標(biāo)具有更強(qiáng)的檢測能力,在小目標(biāo)Bottle、Plant、Cow、Boat 等類的目標(biāo)檢測精度有較大的提高,并提升了整體目標(biāo)的平均檢測準(zhǔn)確率。
SSD 網(wǎng)絡(luò)模型以VGG16 網(wǎng)絡(luò)作為基礎(chǔ)模型,SSD網(wǎng)絡(luò)模型如圖1 所示。該算法主要思想是加入了RPN網(wǎng)絡(luò)的特征金字塔[22]的檢測方式。由于深層特征圖尺寸小,濾波器感受野大,語義特征信息豐富,可更好地檢測大物體;而淺層網(wǎng)絡(luò)特征圖尺寸大,濾波器感受野小,細(xì)節(jié)特征信息豐富,因此更適合檢測小物體。同時(shí)SSD目標(biāo)檢測方法結(jié)合了YOLO的回歸思想和Faster-RCNN中的Anchor boxes[23]機(jī)制,通過綜合利用多尺度特征層各層優(yōu)勢互補(bǔ)的特點(diǎn),解決了僅僅利用單層特征層目標(biāo)檢測算法對(duì)檢測網(wǎng)絡(luò)的不足。最后檢測效果也要優(yōu)于單特征層目標(biāo)檢測算法。
圖1 SSD網(wǎng)絡(luò)模型
SSD 方法采用了多尺度單發(fā)射擊的特征層進(jìn)行分類和定位,根據(jù)SSD原理,Conv4_3尺寸單獨(dú)設(shè)置,其最小尺寸設(shè)置為Smin/2,即30,最大尺寸為60。對(duì)后先驗(yàn)框尺寸,本文采用式(1)進(jìn)行計(jì)算。即m取值為5 層特征圖,各特征層所產(chǎn)生的min_size和max_size如表1所示。
表1 各特征層先驗(yàn)框尺寸大小
式中,m=5,Smin=0.2,Smax=0.9,Sk表示先驗(yàn)框尺寸相對(duì)原圖片比例。
SSD 默認(rèn)框長寬比采用tr∈{1,2,3,1/2,1/3} ,以增強(qiáng)先驗(yàn)框長寬比對(duì)目標(biāo)形狀的魯棒性。針對(duì)先驗(yàn)框?qū)捀弑萾=1 的先驗(yàn)框,添加對(duì)特征圖Conv4_3、Conv8_2、Conv9_2不使用長寬比為3、1/3的先驗(yàn)框,而在特征圖Conv7、Conv6_2、Conv7_2都使用6個(gè)默認(rèn)框,使用上述所有長寬比。默認(rèn)框大小計(jì)算如圖2所示,每個(gè)先驗(yàn)框長度、寬度的計(jì)算公式如下:
圖2 先驗(yàn)框尺寸大小
網(wǎng)絡(luò)訓(xùn)練時(shí)的總體目標(biāo)損失函數(shù)[24]是先驗(yàn)框和邊界框的位置誤差和分類的置信度誤差的加權(quán)和,即:
式中,N代表正樣本數(shù);x代表當(dāng)前預(yù)測框的類別匹配信息;c代表類別置信度預(yù)測信息;l為預(yù)測框的位置信息;g為真實(shí)標(biāo)簽值框位置信息參數(shù);α為權(quán)重系數(shù)。位置誤差的定義如下:
類別置信度損失函數(shù)如下:
由于SSD模型結(jié)果與圖像金字塔結(jié)構(gòu)類似,淺層網(wǎng)絡(luò)特征圖尺寸大,感受野小,細(xì)節(jié)特征信息豐富,適合檢測小目標(biāo),深層網(wǎng)絡(luò)特征圖尺寸小,感受野大,語義特征信息豐富。因此對(duì)深淺層特征層進(jìn)行融合能夠提高淺層網(wǎng)絡(luò)語義信息,降低淺層網(wǎng)絡(luò)對(duì)小目標(biāo)的誤分率,增強(qiáng)淺層網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測能力。模型改進(jìn)后的淺層特征可視化如圖3 所示?;赟SD 網(wǎng)絡(luò)模型的上述特點(diǎn),本文提出了特征融合方法。該方法充分融合深淺層特征信息以提升網(wǎng)絡(luò)模型對(duì)小目標(biāo)的檢測能力。為更好地檢測小目標(biāo),本文將先驗(yàn)框尺寸相對(duì)原圖比例進(jìn)行調(diào)整,并調(diào)整SSD 模型相應(yīng)超參數(shù)值,進(jìn)而產(chǎn)生一組對(duì)小目標(biāo)檢測能力更強(qiáng)的新的網(wǎng)絡(luò)模型,最后在新的網(wǎng)絡(luò)模型上進(jìn)行目標(biāo)的分類與定位任務(wù)。改進(jìn)后SSD 網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖3 特征層可視化
圖4 改進(jìn)后的SSD網(wǎng)絡(luò)結(jié)構(gòu)圖
本文改進(jìn)的SSD 模型得到的Conv4_3_1、FC7_1、Conv6_2_1、Conv7_2_1特征增強(qiáng)模塊如圖5所示。
由于StretchBlt函數(shù)實(shí)現(xiàn)圖像放大縮小時(shí)容易出現(xiàn)失真現(xiàn)象,采用反卷積操作容易產(chǎn)生重疊現(xiàn)象,如圖6所示。具體來說,當(dāng)卷積核尺寸不能夠被Stride整除時(shí),反卷積容易出現(xiàn)不均勻重疊的情況。理論上,神經(jīng)網(wǎng)絡(luò)可以通過詳細(xì)權(quán)值來避免這種情況的發(fā)生,但在實(shí)際情況中,神經(jīng)網(wǎng)絡(luò)基本上不能避免該現(xiàn)象的發(fā)生。因此本文采用雙線性插值縮放圖像,提高圖像的分辨率和縮放質(zhì)量。特征融合具體步驟如下:本文采用特征融合的思想,在SSD模型的基礎(chǔ)框架上,首先對(duì)Conv3_3、Conv4_3、FC7、Conv6_1、Conv7_1、Conv9_2 這些不同大小特征層,用padding=0 的1×1 卷積核在這些特征圖上做卷積操作,保證了融合時(shí)的通道統(tǒng)一。然后采用雙線性插值操作使特征圖大小統(tǒng)一(因?yàn)檫@里的融合是不同level的層之間的融合,特征圖尺寸各不相同,采用雙線性插值將所有的source特征圖轉(zhuǎn)換成統(tǒng)一的大?。W詈蟛捎眠B接融合的方式得到了Conv4_3_1、FC7_1、Conv6_2_1、Conv7_2_1 新的不同大小的特征圖,如圖5 所示。改進(jìn)后的模型較SSD模型的特征層語義信息更豐富,能更好表征目標(biāo)的特性,對(duì)輸入圖片(貓),SSD 模型與改進(jìn)后模型的淺層可視化特征圖對(duì)比效果如圖7 所示。與后續(xù)小節(jié)的改進(jìn)點(diǎn)相結(jié)合,對(duì)小目標(biāo)Bottle、Chair、Plant 檢測精度分別提升8.7 個(gè)百分點(diǎn)、3.4 個(gè)百分點(diǎn)和7.1個(gè)百分點(diǎn)。小目標(biāo)檢測準(zhǔn)確率有較大幅度提升。深層特征與淺層特征層融合能夠提高小目標(biāo)檢測能力。由于Conv8_2、Conv9_2特征層尺寸過小,且包含語義信息較強(qiáng),不再進(jìn)行特征增強(qiáng)。
圖5 本文模型的特征增強(qiáng)模塊
SSD 模型將 Conv4_3、FC7、Conv6_2、Conv7_2、Conv8_2、Conv9_2 六個(gè)特征圖作為目標(biāo)進(jìn)行分類與定位。特征圖先驗(yàn)框的個(gè)數(shù)預(yù)測依次為4、6、6、6、4、4。先驗(yàn)框長寬比依次為[[2],[2,3],[2,3],[2,3],[2],[2]],先驗(yàn)框尺度計(jì)算公式如式(1)所示。式中Sk表示先驗(yàn)框的尺寸相對(duì)于原圖的比例,Smin和Smax表示比例的最小值與最大值。為了更好地檢測小目標(biāo),將Smin和Smax的值調(diào)整為0.15和0.95,這樣能夠有效避免由于目標(biāo)過小導(dǎo)致在訓(xùn)練階段真實(shí)標(biāo)簽無法找到相應(yīng)的先驗(yàn)框與之匹配的問題。尺寸調(diào)整后的先驗(yàn)框大小如表2所示。
圖7 淺層特征圖可視化對(duì)比
表2 本文先驗(yàn)框尺寸大小
訓(xùn)練本文算法所采用的損失函數(shù)、困難樣本挖掘策略及數(shù)據(jù)增強(qiáng)策略與SSD算法相同;訓(xùn)練過程中算法的學(xué)習(xí)率與SSD 算法保持一致。本文中預(yù)測框的IOU 設(shè)置為0.45,NMS設(shè)置為0.4。
實(shí)驗(yàn)基于Linux操作系統(tǒng)Ubuntu16.04,在Caffe平臺(tái)上完成訓(xùn)練與測試工作。GPU顯卡型號(hào)為GTX1080Ti,參數(shù)Batchsize=16。
為避免訓(xùn)練過程中數(shù)據(jù)量的不足,造成過擬合問題,本算法選用PASCAL VOC2007+PASCAL VOC2012訓(xùn)練數(shù)據(jù)部分作為訓(xùn)練集,在PASCAL VOC2007 測試數(shù)據(jù)集上進(jìn)行測試。
首先,改進(jìn)的算法模型基于SSD 模型,因此采用訓(xùn)練好的SSD模型作為本文的預(yù)訓(xùn)練模型。然后在VOC2007和VOC2012 訓(xùn)練集上進(jìn)行訓(xùn)練。最后在VOC2007 測試集上測試改進(jìn)后的目標(biāo)檢測算法。在拓展實(shí)驗(yàn)中,從網(wǎng)上搜集相應(yīng)的圖像數(shù)據(jù),用訓(xùn)練好的改進(jìn)后的SSD算法和SSD算法直接進(jìn)行圖像目標(biāo)檢測,直觀表明改進(jìn)后的SSD檢測算法優(yōu)于SSD算法。
PASCAL VOC2007是視覺對(duì)象分類識(shí)別和檢測的20類別的標(biāo)準(zhǔn)數(shù)據(jù)集,表3為PASCAL VOC 2007數(shù)據(jù)集的具體類別。
表3 PASCAL VOC2007數(shù)據(jù)集目標(biāo)類別
為了驗(yàn)證改進(jìn)模型的檢測效果,在PASCAL VOC2007測試數(shù)據(jù)集上,將改進(jìn)后的算法與當(dāng)前一系列優(yōu)異目標(biāo)檢測算法進(jìn)行比較,通過統(tǒng)計(jì)結(jié)果可以得出,在這些算法中,本文算法平均準(zhǔn)確率(mAP)有著顯著的提高,如表4所示。
表4 PASCAL VOC2007測試集mAP指標(biāo)測試結(jié)果
在PASCAL VOC2007(著名的公開圖像數(shù)據(jù)集,其中包含了Bottle、Chair、Plant類比較典型的小尺寸目標(biāo))數(shù)據(jù)集上進(jìn)行驗(yàn)證實(shí)驗(yàn),在每一類目標(biāo)檢測精度上,本文將改進(jìn)后的算法與SSD 算法進(jìn)行比較,統(tǒng)計(jì)結(jié)果如表5所示。
表5 PASCAL VOC2007測試集單個(gè)類別檢測精度%
由表5 數(shù)據(jù)可知。改進(jìn)后的模型在mAP 上較SSD提高了3.4個(gè)百分點(diǎn),mAP為0.808。在每一類目標(biāo)檢測精度上均優(yōu)于SSD 目標(biāo)檢測算法。對(duì)小目標(biāo)Bottle、Chair、Plant檢測精度分別提升8.7個(gè)百分點(diǎn)、3.4個(gè)百分點(diǎn)和7.1個(gè)百分點(diǎn)。
相比于圖像目標(biāo)檢測,視頻檢測是比單張圖片檢測多了時(shí)間上下文信息。在本文實(shí)驗(yàn)環(huán)境中,將SSD模型與改進(jìn)后的SSD模型在小視頻上的檢測速度進(jìn)行對(duì)比,如表6所示。SSD模型每秒檢測27幀圖像,而本文改進(jìn)后SSD 模型每秒檢測23 幀圖像,具有良好的實(shí)時(shí)性。相比于SSD 模型,改進(jìn)模型的檢測速度略有下降,這是由于改進(jìn)所采用的方法在高低層特征圖進(jìn)行融合操作時(shí)使得模型計(jì)算量有所增加,從而影響模型的檢測速度。
表6 不同算法檢測速度對(duì)比f/s
除了在標(biāo)準(zhǔn)的訓(xùn)練庫和測試庫進(jìn)行算法性能的比較外,為進(jìn)一步驗(yàn)證改進(jìn)后的SSD 算法的有效性,通過從網(wǎng)上搜集相應(yīng)的圖像數(shù)據(jù),用訓(xùn)練好的改進(jìn)SSD算法和SSD 算法直接進(jìn)行圖像目標(biāo)檢測,結(jié)果如圖8 所示。圖8右側(cè)圖片代表改進(jìn)SSD算法的測試結(jié)果,左側(cè)圖片表示傳統(tǒng)SSD算法的測試結(jié)果,通過分析對(duì)比兩組測試圖片的結(jié)果,直觀表明了改進(jìn)后SSD檢測算法優(yōu)于傳統(tǒng)SSD算法。
從圖8 可以看出,傳統(tǒng)SSD 目標(biāo)檢測算法在Boat、Bottle、Cow等中小尺寸目標(biāo)上檢測效果差,大部分目標(biāo)都沒有檢測出來,而改進(jìn)后的SSD檢測算法在中小目標(biāo)檢測效果上相比較于SSD 模型方法有較好的改善。SSD目標(biāo)檢測算法對(duì)小目標(biāo)漏檢率高,而改進(jìn)后的SSD在很大程度上降低了小目標(biāo)漏檢率,提高了對(duì)小目標(biāo)檢測的準(zhǔn)確率。綜合上述實(shí)驗(yàn),改進(jìn)后的算法成功檢測到大多數(shù)SSD算法沒有檢測到的小目標(biāo),在一定程度上降低了小目標(biāo)的漏檢率,提高了平均檢測準(zhǔn)確率。
圖8 SSD模型
基于特征融合方法,本文對(duì)SSD的網(wǎng)絡(luò)框架進(jìn)行了改進(jìn),得到了對(duì)小目標(biāo)檢測能力更強(qiáng)的網(wǎng)絡(luò)結(jié)構(gòu)。同時(shí)本文對(duì)先驗(yàn)框尺寸和超參數(shù)值進(jìn)行自適應(yīng)調(diào)整。實(shí)驗(yàn)結(jié)果證明了改進(jìn)方法的有效性。