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