賈瑞
摘要:作為計(jì)算機(jī)視覺研究的一個(gè)比較重要的領(lǐng)域,目標(biāo)識(shí)別在實(shí)際應(yīng)用中的對(duì)車輛檢測(cè)和車型識(shí)別具有十分重要的意義。本文運(yùn)用基于Cifar10Net訓(xùn)練的RCNN模型,利用RCNN對(duì)車輛區(qū)域進(jìn)行檢測(cè)。在進(jìn)行識(shí)別檢測(cè)時(shí),利用cifar10Net和RCNN訓(xùn)練出目標(biāo)檢測(cè)器,然后利用訓(xùn)練好的AlexNet模型進(jìn)行車型識(shí)別。
關(guān)鍵詞:車輛檢測(cè);車型識(shí)別;RCNN
中圖分類號(hào):U495 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)02-0096-02
2014年Ross Girshick在CVPR上發(fā)表《Rich feature hierarchies for Accurate Object Detection and Segmentation》,RCNN(Regions with Convolutional Neural Network Features)就是這篇文章的核心算法。此文首次提出利用深度學(xué)習(xí)來實(shí)現(xiàn)目標(biāo)檢測(cè),是目標(biāo)檢測(cè)領(lǐng)域的經(jīng)典文獻(xiàn),一舉將PASCAL VOC上的檢測(cè)率從35.1%提升到53.7%。RCNN關(guān)于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,及對(duì)目標(biāo)檢測(cè)的總體思路,對(duì)后來人們開展相關(guān)研究提供了重要的技術(shù)思想基礎(chǔ)。
RCNN的貢獻(xiàn)主要分為兩部分:(1)將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于區(qū)域檢測(cè)的策略,自底向上訓(xùn)練可以用來定位目標(biāo)物體和圖像分割。(2)當(dāng)標(biāo)記數(shù)據(jù)比較稀疏時(shí),在有監(jiān)督的訓(xùn)練集(如ImageNet)上預(yù)訓(xùn)練,在得到訓(xùn)練模型后,再對(duì)精調(diào)特定的數(shù)據(jù)集,這樣得出的結(jié)果就比較理想。
1 RCNN算法步驟
傳統(tǒng)的圖片定位方法是使用滑動(dòng)窗口探測(cè)器,為了保證較高的空間分辨率,這些卷積神經(jīng)網(wǎng)絡(luò)通常只有兩個(gè)卷積層和池化層,然而由于更深的網(wǎng)絡(luò),更大的輸入圖片和滑動(dòng)步長(zhǎng),使得使用滑動(dòng)窗口來定位的方法充滿了挑戰(zhàn)。RCNN通過使用區(qū)域檢測(cè)的方法來解決卷積神經(jīng)網(wǎng)絡(luò)的定位問題,這個(gè)方法在目標(biāo)檢測(cè)和語(yǔ)義分割中都取得了成功。測(cè)試階段,對(duì)每一張輸入圖片,先定位出2000個(gè)物體候選框,然后采用卷積神經(jīng)網(wǎng)絡(luò)提取每個(gè)候選框中圖片的特征向量,特征向量的維度是4096維,接著采用SVM算法對(duì)每個(gè)候選框中的物體進(jìn)行分類識(shí)別,也就是分為四個(gè)階段:候選區(qū)域生成、對(duì)每個(gè)候選區(qū)域利用深度學(xué)習(xí)網(wǎng)絡(luò)提取特征、使用特定的SVM分類器對(duì)提取的特征向量進(jìn)行分類、使用回歸器精細(xì)修正候選框位置。下面對(duì)每一步驟進(jìn)行詳解。
1.1 候選區(qū)域生成
對(duì)一張圖片不斷的分割合并成許多小圖。這步利用的是選擇性搜索方法。選擇性搜索是先將圖片利用分割手段分割成一些小圖,再將小圖通過一定的合并規(guī)則均勻的合并。對(duì)于原圖,分割合并后的小圖還是小圖。按照這個(gè)方法,經(jīng)過數(shù)次分割合并,直到合并成整張?jiān)瓐D。在這個(gè)過程中,將小圖生成的途徑過程中的所有小圖,就形成了候選區(qū)域,如圖1所示。通過這個(gè)算法搜索出2000個(gè)互不相同的候選區(qū)域,但是在卷積神經(jīng)網(wǎng)絡(luò)中,圖片的大小是固定的,因此對(duì)于每個(gè)候選框都要縮放到固定的大小,在這里有各向異性縮放和各向同性縮放兩種縮放方法。
各向異性縮放就是通過編程,直接將圖片縮放到卷積神經(jīng)網(wǎng)絡(luò)要求的圖片大小,而在此過程中,不考慮圖片的長(zhǎng)款比例及圖片是否有扭曲。
因?yàn)閳D片扭曲后,會(huì)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練精度有影響,于是就有了各向同性縮放方案。這個(gè)方法就是直接在原始圖片中,把候選框的邊界進(jìn)行延伸成正方形,然后再進(jìn)行裁剪,如果已經(jīng)延伸到原始圖片的外邊界,就用候選框中的顏色均值填充。
1.2 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練
RCNN的網(wǎng)絡(luò)訓(xùn)練包括兩部分:預(yù)訓(xùn)練和調(diào)優(yōu)訓(xùn)練。
(1)預(yù)訓(xùn)練。預(yù)訓(xùn)練的網(wǎng)絡(luò)結(jié)構(gòu)采用的是Hinton在ImageNet上的分類網(wǎng)絡(luò)AlexNet,這樣避免了直接從隨機(jī)初始化的參數(shù)進(jìn)行訓(xùn)練,使得網(wǎng)絡(luò)開始之前參數(shù)都是經(jīng)過訓(xùn)練過的參數(shù),可以大大提高精度,這種方法叫有監(jiān)督的訓(xùn)練方式(也稱為遷移學(xué)習(xí))。
(2)調(diào)優(yōu)訓(xùn)練。網(wǎng)絡(luò)結(jié)構(gòu)同樣使用上述結(jié)構(gòu),最后一層換為輸出為21個(gè)類別的全連接網(wǎng)絡(luò),在其它網(wǎng)絡(luò)層的參數(shù)不變的同時(shí),在最后一層直接對(duì)參數(shù)進(jìn)行隨機(jī)初始化,然后開始訓(xùn)練。從一個(gè)候選區(qū)域和所有標(biāo)定區(qū)域(人工標(biāo)注的候選區(qū)域)重疊面積最大的區(qū)域中選取考察對(duì)象??疾爝^程中,若重疊面積比例大于50%,則認(rèn)為此候選區(qū)域?yàn)榇藰?biāo)定的類別(正樣本),否則認(rèn)為此候選區(qū)域?yàn)楸尘埃ㄘ?fù)樣本)。學(xué)習(xí)率為0.001,每一批包含32個(gè)正樣本(屬于20類)和96個(gè)背景的負(fù)樣本。
1.3 SVM分類器訓(xùn)練和測(cè)試
采用一個(gè)線性SVM二類分類器判別同一類目標(biāo)。當(dāng)進(jìn)行車輛檢測(cè)時(shí),只有把整輛車的圖像區(qū)域都包含在內(nèi)的邊框,才是正樣本;則沒有把整輛車的圖像區(qū)域包含在內(nèi)的邊框,就是負(fù)樣本。但是由于實(shí)際中負(fù)樣本數(shù)量遠(yuǎn)遠(yuǎn)大于正樣本數(shù)量,所以Ross Girshick選擇IOU閾值為0.3,即當(dāng)每一個(gè)候選框和和本類目標(biāo)中所有標(biāo)定框的重疊面積均小于0.3時(shí),即將其做為負(fù)樣本。
1.4 利用回歸器精細(xì)修正候選框位置
目標(biāo)檢測(cè)問題的衡量標(biāo)準(zhǔn)是重疊面積,許多檢測(cè)結(jié)果往往由于候選框的不精確導(dǎo)致不準(zhǔn)確,因此需要對(duì)候選框位置進(jìn)行修正。回歸器對(duì)每一類目標(biāo),使用一個(gè)線性脊回歸器進(jìn)行精修。正則項(xiàng)λ=10000,輸入4096維特征,輸出xy方向的縮放和平移,訓(xùn)練樣本判定為本類的候選框中,和真值重疊面積大于0.6的候選框。
綜上所述,RCNN檢測(cè)和識(shí)別的過程如下:先用選擇性搜索的方法選擇2000個(gè)目標(biāo)候選區(qū)域,然后對(duì)每一個(gè)區(qū)域都在卷積神經(jīng)網(wǎng)絡(luò)上運(yùn)行兩次,第一次在利用AlexNet進(jìn)行分類模型訓(xùn)練,之后能進(jìn)行SVM分類,在分類后需要將AlexNet模型改為檢測(cè)模型,然后利用SVM進(jìn)行二分類判斷當(dāng)前檢測(cè)出的區(qū)域是否含有目標(biāo)物體,最后才在檢測(cè)模型的基礎(chǔ)上進(jìn)行邊界檢測(cè),得到所需候選框。
2 車型檢測(cè)和識(shí)別實(shí)現(xiàn)
我們通過采用cifar10Net來訓(xùn)練RCNN得到車輛具體位置。Cifar10是由Hinton的學(xué)生收集的一個(gè)用于普遍適用識(shí)別目標(biāo)的數(shù)據(jù)集。它由60000張32*32的RGB彩色圖片構(gòu)成,共10個(gè)分類(鳥、人、狗、貓、青蛙等),50000張訓(xùn)練圖片,10000張測(cè)試圖片(交叉驗(yàn)證)。這個(gè)數(shù)據(jù)集的優(yōu)點(diǎn)在于將目標(biāo)識(shí)別應(yīng)用到了普通物體,而且解決了不同分類的問題。與已經(jīng)成熟的人臉識(shí)別相比,普通物體識(shí)別則困難重重,因?yàn)槠胀ㄎ矬w的數(shù)據(jù)中含有大量特征、噪聲,而且由于所識(shí)別的物體種類繁多,且體積大小差距較大,這已經(jīng)超出了SVM的識(shí)別能力。所以,Cifar10相對(duì)于傳統(tǒng)圖像數(shù)據(jù)集有顯著優(yōu)勢(shì)。
2.1 算法實(shí)現(xiàn)步驟
之所以采用Cifar10Net來訓(xùn)練RCNN,是因?yàn)閙atlab 2016b(只能是2016b及以上版本)的計(jì)算機(jī)視覺系統(tǒng)工具箱已經(jīng)使用Cifar10數(shù)據(jù)集訓(xùn)練停止檢測(cè)標(biāo)志,通過微調(diào)網(wǎng)絡(luò),可以將原始任務(wù)學(xué)習(xí)的特征適用于新任務(wù)。
首先在matlab中讀入Cifar10Net。
由于cifar10所包含物體種類較少,且Cifar10Net只有三個(gè)卷積層,兩層全連接,因此cifar10巡練速度較快,但準(zhǔn)確率也有所下降。訓(xùn)練策略采取動(dòng)力0.9,初始學(xué)習(xí)率0.005,每次訓(xùn)練迭代的最小批次為100,訓(xùn)練最大次數(shù)為100。訓(xùn)練效果如圖2所示。
2.2 RCNN實(shí)現(xiàn)效果圖
運(yùn)用已經(jīng)訓(xùn)練好的Cifar10 Net RCNN模型對(duì)目標(biāo)車輛區(qū)域進(jìn)行檢測(cè),再利用訓(xùn)練好的AlexNet模型對(duì)車型進(jìn)行識(shí)別,運(yùn)行Pic_Detect_Recognition.m文件,識(shí)別效果如圖3所示。
3 結(jié)語(yǔ)
本文實(shí)現(xiàn)了基于任意角度車輛圖片的車輛型號(hào)識(shí)別,但由于硬件及各種條件的影響,本文的工作還有很多需要改進(jìn)的地方。本文的車輛區(qū)域檢測(cè)模型是用Cifar10訓(xùn)練的RCNN得到的,但RCNN存在重復(fù)計(jì)算問題及速度瓶頸,可以選擇Fast RCNN或Faster RCNN進(jìn)行車輛檢測(cè)。雖然模型選取關(guān)系到識(shí)別速度和精度,但如何優(yōu)化代碼提升識(shí)別速度也是本研究能否應(yīng)用的關(guān)鍵,而且本文的算法基本上是基于Matlab編寫的,后期準(zhǔn)備利用C++結(jié)合深度學(xué)習(xí)工具Caffe進(jìn)行實(shí)現(xiàn),提高識(shí)別速度。
參考文獻(xiàn)
[1] 鄧柳.基于深度卷積神經(jīng)網(wǎng)絡(luò)的車型識(shí)別[D].西南交通大學(xué),2015.
[2] 王茜,張海仙.基于深度神經(jīng)網(wǎng)絡(luò)的汽車車型識(shí)別[J].四川大學(xué)學(xué)報(bào),2015(35):61-64.
[3] 張飛云.基于深度學(xué)習(xí)的車輛定位及車型識(shí)別研究[D].江蘇大學(xué),2016.
[4] 趙永科.深度學(xué)習(xí)21天實(shí)戰(zhàn)Caffe[M].北京:電子工業(yè)出版社,2016,10.
Research on Vehicle Area Detection Based on RCNN
JIA? Rui
(College of Electrical Engineering, Suzhou Chien-shiung Institute of Technology, Taicang Jiangsu? 215400)
Abstract:As a relatively important field of computer vision research, target recognition is of great significance for vehicle detection and vehicle identification in practical applications. In this paper, the RCNN model based on Cifar10Net training is used to detect the vehicle area using RCNN. In the identification test, the target detector is trained using cifar10Net and RCNN, and then the model is identified using the trained AlexNet model.
Key words:vehicle detection; vehicle type identification; RCNN