朱玉剛
摘 要:目標檢測是目前計算機視覺領(lǐng)域非常熱門的研究方向,是無人駕駛技術(shù)重要環(huán)節(jié)。為提高行車過程中目標檢測精度并改善基于單發(fā)多目標檢測器在訓(xùn)練時出現(xiàn)的正負樣本失衡問題,基于車載視頻,運用深度學習算法中具有強大性能的SSD模型,通過引入Focal Loss函數(shù)設(shè)計新的損失函數(shù),解決樣本失衡問題;同時在不降低檢測速率的情況下,提高檢測精度?;谧孕胁杉能囕d視頻數(shù)據(jù)集進行實驗,結(jié)果表明,改進后SSD模型的mAP相較于原始SSD模型提高了3%,達到74%。
關(guān)鍵詞:深度學習;無人駕駛;SSD;目標檢測;Focal Loss
DOI:10. 11907/rjdk. 191064 開放科學(資源服務(wù))標識碼(OSID):
中圖分類號:TP312文獻標識碼:A 文章編號:1672-7800(2019)009-0042-05
Multi-Object Detection Algorithm for Unmanned Driving Based on Deep Learning
ZHU Yu-gang
(School of Electronics and Communication,Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: Object detection is a very popular direction in the field of computer vision, especially in the field of unmanned driving technology. In order to improve the detection accuracy of objects encountered in the driving process and improve the imbalance of positive and negative samples based on single Shot MultiBox Detector (SSD) in training, based on vehicle video, this paper uses SSD model which has strong performance in deep learning algorithm, and designs a new loss function by introducing Focal Loss function to solve the problem of sample imbalance. In this way, the detection accuracy is improved without reducing the detection rate. This method is more effective and convenient. Based on the self-collected vehicle video data set, the experimental results show that the mAP (mean Average Precision) of the improved SSD model is 3% higher than that of the original SSD model, up to 74%.
Key Words: deep learning;?unmanned vehicle; SSD; object detection; Focal Loss
0 引言
隨著科技的發(fā)展,目標檢測成為計算機視覺研究熱門課題,可應(yīng)用于無人駕駛、視頻監(jiān)控、行人檢測、海面艦船檢測等多個方面[1]。傳統(tǒng)目標檢測方法通常采用機器學習方法,即特征工程結(jié)合分類器。首先使用算子(如HOG[2]、SHIFT[3]、Haar[4])提取特征,然后選擇合適的分類器(如SVM[5]、Fisher[6]、Adaboosting[7])依據(jù)特征進行分類,得到目標檢測結(jié)果。但是傳統(tǒng)方法存在兩個致命缺點:①選擇的算子不適應(yīng)所有特征的提取,即提取的部分特征沒有很強的代表性;②算子選擇依賴于大量人工經(jīng)驗。隨著硬件和大數(shù)據(jù)的發(fā)展,基于深度學習的目標檢測算法克服了以上兩個缺點,逐漸替代了傳統(tǒng)方法,并且提升了目標檢測精度和魯棒性,使特征更豐富、表達能力更強。
目前,基于深度學習的目標檢測方法主要分為兩類:一類是基于建議框+分類的目標檢測方法,典型代表有R-CNN系列(R-CNN[8]、SPPnet[9]、Fast R-CNN[10]以及Faster R-CNN[11]),其檢測效果佳,但是在速度方面還遠不能滿足實時檢測需求。因此在提高平均精度均值(mean Average Precision,mAP)的同時兼顧速度逐漸成為目標檢測研究方向;另一類是基于回歸思想的深度學習目標檢測模型,典型代表有YOLO[12]、SSD[13]。YOLO雖然能夠達到實時效果,但是其mAP與第一類方法的結(jié)果存在較大差異,且YOLO存在兩個缺點:①只用到最后的特征層,所以對于多尺度目標檢測效果較差;②YOLO仍然使用全連接層進行最后分類,準確性較差。相比而言,SSD網(wǎng)絡(luò)采用圖像金字塔結(jié)構(gòu),多尺度目標檢測效果較好,適合本文多目標數(shù)據(jù)集。另外SSD使用卷積層替代了最后全連接層,故定位更準確,在具有較好實時性的同時mAP更高,其速度可與YOLO媲美,mAP與Faster RCNN保持在相同水平,但是以上方法都存在正負樣本失衡問題。
本文綜合考慮檢測速度和精度,采用SSD網(wǎng)絡(luò)進行研究,并引入Focal Loss損失函數(shù)[14]設(shè)計新的損失函數(shù),替換原有在線難分樣本挖掘(Online Hard Example Mining,OHEM)[15]機制,更高效地解決了正負樣本失衡問題,提高了整體檢測平均精度。
1 SSD目標檢測網(wǎng)絡(luò)
SSD是目前綜合性能最好的網(wǎng)絡(luò)。它使用3×3的卷積核替換VGGNet最后全連接層[16]進行分類回歸,可利用目標周圍信息進行預(yù)測,而不是利用全局信息,使定位更加準確。另外其使用特征金字塔結(jié)構(gòu),將不同特征層用于最后結(jié)果預(yù)測,可涵蓋不同維度、保證特征豐富性,并且使用淺層特征層負責小目標檢測,深層特征層負責大目標檢測,可進一步提高檢測效果。特征金字塔設(shè)計如圖1所示。另外,SSD在多個特征層上生成不同尺度、不同長寬比的錨框,產(chǎn)生良好的多尺度目標檢測效果。
1.1 網(wǎng)絡(luò)架構(gòu)
SSD模型思想仍然延續(xù)了傳統(tǒng)目標檢測思想,前面的卷基層用于特征提取,后面的Softmax層用于分類。SSD模型采用VGG16基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)。SSD網(wǎng)絡(luò)有兩種架構(gòu),一種適合于圖片分辨率為300×300的輸入(SSD300),另一種適合于分辨率為512×512的輸入圖片(SSD512),結(jié)構(gòu)如圖2所示。
從圖2可以看出,SSD網(wǎng)絡(luò)構(gòu)建了特征金字塔,充分利用特征層信息,整合Conv4_3、fc7、Conv6_2、Conv7_2、Conv8_2、Conv9_2和Conv10_2七層特征層信息進行訓(xùn)練。
1.2 默認框
SSD中每個層上的候選框生成方法如下:
特征層每個單元均會生成K個默認框,默認框有不同的長寬比,假設(shè)用m個特征層進行預(yù)測,則每個特征層默認框尺寸可由式(1)得到。
其中,[Smin=0.2],[Smax=0.9],分別表示最底層默認框基礎(chǔ)尺寸是0.2,最高層默認框基礎(chǔ)尺寸是0.9。按照基礎(chǔ)尺寸生成一個正方形,但默認框數(shù)量太少且類型單一,所以引入5種長寬比為:[r=1,2,3,1/2,1/3]。
然后按照基礎(chǔ)尺寸和長寬比,生成默認框,則一個特征點對應(yīng)多個默認框。隨后訓(xùn)練內(nèi)容是在這些默認框中篩選與坐標框重合較多的框,并進行回歸,得到預(yù)測框,其中寬的計算公式為:
因此,每個特征點對應(yīng)6種默認框。這樣定義默認框尺寸的優(yōu)勢是使不同特征層有不同尺寸,在同一個特征層有不同的長寬比,因此可以覆蓋輸入圖像中各種形狀和大小目標。本文根據(jù)采集的數(shù)據(jù)集目標尺寸,將[Smin]設(shè)置為0.3,[Smax]設(shè)置為0.7,長寬比設(shè)置為{1,1/3,2/3,3,3/2}。
1.3 正負樣本
產(chǎn)生候選區(qū)域框后需要進行篩選,并打上相應(yīng)標簽。在SSD中篩選步驟如下:
(1)計算各框與真實框的重合度(Intersection over Union,IoU)[17],保留與真實框重疊度最高的候選框,并給該候選框打上與之匹配的真實框類別標簽,即可保證每個真實框均有唯一一個最相似的候選區(qū)域框與之對應(yīng)。
(2)設(shè)置一個閾值,將沒有配對的候選區(qū)域框與任意一個真實框嘗試配對,若兩者IoU大于閾值,則該候選框為正樣本且打上對應(yīng)標簽。在SSD中該閾值設(shè)置為0.5。
(3)將仍沒有配對到真實框的候選框設(shè)置為負樣本。
通過上述方法得到的負樣本數(shù)量遠遠大于正樣本。負樣本和正樣本的不平衡將導(dǎo)致在訓(xùn)練時難以收斂,而且負樣本太多,已經(jīng)可以主導(dǎo)損失函數(shù)的大小,所以正樣本存在的意義不大。利用在線難分樣本挖掘(Online Hard Example Mining,OHEM)的方法提升對難分樣本的處理效率,同時控制正負樣本比例。其實現(xiàn)方法是將所有目標框?qū)?yīng)的損失排序,選出損失較大的候選框進行訓(xùn)練,通過該篩選方法,將正負樣本比例控制在1∶3[18]。但是該方法缺點明顯:首先需要額外的時間和內(nèi)存進行損失存儲及排序,另外由于剔除易分樣本,即完全忽略易分樣本對網(wǎng)絡(luò)參數(shù)微調(diào)效果,會導(dǎo)致易分樣本無法進一步提升訓(xùn)練質(zhì)量。
針對以上算法缺陷,本文考慮刪除網(wǎng)絡(luò)原始OHEM機制,將焦點損失(Focal Loss)函數(shù)引入SSD損失函數(shù)以解決樣本失衡問題,同時提高檢測精度。
2 模型優(yōu)化
2.1 原始損失函數(shù)
SSD損失函數(shù)包括目標置信度損失和位置坐標損失兩部分,其表達式如下:
c是由Softmax產(chǎn)生的每一類的概率,根據(jù)實際標簽的值計算對應(yīng)的損失函數(shù)值。訓(xùn)練目的是求得使損失函數(shù)最小的參數(shù)。
2.2 新?lián)p失函數(shù)設(shè)計
SSD網(wǎng)絡(luò)中正負樣本失衡問題具體包括:①負樣本太多,造成樣本損失太大,淹沒了正樣本,不利于目標收斂;②大多數(shù)負樣本不在正樣本和負樣本的過渡區(qū),分類很明顯,傳入損失函數(shù)的分數(shù)很大,因此單個樣本損失與反向傳播梯度很小,對參數(shù)收斂作用有限。雖然SSD在正負樣本采集中采用了1∶3的比例控制樣本失衡[19],但是完全去除了易分樣本的作用,不利于進一步提高網(wǎng)絡(luò)精度。Focal Loss損失函數(shù)通過引入調(diào)制系數(shù),降低了負樣本對整個損失的影響,加大了難分樣本對整個損失的影響,其公式如下:
2.3 Focal Loss反向傳播
本文在SSD分類回歸和損失函數(shù)設(shè)計中運用了Softmax函數(shù)。Softmax函數(shù)常用于多分類過程中,它將多個神經(jīng)元輸出映射到(0,1)區(qū)間內(nèi),可以作為概率理解,其函數(shù)如下:
可根據(jù)式(25)求得梯度,按照反向傳播梯度下降法進行整個網(wǎng)絡(luò)的權(quán)值更新,同時可看出,本文引入的調(diào)制系數(shù)可控制梯度大小,避免淹沒難分樣本對梯度的調(diào)節(jié)作用。
3 實驗
3.1 數(shù)據(jù)集制作
本實驗通過行車記錄儀采集車載視頻,每隔3s取一幀,得到的圖片如圖3所示。可以看到圖中包含許多干擾因素,比如左上角的行車記錄儀標簽及車內(nèi)圖像,這些噪聲可以剪切掉以避免造成干擾。另外待檢測目標不可能在圖片上方,所以圖片靠上的部分像素也可以剪切掉,縮減圖片尺寸,有利于提高訓(xùn)練速度,減少顯存占用。數(shù)據(jù)集處理前后對比如圖3所示。
通過上述方法最終得到1 600張圖片,并將其按5∶2∶1的比例隨機分配給訓(xùn)練集、測試集和驗證集。所以最終訓(xùn)練圖片為1 000張,測試圖片400張,驗證圖片200張,圖片分辨率為1 920*400;接著在數(shù)據(jù)集中標注8個目標分別為car、person、bus、minibus、truck、minitruck、elemotor、tricycle。由于數(shù)據(jù)集中大卡車和公交車樣本不是很充足,所以導(dǎo)致相關(guān)檢測效果較差,因此本文從KITTI數(shù)據(jù)集中提取對應(yīng)類別的樣本,處理后加入了本數(shù)據(jù)集。最后統(tǒng)計數(shù)據(jù)集中包含各個目標的數(shù)量,如圖4所示。
3.2 實驗結(jié)果分析
目前有多種深度學習框架,比如:Caffe、Caffe2、TensorFlow、Torch、Theano等。本文實驗是基于Ubuntu16.4操作系統(tǒng)的Caffe深度學習框架[20]。Caffe(Convolutional Architecture for Feature Embedding)是基于C++/CUDA/Python實現(xiàn)的,由伯克利視覺和學習中心(Berkeley Vision and learning Center,BVLC)開發(fā)的卷積神經(jīng)網(wǎng)絡(luò)框架[21]發(fā)展而來。實驗顯卡為NVIDIA GeForce GTX1080GPU。
由于實驗采用的激活函數(shù)是ReLU函數(shù),所以如果一個較大的梯度經(jīng)過一個神經(jīng)元并更新參數(shù)后,這個神經(jīng)元很容易“死掉”。因此在訓(xùn)練時需設(shè)置一個較小的學習率。這個學習率將隨著訓(xùn)練過程發(fā)生變化。本文設(shè)置的初始學習率為0.000 1,每兩萬次迭代,則學習率縮小10倍。總共進行120 000次迭代。在表1中展示本實驗初期結(jié)果。從實驗結(jié)果可以看出將SSD損失函數(shù)換為Focal Loss函數(shù)可以提高mAP。
從表1可發(fā)現(xiàn),引入Focal Loss損失函數(shù)模型SSD300+Focal和SSD512+Focal之后,整體mAP得到了提升,且根據(jù)圖4各個類別數(shù)目可發(fā)現(xiàn),F(xiàn)ocal Loss的引入對于數(shù)量較少的目標檢測效果提升更為明顯,這是由于Focal Loss加強了對于難分樣本的重視度。如圖5展示了SSD512和SSD512+Focal兩個模型基于本文數(shù)據(jù)集的識別效果對比。
觀察圖5可以發(fā)現(xiàn),新?lián)p失函數(shù)通過解決樣本失衡問題,提高了整體檢測效果。原始網(wǎng)絡(luò)沒有檢測出的許多目標以及錯檢目標均被檢測出來。
mAP是用于評判目標檢測網(wǎng)絡(luò)的標準[22]。一個模型質(zhì)量不能僅靠準確率或者召回率進行判斷,所以根據(jù)準確率和召回率畫出每個類的P-R曲線。曲線下面包絡(luò)的面積為AP,所有AP平均值為mAP[23]。本文用其判斷模型優(yōu)劣。召回率和準確率的公式分別為:
4 結(jié)語
本文介紹了一個端對端的多分類器SSD,并將其應(yīng)用在自主采集的行車數(shù)據(jù)集上,實現(xiàn)了多目標實時檢測,且優(yōu)化后提高了檢測效果。SSD原始OHEM機制在解決正負樣本失衡問題時存在種種不足,因此本文設(shè)計新的損失函數(shù)解決該問題,同時也提高了對于難分樣本的挖掘能力與整體模型檢測精度。通過在自主采集的數(shù)據(jù)集上訓(xùn)練和測試實驗,證明SSD在行車視頻中進行目標檢測的實用性及本文改進算法的有效性。雖然本文解決了正負樣本嚴重失衡的問題,但SSD等類似目標檢測網(wǎng)絡(luò)在重合度較高的目標檢測中仍存在漏檢或誤檢問題,需進一步研究。
參考文獻:
[1] 趙偉,李欣,王鵬. 復(fù)雜環(huán)境下的車輛目標檢測方法研究[J]. 森林工程,2014,30(3):74-79.
[2] BLAZ B. Histograms of oriented gradients[C]. San Diego:IEEE Conference on Computer Vision and Pattern Recognition,2005.
[3] LINDEBERG T. Scale Invariant Feature Transform[C]. Scholarpedia,2012.
[4] 許慶,高峰,徐國艷. 基于Haar特征的前車識別算法[J]. 汽車工程,2013,35(4):381-384.
[5] HEARST M A, DUMAIS S T, OSUNA E, et al. Support vector machines[J]. IEEE Intelligent Systems & Their Applications, 1998, 13(4):18-28.
[6] 崔揚,周澤魁. 基于Fisher準則的分類器在皮革正反面分類中的應(yīng)用[J]. 江南大學學報:自然科學版, 2004, 3(4):374-377.
[7] 胡雄心,潘柏松. 基于Adaboosting算法的表面裂紋圖象檢測[J]. 機械設(shè)計與制造, 2010(3):211-213.
[8] OQUAB M,BOTTOU L, LAPTEV I , et al. Learning and transferring mid-level image representations using convolutional neural networks[J]. '14 Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition,2014:1717-1724.
[9] HE K,ZHANG X,REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9):1904-16.
[10] GIRSHICK R. Fast R-CNN[DB/OL]. https://arxiv.org/pdf/1504. 08083.pdf.
[11] REN S,HE K,GIRSHICK R,et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 39(6):1137-1149.
[12] REDMON J,DIVVALA S,GIRSHICK R, et al. You only look once: unified, real-time object detection[DB/OL]. https://arxiv.org/pdf/1506.02640.pdf.
[13] LIU W,ANGUELOV D,ERHAN D, et al. SSD: single shot multibox detector[C].European Conference on Computer Vision,2015:21-37.
[14] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal Loss for Dense Object Detection[C]. IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:2999-3007.
[15] HE K,ZHANG X,REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9):1904-16.
[16] MAURER M, BEHRINGER R, FURST S, et al. A compact vision system for road vehicle guidance[C]. International Conference on Pattern Recognition, 1996:313-317.
[17] NOWOZIN S. Optimal decisions from probabilistic models: the intersection-over-union case[C]. IEEE Conference on Computer Vision & Pattern Recognition, 2014.
[18] LONG J,SHELHAMER E,DARRELL T. Fully convolutional networks for semantic segmentation[C].Computer Vision and Pattern Recognition, 2015:3431-3440.
[19] SUBBURAMAN VB,DESCAMPS A,CARINCOTTE C. Counting people in the crowd using a generic head detector[C]. IEEE Ninth International Conference on Advanced Video and Signal-Based Surveillance,2012,470-475.
[20] CHAUDHURI D. A simple least squares method for fitting of ellipses and circles depends on border points of a two-tone image and their 3-D extensions[J]. Pattern Recognition Letters, 2010, 31(9):818-829.
[21] HAN S,MAO H,DALLY W J, et al.Deep compression:compressing deep neural networks with pruning, trained quantization and Huffman coding[C]. International Conference on Learning Representations, 2016:1-14.
[22] SZELISKI R.計算機視覺-算法與應(yīng)用[M]. 艾海舟,興軍亮,譯.北京:清華大學出版社,2012.
[23] 宋煥生,張向清,鄭寶峰,等. 基于深度學習方法的復(fù)雜場景下車輛目標檢測[J]. 計算機應(yīng)用研究,2018(4):1270-1273.
[24] 敖道敢. 無監(jiān)督特征學習結(jié)合神經(jīng)網(wǎng)絡(luò)應(yīng)用于圖像識別[D].廣州:華南理工大學,2014.
(責任編輯:江 艷)