嚴偉政, 王道斌, 嚴運兵
(武漢科技大學汽車與交通工程學院, 武漢 430065)
交通擁堵已經成為眾多城市發展中所面臨的一個不可忽視的熱點問題[1]。 準確有效的城市道路交通信息檢測方法對于交通擁堵的成因分析具有決定性作用,對于開展智能車輛和智能交通相關領域的研究也有著重要意義[2]。
現有的城市道路交通信息采集技術一般分為2類:固定式交通信息檢測方式和移動式交通信息檢測方式[3]。 其中,固定式交通信息檢測方法通常是在某個固定的位置布設傳感器,如環形線圈、微波雷達、監控視頻等。 這些設備成本高昂、維護困難、受環境影響較大,因此有關部門僅在關鍵路段或者交叉口安裝這些設備。 為避免檢測盲區往往需要提高傳感器的布設密度,進而導致成本增加。 移動式交通信息檢測方法通常是在某個移動平臺布設傳感器,如浮動車、無人機(UAV)、車載相機等。 與固定式交通信息檢測方法相比,移動式交通檢測方法經濟高效,并且能有效彌補固定式交通信息檢測方法中的部分盲區。
在固定式交通信息檢測方法中,環形線圈因其檢測結果準確、工作性能穩定、制作成本低等優點,廣泛應用于交通信息檢測領域。 環形線圈通過感知電磁場的變化來判斷是否有車輛通過,葉青等學者[4]運用自適應共振神經網絡提供的自聚類能力,將環形線圈采集的各種車輛波形聚類成不同類別模式,進而實現對城市道路車輛類型的識別分類。Cheol 等學者[5]利用感應線圈收集到的信號估計跟馳情況下的安全停車距離,并提出一個量化指標衡量追尾的風險。 不同于環形線圈,微波雷達通過計算發射波與反射波之間的時間間隔獲取目標與傳感器之間的距離。 曹林等學者[6]利用微波雷達回波信號構建數據集,并采用改進的LeNet-5 卷積神經網絡實現對城市道路大小車型的分類識別。 監控相機在固定式交通信息檢測領域中應用也比較廣泛。李永上等學者提出一種改進YOLOv5 結合Deep-SORT 的車輛檢測跟蹤方法,實現了監控視角下的交通流量統計。 Li 等學者[7]通過提高YOLOv3 對密集場景下小目標的檢測能力,進而實現監控視角下的城市道路速度、密度和流量等參數的提取。 但是固定式交通信息檢測方法中傳感器通常布設在固定位置,只能獲取特定路段或者交叉口的交通信息,檢測范圍較窄、不夠靈活,容易受到外界環境的干擾。
在移動式交通信息檢測方法中,浮動車法應用較廣。 浮動車數據主要來源于車載GPS 設備的導航系統和手機地圖APP。 袁向紅[8]借助GPS 浮動車數據,建立交通流量預測模型,并在VISSIM 平臺進行仿真驗證,結果表明所提模型具有良好的預測效果。 針對社會車輛軌跡難以獲取的問題,Kong 等學者[9]提出一種基于浮動車數據和車載社交網絡的社會車輛軌跡生成方法,實驗表明其軌跡與北京市交管局發布的實時交通狀況基本吻合。 但是浮動車法極大程度依賴浮動車的數量和通信質量,當道路浮動車占比不足或者處于信號較弱地段時,檢測結果的準確性會大打折扣。 深度學習的興起,使得從視頻中提取特征信息變得更為方便,因此利用相機進行移動式交通信息檢測也得到了越來越多的關注。 UAV 成本低且具有較高的靈活性,Shan 等學者[10]利用YOLOv3 算法從UAV 采集視頻中檢測車輛信息,提取相關交通流參數,但由于禁飛區的存在,使得UAV 無法充分發揮其靈活性,同時高空較快的風速也容易造成UAV 的漂移和抖動。 車載相機檢測范圍廣、機動性高,關闖等學者[11]利用車道線消隱點的坐標計算出車載相機的外參,再利用相機的光學特性進而獲得與前車之間的距離。 另一些學者則側重于視頻信息的避障以及交通場景的理解,如Godha[12]利用車載相機檢測道路障礙物以達到輔助駕駛的功能。 車載相機不僅能夠獲取每一幀圖像上的直接信息,還能夠獲取目標的相對速度和相對位置等信息。 但是,如果要獲取目標的絕對速度和絕對位置,還需要其它傳感器提供一些額外信息。
因此本文結合車載相機檢測范圍廣、靈活性高的特點,以及浮動車具有自身定位能力的優點提出一種移動式交通信息檢測方法。 該方法主要包括2 個部分。 第一部分為城市道路目標車輛的檢測與跟蹤,主要包括YOLOv5(you-only-look-once)[13]算法的目標車輛檢測,以及Deep-SORT[14]算法的目標車輛跟蹤。第二部分為城市道路交通信息參數提取,主要包括目標車輛縱向間距、縱向速度的計算,以及城市道路通行速度、交通流密度和交通流量的獲取。
考慮到移動式交通信息檢測對檢測精度和速度的需求,本文采用最新一代YOLOv5 算法進行城市道路目標車輛的檢測。 該方法在保證檢測精度的同時還能極大提高檢測效率,其主要結構包括Input層、Backbone 層、Neck 層和Prediction 層,網絡結構示意圖如圖1 所示。

