曹鑫勝
(山西交通實(shí)業(yè)發(fā)展集團(tuán)有限公司,山西 太原 030006)
?;肥且兹肌⒁妆?、有強(qiáng)烈腐蝕性化學(xué)物品的總稱(chēng),是容易造成可怕的危險(xiǎn)結(jié)果的物品。服務(wù)區(qū)作為高速公路的“中轉(zhuǎn)站”、“加油站”,是長(zhǎng)途旅客休息的重要場(chǎng)所,是重要的人員、車(chē)輛的集散地和密集區(qū),?;奋?chē)輛進(jìn)入服務(wù)區(qū),就等于是一個(gè)移動(dòng)的危險(xiǎn)源放到了服務(wù)區(qū)內(nèi),由于它的動(dòng)態(tài)性大,發(fā)生事故的時(shí)間和地點(diǎn)難以預(yù)知,一旦發(fā)生事故,極易造成群死群傷的群體性事件,對(duì)人民生命財(cái)產(chǎn)和公共安全構(gòu)成極大威脅。
國(guó)家和交通運(yùn)輸部特別重視服務(wù)區(qū)?;奋?chē)輛管理工作,2018年交通運(yùn)輸部印發(fā)全國(guó)公路服務(wù)區(qū)19項(xiàng)工作重點(diǎn),其中在第4條加強(qiáng)公共場(chǎng)區(qū)管理中,重點(diǎn)提出了要加強(qiáng)危化品運(yùn)輸車(chē)的有序停放和安全管理工作。
因此,本研究目的在于,通過(guò)深度學(xué)習(xí)技術(shù),實(shí)現(xiàn)服務(wù)區(qū)?;愤\(yùn)輸車(chē)輛的實(shí)時(shí)準(zhǔn)確識(shí)別,使?;奋?chē)輛一旦進(jìn)入服務(wù)區(qū),管理人員能夠在第一時(shí)間獲得信息,幫助管理人員做好車(chē)輛在服務(wù)區(qū)行駛軌跡的跟進(jìn)管理工作,從而為服務(wù)區(qū)提高危化品車(chē)輛的監(jiān)測(cè)水平,降低危化品車(chē)輛監(jiān)測(cè)的人力物力成本,做好責(zé)任劃分起到良好的輔助作用。
Faster RCNN是目前比較流行的目標(biāo)檢測(cè)算法。Faster RCNN是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周?chē)鷨卧?,?duì)于大型圖像處理有出色表現(xiàn)。Faster RCNN算法主要由以下幾個(gè)部分構(gòu)成:
1) 基于RPN的車(chē)輛候選框提取。
通過(guò)前向卷積神經(jīng)網(wǎng)絡(luò)得到圖像候選區(qū)域的feature map,然后對(duì)該feature map進(jìn)行分離處理,一者進(jìn)行物體背景判斷,如果該feature map的某個(gè)候選區(qū)域?qū)?yīng)是物體,那么該候選框保留,如果是背景則剔除,二者是輸出該區(qū)域的bbox的相關(guān)四個(gè)參數(shù),包括bbox的中心坐標(biāo)x和y,以及bbox的長(zhǎng)和寬。由于常用卷積核的大小都是定長(zhǎng),視野有限,RPN基于此提出anchor的機(jī)制對(duì)視野進(jìn)行變換處理,按照長(zhǎng)寬比1∶1、1∶2、2∶1進(jìn)行變換得到不同尺寸的候選框。由于本次任務(wù)是對(duì)車(chē)輛、車(chē)牌候選框進(jìn)行提取,我們可以基于車(chē)輛本身一些尺寸約束對(duì)上述比例進(jìn)行修改,更加符合本次任務(wù)需求;由于神經(jīng)網(wǎng)絡(luò)的初始化是極其重要的一環(huán),能否有好的初始化關(guān)乎問(wèn)題解決的質(zhì)量,在具體的實(shí)驗(yàn)設(shè)計(jì)中,我們實(shí)驗(yàn)在ImageNet數(shù)據(jù)集上訓(xùn)練好的ResNet-101模型參數(shù)對(duì)網(wǎng)絡(luò)模型進(jìn)行初始化。
2) 物體識(shí)別Fast-RCNN。
通過(guò)RPN輸出的候選框?qū)υ紙D像進(jìn)行截取,將截取后的圖像經(jīng)過(guò)若干次卷積+pooling操作,然后再通過(guò)ROI-pooling和全連接神經(jīng)網(wǎng)絡(luò)后輸出到兩條支路,一是目標(biāo)分類(lèi)softmax,一是bbox回歸。由于RPN提取的候選框畢竟是一定尺寸下的候選框,難免不能覆蓋所有物體的真實(shí)框,基于此Fast-RCNN對(duì)候選框進(jìn)行一定程度的修正。
3) 損失函數(shù)設(shè)計(jì)。
涉及到分類(lèi)問(wèn)題,定義損失函數(shù)是極其重要的,我們初步想法是借鑒Faster-RCNN做法,對(duì)于RPN左支路,anchor是否有目標(biāo),用0/1來(lái)表示,論文中采用的是人為制定的規(guī)則來(lái)進(jìn)行判斷,根據(jù)IoU來(lái)進(jìn)行判斷,人為設(shè)計(jì)了兩個(gè)閾值0.7和0.3,本次任務(wù)我們需要根據(jù)自身的任務(wù)進(jìn)行調(diào)整閾值。
整個(gè)Faster RCNN算法的流程如下:
1) 上面提取得到的CNN特征輸入到RPN網(wǎng)絡(luò)中,得到候選框的類(lèi)別信息和位置信息;
2) 將RPN網(wǎng)絡(luò)得到的候選框的特征信息作為輸入,輸入到后面的Fast R-CNN網(wǎng)絡(luò)中;
3) 基于前面提取得到的特征映射,進(jìn)一步使用分類(lèi)器判別是否屬于某個(gè)特定的類(lèi)以及利用回歸器精修候選框的位置。
通過(guò)以上步驟可以得到車(chē)輛特征信息。但是,F(xiàn)aster RCNN算法中的anchor的尺度是固定的,分別為128,256,512,對(duì)應(yīng)于1*2,1*1,2*等三個(gè)不同長(zhǎng)寬比,也就是說(shuō)每個(gè)特征點(diǎn)上會(huì)得到9個(gè)anchors,而每個(gè)anchor檢測(cè)的目標(biāo)box的位置是沒(méi)有任何限制,可以在圖片上的任何位置;Faster RCNN算法中沒(méi)有結(jié)合上層的粗粒度卷積特征,直接在最后一層feature map上進(jìn)行坐標(biāo)預(yù)測(cè);而這并不適合應(yīng)用在服務(wù)區(qū)場(chǎng)合下?;奋?chē)輛特征識(shí)別,因?yàn)樵诜?wù)區(qū)卡口監(jiān)測(cè)到的車(chē)輛圖片信息,相對(duì)于傳統(tǒng)的多類(lèi)別檢測(cè)任務(wù)而言,較為簡(jiǎn)單,選用這么大型的模型容易產(chǎn)生過(guò)擬合現(xiàn)象,因此,為了提高模型在實(shí)際場(chǎng)景的泛化率,宜選用簡(jiǎn)單而準(zhǔn)確率較高的模型進(jìn)行訓(xùn)練。
為此,本研究選用YOLO算法,其通過(guò)提出全新的Darknet-19網(wǎng)絡(luò)模型,結(jié)合了粗細(xì)粒度的卷積特征,算法中每個(gè)特征點(diǎn)上的5個(gè)anchors是通過(guò)維度聚類(lèi),kmeans方法得到的,算法中每一個(gè)anchor只負(fù)責(zé)檢測(cè)當(dāng)前grid cell周?chē)?fù)一個(gè)單位以?xún)?nèi)的目標(biāo)box,準(zhǔn)確度較高;且處理一張圖片的時(shí)間在0.1 s~0.2 s之間,能夠較好地滿(mǎn)足真實(shí)背景下檢測(cè)任務(wù)的速度要求。
車(chē)輛?;费芯客瓿蓮目谲?chē)輛圖片中選取有?;窐?biāo)志牌的車(chē)輛,整個(gè)車(chē)輛檢測(cè)中包括圖片處理流程、模型選型、結(jié)果檢驗(yàn)等一系列過(guò)程。圖片在處理過(guò)程中主要分為三個(gè)步驟,包括圖片源獲取、圖片篩選以及圖片標(biāo)定工作。
本次研究的圖片主要來(lái)源于某服務(wù)區(qū)的卡口車(chē)道監(jiān)控圖片,車(chē)輛樣例圖片如圖1。
圖1 某服務(wù)區(qū)卡口車(chē)輛圖片樣例
目前共獲取到12個(gè)月的卡口視頻截圖,每天圖片約為1 500張左右,總計(jì)圖片數(shù)量54萬(wàn)張左右。
本次主要研究對(duì)象為?;奋?chē)輛,而卡口監(jiān)控拍攝得到的是所有類(lèi)型的車(chē)輛圖片。由于?;奋?chē)輛本身較少,這種情況下如果使用全部圖片進(jìn)行檢測(cè)會(huì)造成巨大的數(shù)據(jù)傾斜問(wèn)題,為了完成?;奋?chē)輛檢測(cè)工作,需要大量篩選出危化品車(chē)輛作為可用樣本,才能完成模型訓(xùn)練的相關(guān)需求。通過(guò)篩選共得到?;奋?chē)輛圖片10 000張左右。
在標(biāo)定工具中打開(kāi)需要標(biāo)定的圖片,框選中需要標(biāo)定的區(qū)域再選中分類(lèi)為?;贰M瓿蓸?biāo)定的圖片會(huì)在原有圖片基礎(chǔ)上生成xml文件,記錄標(biāo)定框的位置以及分類(lèi)結(jié)果。
YOLO算法同樣是目前目標(biāo)檢測(cè)領(lǐng)域的經(jīng)典算法。YOLO算法包括兩個(gè)版本,即YOLOv1和YOLOv2。
4.1.1 YOLOv1的流程
1) 給一個(gè)輸入圖像,首先將圖像劃分成7×7的網(wǎng)格。
2) 對(duì)于每個(gè)網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)2個(gè)bouding box(每個(gè)box包含5個(gè)預(yù)測(cè)量)以及20個(gè)類(lèi)別概率,總共輸出7×7×(2×5+20)=1 470個(gè)tensor。
3) 根據(jù)上一步可以預(yù)測(cè)出7×7×2=98個(gè)目標(biāo)窗口,然后根據(jù)閾值去除可能性比較低的目標(biāo)窗口,再由NMS去除冗余窗口即可。
4.1.2 YOLOv2算法
YOLOv2作為YOLOv1版本的改進(jìn),相比于YOLOv1版本,做了許多的改進(jìn)。幾個(gè)主要的改進(jìn)如下:
1) Batch Normalization:CNN在訓(xùn)練過(guò)程中網(wǎng)絡(luò)每層輸入的分布一直在改變,會(huì)使訓(xùn)練過(guò)程難度加大,但可以通過(guò)normalize每層的輸入解決這個(gè)問(wèn)題。新的YOLO網(wǎng)絡(luò)在每一個(gè)卷積層后添加batch normalization,通過(guò)這一方法,mAP獲得了2%的提升。batch normalization也有助于規(guī)范化模型,可以在舍棄dropout優(yōu)化后依然不會(huì)過(guò)擬合。
2) High Resolution Classifier:目前的目標(biāo)檢測(cè)方法中,基本上都會(huì)使用ImageNet預(yù)訓(xùn)練過(guò)的模型(classifier)來(lái)提取特征,如果用的是AlexNet網(wǎng)絡(luò),那么輸入圖片會(huì)被resize到不足256×256,導(dǎo)致分辨率不夠高,給檢測(cè)帶來(lái)困難。為此,新的YOLO網(wǎng)絡(luò)把分辨率直接提升到了448×448,這也意味著原有的網(wǎng)絡(luò)模型必須進(jìn)行某種調(diào)整以適應(yīng)新的分辨率輸入。
對(duì)于YOLOv2,作者首先對(duì)分類(lèi)網(wǎng)絡(luò)(自定義的darknet)進(jìn)行了fine tune,分辨率改成448×448,在ImageNet數(shù)據(jù)集上訓(xùn)練10輪(10 epochs),訓(xùn)練后的網(wǎng)絡(luò)就可以適應(yīng)高分辨率的輸入了。然后,作者對(duì)檢測(cè)網(wǎng)絡(luò)部分(也就是后半部分)也進(jìn)行fine tune。這樣通過(guò)提升輸入的分辨率,mAP獲得了4%的提升。
本研究我們采用了YOLOv2算法,YOLOv2算法是基于卷積神經(jīng)網(wǎng)絡(luò)技術(shù),其算法流程大致分為下面幾步:
1) 采用YOLOv2模型進(jìn)行車(chē)輛檢測(cè),訓(xùn)練時(shí)利用人工標(biāo)注的危化品車(chē)輛圖像進(jìn)行訓(xùn)練。
2) 采用基于動(dòng)量的隨機(jī)梯度下降方法,一共訓(xùn)練50個(gè)epoch。初始學(xué)習(xí)率為0.001,訓(xùn)練到30和40個(gè)epoch后分別乘以0.1。
3) 訓(xùn)練圖片尺寸統(tǒng)一變換為448×448。采用隨機(jī)裁剪、隨機(jī)翻轉(zhuǎn)、顏色變換的樣本擴(kuò)充方法。
4) 將圖片resize成448×448的分辨率,圖片進(jìn)行等間距分割得到7×7的網(wǎng)絡(luò)cell
5) 得到2分類(lèi)的車(chē)輛圖片特征。
YOLOv2算法可以完成卡口車(chē)輛是否為危化品車(chē)輛的檢測(cè)識(shí)別,檢測(cè)識(shí)別的結(jié)果,同時(shí)該算法在當(dāng)外界環(huán)境發(fā)生一定變化的情況下也具有檢測(cè)作用,車(chē)輛位置和光照條件發(fā)生變化后依然可以完成相關(guān)檢測(cè)和卡口車(chē)輛在夜間的檢測(cè)情況。
檢測(cè)完成后,模型會(huì)提供當(dāng)次檢測(cè)結(jié)果的可靠性指標(biāo),可靠性指標(biāo)越高,說(shuō)明當(dāng)次檢測(cè)結(jié)果正確的可能性越高。我們可以通過(guò)設(shè)置閾值對(duì)可靠性指標(biāo)進(jìn)行判斷,閾值設(shè)置的越高,則越不容易發(fā)生誤檢的情況,但對(duì)于某些光線模糊、位置傾斜等不易檢測(cè)的圖片,會(huì)發(fā)生漏檢的情況。同樣當(dāng)閾值設(shè)置的越低,對(duì)于某些光線模糊、位置傾斜等不易檢測(cè)的圖片更容易正確的檢測(cè)出?;奋?chē)輛,但同時(shí)也容易發(fā)生誤檢的情況。
本文從真實(shí)高速公路服務(wù)區(qū)視頻出發(fā),以高速公路監(jiān)控視頻為基礎(chǔ),利用YOLO深度學(xué)習(xí)模型完成?;奋?chē)輛識(shí)別工作,使?;奋?chē)輛一旦進(jìn)入服務(wù)區(qū),管理人員能夠在第一時(shí)間獲得信息,幫助管理人員做好車(chē)輛在服務(wù)區(qū)行駛軌跡的跟進(jìn)管理工作,從而為服務(wù)區(qū)提高?;奋?chē)輛的監(jiān)測(cè)水平,降低危化品車(chē)輛監(jiān)測(cè)的人力物力成本,做好責(zé)任劃分起到良好的輔助作用。