高志華
(四川大學計算機學院,成都 610065)
基于深度學習的CPU實時動物目標檢測
高志華
(四川大學計算機學院,成都 610065)
隨著深度學習的發(fā)展,目標檢測技術得到很大的發(fā)展,在很多領域都得到了廣泛應用;如行人檢測、車輛檢測等;動物檢測同樣是非常重要的一個應用領域;作出兩點貢獻,第一,創(chuàng)建一個包含6834張高清圖像11個不同類別動物目標檢測數(shù)據(jù)庫;第二,在one-stage目標檢測框架的基礎上構建基礎網(wǎng)絡MiniNet,針對動物目標得出卓越的檢測性能;并使該目標檢測框架CPU實時,在Intel i5四核主頻2.7GHz處理器上達到100ms每幀。
深度學習;實時目標檢測;動物檢測
近年來,許多組織和政府在基礎設施中投入大量的資金來保護各種動物物種;建設新的道路等設施人為地干預了動物的遷徙等行為,所以利用計算機視覺進行動物檢測具有重要的研究意義,可以用來檢測動物的運動,提供指定區(qū)域的野生動物的遷徙數(shù)據(jù)。
目前基于深度學習目標檢測框架主要分為twostage和one-stage方法。two-stage方法如Selective Search work[6],第一階段產(chǎn)生一組稀疏的候選目標區(qū)域集合,該集合包含了所有的目標對象,同時過濾掉大部分負樣本區(qū)域;第二階段對候選區(qū)域進行前景、背景的分類。R-CNN[7]則將第二階段的分類器升級為卷積神經(jīng)網(wǎng)絡,在準確性上獲得了極大的收益,開創(chuàng)了現(xiàn)代的目標檢測時代;多年來,R-CNN在速度[8-9]以及產(chǎn)生候選窗口算法[2,10-11]上有都有很大的提升,區(qū)域建議網(wǎng)絡(RPN)將第二階段分類器集成到一個卷積神經(jīng)網(wǎng)絡中,形成了更快的R-CNN框架[2]。two-stage算法擁有很高的準確性,但是速度上很難達到實時;OverFeat[12]是最早的基于深度學習的one-stage框架,最近的算法如SSD[1]和YOLO[4]重新關注了該方法;這類算法在速度上有很大優(yōu)勢,但在準確性上卻遜于two-stage算法;SSD的準確性降低了10-20%,而YOLO則關注更加極端的速度/準確性的折衷;Focal Loss[13]指出onestage算法準確性不足的主要原因是正負樣本分布不均衡造成的,簡單樣本數(shù)量太多,困難樣本沒有得到充分的訓練,通過在交叉熵損失函數(shù)前乘以因子(1-pt)γ使得one-stage算法的檢測準確性達到了two-stage的效果同時速度上的優(yōu)勢保持不變;本文采取one-stage方法結合Focal Loss的思想在本文構建的的數(shù)據(jù)庫中取得卓越的性能。
本文創(chuàng)建了一個擁有6834張帶標簽的高分辨率圖像的數(shù)據(jù)集,分屬于11個類別;分別是貓、鹿、狗、豹子、蜥蜴、猴子、熊貓、兔子、羊、蛇、松鼠;這些圖像是從網(wǎng)上收集,進行人工貼標簽。在每個類別中隨機選取20%作為測試集;圖片的標注信息包含目標的位置左上角(xl,yl)坐標和右下角坐標(xryr)以及數(shù)字表示的類別信息;在該數(shù)據(jù)集上我們使用mean Average Precision(mAP)的目標檢測評價指標,部分圖片如圖1所示。
大多數(shù)基于CNN的目標檢測框架都被巨大的計算量限制著,尤其是在CPU設備;尤其是卷積操作在輸入圖像的尺寸,卷積核的尺寸以及輸出的通道數(shù)都很大時更是極其耗時;為了解決這個問題,本文提出的MiniNet通過精心設計的網(wǎng)絡結構,快速地降低輸入圖片的維度,使用合適的卷積核尺寸和少量的通道數(shù)使該網(wǎng)絡結構達到CPU實時的效果,該框架具體分為兩個部分;第一部分為基礎網(wǎng)絡主要用于提取圖片全局特征,后半部分是分類、回歸網(wǎng)絡用于得到目標的置信度以及目標的坐標;具體設計細節(jié)如下:
(1)輸入圖片降維:為了快速降低輸入圖片的維度,MiniNet設計上對卷積層和采樣層采用了一系列很大步長;如圖二所示,Conv1,Pool1,Conv2 和 Pool2 的步長分別設置為4,2,2和2;總共的步長為32,意味著輸入圖片的維度可以快速的降低32倍。
(2)選擇合適的卷積核尺寸:前面幾層的卷積核尺寸應該盡可能的小以保證速度的提升,同時應該足夠大保證輸入圖片為度降低時信息的損失;如圖二所示,為了同時保證效率和精度,對Conv1,Conv2和所有的Pool層分別使用 7×7,5×5 以及 3×3 的尺寸。
(3)降低輸出通道的數(shù)量:本文使用C.ReLU激活函數(shù)降低輸出的通道的數(shù)量;C.ReLU[14]的動機在于觀察到CNN底層的濾波器常以成對的形式出現(xiàn),例如以相反的狀態(tài);通過這樣的觀察,C.ReLU可以加倍輸出通道的數(shù)量通過簡單的連接負狀態(tài)的輸出,使用C.Re-LU顯著地增加了速度,精度的下降可以忽略不計。
圖1
圖2
損失函數(shù)包含兩個部分:置信度損失函數(shù)以及位置損失函數(shù),將它們按權重相加起來就是總的損失函數(shù);公式如下:
其中N是與真實窗口匹配的候選窗口的數(shù)量,如果N等于 0,那么損失也為0;位置損失函數(shù)為Smooth L1損失函數(shù);它計算候選窗口(l)和真實窗口(g)之間距離;用xkij={1,0}表示第i個首選窗口是否匹配第j個真是窗口,且類別為k;
置信度損失函數(shù)采用focal loss損失函數(shù),它由兩部分組成,(1-pt)γ為調節(jié)因子,Lconf(x,c)為交叉熵損失函數(shù);
α是權重系數(shù),本文設置為1;調節(jié)因子γ取2。
使用隨機梯度下降法并且batchsize大小為32、動力為0.9、權重衰減為0.0005的超參數(shù)來訓練網(wǎng)絡;其中少量的權重衰減對于模型學習是重要的;這里的權重衰減不僅僅是一個正則化矩陣,它減少了訓練誤差;對于權重w的更新規(guī)則為:
wi+1:=wi+vi+1
使用均值為0、標準差為0.01的高斯分布初始化了每一層的權重;對于所有層都使用了相等的學習率,學習率在訓練過程中可以調整,當訓練誤差不在下降時就將學習率除以10;學習率初始化為0.01;我訓練該網(wǎng)絡時候大致將該5462張訓練數(shù)據(jù)集循環(huán)了235次;其中batchsize為32,最大迭代次數(shù)為80000次,在兩塊GPU分別為NVIDAI GTX 980Ti 4GB和NVIDAI GTX 960 4GB上花費時間為兩天;
我們針對該數(shù)據(jù)集分別對比了MiniNet、VGG-16Net、ZF-Net、ResNet-101 等基礎網(wǎng)絡的效果;實驗結果總結與表1當中。
由上圖可以看出本文提出的MiniNet對比其他現(xiàn)有網(wǎng)絡在本文創(chuàng)建的數(shù)據(jù)庫中取得了最好的效果;速度方面MiniNet的精巧設計可以在CPU上達到100ms每幀,精度上比略微高于ResNet101,這主要是因為MiniNet的輸入圖片的尺寸很大,而針對于該數(shù)據(jù)集存在著不少的小目標,MiniNet的網(wǎng)絡設計上適合小目標比較多的情況。
當前的目標檢測模型在計算上令人望而卻步,CPU設備實現(xiàn)實時的速度以及保持高性能是很困難的。本文提出了一種新穎的動物檢測器,具備出色的性能,在準確性以及速度上兼具優(yōu)勢;提出的輕量級的網(wǎng)絡結構由基礎網(wǎng)絡以及回歸+分類兩部分組成,結合Focal Loss的思想在本文提出的數(shù)據(jù)庫上取得了優(yōu)越的性能;改檢測器速度非常快,在Intel i5四核主頻2.7GHz處理器上達到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-),男,安徽合肥人,碩士,研究方向為基于深度學習的目標檢測
2017-09-22
2017-10-26