周 君 程 琳
(東南大學(xué)交通學(xué)院 南京 210096)
交通事件檢測在國外開展的較早,從20世紀(jì)60年代開始,國外的一些學(xué)者就相繼提出了若干的交通事故自動檢測算法。根據(jù)算法如何利用檢測數(shù)據(jù),這些算法可以分為5類:比較算法、統(tǒng)計算法、基于時間序列與濾波的算法、基于交通流理論模型的算法和人工智能及其它先進算法[1]。國內(nèi)最早對事故檢測算法的研究是1994年鄧衛(wèi)等引進突變理論,提出了在確認交通擁擠出現(xiàn)的同時,判別交通擁擠類型的算法[2]。之后的事故檢測算法的研究趨向于改進和發(fā)展基于人工智能、信息技術(shù)、統(tǒng)計學(xué)習(xí)等先進技術(shù)的事故檢測算法。目前大部分交通事故檢測算法沒有考慮車輛相互遮擋的影響,導(dǎo)致在交通量比較大的情況下,算法運行結(jié)果比較差,為了解決這一問題,提出了基于語義層次組成的時空馬爾可夫隨機場(簡稱STMRF)交通事故檢測算法。該技術(shù)框架使用STMRF模型實現(xiàn)車輛跟蹤,將圖像序列轉(zhuǎn)化為車輛標(biāo)號場序列,該模型還克服了遮擋對跟蹤的影響。通過車輛跟蹤的結(jié)果得到車輛的目標(biāo)地圖和運動矢量,進而獲得交通流基本參數(shù),然后結(jié)合從安裝在道路上的檢測器獲取的交通流數(shù)據(jù),采用語義層次算法對交通事故進行檢測。這種事故檢測算法與以前的算法有所不同,它需要2組數(shù)據(jù),1組數(shù)據(jù)來源于視頻檢測的車輛跟蹤結(jié)果,另1組數(shù)據(jù)來源于道路檢測器所檢測到的數(shù)據(jù)。該算法能在交通比較擁擠且車輛出現(xiàn)相互遮擋的情況下,準(zhǔn)確檢測到交通事件(如碰撞、追尾、超速、車輛拋錨和魯莽駕駛等),對緩解交通擁擠和減少交通事故有重要的意義。
x={x1,x2,L,xN}表示基于指標(biāo)X的1 組隨機變量,其中每1個隨機變量Xi取集合L 中的1個值xi,則隨機變量組X 被稱為隨機場。Xi=xi表示隨機變量Xi取值xi的事件;相應(yīng)地,(Xl=xl,L,XN=xN)用來表示聯(lián)合事件,簡化為X=x,其中,x={x1,x2,L,xN}成為隨機場X的1個構(gòu)造。馬爾可夫隨機場有效地描述了隨機場X 局部特性,表達了當(dāng)前像素點的標(biāo)記僅與其鄰域的像素有相互作用,而與其它位置的像素標(biāo)記情況無關(guān)。
把1個720×640的圖像分割成90×80的塊,即每個塊由8×8的像素組成。在算法中,把1個塊對應(yīng)于ST-MRF 中的1 個場景。即把每個塊和1個車輛聯(lián)系起來,也就是給每個塊賦1個對應(yīng)的車的標(biāo)號。
本文采用自適應(yīng)車輛跟蹤的算法去確定1個初始標(biāo)號分布。自適應(yīng)的車輛跟蹤算法步驟如下所示。
1)初始化及新車輛標(biāo)號的產(chǎn)生。建立1 個研究區(qū)域的背景圖像,在算法中,設(shè)置檢測槽線,檢測槽線組成1個矩形,在矩形內(nèi)的車輛能被檢測到,超出矩形的車輛就不能檢測。這樣做的目的是為了避免對向車輛被檢測,妨礙檢測結(jié)果。并在槽線上檢測前景與背景灰度圖像的變化,用于判斷是否進入車輛。在槽線塊上,每1個塊的當(dāng)前灰度和背景灰度的差值一直在被檢測。當(dāng)這個差值大于一定的閾值時,算法就判斷檢測到1輛新車,并產(chǎn)生1個新的標(biāo)號,這個標(biāo)號賦予給目標(biāo)塊。如果新的目標(biāo)塊與早前檢測到的目標(biāo)塊部分重疊,這時把以前檢測到的目標(biāo)塊的標(biāo)號更新為新的標(biāo)號。在這里,僅僅只有塊才具有來自背景圖像的不同紋理作為車輛區(qū)域被標(biāo)號,但是這些塊隨著背景圖像一起具有相同的紋理,而不能給其他車輛區(qū)域進行標(biāo)號。
2)估計目標(biāo)運動矢量。當(dāng)車輛區(qū)域離開檢測槽線時,算法沿著時間序列自動更新車輛的形狀。對于這個更新,算法在車輛區(qū)域的塊中估計運動矢量。在每1個塊上,運用塊的匹配方法估計每1個目標(biāo)塊在時間t和t+1時的運動矢量。即塊在時間t的坐標(biāo)值為(x(t),y(t)),在時間t+1的坐標(biāo)值為:
(x(t+1),y(t+1))=(x(t)+u(t),y(t)+v(t)),該公式通過式(1)估計所得。其中G(x,y,t)是像素(x,y)在時間t的灰度強度。大概10個目標(biāo)塊屬于1個對象。這個對象的運動矢量被目標(biāo)塊中一些高頻運動向量所代表。
3)更新目標(biāo)塊。在具有代表性的運動矢量的基礎(chǔ)上,在下1個圖像中改變現(xiàn)有的目標(biāo)區(qū)域,在新的圖像中,賦予塊相對應(yīng)的標(biāo)號。如果在下1個目標(biāo)塊中,背景圖像在強度上小于最初給定的值,不要定義被檢測到的塊為目標(biāo)塊,如果大于則相反。
4)確定目標(biāo)地圖。在特殊情況下,多個對象同時通過槽線可以被認為是1個單獨的對象。為了劃分這些對象,需要檢查連通性及目標(biāo)塊的運動矢量分布。
未經(jīng)去噪處理的數(shù)據(jù)具有很強的隨機性,這主要是由兩方面造成的:一方面車輛的運行狀態(tài)本身具有很強的隨機性,造成交通流參數(shù)的持續(xù)波動;另一方面數(shù)據(jù)采集其實是1個復(fù)雜的測量過程,會受到各方面的干擾,產(chǎn)生隨機測量誤差。在檢測算法建立與使用的過程中使用有較強噪聲污染的數(shù)據(jù)會嚴重影響算法的性能,因此需要先針對原始數(shù)據(jù)中的噪聲污染進行預(yù)處理。關(guān)于小波分析的基本理論可以參見相關(guān)專著[2],本文僅對小波去噪的步驟作簡單說明。
對于1個含有噪聲的原始信號模型[3]:
式中:si為原始含噪信號;ei為噪聲;δ為噪聲水平。小波去噪一般包括如下步驟。
1)對原始數(shù)據(jù)作小波分解變化。選定小波函數(shù)和小波分解的層次n,對原始信號S 進行小波分解后得到n 個低頻系數(shù)序列(cA1,cAn-1,cAn)和n個高頻系數(shù)序列(cD1,cDn-1,cDn)。
2)對小波系數(shù)作門限閾值處理。即選擇適當(dāng)?shù)拈撝?,只保留(cD1,cDn-1,cDn)中模大于閾值的小波系數(shù),其它置為零,從而達到去噪的效果。
3)小波重構(gòu),獲得處理后數(shù)據(jù)。即根據(jù)低頻系數(shù)An和上一步處理后得到的高頻小波系數(shù)進行小波系數(shù)的重構(gòu),即可得到去噪后的數(shù)據(jù)。
語義,反映圖像中包含的信息,可以是圖像中具體包含的事物、背景、事物的空間關(guān)系等等。為了明確圖像語義所處的層次,Eakins[7]提出了語義層次模型,該模型將語義層次劃分為3個層次,分別為圖像底層特征層、對象層以及語義概念層。文章簡化Eakins的語義層次模型并結(jié)合交通事件檢測指標(biāo)提出坐標(biāo)層、行為層和事件層3層語義結(jié)構(gòu)算法對路段上的碰撞、追尾、超速、車輛拋錨和魯莽駕駛等交通事件進行檢測,如圖1所示。
1)第1層。坐標(biāo)類層。在該層,通過坐標(biāo)類函數(shù)語句獲得來源于基于ST-MRF的跟蹤結(jié)果——目標(biāo)地圖和運動矢量,使用圖像傳感器從坐標(biāo)和運動矢量中提取交通量、平均車速、加減速度和行駛軌道等參數(shù)。目標(biāo)地圖和運動矢量算法過程見文章第1節(jié)內(nèi)容。提取的坐標(biāo)類信息包括以下函數(shù)語句:
2)第2層。行為類層。在該層,通過行為類函數(shù)語句獲得每輛車的行為信息。行為類函數(shù)包括的信息有:停車、減速、間距、變換車道等。提取的行為類信息包括以下函數(shù)語句:
3)第3層。事件類層。在該層,通過事件類函數(shù)語句可以獲得交通事件信息。如交通事故(碰撞、追尾、超速、車輛拋錨和魯莽駕駛等)和交通擁擠。該層只由圖像信息構(gòu)成。當(dāng)交通出現(xiàn)嚴重遮擋現(xiàn)象時,很難從二維圖像本身觀察到交通事故,所以必須從下游檢測器獲得的數(shù)據(jù)經(jīng)小波處理得到的交通流參數(shù)經(jīng)整理成的流量類函數(shù)一起判斷事件發(fā)生[4]。
圖1 語義層次結(jié)構(gòu)流程圖Fig.1 The structure flow chart of semantic hierarchy
3.3.1 單個車輛的事件行為分析[5-7]
本節(jié)事件行為研究只考慮單個車輛的行為,而不考慮車輛之間的聯(lián)系,根據(jù)車輛單個獨立的行為來檢測事件。
1)坐標(biāo)類運算符。為了從跟蹤結(jié)果中提取出單個車輛的坐標(biāo),有必要對坐標(biāo)類運算符進行定義:
2)行為類運算符。通過使用來自坐標(biāo)類運算符的信息,行為類運算符描述單個車輛的行為如下:
相同行駛狀態(tài)的車輛軌跡的聚集過程為:每1條軌跡R 分解成一系列n 個離散點rm(1≤m≤n)。每1條估計軌跡R 表示每輛車在時間域里從圖像入口到出口的離散軌跡。這些軌跡都投影到2維空間與軌跡聚集的坐標(biāo)圖像中。本文采用k-mean聚集方法。kmin應(yīng)與車道數(shù)相等。聚集估計標(biāo)號為:C={ck}(1≤k≤kmin),聚集的中心表示為:L
k={lkm}(1≤m≤n,1≤k≤kmin),這表示是第K 種類型行駛狀態(tài)的車輛軌跡。
3)事件類運算符。事件類運算符對應(yīng)的交通事件語義描述為:碰撞、追尾、緊急停車。本文采用2種運算符檢測交通事件。第1種運算符判斷在靜止的車輛前面是否有未用的空間。運算符3)表示事故發(fā)生后,會有車輛停車,并在停止的車輛前面存在未用的空間。運算符4)表示的狀態(tài)為:車道上存在靜止的車輛,其他車輛為避開靜止車輛改道行駛??梢杂嬎愠霈F(xiàn)場更換車道的車輛數(shù)。如果此車輛數(shù)超過3輛車,可以判定換道行為作為靜止車輛的回避行為。值得注意的是我們不考慮靜止車輛與換道車輛之間的關(guān)系。
3.3.2 多輛車的事件行為分析
盡管前面介紹過的單個車輛的事故行為算法能有效地檢測大部分事件,它仍然有出錯的時候。錯誤檢測的原因是由于忽視了車輛之間的關(guān)系。如圖3所示為單個車輛繞道行駛被錯誤地檢測為事件發(fā)生。在這些實例中,單個車輛的事件行為算法把正常的交通當(dāng)成事故,這是因為運算符4)把那些并不是因為避開靜止的車輛而更換車道的情況錯誤地判斷為事件發(fā)生。在單個車輛的事故行為算法中的運算符4)對事件的檢測具有延遲性。這是因為運算符4)中的事件類運算符只有在完成“isStalled”操作輸出“正確”命令后才開始計數(shù)更換車道的車輛數(shù)。另外1種延遲檢測就是漏檢,如果靜止的車輛停在場景之外,就有可能發(fā)生漏檢。所以有必要對單個車輛的事故行為算法中的運算符4)進行修改。修改后的運算符考慮了靜止車輛與其它車輛之間的關(guān)系,并且在沒有完成“isStalled”操作時就開始計數(shù)。修改后的算法稱多輛車之間的事件行為算法。
1)行為類運算符。typeOfSpTrajectory(Vi,Vj,t):當(dāng)車輛為避開車輛Vj改道行駛時輸出“變換車道”,否則,輸出“正?!薄?/p>
2)事件類運算符。使用單個車輛的事件行為算法中運算符4),此運算符包括車輛之間的關(guān)系和清除檢測的延遲時間,通過運算符4)重新定義運算符5)。在運算符5)中,僅僅統(tǒng)計為避開車輛Vj而換道的車輛數(shù)。另外,運算符并不是等到車輛停止后才開始計數(shù)的。所以,運算符5)在車輛Vj陷入事故中時就立馬輸出“正確”。
在算法中,重新定義運算符4)為運算符6)。在運算符6)中考慮了車輛之間的關(guān)系和聚集軌跡。它描述了在事故中的車輛由于靜止而未被檢測到的情況,導(dǎo)致后面來車在這個位置為避開陷入事故中的車輛而換道行駛。運算符在某一時間段內(nèi)統(tǒng)計為避開特殊位置而換道的車輛數(shù)。運算符如下所示。
上述運算符函數(shù)中b代表事件的發(fā)生。
本次實驗拍攝的視頻為2012年9月某高速公路一段,在該路段每天大約有4 萬輛車通過。本次實驗的目的主要是為了評價單個車輛的事故行為算法和多個車輛事故行為算法的有效性。盡管單個車輛的事故行為算法能夠有效地檢測一些簡單事件,但是對于一些復(fù)雜情況下的事件將會漏檢。如圖3所示,左邊有一輛停止的車輛在單個車輛的事故行為算法中沒有被檢測到,而在多個車輛事故行為算法中被檢測到。另外,在單個車輛的事故行為算法中沒有考慮車輛之間的關(guān)系,這有可能把正常情況當(dāng)作事件來判斷,但是在多個車輛事故行為算法中由于考慮了車輛之間的關(guān)系,所以不會被誤判。
3.4.1 單個車輛的事故行為算法的結(jié)果
在實驗期間,總共發(fā)生的交通事件是14起,而通過算法檢測到的交通事故只有11起。正確率為79%。如圖4(a)所示,這是出現(xiàn)靜止車輛時所檢測到的事件,左邊車道上用圓標(biāo)出的車輛為跟蹤區(qū)域的邊界車輛,單個車輛行為算法未能檢測到。
3.4.2 多個車輛事故行為算法的結(jié)果
在同樣的實驗條件下,采多個車輛行為算法來檢測交通事故,共檢測到12 起,正確率為86%,如圖4(b)所示。沒有被檢測到的2 起事件,一起是因為車輛完全超出了跟蹤范圍,另一起是因為車輛處于擁擠狀態(tài)下,而未被檢測到。
圖2 錯檢事件Fig 2 Wrong detection
圖3 追尾與碰撞事件Fig.3 Rear-end and collision events
圖4 2種算法比較Fig.4 The comparison of two algorithms
1)運用ST-MRF模型進行準(zhǔn)確的車輛跟蹤,且在交通擁擠情況下,獲得較準(zhǔn)確的交通流數(shù)據(jù)。
2)運用語義層次算法來對事故檢測所需的數(shù)據(jù)進行分層,層與層之間的關(guān)系可以通過運算符調(diào)用,這樣可以節(jié)省計算時間,提高檢測速度。
3)算法結(jié)合下游檢測器檢測出的交通流數(shù)據(jù),進一步提高檢測的準(zhǔn)確性,這是因為僅僅采用基于ST-MRF車輛跟蹤結(jié)果得出的交通流數(shù)據(jù)進行事件判斷,處于車輛跟蹤區(qū)域的臨界處得事件將會漏檢。
4)通過實驗比較發(fā)現(xiàn),結(jié)合下游檢測器數(shù)據(jù)的算法的檢測率更高。
[1]Dudek C L,Messer C J.Incident detection on urban freeway[J].Transportation Research Record,1974(495):12-24.
[2]鄧 衛(wèi),李峻利.高速公路常發(fā)性與偶發(fā)性交通擁擠的判別[J].東南大學(xué)學(xué)報,1994,24(2):60-65.
[3]Smith S M,Brady J M.Real-time motion segmentation and shape tracking[J].IEEE Trans.Pattern analysis and machine intelligence,1995(17):340-355.
[4]Eakins J P.Automaitc image content retrieval-are we getting anywhere[C]∥Proc of third Internatinal Conference on Electronic Library and Visual Information Research.De Mont fort University,Milton Keynes:Aslib,1996:123-135.
[5]Besag J.Spatial interactions and the statistical analysis of lattice systems[J].J Roy Statist Soc.,1974:36(2):192-236.
[6]Oikawa Keiko,Kaneko Yukjhiro,Matano Masahiko.Study of abnormal incident detection aimed at automatic wide-area traffic flow monitoring[C]∥World congress on ITS,Washington,D C:IEEE,2002.
[7]Jin X,Ng K,Ng Y,et al.Calibration of Fresim for Singapore expressway using genetic algorithm[J].Journal of Transportation Engineering,1998(124):526.