圖1 YOLOv5 模型結構圖Fig. 1 YOLOv5 model structure
由圖1 可看到,Input 輸入層主要用于輸入數據的預處理,包含Mosaic 數據增強、自適應圖像填充和自適應錨框計算。 Mosaic 數據增強用于豐富背景,增加小目標數量,提高GPU 利用效率,自適應填充降低信息冗余以提高計算速度,自適應錨框能在更換數據集時,自動計算初始錨框大小。 Backbone層主要通過卷積操作,從不同層次提取圖像中的特征參數。 Backbone 層由Focus、CSP (Cross Stage Partial Network)以及SPP(Spatial Pyramid Pooling)三個部分構成。 Focus 主要對輸入圖片進行切片操作以降低計算量。 CSP 在加強骨干網絡的學習能力的同時還能提高網絡的推理速度。 SPP 則用于擴大感知視野,分離上下文特征。 Neck 層包括FPN( Feature Pyramid Networks ) 和 PAN ( Path Aggregation Network)兩個部分,FPN 向下傳遞強語義特征,PAN 向上傳遞強定位特征,將Backbone 層提取的特征從不同層面進行融合,進一步提升檢測能力。 Prediction 層分別從大、中、小三個尺度檢測車輛,并通過NMS(non maximum suppression)非極大值抑制去除重復和多余的框,最終輸出目標車輛的類型、坐標和置信度等檢測結果。
為防止檢測算法的誤檢與漏檢,提高檢測算法的穩定性,利用Deep-SORT 算法對測得目標做進一步的預測跟蹤,流程如圖2 所示。

