高志華
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
基于深度學(xué)習(xí)的CPU實(shí)時(shí)動物目標(biāo)檢測
高志華
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
隨著深度學(xué)習(xí)的發(fā)展,目標(biāo)檢測技術(shù)得到很大的發(fā)展,在很多領(lǐng)域都得到了廣泛應(yīng)用;如行人檢測、車輛檢測等;動物檢測同樣是非常重要的一個(gè)應(yīng)用領(lǐng)域;作出兩點(diǎn)貢獻(xiàn),第一,創(chuàng)建一個(gè)包含6834張高清圖像11個(gè)不同類別動物目標(biāo)檢測數(shù)據(jù)庫;第二,在one-stage目標(biāo)檢測框架的基礎(chǔ)上構(gòu)建基礎(chǔ)網(wǎng)絡(luò)MiniNet,針對動物目標(biāo)得出卓越的檢測性能;并使該目標(biāo)檢測框架CPU實(shí)時(shí),在Intel i5四核主頻2.7GHz處理器上達(dá)到100ms每幀。
深度學(xué)習(xí);實(shí)時(shí)目標(biāo)檢測;動物檢測
近年來,許多組織和政府在基礎(chǔ)設(shè)施中投入大量的資金來保護(hù)各種動物物種;建設(shè)新的道路等設(shè)施人為地干預(yù)了動物的遷徙等行為,所以利用計(jì)算機(jī)視覺進(jìn)行動物檢測具有重要的研究意義,可以用來檢測動物的運(yùn)動,提供指定區(qū)域的野生動物的遷徙數(shù)據(jù)。
目前基于深度學(xué)習(xí)目標(biāo)檢測框架主要分為twostage和one-stage方法。two-stage方法如Selective Search work[6],第一階段產(chǎn)生一組稀疏的候選目標(biāo)區(qū)域集合,該集合包含了所有的目標(biāo)對象,同時(shí)過濾掉大部分負(fù)樣本區(qū)域;第二階段對候選區(qū)域進(jìn)行前景、背景的分類。R-CNN[7]則將第二階段的分類器升級為卷積神經(jīng)網(wǎng)絡(luò),在準(zhǔn)確性上獲得了極大的收益,開創(chuàng)了現(xiàn)代的目標(biāo)檢測時(shí)代;多年來,R-CNN在速度[8-9]以及產(chǎn)生候選窗口算法[2,10-11]上有都有很大的提升,區(qū)域建議網(wǎng)絡(luò)(RPN)將第二階段分類器集成到一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,形成了更快的R-CNN框架[2]。two-stage算法擁有很高的準(zhǔn)確性,但是速度上很難達(dá)到實(shí)時(shí);OverFeat[12]是最早的基于深度學(xué)習(xí)的one-stage框架,最近的算法如SSD[1]和YOLO[4]重新關(guān)注了該方法;這類算法在速度上有很大優(yōu)勢,但在準(zhǔn)確性上卻遜于two-stage算法;SSD的準(zhǔn)確性降低了10-20%,而YOLO則關(guān)注更加極端的速度/準(zhǔn)確性的折衷;Focal Loss[13]指出onestage算法準(zhǔn)確性不足的主要原因是正負(fù)樣本分布不均衡造成的,簡單樣本數(shù)量太多,困難樣本沒有得到充分的訓(xùn)練,通過在交叉熵?fù)p失函數(shù)前乘以因子(1-pt)γ使得one-stage算法的檢測準(zhǔn)確性達(dá)到了two-stage的效果同時(shí)速度上的優(yōu)勢保持不變;本文采取one-stage方法結(jié)合Focal Loss的思想在本文構(gòu)建的的數(shù)據(jù)庫中取得卓越的性能。
本文創(chuàng)建了一個(gè)擁有6834張帶標(biāo)簽的高分辨率圖像的數(shù)據(jù)集,分屬于11個(gè)類別;分別是貓、鹿、狗、豹子、蜥蜴、猴子、熊貓、兔子、羊、蛇、松鼠;這些圖像是從網(wǎng)上收集,進(jìn)行人工貼標(biāo)簽。在每個(gè)類別中隨機(jī)選取20%作為測試集;圖片的標(biāo)注信息包含目標(biāo)的位置左上角(xl,yl)坐標(biāo)和右下角坐標(biāo)(xryr)以及數(shù)字表示的類別信息;在該數(shù)據(jù)集上我們使用mean Average Precision(mAP)的目標(biāo)檢測評價(jià)指標(biāo),部分圖片如圖1所示。
大多數(shù)基于CNN的目標(biāo)檢測框架都被巨大的計(jì)算量限制著,尤其是在CPU設(shè)備;尤其是卷積操作在輸入圖像的尺寸,卷積核的尺寸以及輸出的通道數(shù)都很大時(shí)更是極其耗時(shí);為了解決這個(gè)問題,本文提出的MiniNet通過精心設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu),快速地降低輸入圖片的維度,使用合適的卷積核尺寸和少量的通道數(shù)使該網(wǎng)絡(luò)結(jié)構(gòu)達(dá)到CPU實(shí)時(shí)的效果,該框架具體分為兩個(gè)部分;第一部分為基礎(chǔ)網(wǎng)絡(luò)主要用于提取圖片全局特征,后半部分是分類、回歸網(wǎng)絡(luò)用于得到目標(biāo)的置信度以及目標(biāo)的坐標(biāo);具體設(shè)計(jì)細(xì)節(jié)如下:
(1)輸入圖片降維:為了快速降低輸入圖片的維度,MiniNet設(shè)計(jì)上對卷積層和采樣層采用了一系列很大步長;如圖二所示,Conv1,Pool1,Conv2 和 Pool2 的步長分別設(shè)置為4,2,2和2;總共的步長為32,意味著輸入圖片的維度可以快速的降低32倍。
(2)選擇合適的卷積核尺寸:前面幾層的卷積核尺寸應(yīng)該盡可能的小以保證速度的提升,同時(shí)應(yīng)該足夠大保證輸入圖片為度降低時(shí)信息的損失;如圖二所示,為了同時(shí)保證效率和精度,對Conv1,Conv2和所有的Pool層分別使用 7×7,5×5 以及 3×3 的尺寸。
(3)降低輸出通道的數(shù)量:本文使用C.ReLU激活函數(shù)降低輸出的通道的數(shù)量;C.ReLU[14]的動機(jī)在于觀察到CNN底層的濾波器常以成對的形式出現(xiàn),例如以相反的狀態(tài);通過這樣的觀察,C.ReLU可以加倍輸出通道的數(shù)量通過簡單的連接負(fù)狀態(tài)的輸出,使用C.Re-LU顯著地增加了速度,精度的下降可以忽略不計(jì)。
圖1
圖2
損失函數(shù)包含兩個(gè)部分:置信度損失函數(shù)以及位置損失函數(shù),將它們按權(quán)重相加起來就是總的損失函數(shù);公式如下:
其中N是與真實(shí)窗口匹配的候選窗口的數(shù)量,如果N等于 0,那么損失也為0;位置損失函數(shù)為Smooth L1損失函數(shù);它計(jì)算候選窗口(l)和真實(shí)窗口(g)之間距離;用xkij={1,0}表示第i個(gè)首選窗口是否匹配第j個(gè)真是窗口,且類別為k;
置信度損失函數(shù)采用focal loss損失函數(shù),它由兩部分組成,(1-pt)γ為調(diào)節(jié)因子,Lconf(x,c)為交叉熵?fù)p失函數(shù);
α是權(quán)重系數(shù),本文設(shè)置為1;調(diào)節(jié)因子γ取2。
使用隨機(jī)梯度下降法并且batchsize大小為32、動力為0.9、權(quán)重衰減為0.0005的超參數(shù)來訓(xùn)練網(wǎng)絡(luò);其中少量的權(quán)重衰減對于模型學(xué)習(xí)是重要的;這里的權(quán)重衰減不僅僅是一個(gè)正則化矩陣,它減少了訓(xùn)練誤差;對于權(quán)重w的更新規(guī)則為:
wi+1:=wi+vi+1
使用均值為0、標(biāo)準(zhǔn)差為0.01的高斯分布初始化了每一層的權(quán)重;對于所有層都使用了相等的學(xué)習(xí)率,學(xué)習(xí)率在訓(xùn)練過程中可以調(diào)整,當(dāng)訓(xùn)練誤差不在下降時(shí)就將學(xué)習(xí)率除以10;學(xué)習(xí)率初始化為0.01;我訓(xùn)練該網(wǎng)絡(luò)時(shí)候大致將該5462張訓(xùn)練數(shù)據(jù)集循環(huán)了235次;其中batchsize為32,最大迭代次數(shù)為80000次,在兩塊GPU分別為NVIDAI GTX 980Ti 4GB和NVIDAI GTX 960 4GB上花費(fèi)時(shí)間為兩天;
我們針對該數(shù)據(jù)集分別對比了MiniNet、VGG-16Net、ZF-Net、ResNet-101 等基礎(chǔ)網(wǎng)絡(luò)的效果;實(shí)驗(yàn)結(jié)果總結(jié)與表1當(dāng)中。
由上圖可以看出本文提出的MiniNet對比其他現(xiàn)有網(wǎng)絡(luò)在本文創(chuàng)建的數(shù)據(jù)庫中取得了最好的效果;速度方面MiniNet的精巧設(shè)計(jì)可以在CPU上達(dá)到100ms每幀,精度上比略微高于ResNet101,這主要是因?yàn)镸iniNet的輸入圖片的尺寸很大,而針對于該數(shù)據(jù)集存在著不少的小目標(biāo),MiniNet的網(wǎng)絡(luò)設(shè)計(jì)上適合小目標(biāo)比較多的情況。
當(dāng)前的目標(biāo)檢測模型在計(jì)算上令人望而卻步,CPU設(shè)備實(shí)現(xiàn)實(shí)時(shí)的速度以及保持高性能是很困難的。本文提出了一種新穎的動物檢測器,具備出色的性能,在準(zhǔn)確性以及速度上兼具優(yōu)勢;提出的輕量級的網(wǎng)絡(luò)結(jié)構(gòu)由基礎(chǔ)網(wǎng)絡(luò)以及回歸+分類兩部分組成,結(jié)合Focal Loss的思想在本文提出的數(shù)據(jù)庫上取得了優(yōu)越的性能;改檢測器速度非常快,在Intel i5四核主頻2.7GHz處理器上達(dá)到100ms每幀。
表1
[1]W.Liu,D.Anguelov,D.Erhan,S.Christian,S.Reed,C.-Y.Fu,and A.C.Berg.SSD:Single Shot Multibox Detector.In ECCV,2016.
[2]Ren,S.,He,K.,Girshick,R.,Sun,J.:Faster R-CNN:Towards Real-time Object Detection with Region Proposal Networks.In:NIPS.2015.
[3]He,K.,Zhang,X.,Ren,S.,Sun,J.:Deep Residual Learning for Image Recognition.In:CVPR.2016.
[4]Redmon,J.,Divvala,S.,Girshick,R.,Farhadi,A.:You only look once:Unified,Real-time Object Detection.In:CVPR.(2016)
[5]Girshick,R.:Fast R-CNN.In:ICCV.2015.
[6]J.R.Uijlings,K.E.van de Sande,T.Gevers,and A.W.Smeulders.Selective Search for Object Recognition.IJCV,2013.
[7]R.Girshick,J.Donahue,T.Darrell,and J.Malik.Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation.In CVPR,2014.
[8]K.He,X.Zhang,S.Ren,and J.Sun.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition.In ECCV.2014.
[9]R.Girshick.Fast R-CNN.In ICCV,2015.
[10]D.Erhan,C.Szegedy,A.Toshev,and D.Anguelov.Scalable Object Detection Using Deep Neural Networks.In CVPR,2014.
[11]P.O.Pinheiro,R.Collobert,and P.Dollar.Learning to Segment Object Candidates.In NIPS,2015.
[12]P.Sermanet,D.Eigen,X.Zhang,M.Mathieu,R.Fergus,and Y.LeCun.Overfeat:Integrated Recognition,Localization and Detection using Convolutional Networks.In ICLR,2014.
[13]Lin T Y,Goyal P,Girshick R,et al.Focal Loss for Dense Object Detection[J].arXiv preprint arXiv:1708.02002,2017.
[14]W.Shang,K.Sohn,D.Almeida,and H.Lee.Understanding and Improving Convolutional Neural Networks Via Concate-Nated Rectified Linear Units.In ICML,2016.
CPU Real Time Animal Detection Based on Deep Learning
GAO Zhi-hua
(College of Computer Science,Sichuan University,Chengdu 610065)
With the development of deep learning,the object detection technology has been greatly developed in many areas and has been widely used,such as pedestrian detection,vehicle detection;Animal detection is also a very important application area.Makes the following two contributions:first,creates a database containing 6834 HD images with 11 different categories of animal.Second,builds the basic network MiniNet on the basis of the one-stage object detection framework and gets excellent performance for animal objects.And makes the object detection framework CPU real time,reaches 100ms per frame in Intel i5 quad-core frequency 2.7GHz processor.
Deep Learning;Real Time Object Detection;Animal Detection
1007-1423(2017)31-0022-04
10.3969/j.issn.1007-1423.2017.31.006
高志華(1991-),男,安徽合肥人,碩士,研究方向?yàn)榛谏疃葘W(xué)習(xí)的目標(biāo)檢測
2017-09-22
2017-10-26