張海玉 陳久紅
摘 要:當(dāng)車流量較少時,降低路燈亮度可以達(dá)到能源節(jié)約目的。為此,采用深度學(xué)習(xí)中的R-FCN目標(biāo)檢測網(wǎng)絡(luò)完成夜間車輛檢測任務(wù)。R-FCN網(wǎng)絡(luò)相比傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò),不僅是基于區(qū)域推薦模型的網(wǎng)絡(luò),而且引入了平移變化特性,所以對目標(biāo)檢測效果更好。為了占用更少硬件資源,縮小模型規(guī)模,采用ShuffleNet通道分組與組間通信機(jī)制,壓縮原始?xì)埐罹W(wǎng)絡(luò)。同時,對NMS(非極大值抑制)算法進(jìn)行修改,從而可以更好地篩選重疊目標(biāo),降低網(wǎng)絡(luò)漏檢率。實(shí)驗(yàn)結(jié)果表明,該方法準(zhǔn)確率較高,在UA-DETRAC數(shù)據(jù)集的夜間圖片檢測中精度最高可達(dá)到90.89%。
關(guān)鍵詞:車流量檢測;深度學(xué)習(xí);計(jì)算機(jī)視覺;模型壓縮;R-FCN
DOI:10. 11907/rjdk. 182680 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP306文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2019)009-0033-05
Research on Night Traffic Flow Detection Method Based on Deep Learning
ZHANG Hai-yu,CHEN Jiu-hong
(School of Electronics and Communication,Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: When the traffic flow is small, reducing the brightness of the street light can achieve the purpose of energy saving. For night vehicle detection tasks, this paper uses the R-FCN detection network in deep learning. Compared with the traditional deep learning network, the R-FCN network is not only a network based on the regional recommendation model, but also introduces translational variation characteristics, so the network has better effects on detection task. In order to take up less hardware resources and reduce the size of the model, we used ShuffleNet's channel grouping and inter-group communication mechanism to compress the original residual network. At the same time, the NMS algorithm is modified in this paper, so that the overlapping targets can be better filtered and the network's missed detection rate can be reduced. The experimental results show that the accuracy of the method is high, and the accuracy in the night image of the UA-DETRAC data set can reach 90.89%.
Key Words: traffic flow detection; deep learning; computer vision; model compression; R-FCN
0 引言
在計(jì)算機(jī)視覺與深度學(xué)習(xí)飛速發(fā)展的今天,各種物體分類、目標(biāo)檢測方法不斷創(chuàng)新和完善,使得利用計(jì)算機(jī)快速識別、解讀圖片的深刻含義成為可能。
傳統(tǒng)圖像算法先通過人對圖像進(jìn)行分析,提取出有意義的特征,并對其進(jìn)行有效判斷,提取場景的語義表示,以此讓計(jì)算機(jī)具有人的眼睛與大腦。由此可以看出,傳統(tǒng)圖像檢測方法是有缺陷的:人的參與度太大,無論是特征選取,還是特征提取方法,都需要大量項(xiàng)目經(jīng)驗(yàn)作指導(dǎo)。隨著機(jī)器學(xué)習(xí)與深度學(xué)習(xí)算法研究進(jìn)入快速發(fā)展階段,尤其是在計(jì)算機(jī)視覺方面,深度學(xué)習(xí)算法發(fā)揮了越來越大的作用,甚至在某些領(lǐng)域已經(jīng)超越了傳統(tǒng)圖像算法,使得計(jì)算機(jī)視覺學(xué)科進(jìn)入一個新階段,人為干預(yù)程度越來越低,計(jì)算機(jī)真正可以自己去思考。
深度學(xué)習(xí)是由多個處理層組成的計(jì)算模型,可通過學(xué)習(xí)獲得數(shù)據(jù)的多抽樣層表示[1]。目前,利用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測算法主要有兩種類別:一種是以區(qū)域建議為基礎(chǔ)開發(fā)的卷積神經(jīng)網(wǎng)絡(luò)算法系列;另一種是以深度回歸卷積神經(jīng)網(wǎng)絡(luò)為代表的模式。前者主要特點(diǎn)是可以取得很高的精度,但是檢測速度有待提升,對需要實(shí)時檢測的問題有待進(jìn)一步優(yōu)化,典型代表有R-CNN系列(R-CNN網(wǎng)絡(luò)[2]、SPP-Net網(wǎng)絡(luò)[3]、Fast R-CNN網(wǎng)絡(luò)[4]等)。后者主要特征是檢測速度快,一般可以達(dá)到實(shí)時性要求,但檢測精度方面不如前者,其典型代表有YOLO網(wǎng)絡(luò)[5]、SSD網(wǎng)絡(luò)[6]以及由清華大學(xué)和英特爾中國研究院提出的RON網(wǎng)絡(luò)[7]等。
本文基于檢測精度考慮,采用基于區(qū)域推薦的卷積神經(jīng)網(wǎng)絡(luò)系列中的R-FCN網(wǎng)絡(luò)[8],引入Soft-NMS算法[9],用于進(jìn)一步提高檢測精度,并采用ShuffleNet技術(shù)[10]更改原始?xì)埐罹W(wǎng)絡(luò),用于縮小模型[11]。
1 R-FCN目標(biāo)檢測網(wǎng)絡(luò)
目前,全卷積網(wǎng)絡(luò)結(jié)構(gòu)具有平移不變性,在物體分類中倍受青睞,因?yàn)槲矬w分類要求平移不變性越大越好 。然而,在物體檢測任務(wù)中需要一些具有平移特性的定位表示,即物體發(fā)生平移時,網(wǎng)絡(luò)應(yīng)該產(chǎn)生對應(yīng)響應(yīng),這些響應(yīng)對定位物體是有意義的。
假設(shè)全卷積網(wǎng)絡(luò)層數(shù)越多,網(wǎng)絡(luò)對平移變化越不敏感。為解決該問題,人們嘗試在網(wǎng)絡(luò)卷積層間插入 RoI 池化層。因此,區(qū)域與區(qū)域之間不再具有平移不變性。然而,該設(shè)計(jì)因引入過多區(qū)域操作層,從而犧牲了訓(xùn)練和測試效率。所以,為引入更多平移變化,R-FCN網(wǎng)絡(luò)在此基礎(chǔ)上設(shè)計(jì)了特殊的卷積層以構(gòu)建位置敏感分?jǐn)?shù)特征圖,依靠RoI池化層獲取感興趣區(qū)域,然后利用每個位置敏感特征圖嘗試對相對空間位置信息進(jìn)行編碼[12]。
1.1 網(wǎng)絡(luò)架構(gòu)
仿照Faster R-CNN網(wǎng)絡(luò),R-FCN網(wǎng)絡(luò)首先經(jīng)過殘差網(wǎng)絡(luò)產(chǎn)生特征圖,然后通過兩個階段對目標(biāo)進(jìn)行檢測,包括區(qū)域建議和區(qū)域分類[13]?;A(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
1.2 殘差網(wǎng)絡(luò)
從2012年AlexNet網(wǎng)絡(luò)到2014年VGGNet網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)越來越復(fù)雜[14,15]。網(wǎng)絡(luò)層數(shù)越深就越具有超強(qiáng)學(xué)習(xí)能力,也就可以擬合出更好的數(shù)學(xué)模型。然而,隨著網(wǎng)絡(luò)層數(shù)加深,網(wǎng)絡(luò)訓(xùn)練難度越來越大,殘差網(wǎng)絡(luò)將對此進(jìn)行優(yōu)化。模型結(jié)構(gòu)如圖2所示。
假設(shè)需要某一層網(wǎng)絡(luò)學(xué)會這樣一個映射[H(x)],現(xiàn)在只讓它學(xué)會映射[F(x):=H(x)-x]即可,其中x為本層輸入數(shù)據(jù),那么最初要學(xué)習(xí)的映射就是[F(x)+x]。假設(shè)學(xué)習(xí)F映射比學(xué)習(xí)H映射更容易,則只需要每一層訓(xùn)練出F映射,然后人為加入x的恒等映射。在某種極端情況下,若某個恒等映射最優(yōu),則可將權(quán)值層的參數(shù)變?yōu)?,這樣比用傳統(tǒng)層擬合恒等映射更簡單。當(dāng)然在實(shí)際情況下,恒定映射不太可能最優(yōu),但是若最優(yōu)表達(dá)式接近于恒等映射,則對于網(wǎng)絡(luò)模型來說,尋找一個關(guān)于恒等映射擾動比找到一個新映射要容易得多。其中,該恒等映射可以跳過一個或者多個層,在跳過多個層時,若x和F的維度不同,則需要一個線性映射W匹配兩者維度。實(shí)驗(yàn)證明,殘差網(wǎng)絡(luò)解決了隨著網(wǎng)絡(luò)層數(shù)加深引起的模型退化問題。
1.3 位置敏感分?jǐn)?shù)圖
類似于Faster R-CNN網(wǎng)絡(luò),R-FCN網(wǎng)絡(luò)有一個單獨(dú)RPN網(wǎng)絡(luò)尋找特征圖的ROI(感興趣區(qū)域)。為了將位置信息編碼進(jìn)每一個RoI矩形中,可將每個感興趣區(qū)域劃分成[k2]個格子(bin)。對于一個大小為[w?h]的RoI矩形,格子大小約為[wk?hk]。同時,R-FCN網(wǎng)絡(luò)最后一個卷積層為每一類及其位置信息重組了[k2]個分?jǐn)?shù)圖。定義第[(i,j)]個格子[(0i,jk-1)]的池化操作函數(shù)為:
1.4 分類與定位
對于分類問題,假設(shè)共有[c]類目標(biāo),利用[k2]個位置敏感分?jǐn)?shù)特征圖進(jìn)行投票,可以產(chǎn)生一個[(c+1)]維向量(包含一個背景類)。
然后,使用softmax函數(shù)跨類別計(jì)算每個類別的概率值。
對于定位問題,對每個感興趣區(qū)域的每一類產(chǎn)生4[k2]個元素向量,并進(jìn)行投票。利用Faster R-CNN網(wǎng)絡(luò)的位置回歸參數(shù)化方法,可得到一個一維向量[(tx,ty,tw,th)],此為檢測目標(biāo)的定位信息。
2 網(wǎng)絡(luò)優(yōu)化
2.1 模型壓縮
深度學(xué)習(xí)網(wǎng)絡(luò)相對于傳統(tǒng)圖像處理技術(shù),運(yùn)行速度較慢,主要原因是網(wǎng)絡(luò)過于臃腫龐大、計(jì)算量大,不適宜應(yīng)用到嵌入式設(shè)備上。因此,進(jìn)行適當(dāng)?shù)哪P蛪嚎s是加速網(wǎng)絡(luò)運(yùn)行速度的一種可行方法。近年來,模型壓縮算法從壓縮方式上可以大致分為兩大類:權(quán)值壓縮和網(wǎng)絡(luò)結(jié)構(gòu)壓縮。權(quán)值壓縮方法包括Deep Compression方式、XNorNet方式等,網(wǎng)絡(luò)結(jié)構(gòu)壓縮方法包括SqueezeNet方式、Distilling方式和ShuffleNet方式等[16-19]。
本文采用ShuffleNet技術(shù)對前端殘差網(wǎng)絡(luò)進(jìn)行壓縮。相對于傳統(tǒng)權(quán)值壓縮方法,ShuffleNet更容易平衡精度與壓縮程度之間的矛盾。同時,該模型既可以對網(wǎng)絡(luò)存儲空間進(jìn)行壓縮,又可以提高運(yùn)行速度。ShuffleNet網(wǎng)絡(luò)由MobileNet分組思想演化而來,主要優(yōu)化策略是分組卷積和組間通信,如圖3所示[20]。
標(biāo)準(zhǔn)卷積層一般對輸入數(shù)據(jù)的所有通道進(jìn)行卷積計(jì)算,然而在小型網(wǎng)絡(luò)中,計(jì)算代價昂貴。為了解決該問題,一個簡單方式是使用通道稀疏連接方式,例如組卷積。通過確保每個卷積只在相應(yīng)輸入通道組上運(yùn)行,組卷積可以大大降低計(jì)算成本。然而,如果多個層的組卷積疊加在一起,就會產(chǎn)生一個副作用:來自某個通道的輸出只能從一小部分輸入通道中獲得,該屬性將阻止通道組之間的信息流動。
如果允許組卷積從不同組獲得輸入數(shù)據(jù),如圖3(a)所示,則輸入和輸出通道將完全互相依賴。具體來說,對于上一層生成的特征圖,可以先將其劃分為幾個組,然后用不同組的部分通道填充下一層的每個組。如此,就可以通過一個shuffle操作高效而簡單地實(shí)現(xiàn)組間通信,如圖3(b)。此外,通道shuffle也是可微分的,意味著它可以嵌入到網(wǎng)絡(luò)結(jié)構(gòu)中,實(shí)現(xiàn)端到端訓(xùn)練。
本文利用ShuffleNet機(jī)制對R-FCN的殘差網(wǎng)絡(luò)進(jìn)行壓縮。假設(shè)殘差網(wǎng)絡(luò)輸入維度是[c*h*w],瓶頸層通道數(shù)為[m],則該結(jié)構(gòu)單元計(jì)算量為[hw(2cm+9m2)]FLOP,而經(jīng)過ShuffleNet壓縮后,計(jì)算量僅為[hw(2cm/g+9m)]FLOP,其中[g]為分組個數(shù)。所以,給定計(jì)算預(yù)算,ShuffleNet可以使用更廣泛的特征映射,這對于小網(wǎng)絡(luò)至關(guān)重要,因?yàn)樾【W(wǎng)絡(luò)通常沒有足夠的通道處理信息。
2.2 Soft-NMS算法
NMS算法是目標(biāo)檢測網(wǎng)絡(luò)的重要組成部分,主要用于減少預(yù)測框,對重疊的預(yù)測框進(jìn)行非極大值抑制。首先,它會根據(jù)預(yù)測框的得分從大到小排序,選擇得分最高的預(yù)測框作為極大值框,當(dāng)其它預(yù)測框與其重疊程度超過一定閾值時,在排序列表中將非極大值框排除。該過程會被遞歸調(diào)用到下一個得分最大的預(yù)測框,直到遍歷完所有框。預(yù)測框減少將會大大降低網(wǎng)絡(luò)計(jì)算量,同時預(yù)防同一目標(biāo)產(chǎn)生多個預(yù)測框。NMS算法的一個主要問題是,它將相鄰預(yù)測框的得分強(qiáng)制設(shè)為0。因此,若兩個目標(biāo)實(shí)際上相互重疊,而且其重疊度大于NMS算法所設(shè)定閾值,其中一個將會被遺漏,導(dǎo)致精度下降。然而,如果不強(qiáng)制設(shè)為0,而是降低得分,它依然會出現(xiàn)在排序列表中,依然可能被檢測到,提高網(wǎng)絡(luò)檢測精度。
[10] ZHANG X Y, ZHOU X Y, LIN M X, et al. Shufflenet: an extremely efficient convolutional neural network for mobile devices[C]. Salt Lake City: CVPR,2018.
[11] HE K, ZHANG X,REN S,et al. Deep residual learning for image recognition[C]. Las Vegas:CVPR,2016.
[12] 周俊宇,趙艷明. 卷積神經(jīng)網(wǎng)絡(luò)在圖像分類和目標(biāo)檢測應(yīng)用綜述[J]. 計(jì)算機(jī)工程與應(yīng)用,2017,53(13):34-41.
[13] REN S Q,HE K M,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,2016,39(6):1137-1149.
[14] KRIZHEVSKY A, SUTSKEVER I, HINTON G. Imagenet classification with deep convolutional neural networks[C]. Lake Tahoe: NIPS,2012.
[15] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[C]. San Diego:ICLR,2015.
[16] HAN S, MAO H, DALLY W J, et al. Deep compression:compressing deep neural networks with pruning, trained quantization and huffman coding[C]. ?San Juan:ICLR,2016.
[17] MOHAMMAD R,VICENTE O,JOSEPH R, et al. XNOR-Net: ImageNet classification using binary convolutional neural networks[C]. ?Amsterdam:ECCV,2016.
[18] IANDOLA F N, HAN S, MOSKEWICZ M W,et al. Squeezenet:alexnet-level accuracy with 50x fewer parameters and< 0.5 mb model size[C]. Toulon:ICLR,2017.
[19] HINTON,GEOFFREY,VINYALS,et al. Distilling the knowledge in a neural network[C]. Montreal:NIPS,2014.
[20] HOWARD A G, ZHU M, CHEN B,et al. MobileNets: efficient convolutional neural networks for mobile vision applications[DB/OL]. ?https://arxiv.org/pdf/1704.04861.pdf.
[21] WEN L Y, DU D W,CAI Z W,et al. UA-DETRAC: a new benchmark and protocol for multi-object detection and tracking[EB/OL]. ?http://detrac-db.rit.albany.edu.
[22] RICHARD,SZELISKI. 計(jì)算機(jī)視覺——算法與應(yīng)用[M]. 艾海舟,興軍亮,譯. 北京:清華大學(xué)出版社,2012.
(責(zé)任編輯:何 麗)