圖2 Deep-SORT 流程圖Fig. 2 Flow chart of Deep-SORT
Deep-SORT 算法利用線性卡爾曼濾波器對目標進行預測,使用八維狀態向量(x,y,r,h,vx,vy,vr,vh) 來表示目標的位置以及運動狀態,其中x,y為檢測框中心點坐標,r為檢測框的寬高比,h為檢測框的高度,余下4 個變量分別表示對應變量的圖像坐標系中的增量。 已知t- 1 時刻跟蹤目標的具體狀態,則t時刻預測狀態為:
其中,Xt-1|t-1為跟蹤目標在t-1 時刻的最優估計;F為狀態轉移矩陣;Xt|t-1為t- 1 時刻對t時刻的狀態預測值,狀態轉移矩陣見式(2):
協方差矩陣根據式(3)進行計算:
其中,Pt-1|t-1為跟蹤目標在t-1 時刻最優估計值;Pt|t-1為t- 1 對t時刻協方差矩陣的預測值;Q為系統噪聲。
進而根據t-1 時刻的狀態預測值來更新t時刻的最優估計值,同時更新卡爾曼增益,具體過程如式(4)和(5)所示:
其中,Xt|t為t時刻的最優估計;Zt為t時刻的觀測值,由傳感器獲得;H為觀測矩陣;R為系統的觀測噪聲。
最后,根據式(6)更新t時刻的協方差矩陣:
Deep-SORT 利用匈牙利算法對已有的檢測框和預測框進行分配。 使用馬氏距離來表征對象的運動信息,具體公式如下:
其中,dj和yi分別表示第j個檢測結果和第i個預測結果的狀態向量,Si表示檢測結果和平均結果之間的協方差矩陣。
當物體被遮擋或者鏡頭抖動時,馬氏距離不再適合作為兩者關聯的標準,因此引入最小余弦距離表示物體的外觀特征信息,公式如下:
其中,rj為檢測框dj所對應的外觀特征描述信息,且=1,Ri為特征倉庫,用于保存每一個跟蹤軌跡k最近100 條成功關聯的特征描述符。 式(8)表示第i個跟蹤框和第j個檢測框的最小余弦距離。
最后,將運動特征和外觀特征進行加權融合,得到最終的度量指標:
Deep-SORT 的特征提取網絡在設計時主要用于提取行人的外觀特征,為提高神經網絡對車輛的外觀提取能力,在大規模的車輛ReID 數據集上重新進行訓練,數據集包含576 輛車、共12 347 張從不同角度拍攝的圖片,將圖片裁剪至126*135 大小后放入網絡進行訓練。 訓練效果如圖3 所示。

圖3 特征提取網絡訓練效果Fig. 3 Training effect of feature extraction network
當訓練次數達到200 輪后,損失函數基本趨向于平衡,訓練完成后該網絡即可用于提取車輛外觀特征。
利用單目相機光學特性進行前方車輛距離檢測,首先需要獲取相機的內參矩陣,內參矩陣如下所示:
其中,(fx,fy) 表示相機的焦距長度, (u0,v0) 表示相機光軸投影到成像平面的坐標,由于廠商工藝等因素,(u0,v0) 往往不在成像平面的中心點。
單目相機成像過程是將三維空間中的場景投影到二維平面上,這一過程可以用小孔成像來描述,如圖4 所示。

圖4 小孔成像示意圖Fig. 4 Schematic diagram of small hole imaging
利用小孔成像原理,根據式(11)估算試驗車與前車的縱向間距:
其中,d0表示相機到目標車輛的縱向間距;fy表示相機y軸方向的焦距,由標定獲得;w0表示目標車輛的真實寬度,小汽車為1.8 m,貨車為2.6 m;wi為車輛成像后的像素寬度。
前車相對于試驗車的速度可以根據式(12)進行計算:
其中,d0(t) 和d0(t- 1) 分別為相鄰兩幀圖像中目標車輛與試驗車之間的縱向間距,Δt為兩幀圖像之間的時間間隔。 當vrela <0 時,說明目標車輛的速度相對于試驗車較慢;當vrela >0 時,說明目標車輛的速度相對于試驗車較快;當vrela=0 時,說明目標車輛與試驗車速度相同。
根據GPS 信息獲取試驗車的實時通行速度,并將試驗車的通行速度視作基準車速vbas, 則目標車輛通行速度可以根據式(13)進行計算:
路側停靠車輛如圖5 所示,這類車輛通常具有以下2 個特征:

