陳 銘,陳 新,余輝敏
(南京理工大學(xué) 自動化學(xué)院, 南京 210094)
近年來我國交通運(yùn)輸飛速發(fā)展,城市交通負(fù)擔(dān)不斷增加,車輛軸載日漸重型化,一方面增加了對道路的壓迫,使其不堪重負(fù),另一方面,對于交通安全造成了極大的危害,因此實(shí)現(xiàn)對車輛軸型快速準(zhǔn)確的檢測顯得尤為重要。軸型是描述車輛軸組輪胎數(shù)的重要特征量,正確識別出車輛軸型能夠判斷車輛的限載值,為超限超載治理提供重要指導(dǎo)[1]。
車輛軸型識別方法主要分為物理參數(shù)檢測法(壓力,壓電,光纖光柵等)和圖像識別法?,F(xiàn)階段,道路超限超載治理對車軸檢測主要以物理參數(shù)檢測法為主。李麗宏[2]通過測輪器(由一定間隔的12個或16個并排固定的壓力傳感器構(gòu)成)判斷車輛單/雙輪,有無車軸以及是否是聯(lián)軸的信息,采樣時間加長,采樣精度改善,防作弊能力提升。梁宇[3]根據(jù)車輛通過傳感器所產(chǎn)生的波的形狀和時序,使用冗余輪軸識別軟件對車輛產(chǎn)生的波形進(jìn)行數(shù)字濾波,自動識別出車輛通過傳感器時是雙聯(lián)軸還是三聯(lián)軸,解決了系統(tǒng)裝置故障率高和安裝困難的問題,提高道路通行效率。王琪[4]設(shè)計了一種稱重儀表,其中的數(shù)據(jù)采集單元包含了車輛軸型識別,軸組載荷估計模塊,數(shù)據(jù)采集單元的性能決定了整個儀表的稱重精度和軸型識別率,該稱重儀表大大提高了系統(tǒng)的容錯率,達(dá)到國家標(biāo)準(zhǔn)的鑒別要求。安亮亮[5]提出一種單軸磁傳感器測量的低成本方法,這種磁感方法在低速模式下精度較差,速度提高后精度好。Dawid[9]分析了在不同溫度和車速下,軸載傳感器的測量結(jié)果有明顯的差異,表明這種以傳感器為主的物理參數(shù)檢測法受環(huán)境溫度和車輛速度影響。
近年來隨著計算機(jī)各方面技術(shù)的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)被越來越多的應(yīng)用在了機(jī)器視覺領(lǐng)域。大量學(xué)者將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于識別車輛車型。黃燦[7]通過將車輛目標(biāo)區(qū)域尺度特征進(jìn)行尺度不變特征變換(scale-invariant feature transform,SIFT),生成SIFT描述子,在保證識別迅速的基礎(chǔ)上提升了檢測精度。萬文利[8]設(shè)計了車輛輪廓的不相關(guān)二維方差矩陣特征,與模板的方差矩陣進(jìn)行匹配分類,檢測時間減少。謝曉竹[6]論述了單一分類器無法對車輛識別方面精度不夠的問題,提出融合多種分類器對車輛進(jìn)行識別的觀點(diǎn)。徐丙立[12]基于kinect深度圖像,設(shè)計了在無人平臺實(shí)現(xiàn)自動避障功能的小車,小車針對周邊障礙物能夠進(jìn)行有效識別?,F(xiàn)階段圖像識別方法主要應(yīng)用于車輛外觀檢測,而在道路超限超載檢測中需要對車輛軸型進(jìn)行精細(xì)化識別,才能準(zhǔn)確地判斷車輛限載值。
本文應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)中的Single Shot Multibox Detection(SSD)算法模型進(jìn)行軸型識別[10]。首先利用開源數(shù)據(jù)集Pascal VOC2007對模型進(jìn)行預(yù)訓(xùn)練得到參數(shù)權(quán)重,然后用車輛軸型數(shù)據(jù)集對模型進(jìn)行二次訓(xùn)練,得到訓(xùn)練好的SSD模型。最后在需要進(jìn)行稱重識別的高速路口,港口碼頭等地安裝正確角度攝像頭獲取實(shí)時數(shù)據(jù),送入模型識別。該方法擺脫了道路上的線圈、壓電等硬件傳感器設(shè)備,通過正確角度的攝像頭進(jìn)行識別,識別準(zhǔn)確率得到保障,算法時延低,在超限超載檢測上有很好的推廣價值。
2016年7月國家標(biāo)準(zhǔn)委正式批準(zhǔn)發(fā)布強(qiáng)制性國家標(biāo)準(zhǔn)《汽車、掛車及汽車列車外廓尺寸、軸荷及質(zhì)量限值》(GB1589—2016)該標(biāo)準(zhǔn)規(guī)定了車輛限載值,車輛的軸荷載以及路橋超限承載的管理辦法,主要體現(xiàn)在:
1) 二軸貨車載貨后總重在18噸以內(nèi),同時應(yīng)不超過行駛證注明的總質(zhì)量;
2) 除驅(qū)動軸外,二軸、三軸貨車每減少一對輪胎,載重量限制值減少3 t;
3) 驅(qū)動軸為每軸每側(cè)雙輪胎且裝備空氣懸架時,3軸貨車載重量限制值增加1 t。
車輛每根軸都有不同作用,特征也不盡相同,如表1。
將車輛的各個軸組合起來后進(jìn)行細(xì)分如表2所示,每一種軸型都有相應(yīng)的限載值,執(zhí)法部門通過車輛軸型即可知道車輛的限載值。
表2 軸型編號細(xì)分表(以2軸,3軸為例)
2軸車輛兩根軸之間的距離要大于2 m,3軸車輛分為兩類,一類是有雙聯(lián)軸,一類是沒有雙聯(lián)軸,兩根軸之間的距離有所不同。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程需要時間,對計算機(jī)的內(nèi)存要求高,由于車輛軸型數(shù)據(jù)集數(shù)據(jù)量不如開源數(shù)據(jù)集多,訓(xùn)練效果不會達(dá)到最佳,所以在使用車輛軸型數(shù)據(jù)集訓(xùn)練前,使用標(biāo)準(zhǔn)數(shù)據(jù)集Pascal VOC2007對模型進(jìn)行訓(xùn)練會使后續(xù)訓(xùn)練效果更好。
1) 預(yù)訓(xùn)練(一次訓(xùn)練)采用Pascal VOC2007數(shù)據(jù)集。作為標(biāo)準(zhǔn)數(shù)據(jù)集,Pascal VOC2007 是許多常用算法如Faster RCNN,Yolo等的演示樣例,具備一定的權(quán)威性。其中包含訓(xùn)練集(五千余幅),測試集(四千九百余幅),包含20個種類,VOC2007數(shù)據(jù)集標(biāo)注清晰,位置及分類信息全面,便于后續(xù)的檢測展開;
2) 二次訓(xùn)練使用車輛軸型數(shù)據(jù)集。車輛軸型數(shù)據(jù)集采集了Comp Cars和Stanford Cars這兩個開源車輛數(shù)據(jù)集內(nèi)關(guān)于車輛軸型的圖片。在貨車車輛出沒較多的地點(diǎn)拍攝了大量車輛軸型的清晰圖片。整合后的數(shù)據(jù)量達(dá)到了640張。通過數(shù)據(jù)增廣技術(shù)將數(shù)據(jù)集擴(kuò)充到1 000張。
為了獲得更好的檢測效果,采用圖像灰度化的方法降低噪聲。彩色圖像中的像素有紅(R),綠(G),藍(lán)(B)3個分量,取值范圍為[0,255]。最佳RGB比值是0.3∶0.59∶0.11。得到灰度化的圖片的公式如式(1)、式(2)所示,Vgray為分量的強(qiáng)度值。
Vgray=0.3R+0.59G+0.11B
(1)
R=G=B=Vgray
(2)
對圖像進(jìn)行預(yù)處理后需要對圖像進(jìn)行標(biāo)記,標(biāo)記步驟如下:
1) 找到車輛軸型的位置,判斷車輛屬于哪一種軸型;
2) 打開LabelImg標(biāo)注工具用鼠標(biāo)框出需要識別的位置;
3) 記錄該張圖片車輛的軸型內(nèi)容,標(biāo)記完成后會生成標(biāo)記文件。
標(biāo)記示意圖如圖1。
圖1 可清晰反映車輛側(cè)面特征的圖像標(biāo)志示意圖
數(shù)據(jù)標(biāo)記完成后,按照9∶1的比例分配訓(xùn)練集和測試集。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)目前已成功應(yīng)用在圖片分類、目標(biāo)檢測、目標(biāo)跟蹤等相關(guān)領(lǐng)域中[11]。本次車輛軸型識別工作采用SSD網(wǎng)絡(luò)組建模型。其核心理念有3條:
1) 采用不同大小的特征圖,不同大小的特征圖可以檢測不同大小的目標(biāo),有利于捕捉不同尺度的目標(biāo);
2) 設(shè)置預(yù)測框(Default boxes),預(yù)測框是在每個特征圖上的每一點(diǎn)選取不同長寬比的選框,每個預(yù)測框的大小可以通過式(3)計算:
(3)
其中:s表示預(yù)測框的大小,m表示預(yù)測框的數(shù)量,k表示預(yù)測框的順序。
3) 采用卷積進(jìn)行檢測,SSD提取檢測結(jié)果的方式是使用卷積計算提取。
使用SSD網(wǎng)絡(luò)算法模型進(jìn)行訓(xùn)練的基本步驟如下:
1) 輸入車輛軸型圖片(像素大小為300*300),送入預(yù)訓(xùn)練好的分類網(wǎng)絡(luò)(VGG16網(wǎng)絡(luò))中,獲取到不同大小的特征映射;
2) 抽取Conv4_3,Conv7,Conv8_2,Conv9_2,Conv10_2,Conv11_2層的特征圖,在這些特征圖層上面的每一個像素點(diǎn)構(gòu)造6個不同尺度大小的預(yù)測框;
3) 將不同特征圖獲得的預(yù)測框,經(jīng)過非極大值抑制(non maximum suppression,NMS)抑制錯誤框后,生成最后結(jié)果。具體過程如圖2所示。
圖2 SSD算法模型具體運(yùn)算過程示意圖
非極大值抑制即局部最大搜索,抑制除極大值外的元素,在目標(biāo)檢測中用來提取分?jǐn)?shù)最高的窗口,模型有不同尺寸的預(yù)測框,不同預(yù)測框識別的準(zhǔn)確度不一樣,即有不同的準(zhǔn)確度分?jǐn)?shù),通過抑制不是極大值的預(yù)測框得到分?jǐn)?shù)最高的框,抑制前后如圖3(a)和3(b)所示。
圖3 非極大值抑制(NMS)前后狀態(tài)圖Fig 3 State diagram before and after (NMS) suppression by non maxima
損失函數(shù)(Loss)是衡量模型性能優(yōu)劣的重要參照。交并比(intersection over union,IOU)是損失函數(shù)中的重要概念,表示預(yù)測框和真實(shí)框的交集和并集的比值,規(guī)定只有當(dāng)IOU≥0.5時,檢測正確。
SSD損失函數(shù)分為2個部分,預(yù)測框位置Lloc和類別置信度Lconf,損失函數(shù)定義為:
L(x,c,l,g)=(Lconf(x,c)+αLloc(x,l,g))/N
(4)
其中:x表示預(yù)測值;c表示概率;l表示預(yù)測框值;g表示真實(shí)框值。
預(yù)測框位置函數(shù)如式(5)所示:
(5)
類別置信度如式(6)所示:
(6)
通過歸一化指數(shù)函數(shù)(softmath)產(chǎn)生的第i個預(yù)測框?qū)?yīng)類別p的概率為
(7)
第一步,使用Pascal VOC2007對模型進(jìn)行預(yù)訓(xùn)練。平均精度(average precision,AP)表示精度值大小,mAP表示IOU=0.5時的精度。預(yù)訓(xùn)練后,得到的精度如表3所示,對VOC2007部分類別識別精度達(dá)到85%。
表3 SSD算法模型在VOC2007數(shù)據(jù)集上得到的模型參數(shù)(只選取部分類別展示)(%)
在預(yù)訓(xùn)練之后,得到的模型參數(shù)如表4所示。
表4 預(yù)訓(xùn)練后的模型參數(shù)值
預(yù)訓(xùn)練完成后將車輛軸型數(shù)據(jù)集的訓(xùn)練集送入模型進(jìn)行二次訓(xùn)練。
將模型預(yù)訓(xùn)練和二次訓(xùn)練損失函數(shù)下降的大小和速度做了比較,如圖4所示,發(fā)現(xiàn)預(yù)訓(xùn)練時下降速度慢,收斂耗時長,損失函數(shù)值高,二次訓(xùn)練時模型下降速度明顯加快,收斂耗時短,比預(yù)訓(xùn)練時下降了1,說明采用二次訓(xùn)練策略能夠明顯提升模型收斂速度,達(dá)到更好的檢測效果。
圖4 是否采用二次訓(xùn)練策略的Loss值變化曲線
模型訓(xùn)練完成后,得到各個軸型的訓(xùn)練精度AP值如表5所示。
表5 模型訓(xùn)練完成后的結(jié)果
得到訓(xùn)練完的AP值后,將測試集送入模型進(jìn)行測試,測試結(jié)果狀態(tài)圖如圖5所示。
圖5 SSD算法模型檢測結(jié)果狀態(tài)圖
1) 二次訓(xùn)練策略可以有效地改善模型性能,降低損失函數(shù)值,提高收斂速度;
2) 運(yùn)用SSD網(wǎng)絡(luò)算法模型對2軸,3軸車輛軸型進(jìn)行檢測,最高精度達(dá)89%。
3) SSD網(wǎng)絡(luò)算法模型檢測速度快,精度高,但是對于計算機(jī)的內(nèi)存要求高,模型每層參數(shù)量大。后續(xù)研究應(yīng)對卷積層的設(shè)置進(jìn)行改進(jìn),在不降低精度和速度的條件下降低內(nèi)存消耗,滿足道路實(shí)時檢測需求。