何凌志,周月娥,王玉玨,華國亮,彭 博
(南京理工大學(xué)紫金學(xué)院,江蘇 南京 210023)
隨著科技和工業(yè)的發(fā)展,交通車輛越來越普及,而這也導(dǎo)致相應(yīng)的交通問題頻發(fā)。針對此問題,本文設(shè)計(jì)了基于深度學(xué)習(xí)的實(shí)時(shí)交通車輛檢測算法,協(xié)助交通管控,促進(jìn)道路交通智能化[1]。
在算法設(shè)計(jì)方面,隨著時(shí)代發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)[2]快速進(jìn)步,其在檢測與識別等方面有著較高水平。根據(jù)算法的工作流程不同,可將目標(biāo)檢測算法大致分為兩種:Two-stage神經(jīng)網(wǎng)絡(luò)算法和One-stage函數(shù)算法。本文在實(shí)時(shí)交通檢測算法設(shè)計(jì)上采用了基于YOLOv4[3-5]的目標(biāo)檢測算法。類比同類檢測算法,YOLOv4無論在速度方面,還是在精度方面皆具有優(yōu)勢。而在目標(biāo)跟蹤算法上選擇當(dāng)下較為主流的DeepSort[6]多目標(biāo)跟蹤算法,DeepSort是在Sort[7]目標(biāo)跟蹤基礎(chǔ)上進(jìn)行改進(jìn)的,在目標(biāo)跟蹤過程中提取目標(biāo)外觀特征進(jìn)行匹配并實(shí)時(shí)跟蹤計(jì)數(shù)。YOLOv4與DeepSort兩者相結(jié)合,具有較好的可行性和高效性,可完全取代傳統(tǒng)低效率的車流量檢測算法。
YOLO(You Only Look Once)[8-10]網(wǎng)絡(luò)是一種基于回歸的目標(biāo)數(shù)據(jù)檢測分析算法,檢測效率高、檢測結(jié)果質(zhì)量高,在許多目標(biāo)檢測中取得了良好的效果[11-12]。近年來,在CNN領(lǐng)域應(yīng)用YOLOv4目標(biāo)數(shù)據(jù)檢測與分析算法時(shí)廣泛采用了最優(yōu)數(shù)據(jù)優(yōu)化處理策略,例如網(wǎng)絡(luò)數(shù)據(jù)處理、骨干數(shù)據(jù)網(wǎng)絡(luò)、網(wǎng)絡(luò)管理培訓(xùn)、激活處理功能、損失補(bǔ)償功能等方面。比起YOLO系列的其他算法,YOLOv4有五個(gè)創(chuàng)新點(diǎn),如圖1所示。
圖1 YOLOv4創(chuàng)新點(diǎn)
YOLOv4的主干網(wǎng)絡(luò)為CSPDarknet53,CSPDarknet53主體上由CBM模塊和CSP模塊構(gòu)成。其中CSP模塊有兩個(gè)分支:一條進(jìn)行殘差連接,緩解訓(xùn)練過擬合和梯度爆炸問題;另一條進(jìn)行跳躍連接,使上下級特征圖跨級拼接并實(shí)現(xiàn)通道整合,提高訓(xùn)練速度。CSP結(jié)構(gòu)如圖2所示。
圖2 CSP結(jié)構(gòu)
K-means[13]是非常經(jīng)典且具有成效的聚類方法,以距離作為評價(jià)指標(biāo)。通過計(jì)算樣本和樣本之間距離將較近的樣本歸為同一類別,使得同一類別樣本之間的相似度增高,同時(shí)讓不同類別的樣本相似度降低。因此,使用K-means聚類分析算法對YOLOv4目標(biāo)檢測算法的車輛模型數(shù)據(jù)集重新進(jìn)行聚類分析,從而提升YOLOv4目標(biāo)檢測算法模型的性能。
DeepSort是多目標(biāo)跟蹤算法中最常用且受眾較多的算法之一,是基于Sort改進(jìn)后的多目標(biāo)跟蹤算法。在本次的車輛實(shí)時(shí)跟蹤檢測中,Sort算法通過卡爾曼濾波算法來預(yù)測多個(gè)車輛檢測結(jié)果框在下一幀的識別狀態(tài),從而將多個(gè)車輛識別結(jié)果框狀態(tài)與下一幀的車輛識別檢測結(jié)果框進(jìn)行匹配,實(shí)現(xiàn)對多目標(biāo)車輛的跟蹤。如果車輛受到遮擋或者是其他原因沒有檢測到,卡爾曼濾波算法預(yù)測的車輛檢測結(jié)果信息將不能和系統(tǒng)總體的算法識別檢測結(jié)果進(jìn)行匹配,該識別跟蹤片段將會直接結(jié)束,從而影響最后的實(shí)驗(yàn)數(shù)據(jù)。為此,DeepSort算法引入了CNN網(wǎng)絡(luò)(見表1所列)來提取檢測到的物體外觀特征,并且記錄這一時(shí)刻對應(yīng)的物體外觀特征數(shù)據(jù)。
表1 CNN網(wǎng)絡(luò)結(jié)構(gòu)
在DeepSort多目標(biāo)跟蹤算法中,采取的是8維的向量。
其中:u和v分別表示物體目標(biāo)中心的水平坐標(biāo)和垂直坐標(biāo);s和r是邊框的寬高比和高度;是圖像所對應(yīng)的速度信息。
一般的卡爾曼濾波[14]分為predict和update這兩個(gè)階段。已知k-1時(shí)刻的狀態(tài)分布,利用k-1時(shí)刻的后估計(jì)值進(jìn)行狀態(tài)轉(zhuǎn)移變換,得到當(dāng)前的
此處給出的是預(yù)測值,也叫先驗(yàn)狀態(tài)估計(jì)值。
這一步給出的是該狀態(tài)的最優(yōu)估計(jì)值,也是后驗(yàn)狀態(tài)估值。公式符號具體含義見表2所列。
表2 公式符號含義
為驗(yàn)證DeepSort目標(biāo)跟蹤算法的可行性,選取其他三種目標(biāo)跟蹤檢測算法進(jìn)行統(tǒng)一測試。見表3所列,所用的指標(biāo)為MOTA和MOTP,當(dāng)識別處理效果越好時(shí),MOTA和MOTP這兩個(gè)指標(biāo)數(shù)值會偏高。而本文所設(shè)計(jì)的檢測算法在MOTA和MOTP指標(biāo)方面均有提升。
表3 多目標(biāo)跟蹤算法之間對比結(jié)果
當(dāng)前所進(jìn)行的實(shí)驗(yàn)平臺主體上由兩個(gè)部分相輔構(gòu)成,其中硬件平臺CPU為i7-12700H,GPU平臺為NVIDIA GeForce RTX3050。軟件平臺具體配置為:Ubuntu18.04軟件操 作 系 統(tǒng)、Cuda10.1、Cudnn7.6、Python3.7、OpenCV3.4、Tensor flow 1.8.0-GPU。
本次項(xiàng)目選用公開的車輛訓(xùn)練集,通過網(wǎng)絡(luò)爬蟲以及實(shí)地拍照的方式收集了18 000張照片。通過LableImage標(biāo)注工具對每張照片進(jìn)行標(biāo)記,所產(chǎn)生的目標(biāo)信息儲存于相對應(yīng)的XML文檔。訓(xùn)練設(shè)置如下:將YOLOv4.cfg文件中的識別類別改為2,每次迭代訓(xùn)練樣本為64,分16個(gè)批次,最大迭代次數(shù)設(shè)置為20 000,動因子設(shè)置為0.9。本次研究采用的是VOC格式的數(shù)據(jù)集,通過編寫好的腳本文件訓(xùn)練YOLOv4的權(quán)重。
3.3.1 模型算法平均準(zhǔn)確率
采用目標(biāo)識別檢測算法時(shí),判斷所識別目標(biāo)的識別精度的主要指標(biāo)之一是MAP(Mean Average Precision)。經(jīng)過測試,本次YOLOv4車輛識別算法模型的MAP值達(dá)到了96.4%。
3.3.2 模型算法交并比
IoU(Intersection over Union,交并比)用來評價(jià)目標(biāo)檢測結(jié)果中真實(shí)檢測框和預(yù)測檢測框之間的重疊程度。在深度學(xué)習(xí)以及其他目標(biāo)檢測算法中,IoU被認(rèn)為是一個(gè)算法模型預(yù)測區(qū)的綜合計(jì)算測量指標(biāo),表示預(yù)測區(qū)域邊界和真實(shí)預(yù)測邊界的一個(gè)交集。IoU值越高,說明模型預(yù)測越準(zhǔn)確;反之,當(dāng)IoU偏低時(shí),表示模型性能較差。通過腳本測試發(fā)現(xiàn),此次車輛目標(biāo)檢測識別算法模型中的IoU大于0.5。
表4為YOLOv4目標(biāo)檢測識別算法和通過K-means改進(jìn)的YOLOv4目標(biāo)檢測識別算法的對比結(jié)果。通過對比改進(jìn)前后算法對同一車輛的識別率可得出兩者置信率相差16%。識別結(jié)果如圖3所示。
表4 YOLOv4算法與改進(jìn)后的YOLOv4算法對比
圖3 改進(jìn)算法前后識別結(jié)果對比
本項(xiàng)目在檢測識別時(shí),使用DeepSort目標(biāo)跟蹤算法進(jìn)行相應(yīng)檢測分析,并實(shí)施對車輛的跟蹤計(jì)數(shù),從而完成對車流量數(shù)據(jù)的統(tǒng)計(jì),結(jié)果如圖4、圖5、圖6所示。標(biāo)出的矩形框代表跟蹤檢測框,并且在矩形框的右上角標(biāo)注了識別出來的目標(biāo)類別以及計(jì)數(shù)結(jié)果。
如圖4所示,在白天正常光線下,基于改進(jìn)的YOLOv4目標(biāo)識別檢測算法和DeepSort目標(biāo)跟蹤檢測算法的多車輛目標(biāo)跟蹤算法在實(shí)際道路上取得了較好的識別效果,對出現(xiàn)的車輛都可以檢測并進(jìn)行跟蹤計(jì)數(shù)。
圖4 白天情景識別跟蹤檢測結(jié)果
圖5展示了夜晚光線較差情況下對車輛連續(xù)不間斷的跟蹤結(jié)果。可以看到,在光線較差的場景中,本文設(shè)計(jì)的算法所反映的目標(biāo)跟蹤性及目標(biāo)識別成功率仍保持穩(wěn)定,既可以在連續(xù)的車輛中識別出該車輛的類別,也做到了在連續(xù)識別之后的車輛跟蹤和無ID切換。
圖5 夜晚情景識別跟蹤檢測結(jié)果
如圖6所示,對傍晚的車輛進(jìn)行連續(xù)識別跟蹤可得出,本文的算法模型魯棒性較好,漏檢現(xiàn)象更少,在車輛不斷加入并且消失的情況下,還是可以保持識別和跟蹤計(jì)數(shù)功能。但是當(dāng)162號識別目標(biāo)加入識別區(qū)域時(shí),由于傍晚的光線不均勻,亮度偏低,出現(xiàn)了識別錯(cuò)誤的情況。
圖6 傍晚情景識別跟蹤檢測結(jié)果
針對傳統(tǒng)車流檢測方法效率相對低下的相關(guān)問題,本文提出了基于K-mean聚類的改進(jìn)YOLOv4目標(biāo)檢測算法和DeepSort目標(biāo)識別跟蹤算法,完成了對車流量的檢測。YOLOv4目標(biāo)檢測算法與DeepSort跟蹤算法相輔相成,改進(jìn)后的YOLOv4高精度識別效果彌補(bǔ)了DeepSort的不足,增強(qiáng)了最后測試的識別跟蹤精確率。實(shí)驗(yàn)證明,即使在所識別目標(biāo)連續(xù)變化環(huán)境下該算法仍具有較好的識別及跟蹤性能,把這兩種算法相結(jié)合,提高了目標(biāo)跟蹤的穩(wěn)定性,漏檢現(xiàn)象更少,魯棒性更好,證明了改進(jìn)算法的有效性。