圖5 路側停靠車輛Fig. 5 Parked vehicles on the side of the road
(1)位于圖像右側邊緣。
(2)絕對速度為0 km/h。
因此,根據這2 個特征可以對路側停靠車輛進行識別。 如果目標車輛位于圖像右側邊緣,且其通行速度小于設定的閾值α(α大于但接近于0 km/h),則將該目標車輛視作路側停靠車輛。 綜合考慮GPS 和車載相機的數據精度,本文將α的值定為5。
剔除路側停靠車輛,對視野內同向移動車輛保持檢測和跟蹤,以獲得每幀圖像中的有效車輛。 假定每輛有效車輛相對于試驗車的縱向車間距檢測值為do,進而根據式(14)計算每幀圖像中單位長度內的車輛數目,即交通流密度:
其中,i為有效車輛的編號;N為有效車輛的個數。
假定第j幀圖像獲取的實時交通流密度為ρ(j),則路段的交通流密度ρseg可根據式(15)進行估算:
其中,Nseg為路段拍攝視頻的總幀數。
假定圖像中每臺有效車輛的絕對速度檢測值為vabs,進而根據式(16)計算道路的平均通行速度vave:
其中,i為有效車輛的編號;N為有效車輛的數目。
與交通流密度檢測類似,假定第j幀圖像獲取的實時通行速度為vave(j), 則待測路段的通行速度vseg可根據式(17)進行估計:
獲得每幀圖像的交通流密度ρ以及道路平均通行速度后,進而根據式(18)估計當前位置單位時間內通過車輛的個數,即交通流量:
與交通流密度檢測類似,假定第j幀圖像獲取的實時交通流量為vol(j) ,則待測路段的交通流量volseg可根據式(19)進行估計:
車載相機檢測視野較寬,往往會采集到對向車道的車輛信息,進而影響檢測結果的準確性,因此需排除對向車道車輛對檢測結果的影響。 同時常規的目標檢測算法會將整輛車框檢出,不利于車輛縱向間距的測量。 為區分目標車輛,進一步提高距離檢測精度,本文搭建道路車輛分類數據集,將車載視頻采集到的10 段視頻分解成8 244 張圖片,同時將圖片中的車輛歸為car_front、car_side、car_back、truck_front、truck_side、truck_back 六個類別,具體分類標準如圖6 所示。

圖6 道路車輛分類Fig. 6 Classification of road vehicles
由圖6(b)可見,在視野內若能觀察到前方車輛頭部或尾部,則將該車輛歸類為car_front 或car_back,否則定義為car_side,參見圖6(a),貨車分類同樣以此類推。 特別地,為了保證測距精度,car_back 這一類別僅標記車輛尾部區域。
準確的縱向車間距檢測是道路交通參數提取的前提,本次實驗采用分辨率為1 920×1 200 像素的CMOS 相機,相機內部參數的標定結果見表1。

表1 相機標定結果Tab. 1 Camera calibration result
由于實驗條件限制,本文未進行跟車行駛條件下的動態測量,僅在靜止環境中完成了縱向間距的測量。 共分為5、10、15、20、25、30、40、50 m 八組實驗,每組實驗分別在前車后方偏左1 m、前車正后方、前車后方偏右1 m 處拍攝10 張圖片,取均值作為每組實驗的檢測值,同真實值進行對比,實驗結果見表2。

表2 縱向距離檢測結果Tab. 2 Longitudinal distance detection results
由表2 中的數據可知,檢測值與真實值之間最大誤差為6.2%,最小誤差為0.1%,具備了較高的檢測精度,能夠滿足道路信息檢測的需求。 圖7 表示在不同橫向距離檢測結果圖。 圖7 中,橫坐標表示真實距離,縱坐標為檢測距離,從圖7 中可看出檢測距離越遠,測量結果越離散。

圖7 測距散點圖Fig. 7 Scatter plot of ranging
通過實車實驗一共收集了2 個路段的道路視頻作為實驗對象。 路段A為三環線青菱立交起至北太子湖共11 km 長度,于2022 年3 月29 號16:06 采集。 路段B選取黃家湖大道葉家墩起南至何家湖小區2 期共4.5 km 長度,于2022 年3 月29 號15:25 采集。 GPS 數據由安裝在試驗車上的智能手機提供,用于同步收集試驗車的自身速度、位置等信息。
實驗結果如圖8 所示。 圖8 中,檢測框所標記的信息主要包括:類別、id、 縱向間距以及縱向速度,同時顯示當前時刻的平均通行速度、交通流密度和交通流量等參數。

