劉向前,閆 娟,楊慧斌,賈茜偉
上海工程技術大學 機械與汽車工程學院,上海 201620
隨著智能監(jiān)控系統(tǒng)和智能交通技術不斷發(fā)展,研究者對目標檢測跟蹤與行為分析的研究日益增長。將跟蹤應用于智能車輛中,可提高不同情況下駕駛性能與安全性[1-2]。Sivaraman和Trivedi[3]對道路上車輛的檢測、跟蹤和行為分析方面進行了研究。而近年來,針對交叉路口車輛如何跟蹤問題引起了人們關注。Datondji等[4-6]研究中,他們基于機器視覺著重對交叉路口的車輛、駕駛員及行人的行為與安全性分析進行了相關研究;Veeraraghavan 等[7]通過引入兩級跟蹤器,用于跟蹤二進制Blob,使用卡爾曼濾波器預測運動,并為目標建模,但是,擁擠的場景下,也無法滿足對靜止的車輛進行準確跟蹤;Lira 等[8]將卡爾曼濾鏡用于無人機浮動攝像機的鏡頭上,但是長時間晃動下,則會丟失許多幀,因此其算法也無法達到對車輛準確跟蹤;Song和Nevatia[9]提出了一種馬爾科夫隨機場模型,通過將多個重疊的車輛分割成具有各自方向的單獨車輛,他們提出的方法雖然可以跟蹤方向變化的車輛,但是在出現(xiàn)擁堵的情況下會導致大量跟蹤數(shù)據(jù)集丟失;Wu 等[10]提出用于城市交叉路口的車輛跟蹤器,首先進行軌跡預測,后使用HMM 將軌跡分類為不同運動模式;Bilodeau 等[11]提出一種基于深度學習的分類標簽跟蹤方法,他們主要研究了交通場景中多類目標檢測器的性能,并由實驗結(jié)論表明檢測階段的標簽改善了跟蹤的性能;Prommool 等[12]開發(fā)出一種借助運動估計和泰勒級數(shù)逼近的車輛計數(shù)系統(tǒng),他們所提出方法中,使用虛擬進入或退出來改進對車輛方向的預測;Del Rosario等[13]所做研究著重于智能相機視頻監(jiān)控,并提出數(shù)據(jù)可關聯(lián)各種平臺上的多視圖視覺系統(tǒng);Atev等[14]提出一種車輛跟蹤器,用于交叉路口和高速公路上數(shù)據(jù)的自動收集,所提出模型可從任何角度進行測量,并與提出的算法有效融合在一起;Subedi 和Tang[15]提出一種針對交叉路口的多攝像機三維車輛跟蹤方法,通過對每個攝像機進行校準,然后系統(tǒng)從攝像機中捕獲同步圖像并導出圖像輪廓后將其投影到三維現(xiàn)實圖像中;Wu等[16]和馬泊寧等[17-18]提出一種用于車輛跟蹤的圖像匹配方法,所提出的方法使用了地理信息與深度特征和運動的組合。
針對單視圖下交叉路口車輛跟蹤實時性較差,存在誤檢及漏檢問題。鑒于此,本文聯(lián)想到多攝像機多視圖下采集的方法可以具有更好的性能。盡管近年來越來越多對多攝像機方法進行相關研究,但從總體上而言,對于交叉路口車輛重疊狀況下,研究還較為有限。當今與行人有關的使用圖形數(shù)據(jù)關聯(lián)進行跟蹤已得到廣泛的應用,雖然跟蹤車輛并非如此,但由于相交結(jié)構(gòu),精心設計的圖形層,可能會有幫助,應用在單視圖跟蹤中,也可以獲取準確的軌跡。受此啟發(fā),本文引入多層圖模型,通過構(gòu)建多層圖,將交叉路口車輛出入口側(cè)位置不同或運動方向不同的運動流分布到不同層。對于每一層,引入允許方向的兩個鄰域,每一層代表車輛可以進入交叉路口的一側(cè),并且為該側(cè)運動流定義鄰域,即Near和Far鄰域。在本文方法中,車輛跟蹤分別在每層圖形上進行,而由于圖形層之間互不相交,因此避免了碰撞。車輛進入交叉路口時,將創(chuàng)建一個跟蹤記錄,穿越交叉路口期間,會隨時更新軌道,當從一個單元格移動到另外一個單元格時,該視圖的圖形邊緣權(quán)重也會隨之更新,同時,系統(tǒng)會將相機所有視圖的視頻序列信息映射到選定多層圖主視圖上,創(chuàng)建一個包含所有視圖的跟蹤信息的映射多層圖,最終通過求解最短路徑來執(zhí)行跟蹤。針對遮擋或誤檢的情況,在提出的方法中是將視圖中跟蹤過程分為兩個階段,第一階段通過層的相鄰性來搜索跟蹤歷史和車輛軌跡路線;第二階段,將其他視圖的軌跡映射到選定主視圖中,從映射視圖中來管理其他視圖中的誤檢。
由于道路交叉口背景錯雜性,涉及到各種對象,包括小轎車、公共汽車、自行車及行人等,使得對于車輛跟蹤多層圖建立成為較復雜的任務過程。
基于將車輛出入口側(cè)位置不同或運動方向不同的運動流分布到不同層,提出用于跟蹤目標車輛的多層圖模型。首先,通過將交叉路口的公共區(qū)域劃分為跟蹤的區(qū)域;其次,在交叉口路面上構(gòu)建一個由m×n單元組成的網(wǎng)格,其示意圖如圖1所示。
圖1 標記邊與層的網(wǎng)格單元圖Fig.1 Grid cell diagram with marked edges and layers
由于每個單元格都是組成交叉點的一部分,所以網(wǎng)格單元的大小代表著一個重要的影像單元參數(shù),其大小根據(jù)step參數(shù)像素間的網(wǎng)格線距離確定,如圖2。
圖2 多層圖鄰域單元Fig.2 Neighborhood cell of multi-layer graph
針對模型,構(gòu)建大小為M×N網(wǎng)格單元矩陣,則對應網(wǎng)格線的截距y為:
其中,a為單元網(wǎng)格斜率,step為像元參數(shù)。
構(gòu)建的多層圖模型如圖3 所示。當車輛進出交叉口時,車輛按照允許方向行駛,路口相交的每一側(cè)都有相對應的圖形層。針對車輛之間交叉重疊問題,只需構(gòu)建的多層圖形之間互不相交,就可保證車輛無法在不同層之間移動。同時,為了對每一層中車輛所允許的方向建模,引入前后鄰域,用來顯示每一層車輛運動的方向,將每一層之間的差異轉(zhuǎn)化為每一層各單元鄰域的差異。
圖3 單視圖下多層圖模型Fig.3 Multi-level graph model in single view
假設t時刻車輛位于第k層(i,j)處,t+1 時刻位于(p,q)處,此段時間車輛運動方向未發(fā)生改變,兩個時刻車輛都應位于同一層,為表示其運動關系,采用引入兩個鄰域“Near”和“Far”。根據(jù)該層的運動流,緊鄰單元“Near”是緊靠(i,j)的單元,并且,緊鄰鄰域單元旁邊的單元為“Far”,即遠鄰鄰域。表1中定義了頂層的兩個鄰域位置,用于表示初始進入叉路口的車輛。在表1中單元格(i,j)表示所檢測車輛所處的當前位置,(i,j-1)、(i,j+1)表示所檢測到車輛的同層近鄰鄰域,(i,j-2)、(i,j+2)表示所檢測車輛的同層遠鄰鄰域。網(wǎng)格單元大小的變化可由不同的step參數(shù)來確定,幀速率也可以高也可以低,幀速率不同,導致車輛可以移動鄰域也會不同。同樣,由于攝像機的拍攝視圖與安裝位置的不同,單元網(wǎng)格可以表示實際交點部分也不同,并且一個單元網(wǎng)格也只能包含唯一車輛的step參數(shù)。
交叉路口多相機的跟蹤方法中,攝像機視圖可被分為全部重疊、部分重疊或者不重疊[19]。但是實際場景中,攝像機視圖至少會有80%部分重疊。本文方法中,通過在交叉點處距離地面2.2~2.5 m,將多個攝像機布置到不同的視角位置,達到對交叉路口全方位覆蓋,這樣對于車輛的跟蹤問題轉(zhuǎn)化為多攝像機之間的數(shù)據(jù)關聯(lián)問題。通過視圖之間的映射過程實現(xiàn)數(shù)據(jù)的關聯(lián),而不需要對攝像機進行校準,所有對應關系通過映射來計算。具體映射過程與數(shù)據(jù)關聯(lián)由以下方式進行:
(1)多攝像機采集視圖中,選擇一個作為主視圖niselected,按理來說對于主視圖的選擇沒有任何約束,而本文是選擇具有完整交叉點且視野開闊的相機視圖。
(2)選定主視圖后,可將其他視圖的信息映射到其主視圖中。由于每個視圖來自每臺相機,因此可以從不同的視圖中獲取不同的圖像位置信息。目標對象之間視圖相互映射通過在每個攝像機之間應用單應性關系[20]實現(xiàn)。所有車輛都在同一地面上,可以通過單應性分析將其視圖與車輛之間進行對應。
假設xi和xj分別是同一輛車在視圖i和j下的質(zhì)心,這兩個點之間對應的映射為Hi,j,兩個視圖的圖像點有映射關系:xi=Hj,i xj和xi=Hi,j xi,計算niselected與其他視圖k之間的n-1 個單應性矩陣:
(3)除niselected視圖外,所有如圖4 所示多層圖形均可通過Hk、niselected映射到所選視圖中。具體實施僅需映射具有跟蹤信息的頂點與邊,并分別將Vstart與Vend之間相互映射?;诿總€攝像機的安裝位置,來確定應映射到圖層,對于視圖k的每個邊緣,確定映射的源頂點與宿頂點。由于每個頂點都存在相交的一部分,所以頂點的任何部分都可以映射到其他視圖圖形層的另一個頂點,而每個頂點在其他特定時間也會被映射,因此,映射結(jié)果會更加準確可靠,映射過程如式(3)所示:
圖4 多視圖下多層圖模型Fig.4 Multi-level graph model under multi-view
其中,k為視圖編號,(midx,midy)為頂點所檢測車輛質(zhì)心坐標,lmapped為l映射層,(midxmapped,midymapped)為對應質(zhì)心坐標映射,為映射積。
圖像頂點之間邊緣處具有要跟蹤的信息,所以在構(gòu)建圖形時,單元格邊的權(quán)重均為W(W>0),當車輛通過邊緣時,權(quán)重變?yōu)棣?,映射所有圖像后包含軌跡的最終權(quán)值為:
其中,是邊和的權(quán)值,w是初始權(quán)值,δ為還原參數(shù),r為圖形跟蹤次數(shù)。
所搭建的多層模型中,在執(zhí)行跟蹤之前對每個交叉點進行計算,目的為跟蹤做好前期處理準備。
跟蹤過程是通過在構(gòu)建的圖層中搜索車輛軌跡的路徑來實現(xiàn)。跟蹤開始之前,通過多層圖對每個視圖構(gòu)建相對應的圖層,并通過求解單應性矩陣,來獲取運行軌跡。同時,為了短時間內(nèi)獲取軌跡并保證軌跡的連續(xù)性,本文中將當前圖像最后一幀與下一圖像的第一幀進行重合處理。隨著時間推移,圖形層會進行更新,從而可保證軌跡不會在中間丟失。當車輛進入攝像機視野時,交叉路口車輛跟蹤開始,因此,當車輛從特定層的入口單元進入交叉口時,它的初始層就被確定了。對于每一個被檢測的車輛,可以從檢測器輸出的數(shù)據(jù)邊界框中,提取地平面上的質(zhì)心作為檢測的標識,確定該檢測所處的頂點,跟蹤過程中保存每個視圖每輛車軌跡記錄,其中是該車輛在時間t圖形層的頂點,tag是標識號,midx、midy是檢測的質(zhì)心。
由于圖形層互不相交,所以可在每個層中分別執(zhí)行跟蹤,處于相同層的車輛應保持在同一層,不允許在其他層之間移動,對于下一幀,重復以上過程,即時間t+1時刻檢測到的車輛在時間t時可以保持靜止,或者移動到它的相鄰單元處。對于每一個被檢測到的車輛,通過在先前幀的鄰域中識別出車輛軌跡。當車輛通過交叉口時,保持跟蹤記錄,確定檢測屬于先前的車輛軌跡后,使該檢測的跟蹤記錄將更新為[new,midynew],隨著視圖的更新,多層圖隨之進行更新。根據(jù)更新的多層圖,分別按層和標識號為每個視圖計算通過交叉口車流量,并估計此跟蹤階段主視圖中的軌跡數(shù)。
在多層圖中,不是所有單元網(wǎng)格都包含有車輛跟蹤的信息,會存在部分網(wǎng)格中不包含信息,所以在每次處理結(jié)束時,通過單應性映射將所有多層圖映射到所選主視圖中,通過映射的多層圖處理所有視圖中的跟蹤信息。
為了從多層圖中分別提取出車位于每個層中的軌跡,基于多層圖形中搜索路徑的方法來執(zhí)行,而搜索路徑過程中所構(gòu)的圖像即為車輛在不同層形成的軌跡。基于跟蹤階段的多層圖和軌跡特點,將其約束式(5)定義如下:
其中,l是總層數(shù),vl為l層頂點數(shù),是l層使用頂點總數(shù)。
車輛通過時,該圖層邊緣的權(quán)值會減小,由開始的正逐漸變?yōu)樨摚罱K改變的范圍應位于和之間。執(zhí)行跟蹤時,可從到之間的所有可能單元網(wǎng)格中,選擇其一并用f(t)l(i,j),(i′,j′)表示:
此值恒大于零,對于跟蹤約束在時間t與t+1 之間,只有一輛車可以通過同一單元網(wǎng)格,因此,所有可能的邊緣之間在時間t的所有層,只能選擇一個。由于任何時候地面上的一個單元都可以被一輛可能位于任何層的車輛所占據(jù),為解決此問題,引入式(7)約束為:
同時,每層中選定單元網(wǎng)格數(shù)量應小于式(8)所選定頂點數(shù)量。
根據(jù)能量守恒定律,在跟蹤或搜索路徑時,除vstart與vend外,用于進入和退出頂點的單元網(wǎng)格數(shù)量應相等。針對單元格邊緣的值,它們可能會有所不同,因為跟蹤的過程中可能會發(fā)生遮擋和誤檢測,本文通過式(9)來處理:
其中,r、s分別表示車輛進出時邊緣初始值。
最后,每一層中開始的軌道路徑的數(shù)量應等于該層中結(jié)束的軌道路徑的數(shù)量。由于所構(gòu)建的圖形層是不相交的,通過定義入口邊緣與出口邊緣約束式(10),使得它們之間不會發(fā)生軌跡的相互切換。
基于到所有上述條件約束,目標軌跡從vstart開始建立到vstart結(jié)束,這些軌跡主要是由跟蹤信息單元網(wǎng)格所組成。為求解最小各邊權(quán)值和,必須在規(guī)定的約束條件下對目標函數(shù)進行最小化處理:
本文將解決最小化問題轉(zhuǎn)化為多層圖中找k條最短路徑,由于每個頂點最多有一輛車輛,所以這些路徑的邊與定點是不相交的。為找k條不相交路徑,應事先求解出k的值。本文使用跟蹤階段的kestimate-#of-track作為k預測,通過將所有視圖中最大軌跡數(shù)作為路徑查找k的參數(shù),并定義式(15)如下:
為計算最終車輛運行軌跡,應比較當前車輛與下一運動流的軌跡,以查看軌跡是否在接下來的運動流中繼續(xù)。為保證軌道可以在上一個運動流的結(jié)束相同位置繼續(xù),將當前運動流的最后一幀與下一運動流的第一幀重疊。
當駛?cè)虢徊媛房诘膬奢v或更多車輛軌跡發(fā)生彼此交叉如圖5所示。針對傳統(tǒng)的跟蹤,會導致跟蹤軌道信息丟失,而本文所提出的多層圖模型中是完全避免此現(xiàn)象。對跟蹤過程中,來自不同側(cè)面的可能會發(fā)生碰撞運動車輛,通過將其運行軌道分配到不同層進行通過,有效避免了碰撞的發(fā)生。針對圖5 而言,時間t處有一個屬于兩個不同軌跡的監(jiān)測點,即碰撞點,不同顏色表示軌道位于不同層中。通過車輛跟蹤的歷史記錄,黑色軌跡跟蹤的下一步將進入軌道2,而不是其他軌道,同理對于多輛車輛發(fā)生交叉時,其跟蹤分析一樣,其執(zhí)行流程如圖6所示。
圖5 兩個可能相互碰撞的運動流Fig.5 Two possible collision flows
圖6 跟蹤處理執(zhí)行流程圖Fig.6 Execution flow chart of tracking processing
實驗數(shù)據(jù)集選取來自某城市位于交叉路口公開數(shù)據(jù)的運動流如圖7所示,其中此交叉路口布置有八臺攝像機,但是只有兩個是公開的,包含汽車、卡車及公交車,視頻時長為5 min 12 s,道路主要是來自四個方向的八條車道,每天的交通運動流量高達17 000輛。
圖7 道路交叉口運動流視圖Fig.7 View of movement flow at road intersection
由標記的網(wǎng)格單元得層數(shù)L=14。為確定最佳鄰域?qū)樱謩e對近鄰域、遠鄰域及兩者綜合三種情況進行實驗,研究step參數(shù)與多層圖中鄰域?qū)訉ζ涓櫟挠绊?。為驗證其跟蹤的效果,對step值起始10 到40 分別進行跟蹤實驗。
由圖8得出分析如下:(1)就近鄰跟蹤結(jié)果顯示,跟蹤丟失幀的數(shù)量較多,可能由于起初較小值搜索近鄰時,使車輛越過相鄰層的區(qū)域,導致它在緊鄰預測單元格中不存在;(2)遠鄰跟蹤這種情況下,隨著step參數(shù)值增加,軌跡之間會發(fā)生互換;(3)近、遠鄰域兩種綜合狀況下,通過近鄰進行搜索,如果沒有找到相應的軌跡,則搜索遠鄰域。即使step參數(shù)值較小時,丟失幀數(shù)會少很多,并且隨著參數(shù)值的增加,軌跡之間相互換的可能性也會減小。從相機角度分析來看,此種情況由于像元大小相同,使得運動似乎更大。綜上,針對此三種情況,最好的跟蹤策略是近、遠鄰域的綜合,使得目標跟蹤過程中丟失幀數(shù)據(jù)量最小。
圖8 視頻序列在不同鄰域跟蹤效果圖Fig.8 Effect of video sequence tracking in different neighborhood
根據(jù)建立的多層圖及選定的跟蹤?quán)徲?,采用VS 2017+OpenCV 3.4.10 開發(fā)環(huán)境仿真跟蹤實驗。通過在選定的實驗數(shù)據(jù)集中對多個運動目標進行跟蹤實驗,并選取視頻中第160幀作為實驗處理幀。分別采用:ViBe法、L-K 光流法、粒子濾波法及本文方法對運動目標進行跟蹤處理,其跟蹤效果如圖9 所示、不同方法下目標跟蹤的性能對比如表1所示。
表1 不同方法下目標跟蹤性能對比Table 1 Target tracking performance comparison under different methods
有上述實驗結(jié)果可看出,不同方法表現(xiàn)出不同的跟蹤結(jié)果。其中,對于粒子濾波法,跟蹤準確率比較低且容易受外界環(huán)境因素的影響;L-K光流法在較大允許誤差范圍內(nèi),雖然可實現(xiàn)對目標的跟蹤,但由于算法較復雜,處理速率較低,使其跟蹤的實時性太差;ViBe 法處理運算率最高,但目標跟蹤中存在跟蹤不準確、跟蹤偏差,導致跟蹤準確率較低;本文方法中,不僅保持了目標跟蹤的準確率最高,同時也大大縮減了算法的復雜度,極大地提高了運算處理效率,表現(xiàn)出較好的實時跟蹤性能。
同時,為驗證本文方法在交叉路口各個狀況下的跟蹤效果與實時準確性,選取了視頻中不同幀分別進行跟蹤實驗,其跟蹤效果如圖10所示。
由跟蹤結(jié)果圖表明,該多層圖模型在多角度視圖下可有效對交叉路口的車輛進行跟蹤,從圖10(E1)中可以看出,當存在遮擋條件下,該方法的追蹤效果良好;圖10(E2)中,跟蹤的目標是黑色車,存在人行為干擾的情況下,跟蹤效果依然良好;而圖9(E3)中,當存在車輛軌跡之間相互碰撞交叉的情況下,車輛跟蹤的效果良好,沒有受到交叉軌跡線的相互干擾。
圖9 目標跟蹤結(jié)果圖Fig.9 Target tracking results figure
圖10 跟蹤結(jié)果圖Fig.10 Tracking results
針對道路交叉口不確定運動流跟蹤問題,提出基于多層圖多角度的對進出交叉口車輛實施跟蹤的方法。通過構(gòu)建多層圖形將各運動流分配到具有不同鄰域的不同層,多角度視圖下將多層圖形映射到所選定主視圖中,通過求解映射主視圖下運動流最短路徑,實現(xiàn)對車輛軌跡的跟蹤。通過實驗驗證,本文方法可對交叉路口運動流94%以上的車輛進行有效預測并進行準確跟蹤,總體上滿足實際跟蹤需求。
同時,由于本文中多層圖的構(gòu)建僅考慮了多視圖下單應性映射與目標車輛質(zhì)心,后期為進一步優(yōu)化模型,提高跟蹤精確率,擬在跟蹤模型中引入視覺顏色特征,來縮短跟蹤器的延遲時間,作為后續(xù)研究重點。