周雄峰
(同濟(jì)大學(xué)道路與交通工程教育部重點(diǎn)實(shí)驗(yàn)室 上海 201804)
交通信息是智能交通系統(tǒng)中的基礎(chǔ)和保障,獲取全面、準(zhǔn)確、可靠、實(shí)時(shí)的交通信息對(duì)交通管理與安全、駕駛行為建模、微觀交通流分析有著至關(guān)重要的作用。交通信息的采集方式包括微波雷達(dá)、視頻、紅外和感應(yīng)線圈等等[1]。在這些采集技術(shù)中,視頻圖像具有直觀性高、信息量豐富、可溯性強(qiáng)等特點(diǎn)。越來越多的研究者選擇利用圖像處理技術(shù)從視頻中提取交通數(shù)據(jù)。在這些數(shù)據(jù)中,車輛的行車軌跡全面反映了車輛的駕駛行為,通過對(duì)車輛軌跡的處理可以獲得如道路交通量、車輛速度、車頭時(shí)距等交通流微觀參數(shù)。車輛軌跡的精確提取對(duì)于分析交通行為、獲取交通流的運(yùn)行狀態(tài)具有重要意義。
基于視頻對(duì)車輛軌跡進(jìn)行提取需要對(duì)車輛進(jìn)行檢測(cè)跟蹤。傳統(tǒng)的車輛檢測(cè)跟蹤方法主要分為基于運(yùn)動(dòng)和基于特征兩類?;谶\(yùn)動(dòng)的方法主要通過幀差法、背景建模、光流法等手段實(shí)現(xiàn)?;谔卣鞯姆椒ㄖ饕ㄟ^設(shè)計(jì)如Haar-like、HOG、SURF等特征來檢測(cè)車輛。蔡曉禹等[2]利用基于對(duì)稱差分分塊建模的背景差分法來檢測(cè)無人機(jī)視頻中的車輛。文獻(xiàn)[3]為克服傳統(tǒng)邊緣特征檢測(cè)方法易受噪聲、背景干擾問題,提出基于多尺度邊緣融合和SURF特征匹配的車輛檢測(cè)與跟蹤方法。Xie[4]使用改進(jìn)KLT光流法跟蹤車輛特征點(diǎn),然后通過高斯混合模型和譜聚類對(duì)同一輛車的特征點(diǎn)進(jìn)行聚類匹配,不匹配的軌跡將被過濾。李文輝等[5]使用一種自適應(yīng)的免疫粒子濾波車輛跟蹤算法,并根據(jù)在真實(shí)場(chǎng)景中車輛行駛的特點(diǎn),在算法的相應(yīng)部分加入了自適應(yīng)學(xué)習(xí)參數(shù),保證了算法魯棒性。
近年來,隨著深度學(xué)習(xí)、計(jì)算機(jī)視覺等人工智能技術(shù)的發(fā)展,深度學(xué)習(xí)模型依靠強(qiáng)大的特征提取和抽象表達(dá)的能力,在目標(biāo)檢測(cè)識(shí)別領(lǐng)域取得了很高的精度。賴見輝等[6]利用基于深度學(xué)習(xí)的YOLOv3方法,以路側(cè)視頻為輸入,建立卡爾曼濾波+匈牙利分配+透視投影變換的交通流量計(jì)數(shù)模式,實(shí)現(xiàn)車輛的快速和高精度追蹤。Kim等[7]使用基于人為特征的聚合通道特征(ACF)和Faster R-CNN神經(jīng)網(wǎng)絡(luò)提取交通擁堵情況下的車輛軌跡。上述研究雖然實(shí)現(xiàn)了車輛的檢測(cè)和追蹤,但大多存在提取精度不高、軌跡連續(xù)性不強(qiáng)等局限性,無法應(yīng)對(duì)復(fù)雜道路環(huán)境和惡劣天氣條件。本文提出一種新的提取車輛軌跡的方法,主要包含3個(gè)步驟,分別是車輛檢測(cè)、車輛跟蹤及軌跡后處理。第一步使用YOLOv5檢測(cè)器在視頻幀中自動(dòng)檢測(cè)每個(gè)車道上感興趣區(qū)域的車輛。在獲得車輛位置之后,第二步使用DeepSORT跟蹤器實(shí)現(xiàn)快速而準(zhǔn)確的跟蹤。最后一步,利用透視變換矩陣將車輛的坐標(biāo)位置從像素坐標(biāo)系映射到世界坐標(biāo)系,然后采用局部加權(quán)回歸算法消除原始采集軌跡的異常值和鋸齒形振蕩。
YOLO[8]是一種先進(jìn)的端到端目標(biāo)檢測(cè)算法,可以實(shí)時(shí)、高精度地執(zhí)行目標(biāo)檢測(cè)。YOLO算法的主要核心思想是:將1幅圖像分成S×S個(gè)網(wǎng)格(grid cell),如果某個(gè)目標(biāo)的中心落在這個(gè)網(wǎng)格中,則這個(gè)網(wǎng)格就負(fù)責(zé)預(yù)測(cè)這個(gè)目標(biāo)框的坐標(biāo)、置信度和類別概率,然后采用非極大值抑制法就可以篩選出最終的檢測(cè)框。
YOLOv5是Glenn Jocher在2020年6月提出的最新版YOLO序列算法,是目前推理速度最快、精度最高的實(shí)時(shí)目標(biāo)檢測(cè)模型之一。YOLOv5算法的權(quán)重文件最小只有14 M,在Tesla P100顯卡上能實(shí)現(xiàn)140 FPS的快速檢測(cè)。與之前的版本不同,YOLOv5具有馬賽克數(shù)據(jù)增強(qiáng)和自動(dòng)適應(yīng)錨框的改進(jìn),在小目標(biāo)檢測(cè)上取得了較好的效果。因此,本文選取YOLOv5算法作為車輛檢測(cè)器對(duì)視頻流進(jìn)行逐幀檢測(cè),只保留與車輛有關(guān)的對(duì)象如car、truck、bus、motorcycle等。圖1為利用YOLOv5算法進(jìn)行車輛檢測(cè)的效果圖。
圖1 YOLOv5檢測(cè)效果圖
上一節(jié)獲得了車輛在每一幀圖像上的檢測(cè)結(jié)果,下一步工作是將不同幀間的目標(biāo)進(jìn)行動(dòng)態(tài)地關(guān)聯(lián),形成車輛軌跡,亦即車輛跟蹤。目標(biāo)跟蹤分為單目標(biāo)跟蹤(single object tracking)和多目標(biāo)跟蹤(multi object tracking),由于本文需要同時(shí)提取大量通行車輛的軌跡,所以屬于多目標(biāo)跟蹤。跟蹤多個(gè)目標(biāo)的算法需要考慮幀中對(duì)象的相似性以及幀之間對(duì)象的相關(guān)性。多目標(biāo)跟蹤的4個(gè)核心步驟為:
1) 運(yùn)行目標(biāo)檢測(cè)器進(jìn)行檢測(cè),獲取目標(biāo)檢測(cè)框。
2) 將所有目標(biāo)框中對(duì)應(yīng)的目標(biāo)摳出來,進(jìn)行特征提取,包括表觀特征和運(yùn)動(dòng)特征。
3) 進(jìn)行相似度計(jì)算,計(jì)算前后兩幀目標(biāo)之間的匹配程度,前后屬于同一個(gè)目標(biāo)其之間的距離較小,不同目標(biāo)的距離較大。
4) 數(shù)據(jù)關(guān)聯(lián),為每個(gè)對(duì)象分配目標(biāo)的ID。
圖2中描述了基于檢測(cè)的車輛跟蹤的核心步驟,虛線框代表跟蹤框,實(shí)線框代表新一幀的檢測(cè)框。
圖2 多目標(biāo)跟蹤核心步驟
當(dāng)前主流的對(duì)象跟蹤算法是基于檢測(cè)的跟蹤策略,DeepSORT[9]也使用此策略。DeepSORT算法是經(jīng)典的深度學(xué)習(xí)多目標(biāo)跟蹤算法。與SORT算法一致,它也通過卡爾曼濾波預(yù)測(cè)出預(yù)測(cè)框,然后使用匈牙利算法逐幀關(guān)聯(lián)數(shù)據(jù),再由關(guān)聯(lián)度量計(jì)算邊界框的IOU。本文利用deepSORT算法跟蹤視頻幀中的車輛。在實(shí)時(shí)目標(biāo)跟蹤過程中,提取車輛的表觀特征以進(jìn)行最近鄰匹配,可以在存在遮擋的情況下提高車輛跟蹤效果,同時(shí),也大大減少了車輛ID丟失的問題。算法關(guān)鍵步驟如下。
利用現(xiàn)有軌跡的運(yùn)動(dòng)狀態(tài)和外觀特征,將每個(gè)新的檢測(cè)框與現(xiàn)有跟蹤器相關(guān)聯(lián)。使用代價(jià)矩陣表示每個(gè)檢測(cè)框和現(xiàn)有跟蹤器之間的空間和外觀相似性,它通過2個(gè)度量進(jìn)行加權(quán)。第一個(gè)度量是用馬氏距離來表示第j個(gè)檢測(cè)目標(biāo)和第i條軌跡之間的運(yùn)動(dòng)匹配程度,其計(jì)算方法見式(1)。
(1)
式中:dj為第j個(gè)檢測(cè)的狀態(tài);yi為軌跡i在當(dāng)前時(shí)刻的預(yù)測(cè)值;Si為第i條軌跡由卡爾曼濾波器預(yù)測(cè)得到的在當(dāng)前時(shí)刻觀測(cè)空間的協(xié)方差矩陣。
第二個(gè)是外觀特征的距離度量。為了獲得檢測(cè)框和軌跡的外觀信息,對(duì)于每個(gè)邊界框dj,通過CNN計(jì)算其128維特征向量的外觀描述子rj,其中‖rj‖=1。對(duì)于每條軌跡,將其最近成功匹配對(duì)應(yīng)的檢測(cè)框的外觀描述子保存在集合Ri中,存儲(chǔ)的數(shù)量通過超參數(shù)budget(默認(rèn)100幀)進(jìn)行限制。這個(gè)特征集合將用于下面度量外觀空間中第i條軌跡和第j條檢測(cè)之間的最小余弦距離的計(jì)算。
(2)
基于運(yùn)動(dòng)信息的馬氏距離對(duì)于短期預(yù)測(cè)非常有效,而對(duì)于長時(shí)間遮擋后的車輛,基于外觀信息的余弦距離可以發(fā)揮作用,因此上述的2個(gè)度量指標(biāo)可以相互補(bǔ)充,為了建立關(guān)聯(lián)問題,使用加權(quán)平均計(jì)算最終的關(guān)聯(lián)匹配程度,超參數(shù)可用來控制2個(gè)度量指標(biāo)對(duì)最終結(jié)果的影響。
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(3)
當(dāng)一個(gè)新的檢測(cè)成功與現(xiàn)有跟蹤器相關(guān)聯(lián)時(shí),該檢測(cè)將添加到該軌跡中。如果未能成功關(guān)聯(lián)時(shí),新的檢測(cè)將初始化為暫定軌跡。在后續(xù)該軌跡如果連續(xù)3幀成功關(guān)聯(lián),則該軌跡將更新為已確認(rèn)狀態(tài)。否則,軌跡將立即刪除。至于在每幀中未能與新檢測(cè)結(jié)果關(guān)聯(lián)的現(xiàn)有跟蹤器,與之關(guān)聯(lián)的代表失配幀數(shù)的計(jì)數(shù)器將加1。如果該計(jì)數(shù)器超過了一定閾值,則該軌跡也將被刪除。
為解決全局分配問題中的數(shù)據(jù)關(guān)聯(lián),使用級(jí)聯(lián)匹配的方式,將不同的跟蹤器按照失配幀數(shù)排序,失配幀數(shù)小的先進(jìn)行匹配,大的后進(jìn)行匹配,這樣做的目的是使更加頻繁出現(xiàn)的目標(biāo)車輛賦予優(yōu)先匹配權(quán),這可以緩解表觀突變或者部分遮擋導(dǎo)致的馬氏距離發(fā)生較大變化的問題。
本文使用YOLOv5算法作為實(shí)時(shí)檢測(cè)器,結(jié)合DeepSORT算法構(gòu)建1個(gè)實(shí)時(shí)車輛檢測(cè)跟蹤模型。首先,將輸入視頻的圖像序列送入YOLOv5網(wǎng)絡(luò)中進(jìn)行對(duì)象檢測(cè),輸出結(jié)果包含檢測(cè)框像素坐標(biāo)bbox、對(duì)象類別cls和對(duì)應(yīng)的置信度conf。下一步,這些值將作為DeepSORT算法的輸入,DeepSORT將預(yù)測(cè)輸入的對(duì)象的ID,生成每個(gè)車輛目標(biāo)的軌跡,輸出元素包括幀索引fram idx、目標(biāo)ID,以及預(yù)測(cè)框的坐標(biāo)(x,y,w,h)。組合模型預(yù)測(cè)過程見圖3。
圖3 結(jié)合YOLOv5和DeepSORT算法的車輛檢測(cè)跟蹤模型
上一節(jié)得到了車輛目標(biāo)在圖像中的跟蹤框序列,下一步需要在矩形框的內(nèi)部選取一個(gè)像素點(diǎn)作為車輛在地平面上的坐標(biāo),一般選擇矩形框的中心或者框底邊的中心。道路監(jiān)控視頻視角見圖4。由射影幾何知識(shí)可知,選擇矩形框中心,則投影到地面的坐標(biāo)會(huì)比真實(shí)值遠(yuǎn);如果選擇矩形框底邊的中心,則投影后的坐標(biāo)會(huì)比真實(shí)值近,不過相比于前者,后者誤差更小,也更加穩(wěn)定。因此,最好選擇矩形框底邊中心作為車輛在圖像上的像素坐標(biāo)。
圖4 交通監(jiān)控視頻視角下的車輛
為計(jì)算目標(biāo)的真實(shí)交通參數(shù),需要將目標(biāo)車輛的像素坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)。對(duì)于單目相機(jī),坐標(biāo)轉(zhuǎn)換需要獲取相機(jī)的內(nèi)部參數(shù)和外部參數(shù)。內(nèi)部參數(shù)負(fù)責(zé)像素坐標(biāo)系和相機(jī)坐標(biāo)系之間的轉(zhuǎn)換,包括3×3的相機(jī)矩陣和 1×4 的畸變系數(shù)。外部參數(shù)負(fù)責(zé)相機(jī)坐標(biāo)系和世界坐標(biāo)系之間的轉(zhuǎn)換,包含一個(gè)3×3 的旋轉(zhuǎn)矩陣和一個(gè) 1×3 的平移向量。通常標(biāo)定相機(jī)內(nèi)部參數(shù)需要使用棋盤標(biāo)定板,通過得到內(nèi)部參數(shù)再計(jì)算外部參數(shù),步驟相對(duì)繁瑣。
現(xiàn)代道路監(jiān)控相機(jī)一般采用標(biāo)準(zhǔn)或者長焦鏡頭,安裝精度高,拍攝的車輛離相機(jī)也較遠(yuǎn),因此畸變影響較小,幾乎可以忽略。假設(shè)平面上某點(diǎn)P,在像素坐標(biāo)系和世界坐標(biāo)系下的坐標(biāo)分別為(u,v)和(X,Y,Z),在不考慮畸變系數(shù)情況下,從世界坐標(biāo)系到像素坐標(biāo)系的映射表達(dá)式見式(4)。
(4)
式中:s為尺度因子;A為內(nèi)參矩陣;(r1,r2,r3)和t分別為旋轉(zhuǎn)矩陣和平移向量。由于路面近似平面,假設(shè)其Z=0,則式(4)變?yōu)?/p>
(5)
(6)
式(6)中透視變換矩陣H=A[r1r2t]可通過4組標(biāo)定點(diǎn)進(jìn)行求解。后續(xù)所有軌跡點(diǎn)都可以通過式(5)計(jì)算出對(duì)應(yīng)的真實(shí)世界坐標(biāo)。
由于車輛預(yù)測(cè)框的抖動(dòng)、有風(fēng)天氣下攝像機(jī)晃動(dòng)、坐標(biāo)轉(zhuǎn)換等步驟帶來的誤差的積累,車輛在世界坐標(biāo)系下的軌跡點(diǎn)在時(shí)間上未必連續(xù),可能呈現(xiàn)一定程度的鋸齒形狀,本文使用局部加權(quán)回歸(LOWESS)平滑算法對(duì)其進(jìn)行優(yōu)化。
局部加權(quán)回歸[10](LOWESS)是一種非參數(shù)回歸方法,主要思想是以一個(gè)點(diǎn)為中心,向前后截取一定窗口長度的局部數(shù)據(jù),在這部分子集中用權(quán)值函數(shù)做一個(gè)加權(quán)的線性回歸。LOWESS算法具體實(shí)現(xiàn)步驟如下。
1) 確定一個(gè)以x0為中心的區(qū)間,計(jì)算區(qū)間中每個(gè)數(shù)據(jù)點(diǎn)的回歸權(quán)重,權(quán)重由如下所示的三次函數(shù)或者其他權(quán)值函數(shù)給出。從函數(shù)中可以看出,離x0越近的點(diǎn)權(quán)重越大,對(duì)擬合的影響也越大,反之則越小,區(qū)間外的數(shù)據(jù)點(diǎn)的權(quán)重為0,對(duì)擬合無影響。
(7)
2) 對(duì)區(qū)間內(nèi)的點(diǎn)使用一次多項(xiàng)式進(jìn)行加權(quán)線性最小二乘回歸。
3)x0處的擬合值y0就是平滑后的值,將所有平滑點(diǎn)連線即得到LOWESS曲線。
LOWESS平滑算法能有效避免異常值對(duì)平滑曲線的影響,同時(shí)能反映數(shù)據(jù)的總體變化規(guī)律,在數(shù)據(jù)去噪平滑處理中應(yīng)用廣泛。
本文的實(shí)驗(yàn)環(huán)境配置:Intel i7-9900k處理器,NVIDIA GTX 3080 10GB顯卡,軟件環(huán)境為Windows 10,CUDA 11.0,cudnn7.8.5,Python 3.7.0,opencv-python 4.4.0,pytorch 1.7.0。
為驗(yàn)證本文算法的有效性,選擇不同的交通環(huán)境進(jìn)行測(cè)試。測(cè)試視頻是高速公路路段的監(jiān)控視頻,視頻分辨率為1 920×1 080,幀率30幀/s。各視頻的具體參數(shù)見表1。
表1 測(cè)試視頻信息
1) 對(duì)于車輛的捕獲準(zhǔn)確度,選取多目標(biāo)檢測(cè)跟蹤任務(wù)常見的指標(biāo)FN、FP、IDSW、MOTA來評(píng)價(jià)算法的有效性。由于道路監(jiān)控視頻的視角問題,默認(rèn)檢測(cè)區(qū)為距離攝像頭150 m以內(nèi)。
FN:漏檢的車輛目標(biāo)數(shù)量;
FP:誤檢的車輛目標(biāo)數(shù)量;
IDSW:目標(biāo)ID發(fā)生跳變的總數(shù)量;
MOTA:multiple object tracking accuracy,多目標(biāo)跟蹤準(zhǔn)確率,被定義如下,式中t為幀數(shù),GTt是圖像中第t幀中的總目標(biāo)數(shù)量。
(8)
2) 對(duì)于軌跡的采集準(zhǔn)確度,選取LCSS算法度量本文方法提取的軌跡T1與人工點(diǎn)選的真實(shí)軌跡T2之間的相似長度,如式(9)所示。
(9)
式中:N(Tk)、tk,N(tk)分別為軌跡Tk的長度和末尾點(diǎn)坐標(biāo)。Head(Tk)為軌跡Tk去除末尾點(diǎn)后的子軌跡,ε為相似度閾值,根據(jù)經(jīng)驗(yàn)取10 pixel。將計(jì)算結(jié)果除以較短的軌跡長度,得到軌跡的相似度,如式(10)所示。
(10)
4.3.1車輛檢測(cè)跟蹤結(jié)果
對(duì)比人工觀測(cè)和算法自動(dòng)檢測(cè)結(jié)果,3個(gè)場(chǎng)景視頻部分幀的測(cè)試結(jié)果見表2,視頻處理得到的部分結(jié)果見圖5。
表2 不同場(chǎng)景車輛跟蹤實(shí)驗(yàn)結(jié)果
圖5 測(cè)試視頻實(shí)驗(yàn)結(jié)果
由表2及圖5可見,在陰天和小雨這種能見度較高的環(huán)境條件下,模型對(duì)車輛的檢出率極高,漏檢、誤檢的情況很少。對(duì)于濃霧天氣,隨著能見度的大大降低,出現(xiàn)了一些車輛目標(biāo)間隔幾幀漏檢的現(xiàn)象。值得注意的是,由于DeepSORT算法提取表觀特征和級(jí)聯(lián)匹配的策略,車輛目標(biāo)的ID很少發(fā)生跳變,視頻場(chǎng)景中的IDSW數(shù)量極小。3個(gè)場(chǎng)景的MOTA指標(biāo)都超過了90%,平均準(zhǔn)確率達(dá)96.1%,表明本文所提出的YOLOv5-DeepSORT車輛檢測(cè)跟蹤模型在道路監(jiān)控視頻上有較好的效果。
4.3.2車輛軌跡實(shí)驗(yàn)結(jié)果
隨機(jī)選取2輛車,窗口大小取20,使用局部加權(quán)回歸平滑其軌跡坐標(biāo)。使用LCSS算法計(jì)算自動(dòng)提取軌跡和實(shí)際軌跡的相似度,結(jié)果見表3。
表3 實(shí)際軌跡與算法提取軌跡相似度對(duì)比
由表3可見,軌跡的采集準(zhǔn)確度較高,平均準(zhǔn)確度超過了93%。根據(jù)真實(shí)世界的軌跡坐標(biāo)可以計(jì)算車輛的瞬時(shí)速度。圖6顯示了目標(biāo)車輛軌跡平滑前后的結(jié)果和各自的速度變化。由圖6可見,車輛的原始軌跡呈現(xiàn)了鋸齒形的抖動(dòng),違反了運(yùn)動(dòng)學(xué)的常理。經(jīng)過平滑算法的優(yōu)化,軌跡點(diǎn)和速度變得較為平穩(wěn),更加符合真實(shí)世界的情況。
圖6 軌跡和速度曲線優(yōu)化結(jié)果圖
視頻圖像是信息量最豐富的交通參數(shù)來源,利用這些交通視頻數(shù)據(jù)提取出需要的交通信息參數(shù)成為當(dāng)下研究的熱點(diǎn)問題。本文基于深度學(xué)習(xí)算法提出了一種車輛軌跡自動(dòng)采集的方法。在車輛檢測(cè)部分,使用了適應(yīng)各種復(fù)雜場(chǎng)景的YOLOv5算法。在車輛跟蹤部分,將檢測(cè)模型與多目標(biāo)跟蹤算法DeepSORT結(jié)合,緩解車輛相互遮擋帶來ID跳變的問題。在軌跡后處理階段,利用變換矩陣將圖像像素坐標(biāo)轉(zhuǎn)換為真實(shí)世界坐標(biāo),并針對(duì)軌跡的鋸齒形跳動(dòng),提出利用局部加權(quán)回歸平滑算法進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,本文所使用的方法在高速公路監(jiān)控視頻數(shù)據(jù)集上平均多目標(biāo)跟蹤準(zhǔn)確率達(dá)96.1%,軌跡采集的平均準(zhǔn)確度超過了93%,使用的軌跡平滑算法能有效地去除抖動(dòng),能夠?qū)崿F(xiàn)車輛軌跡的自動(dòng)采集,在交通安全研究領(lǐng)域具有較好的應(yīng)用場(chǎng)景。