圖8 實驗圖Fig. 8 Experimental figure
圖8(b)中,部分車輛被檢測出來但并未參與計算,其原因在于前車距離過遠時,檢測框的抖動會使得檢測結果出現較大偏差。 為保證結果的穩定性和可靠性,經過多次實驗,本文將檢測的最遠距離設定在80 m。
實驗路段道路交通信息檢測結果如圖9 所示。圖9 中,橫坐標為時間,縱坐標分別表示根據當前時間對應幀計算的平均通行速度、交通流密度和交通流量,利用式(15)、(17)、(19)最終得到實驗路段的通行速度、交通流密度和交通流量,計算結果見表3。 表3 中,數據按照2.5 的換算系數將貨車換算成標準車輛。

表3 檢測結果Tab. 3 Detection results

圖9 道路檢測結果Fig. 9 Road inspection results
圖9 (a)為城市快速路路段檢測結果,在220 s和280 s 處,道路通行速度顯著下降,并伴隨交通流密度和交通流量的上升,這是由于該路段擁堵使得車輛行駛緩慢,進而造成交通流密度和交通流量的增大,在結尾處密度和流量的跌落則是由于試驗車駛離快速路段造成。 圖9(b)為城市主干路段檢測結果,該路段平均通行速度在實驗過程中出現了明顯的波動,是因為試驗車在24 s、150 s、220 s 時在交叉口處遇到紅燈所導致。 當試驗車跟隨車流于交叉口制動以及啟動時,由于視線的遮擋,會導致檢測的車輛縱向間距較低,進而造成該時刻路段交通流密度的上升,因此在24 s 和150 s 處均出現了密度上升的現象。 但在220 s 處卻并未出現上述狀況,是因為試驗車駛至該交叉口時,檢測視野比較開闊,對車輛的縱向間距的檢測影響較小,因此此刻交通流密度不會出現明顯上升趨勢。 后期交通流密度的波動則是由于部分目標車輛出現或者離開檢測范圍造成的。
實驗結果表明,實驗路段A的平均通行速度為52.55 km/h,略低于城市快速路段60 km/h 的設計通行速度,較快的通行速度和較高的密度使得該路段具有較大的流量。 試驗車在收集路段B的道路交通信息時,車流連續遭遇3 次紅燈,導致路段通行速度始終維持在較低水平,僅有30.04 km/h 的通行速度。
為驗證所提城市道路交通流量檢測框架,利用PreScan 仿真軟件搭建測試場景,建立一條長1 km、平均通行速度72 km/h、三車道城市快速道路,隨機生成道路車輛,計算獲取路段交通流密度和交通流量,實驗路段和實驗過程圖如圖10、圖11 所示。

圖11 實驗過程圖Fig. 11 Experimental process diagram
檢測結果見表4。

表4 檢測結果對比Tab. 4 Comparison of detection results
由表4 可知,在穩定交通流條件下,通行速度、交通流密度和交通流量誤差分別在10.6%、7.8%以及7.4%,均具有較高的檢測精度。 受到實驗條件的限制,本文并未獲得實驗路段的真實交通流量數據,但是通過交通信息檢測結果對比與分析可知,本文所提方法的檢測結果能較好地反映城市道路交通運行狀況。
本文提出了一種基于車載相機和GPS 信息融合的城市道路交通檢測方法,通過對目標車輛的檢測跟蹤,計算城市道路車輛的縱向間距和縱向速度,再結合GPS 信息獲得目標車輛的絕對速度,最終獲取待測路段的通行速度、交通流密度和交通流量參數。 實驗結果與分析表明,本文所提的移動式交通信息檢測方法能為智能車輛或智能交通系統提供可靠的數據支撐。 由于城市道路交通運行環境比較復雜,實驗中發現車輛遮擋問題會對檢測結果造成一定的影響,未來研究將重點關注車輛遮擋問題對城市道路交通信息檢測結果的影響。 此外,本文假設試驗車在采集數據過程中,路段的交通流特性沒有變化,試驗車以一條掃描線的形式對實驗道路進行檢測。 因此,本文所述方法比較適用于交通流特性比較穩定的路段,如果路段的交通流特性出現較大波動,檢測誤差可能會相應增大。