周德良
摘 要:傳統(tǒng)目標檢測方法存在準確率低、可靠性差、效率低等問題,無法滿足對大量圖片準確、高效處理的需求。對SSD網(wǎng)絡結構進行改進,刪除原網(wǎng)絡最后兩個預測層,對保留各預測層的默認框個數(shù)和寬高比進行優(yōu)化,同時對保留的最后一個預測層的網(wǎng)絡參數(shù)進行改進。改進后的SSD網(wǎng)絡減少了網(wǎng)絡參數(shù)和計算量,對存在遮擋、目標較小等情況的圖片數(shù)據(jù)具有更好的檢測精度和檢測效果,同時模型檢測的mAP提高了約5.1%。改進后的網(wǎng)絡模型解決了傳統(tǒng)方法的不足,可以實時、準確、高效地對大量圖片數(shù)據(jù)進行目標檢測處理。
關鍵詞:SSD網(wǎng)絡;目標檢測;預測層;默認候選框;損失函數(shù)
DOI:10. 11907/rjdk. 192082 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP301文獻標識碼:A 文章編號:1672-7800(2020)005-0052-04
0 引言
目標檢測[1-4](Object Detection)是利用圖像處理與模式識別等理論和方法,檢測并確定圖像中存在的目標對象及其語義類別,同時在圖像中標定出目標對象位置的檢測技術。SSD目標檢測[5-8]通過多層表示對數(shù)據(jù)間的復雜關系進行建模,并通過組合低級特征以形成更加抽象的高級特征,從而完成對數(shù)據(jù)特征的提取,并基于已提取特征,利用訓練好的檢測模型對新樣本進行目標檢測。其具有很強的建模和推理能力,能夠有效、準確地解決許多復雜的目標檢測問題。目標檢測具有廣闊的應用前景和較高的市場價值,其不僅可以應用于智能視頻監(jiān)控、無人駕駛、機器人導航、行人檢測[9]等領域,也可以應用于人體行為識別、圖像語義分割、事件檢測等更復雜的領域。
傳統(tǒng)目標檢測方法[10-11]主要采用特征提取+分類模式,首先將目標從視頻或圖片中分割出來并對其進行特征提取,將提取到的特征與標準設計特征進行比對,然后利用SVM[12]、Adaboost[13]等分類器進行類別判斷。傳統(tǒng)方法存在準確率低、可靠性差、效率低等問題,無法對傳播媒介迅速發(fā)展所產(chǎn)生的大量圖片進行準確、高效處理。本文基于改進的SSD網(wǎng)絡對圖片數(shù)據(jù)進行學習訓練與目標檢測,通過優(yōu)化網(wǎng)絡結構提高模型檢測性能,旨在滿足對大量圖片數(shù)據(jù)進行準確、高效地目標檢測需求。
1 SSD
SSD[5-8](Single Shot MultiBox Dector)是2016 在ECCV上提出的一種目標檢測算法,為目前主要的目標檢測框架之一。SSD采用了YOLO[14-15]的回歸思想,將目標檢測轉化為簡單的回歸問題進行處理;SSD采用Faster RCNN[16]中的Anchor機制,選取不同尺度和長寬比的默認框;同時,SSD采用基于特征金字塔(Pyramidal Feature Hierachy)的檢測方式,在不同尺度的特征圖上同時進行Softmax分類和位置回歸。相比Faster RCNN,SSD具有顯著速度優(yōu)勢,而相比YOLO,其又具有顯著的mAP優(yōu)勢。
1.1 SSD網(wǎng)絡結構
SSD網(wǎng)絡架構如圖1所示,主要由位于前端的基礎網(wǎng)絡部分和位于后端的附加特征提取部分組成。其中,基礎網(wǎng)絡部分采用VGG-16[17]分類模型去除分類層的卷積網(wǎng)絡,主要用于提取目標的初級特征。該部分包含13個卷積層,在對尺寸為300×300 的輸入圖像進行卷積運算后可得到512張19×19的特征圖。附加特征提取部分是一組級聯(lián)的卷積神經(jīng)網(wǎng)絡,主要用于提取目標的高級特征。該部分包含10個卷積層,其中前兩個卷積層Conv6和Conv7分別由VGG-16模型中全連接層Fc6與Fc7通過下采樣和 atrous方法修改而成,同時去除了VGG-16中的dropout層和分類層,并將池化層pool5由原來的2×2-s2?更改為3×3-s1;其余8層為格外創(chuàng)建的卷積層,分為4組,每一組都先使用1×1的卷積核降通道,再使用3×3 的卷積核增通道。
1.2 SSD檢測機制
SSD目標檢測機制主要以不同尺度的特征圖和默認候選框修正作為檢測基礎,具體內容如下:
SSD網(wǎng)絡選取conv4_3、fc7、conv8_2、conv9_2、conv10_2、conv11_2等6個卷積層作為目標檢測的預測層,對這6個預測層不同尺度的特征圖同時進行Softmax分類和位置回歸。針對每一層特征圖,選取若干不同大小、不同長寬比的默認候選框,其中能與Ground Truth物體框相匹配的默認候選框就是正樣本,負責對待檢目標進行分類與定位,反之為負樣本,與背景相匹配。為了保證正負樣本盡量平衡,采用Hard Negative Mining方法對負樣本進行抽樣,以保證正負樣本比例接近1∶3。默認候選框大小隨預測層深度增加不斷增大,因此淺層預測層負責預測小目標,深層預測層負責預測大目標。利用前向傳播在不同尺度特征圖上回歸得到默認候選框的修正值,據(jù)此對默認候選框進行修正可得到待檢目標的預測框,然后計算目標損失函數(shù)并利用誤差反向傳播更新各層相關參數(shù)。通過前向傳播與誤差反向傳播的不斷迭代,最終在不同尺度特征圖上可得到待檢目標的最終預測框和類別信息。
1.3 SSD目標損失函數(shù)
SSD網(wǎng)絡同時對目標位置和類別進行回歸,因此目標損失函數(shù)是置信損失和位置損失之和,如式(1)所示。
其中,N為與Ground Truth物體框相匹配的默認候選框個數(shù);x為默認候選框與不同類別的Ground Truth物體框匹配結果;c為類別置信度;l為預測框位置信息;g為Ground Truth物體框位置信息;a為位置損失權重參數(shù);[Lconf(x,c)]為類別置信損失;[Lloc(x,l,g)]為位置置信損失。
1.4 SSD訓練流程
SSD訓練流程概括如下:①輸入數(shù)據(jù)經(jīng)過前向傳播得到不同層級的特征圖,選取部分特征層作為預測層,并在不同尺度特征圖上選取若干不同大小、不同長寬比的默認候選框;②將前端網(wǎng)絡產(chǎn)生的特征圖作為預測層的輸入,在預測層經(jīng)過卷積計算得到每個默認候選框的坐標位置偏移量和類別置信度;③根據(jù)默認候選框的偏移量計算出待檢目標的預測框,再根據(jù)類別置信度和定位置信度計算每個默認候選框的損失函數(shù),累加求和得到網(wǎng)絡總體損失函數(shù);④將網(wǎng)絡誤差通過反向傳播分攤給各層所有單元,根據(jù)各單元誤差信號利用鏈式求導法則計算梯度,調整各單元權重和相關參數(shù);⑤重復上述過程直到損失函數(shù)滿足一定閾值范圍,或迭代訓練達到預定最大迭代次數(shù)為止。
2 SSD目標檢測
2.1 數(shù)據(jù)處理
實驗數(shù)據(jù)集采用網(wǎng)絡媒介上下載的圖片,一共包括 ? 9 500張,每一張包含1個或多個目標物體。利用labelImg圖片標注工具對數(shù)據(jù)集圖片中出現(xiàn)的人、貓、狗、綿羊、小汽車、摩托車、船、飛機等20類常見目標物體進行標注,每標注完成一張圖片對應生成一個xml文件,里面包含對應圖片內所有目標物體的標簽信息和位置信息。將9 500張數(shù)據(jù)隨機取出7 600張作為訓練集,用于網(wǎng)絡模型訓練,余下的1 900張作為測試集,用于迭代訓練過程中的模型測試,并通過腳本程序將訓練集與測試集數(shù)據(jù)分別對應轉化成LMDB數(shù)據(jù)文件,供神經(jīng)網(wǎng)絡讀取數(shù)據(jù)并用于訓練及測試。訓練過程中,通過數(shù)據(jù)增強方法隨機改變圖片亮度、對比度、飽和度,同時對圖片進行隨機剪切、鏡像等,以增加網(wǎng)絡訓練模型的泛化性,提高網(wǎng)絡模型檢測能力。
2.2 網(wǎng)絡改進
未改進SSD網(wǎng)絡的各預測層基本參數(shù)如表1所示,可以發(fā)現(xiàn),越靠前的預測層其特征圖尺寸越大,但感受野尺寸和默認框尺寸越小;越靠后的預測層其特征圖尺寸越小,但感受野尺寸和默認框尺寸越大。因此,靠前的預測層負責預測圖片中的小目標,而靠后的預測層負責預測圖片中的大目標,尤其是conv10_2和conv11_2這兩個預測層,其寬高比為1的默認框尺寸均在200×200以上,最大的甚至接近SSD網(wǎng)絡輸入圖像的尺寸300×300,因而主要負責預測占據(jù)圖片尺寸一半以上甚至幾乎整個圖片畫面的更大目標。
圖2為所有數(shù)據(jù)集Ground Truth物體框的分布情況,圖中橫軸表示Ground Truth物體框的寬,縱軸表示Ground Truth物體框的高,黑色點表示Ground Truth物體框的寬高分布。從圖2可以發(fā)現(xiàn),在區(qū)域A(橫軸200~300、縱軸200~300)、區(qū)域B(橫軸200~300、縱軸135~200)和區(qū)域C(橫軸135~200、縱軸200~300)內黑色點分布非常稀少,但在這3個區(qū)域之外黑色點分布非常濃密,這表明Ground Truth物體框在區(qū)域A、B、C分布非常稀少,幾乎全部Ground Truth物體框都分布在這3個區(qū)域之外。同時參考表1可以發(fā)現(xiàn),conv10_2和conv11_2這兩個預測層所具有的默認框尺寸與訓練數(shù)據(jù)集Ground Truth物體框分布存在較差的匹配度,它們相對訓練數(shù)據(jù)集Ground Truth物體框顯然更適合預測更大的目標,而其它4個預測層的默認框尺寸與訓練數(shù)據(jù)集Ground Truth物體框分布則能夠很好地匹配。因此,為了更好地對待檢目標進行學習訓練與預測,同時為了加快SSD網(wǎng)絡的計算和收斂速度,刪掉原SSD網(wǎng)絡的預測層conv10_2和conv11_2,保留其它4個預測層conv4_3、fc7、conv8_2和conv9_2。觀察圖2還會發(fā)現(xiàn),Ground Truth物體框的寬高分布包含了寬高比1/3、3、1/2、2等所有情況,因此conv4_3、fc7、conv8_2和conv9_2這4個預測層的默認框個數(shù)和寬高比較原SSD網(wǎng)絡保持不變。同時為了更好地提取特征圖內待檢目標的目標特征,將預測層conv9_2的填充Pad由1改為0。
2.3 網(wǎng)絡訓練
網(wǎng)絡訓練集共包括7 600張圖片,測試集共包括1 900張圖片,待學習類別總數(shù)為20。因此,利用SSD網(wǎng)絡進行數(shù)據(jù)訓練時,網(wǎng)絡參數(shù)設置主要包括批尺寸(batch_size)、學習率(learning_rate)、動量常數(shù)(momentum)、權值衰減系數(shù)(decay)等,具體參數(shù)取值如表2所示。
2.4 結果與分析
利用原始SSD網(wǎng)絡和改進后的SSD網(wǎng)絡分別對相同的數(shù)據(jù)集進行訓練,訓練過程參數(shù)選取與表1相同,得到的模型檢測結果如圖3所示。從圖3可以發(fā)現(xiàn),改進后的SSD網(wǎng)絡在檢測性能、檢測精度上較改進前有一定提高,比如圖3(a)與圖3(b)的第1行1列對應圖,改進前受樹和木牌遮擋,網(wǎng)絡檢測到兩個car,改進后網(wǎng)絡則準確分類并定位得到一個car;圖3(a)與圖3(b)的第2行4列對應圖,改進前彼此密集靠近站立的3個person,側邊person與中間person兩個人均被誤檢測成一個person,而改進后網(wǎng)絡則能準確分類并定位每一個緊密排列的person;圖3(a)與圖3(b)的第2行3列對應圖,改進前趴地的dog雖能正確分類,但坐標定位存在一定偏差,而改進后網(wǎng)絡則不僅能正確分類,坐標定位也更加準確;圖3(a)與圖3(b)的其它圖,則對目標較小的car(第2行1列)和sheep(第1行3列)、密集分布的person(第1行2列)等都可以實現(xiàn)準確識別與檢測。不僅如此,改進后的網(wǎng)絡在同樣50 000次迭代訓練后檢測mAP提高了約5.1%,具有更高的平均檢測精度。
綜上,改進后的網(wǎng)絡相比于改進前,提高了檢測模型的檢測性能和精度,實現(xiàn)了對絕大部分數(shù)據(jù)的準確分類和定位,包括上述提到的存在遮擋、密集排列等情況的數(shù)據(jù);同時實現(xiàn)了檢測mAP的提升,能夠滿足實用準確性要求。
3 結語
SSD目標檢測是目前目標檢測主流算法之一,其具有檢測速度快、檢測精度高等優(yōu)點。針對傳統(tǒng)目標檢測方法效率低、精度低的問題,本文通過分析數(shù)據(jù)集Ground Truth物體框的分布情況,對SSD網(wǎng)絡結構中與Ground Truth物體框尺寸不匹配的默認框及對應預測層進行刪減,并對保留的各預測層默認框個數(shù)和寬高比予以優(yōu)化,同時對保留的最后一個預測層的網(wǎng)絡參數(shù)加以改進。改進后的SSD網(wǎng)絡較改進前不僅具有更少的計算參數(shù)和計算量,能夠加快訓練模型收斂速度,同時對待檢目標具有更高的檢測精度和檢測性能,檢測mAP提高了約5.1%,特別是對于存在遮擋、目標較小、密集排列等情況的圖片數(shù)據(jù),改進模型能夠對待檢目標進行更準確的分類和定位,具有更好的檢測效果。未來工作中,將繼續(xù)對SSD網(wǎng)絡結構及參數(shù)進行優(yōu)化,使改進網(wǎng)絡針對目標較多且彼此嚴重遮擋的圖片數(shù)據(jù)具有更高的魯棒性和檢測精度,實現(xiàn)改進模型在目標檢測上的普適化應用。
參考文獻:
[1] REZAEI M,KLETTE R. Object detection, classification, and tracking[J]. Computer Vision for Driver Assistance,2017,45:51-94.
[2] YANG Z L,ZHANG Y J,REHMAN S?U, et al. Image captioning with object detection and localization[J]. Image and Graphics, 2017,10667:109-118.
[3] SHARMA K U,THAKUR N V. A review and an approach for object detection in images[J]. International Journal of Computational Vision and Robotics, 2017, 7(1-2):196-237.
[4] ZHANG M J,CIESIELSKI V. Genetic programming for multiple class object detection[J]. Advanced Topics in Artificial Intelligence,1999,1747:180-192.
[5] LIU W,ANGUELOV D,ERHAN D,et al. SSD:single shot multibox detector[J]. Computer Vision-ECCV 2016,2016,9905:21-37.
[6] 陳冰曲,鄧濤. 基于改進型SSD算法的目標車輛檢測研究[J]. 重慶理工大學學報,2019,33(1):58-63,129.
[7] 邢浩強,杜志岐,蘇波. 基于改進SSD的行人檢測方法[J]. 計算機工程,2018,44(11):228-233,238.
[8] CAI Z W,F(xiàn)AN Q F,F(xiàn)ERIS R S,et al. A unified multi-scale deep convolutional neural network for fast object detection[J]. Computer Vision-ECCV 2016,9908 :354-370.
[9] 高宗,李少波,陳濟楠. 基于YOLO網(wǎng)絡的行人檢測方法[J]. 計算機工程,2018, 44(5):215-219,226.
[10] HE N,CAO J,SONG L. Scale space histogram of oriented gradients for human detection[C]. Information Science and Engineering, 2008. ISISE08,2008:167-170.
[11] BAY H,ESS A,TUYTELAARST T,et al. Speeded-up robust features (SURF)[J]. Computer vision and image understanding, 2008, 110(3):346-359.
[12] BURGES C J C. A tutorial on support vector machines for pattern recognition[J]. Data mining and knowledge discovery,1998,2(2):121-167.
[13] HASTIE T, ROSSET S,ZHU J,et al. Multi-class adaboost[J]. Statistics and its Interface,2009,2(3) :349-360.
[14] REDMON J,DIVVALA S,GIRSHICK R,et al. You only look once: unified, real-time object detection[C]. Pro-ceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016:779-788.
[15] 劉雪奇,孫勝利. 基于YOLO網(wǎng)絡模型的異常行為檢測方法研究[J]. 電子設計工程,2018,26(20) :154-158,164.
[16] GIRSHICK R. Fast RCNN[C]. Proceedings of IEEE International Conference on Computer Vision,2015:1440-1448.
[17] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer Science,2014:1-14.
(責任編輯:孫 娟)