劉 鶴,李建義
(北華航天工業(yè)學院,河北 廊坊 065000)
隨著近些年私家車數(shù)量的增加,交通問題日益凸顯,智慧交通對滿足人們的生活需求、提高交通運輸效率具有重要意義[1]。車輛類型檢測是智慧交通的重要部分,例如在高速路口根據(jù)車輛類型會有不同的收費標準。目前,車輛類型檢測的方法主要有基于CNN的車輛目標檢測[2]、基于改進的Harris角點檢測的車型識別[3]、基于SVM的車型檢測和識別算法[4]、基于特征融合的車型檢測?;贑NN與SVM的算法特征維數(shù)高、訓練時間長,而且在面對較多車輛時會有遺漏情況?;诟倪M的Harris角點檢測與基于特征融合的車型檢測實時性差,不能及時檢測車輛類型。因此,以上算法都不能滿足車輛類型實時檢測的需求。
為解決以上問題,本文選擇目前流行的YO‐LOv5s[5]為基礎(chǔ)框架,進一步高效地檢測識別車輛類型。針對YOLOv5s算法使用Giou[6]作為損失函數(shù)時,如果兩個目標邊界框出現(xiàn)包含關(guān)系,或長寬高相同,差集會變?yōu)?,無法評估相對位置等問題,提出使用Ciou[7]作為損失函數(shù)代替Giou,既提高了模型訓練的速度,又進一步改善了模型的精度。仿真實驗結(jié)果表明:該改進方法對車輛類型的檢測具有較好的實時性和較高的精確度。
YOLOv5是一種單階段目標檢測算法,它和YOLOv3、YOLOv4整體布局相似,由Input、Back‐bone、Neck、Prediction四部分構(gòu)成[8],車輛檢測流程結(jié)構(gòu)如圖1。v5系列總共有四個版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,這四個版本在結(jié)構(gòu)上一致,其中YOLOv5s網(wǎng)絡(luò)最?。?],精確度不如其余三種,但是速度最快。其余三種網(wǎng)絡(luò)在YOLOv5s的基礎(chǔ)上不斷加深和加寬,精確度高但是速度較慢。由于本次實驗是對車輛的類型進行檢測,對檢測的速度有較高的要求,因此,選擇YOLOv5s作為本實驗?zāi)繕藱z驗的框架基礎(chǔ)。
圖1 車輛檢測流程結(jié)構(gòu)
YOLOv5s輸入端結(jié)構(gòu)如圖2所示,它采用Mo‐saic數(shù)據(jù)增強的方式[10],將輸入的四張汽車圖像進行隨機縮放、裁剪、排布拼接[11]。YOLOv5s針對采集的車輛圖像信息不一致問題,采用自適應(yīng)圖片縮放的方式,將輸入的汽車圖像縮放或填充到608*608尺寸。對統(tǒng)一長寬的汽車圖像設(shè)定初始長寬的錨框,每次訓練將預(yù)測車型錨框與真實錨框比對,計算兩者差距并更新網(wǎng)絡(luò)參數(shù),自適應(yīng)找出最佳錨框。
圖2 Input結(jié)構(gòu)
Backbone[12]是YOLOv5s網(wǎng)絡(luò)的主干部分,車輛圖像依次經(jīng)過一次Focus結(jié)構(gòu),X次CBL、CSP1[13]結(jié)構(gòu)和一次SPP[14]結(jié)構(gòu)。
Focus結(jié)構(gòu)的主要工作是對車輛圖像進行切片操作,結(jié)構(gòu)如圖3所示。Focus將3*608*608切成四個3*304*304的切片,然后采用Concat拼接這四個切片,經(jīng)過卷積層提取車輛特征。最后使用Leaky_relu激活函數(shù)輸出一個沒有信息丟失的采樣特征圖[15]。
圖3 Focus結(jié)構(gòu)
經(jīng)Focus輸出的車輛采樣特征圖會依次經(jīng)過X次CBL、CSP1結(jié)構(gòu)。CBL由卷積層、歸一化層、激活層組成,即采樣特征圖先經(jīng)過卷積層進一步提取不同的特征,其次經(jīng)過歸一化層,實現(xiàn)特征結(jié)果的歸一化,最后經(jīng)過Leaky_relu激活函數(shù)輸出結(jié)果到CSP1。
CSP1的結(jié)構(gòu)如圖4所示,CSP1的工作是提取特征,一個CSP1由兩條“路徑”組成,其中一條只有一個卷積層,另一條包含一個或多個CBL塊、多個殘差組件和一個卷積層。兩條“路徑”由Concat層拼接經(jīng)歸一化層和激活函數(shù)Leaky_relu輸出。
圖4 CSP1結(jié)構(gòu)
SPP結(jié)構(gòu)由Conv、max pooling和Concat三部分組成,結(jié)構(gòu)如圖5所示。SPP接收的圖像尺寸為512*20*20,將輸入圖像通過Conv層進行特征提取之后輸出尺寸為256*20*20,將提取后的特征在fea‐ture map上選取候選框,再經(jīng)過四個max pooling提取固定大小特征,最后由Concat層拼接輸出。
圖5 SPP結(jié)構(gòu)
Neck區(qū)域采用FPN[16]的反向擴展結(jié)構(gòu)FPN+PAN[17],如圖6所示。自頂向下傳遞的FPN結(jié)構(gòu)與兩個自底向上的PAN結(jié)構(gòu)結(jié)合操作,極大加強了網(wǎng)絡(luò)特征的融合能力。
圖6 FPN+PAN結(jié)構(gòu)
Prediction負責將輸入的車輛圖像進行識別和分類。Prediction有三個輸出,每個輸出都是由卷積層與全連接層構(gòu)成。針對每個輸出,使用非最大抑制(NMS)[18]算法來消除多目標檢測。
損失函數(shù)作為評價模型預(yù)測值和真實值差距的關(guān)鍵指標,損失函數(shù)和構(gòu)建模型的性能呈正相關(guān)關(guān)系。傳統(tǒng)YOLOv5s采用Giou作為損失函數(shù)。不同于Iou只關(guān)注重疊區(qū)域,對于非重合區(qū)域Giou同樣關(guān)注,但是當兩個目標邊界框出現(xiàn)包含關(guān)系,或長寬高相同時,差集為0,Giou退化成Iou,無法評估相對位置,同時,Giou收斂速度慢。為解決此問題,本文采用Ciou作為損失函數(shù),它可以充分考慮重疊面積、中心點距離、長寬比3個幾何參數(shù),使檢測框更加符合真實框。因此,本實驗采用基于Ciou損失函數(shù)的YOLOv5s模型。
Ciou損失函數(shù)公式如下:
式中α是權(quán)重函數(shù);υ用來度量寬高比的一致性;ρ2(A,B)表示A(預(yù)測框)與B(目標框)的中心距離;c代表A與B最小并區(qū)間對角線距離;Iou等于A和B的交集除以二者的并集是矩形對角線傾斜角度。
本次實驗自制了一個車輛信息數(shù)據(jù)集,包括家用轎車、公交車、消防車、卡車、吉普車、SUV、面包車、出租車八種車型。車輛數(shù)據(jù)來自街道、校園和汽車展廳,共1260張圖像,如圖7所示。通過使用LabelImg軟件將收集的圖片標注出車輛類別,并將每個圖像標注好的結(jié)果以.txt文件保存,該文件名和圖像名稱一致,包含對象的類別,對象中心的坐標、寬度和高度。本次實驗將以7:3的比例劃分訓練集和測試集,分別用于本實驗?zāi)P偷挠柧毢蜏y試。
圖7 車輛數(shù)據(jù)集圖例
本實驗運行環(huán)境:操作系統(tǒng)為Centos7,CPU為Intel Xeon Platinum8156,GPU為NVIDIA GeForce RTX 3080 Ti,內(nèi)存16G,通過Python編程語言實現(xiàn),使用框架為Pytorch。
為了查看訓練周期對訓練模型的影響,本實驗對同一數(shù)據(jù)集訓練四次:25、50、75和100個周期,實驗周期對比結(jié)果見表1。
表1 周期對比結(jié)果
從表1中可以看出,訓練的周期長短影響YO‐LOv5訓練模型的質(zhì)量,當接近100個周期時,參數(shù)增加幅度極低,因此,epochs為100時是最佳次數(shù)。
本實驗使用mAP作為模型的評價指標,mAP值越大說明車輛類型檢測識別率越好,mAP公式如下:
其中,AP代表平均精度,是P-R曲線下的面積,mAP為AP的平均值。P表示預(yù)測為正例的樣本中有多少是預(yù)測正確的,R表示真正為正例的樣本中有多少被預(yù)測正確。P和R公式如下:
本實驗的YOLOv5s與傳統(tǒng)YOLOv5s在訓練100個epochs后,新YOLOv5s的mAP收斂速度明顯高于YOLOv5s,而且起伏較小,如圖8所示。
圖8 mAP對比結(jié)果
從上圖可以得出,本實驗中的mAP值在60輪時就已經(jīng)比傳統(tǒng)YOLOv5s在100輪的效果要好,可以節(jié)省大量的訓練時間,在有限時間下改進YOLOv5s會取得更加顯著的效果。
除mAP外,本實驗訓練模型的Precision、Recall分別能達到0.995和0.996,如圖9所示。
圖9 Precision和Recall結(jié)果
為了直觀檢驗訓練車輛檢測模型的效果,隨機從測試集抽取部分圖片作為輸入,這些圖片包含多種角度、多種拍攝距離下的交通照片,結(jié)果如圖10所示。從圖中可以看到能夠準確識別消防車、公交車和私家車,證明了本實驗可以精確的識別車輛類型,滿足實際交通應(yīng)用需求。
圖10 優(yōu)化后檢測效果
本實驗為滿足智能交通中對車輛類型檢測精度以及速度的需求,提出以YOLOv5s為基礎(chǔ)框架,用Ciou代替Giou作為損失函數(shù)。實驗結(jié)果表明,本實驗改進的YOLOv5s在mAP上明顯優(yōu)于原YO‐LOv5s,且收斂速度提升20%,實現(xiàn)了速度與精度兩個方面的提升,非常適用于車輛類型識別的任務(wù)。