于琪佳
(北方工業(yè)大學(xué),北京 100144)
隨著我國經(jīng)濟和社會的高速發(fā)展,我國民用汽車擁有量連年增長。截至2021年6月,全國機動車達到2.92億輛,容易引起道路交通堵塞,不利于交通指揮。為了便于分析道路交通情況,促進道路交通的發(fā)展,需要識別出車輛的類型等進行合理規(guī)劃和判斷。車輛檢測可應(yīng)用于車輛識別、車輛追蹤等,可以在一定程度為道路交通規(guī)劃提供數(shù)據(jù)支撐,且可以為車輛廠商提供車輛銷售數(shù)據(jù)參考等。本文將基于回歸的檢測方法中的YOLOv5算法對多種場景下的社會車輛進行物體識別,以研究其可行性。
目標(biāo)檢測是計算機視覺領(lǐng)域的基本且重要的問題之一,在人工智能和信息技術(shù)的許多領(lǐng)域都有廣泛的應(yīng)用,隨著人工智能發(fā)展得越來越火熱,越來越多的研究者開始關(guān)注基于深度學(xué)習(xí)的車輛檢測算法。
2015年,Redmon J[1]提出了YOLO檢測算法。YOLO簡化了檢測流程,提出了將物體分類和物體定位在一個步驟中完成的One-stage方法。2019年劉肯等人[2]對YOLO算法進行改進,提出一種YOLO?D算法,把目標(biāo)檢測算法問題變成二分類問題,在不影響檢測速度的情況下提高了檢測準(zhǔn)確率,從而實現(xiàn)對目標(biāo)車輛的檢測。2020年林豪等人[3]提出了一種基于YOLOv3的裁剪檢測算法,該算法通過裁剪刪去汽車行駛過程中實時拍攝的圖片的部分對行駛決策不重要的內(nèi)容,從而達到節(jié)約計算資源和提高檢測效率的目的。2021年周雄峰[4]提出一種基于深度學(xué)習(xí)的自動采集方法,利用YOLOv5檢測器在連續(xù)幀中的感興趣區(qū)域進行車輛檢測,通過DeepSOR跟蹤器進行穩(wěn)健而快速的車輛跟蹤,該追蹤器可以有效減少目標(biāo)ID的跳變,提升跟蹤穩(wěn)定性,通過透視變換得到車輛的真實世界坐標(biāo)并使用局部加權(quán)回歸算法進行軌跡平滑。
基于深度學(xué)習(xí)的目標(biāo)檢測方法主要分為Twostage方法和One-stage方法?;赗egion-proposal的 Two-stage 方 法 主 要 有 R-CNN[5], Fast RCNN[6],F(xiàn)aster R-CNN[7],這些算法普遍存在著檢測速度慢的缺點。基于回歸的One-stage方法主要有YOLO、SSD等。其中YOLO的特點是實現(xiàn)快速檢測的同時還能達到較高的準(zhǔn)確率,它憑借著優(yōu)秀的性能引起了廣大研究員的興趣。
YOLO在一定程度上避免了CNN算法速度慢的問題,但它存在著召回率低,對小目標(biāo)檢測效果差,定位不夠精確等問題。為了解決速度慢的問 題 , YOLOv2, YOLOv3, TinyYOLO, YO?LOv4,YOLOv5等模型陸續(xù)被提出,隨著版本的迭代,模型性能也越來越好。本文主要選擇YO?LOv5算法對多種場景下的社會車輛進行物體識別,其特點是速度快,有非常輕量級的模型大小,在準(zhǔn)確度方面與YOLOv4基準(zhǔn)相當(dāng)。
YOLOv5設(shè)計了4種目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu),分別是Yolov5s、Yolov5m、Yolov5l和Yolov5x。四種網(wǎng)絡(luò)結(jié)構(gòu)原理基本一樣,不同之處在于通過depth_mulitple、width_multipl兩個參數(shù)分別控制的網(wǎng)絡(luò)深度和網(wǎng)絡(luò)寬度。YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)最小、速度最快、AP精度最低。其他三種網(wǎng)絡(luò)通過不斷加深加寬網(wǎng)絡(luò),AP精度不斷提高,相應(yīng)的速度在不斷地降低。
以YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)為例,如圖1所示。
圖1 YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)
整個網(wǎng)絡(luò)結(jié)構(gòu)分為4個部分:輸入端,Back?bone主干網(wǎng)絡(luò),Neck網(wǎng)絡(luò)和Prediction輸出端,分析如下:
(1)輸入端。該網(wǎng)絡(luò)的輸入圖像大小為608×608,在圖像預(yù)處理階段將輸入圖像縮放到網(wǎng)絡(luò)的輸入大小,進行歸一化等操作;在網(wǎng)絡(luò)訓(xùn)練階段,YOLOv5采用Mosaic數(shù)據(jù)增強操作提升模型的訓(xùn)練速度和網(wǎng)絡(luò)的精度,并提出自適應(yīng)錨框計算和自適應(yīng)圖片縮放的方法。
(2)Backbone主干網(wǎng)絡(luò)。該模塊通常是一些性能優(yōu)異的分類器的網(wǎng)絡(luò),用來提取通用的特征表示。YOLOv5采用具有切片操作的Focus結(jié)構(gòu)和CSP結(jié)構(gòu)。
(3)Neck網(wǎng)絡(luò)。該模塊用來進一步提升特征的多樣性與魯棒性。YOLOv5采用FPN+PAN結(jié)構(gòu)和可以加強網(wǎng)絡(luò)特征融合能力的CSP2結(jié)構(gòu)。
(4)Prediction輸出端。該模塊用來完成目標(biāo)檢測結(jié)果的輸出。YOLOv5采用損失函數(shù)GIOU_Loss以及預(yù)測框篩選的DIOU_nms。
Yolov5s、Yolov5m、Yolov5l和Yolov5x四種網(wǎng)絡(luò)結(jié)構(gòu)依次加深加寬網(wǎng)絡(luò),AP精度不斷提高,相應(yīng)的速度在不斷地降低,對硬件配置要求也越來越高。根據(jù)硬件配置條件,本文使用YOLOv5系列中最輕量化、深度最小和特征圖寬度最小的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu),對多種場景下的社會車輛進行物體識別,通過對處理過后的數(shù)據(jù)集進行訓(xùn)練得到檢測模型,對檢測結(jié)果進行分析。本文主要是使用YoLOv5s來進行實驗分析,其對應(yīng)的流程如圖2所示。
圖2 實現(xiàn)流程
本文采用的車輛檢測數(shù)據(jù)集為MS COCO數(shù)據(jù)集,該數(shù)據(jù)集有80個對象類別、12個大類、123287張圖片。該數(shù)據(jù)集平均每張圖片的物體數(shù)量多且滿足多種場景的需求,因此可用于車輛檢測的神經(jīng)網(wǎng)絡(luò)模型。MS COCO 2017數(shù)據(jù)集預(yù)處理主要流程如下:
(1)通過COCO-PythonAPI從COCO數(shù)據(jù)集的Instances_valtrain2017.json標(biāo)簽中提取出包含car,motorcycle,bus,truck 4個類別的相應(yīng)數(shù)據(jù),并將其轉(zhuǎn)化為VOC(.xml)的標(biāo)簽,其中16977張圖作為訓(xùn)練集,707張為驗證集;
(2)分別得到訓(xùn)練集和訓(xùn)練過程中的測試集的xml后,我們進一步使用腳本將xml轉(zhuǎn)化為txt;
(3)將提取的圖片和擬生成的txt標(biāo)簽放到相應(yīng)文件位置。
實驗平臺配置為Windows 10操作系統(tǒng),Inter Core i7-10875H處理器和16 GB內(nèi)存,搭載NVIDIA GeForce RTX 2060顯卡,配置英偉達CUDA11.0和GPU加速庫CUDNN 8.0.5,配置OpenCV2擴展庫,深度學(xué)習(xí)框架為Pytorch。
搭建好YOLOv5的運行環(huán)境后,根據(jù)硬件配置設(shè)置訓(xùn)練參數(shù),我們設(shè)置batch-size為2,numworker為0,epoch次數(shù)為100,然后對處理過后的COCO2017數(shù)據(jù)集進行訓(xùn)練。
圖3 實驗結(jié)果
圖4 實驗結(jié)果
訓(xùn)練過程中隨著迭代次數(shù)的增加,各種數(shù)值的變化如圖5所示,圖中各個數(shù)值的含義如表1所示。
圖5 訓(xùn)練參數(shù)變化圖
表1 results參數(shù)變化
從圖5可以看出,隨著訓(xùn)練迭代次數(shù)的增加,各項越來越準(zhǔn)確,次數(shù)到達100次后,各項數(shù)值變化趨于平穩(wěn)。
我們使用56張圖片進行推斷測試,這些圖片均沒有在訓(xùn)練集和驗證集中出現(xiàn)過,以此來測試識別的準(zhǔn)確性。使用使用訓(xùn)練后自動生成的best.pt權(quán)重文件進行推斷測試,部分測試結(jié)果如圖6所示。
圖6 測試結(jié)果
本文通過YOLOv5目標(biāo)檢測算法對多種場景下的車輛進行批量檢測,結(jié)果表明其優(yōu)勢有識別車輛的精度和速度較高且適應(yīng)性強。但YOLOv5車輛檢測依然存在對于距離較遠的車輛可能會出現(xiàn)檢測不到或者檢測準(zhǔn)確度較低,車輛類型識別錯誤的問題。現(xiàn)有模型的局限性可以通過增大調(diào)整數(shù)據(jù)集和使用性能更好的計算機得到解決。因此YOLOv5目標(biāo)檢測算法基本滿足多種場景下的車輛檢測需求,可應(yīng)用于車輛識別、車輛追蹤以及借助大數(shù)據(jù)可以為車輛廠商提供車輛銷售數(shù)據(jù)參考。