[AI開發]目標跟蹤之行爲分析

基於視頻結構化的應用中,目標在經過跟蹤算法後,會得到一個唯一標識和它對應的運動軌跡,利用這兩個數據我們可以做一些後續工作:測速(交通類應用場景)、計數(交通類應用場景、安防類應用場景)以及行爲檢測(交通類應用場景、安防類應用場景)。我會寫三篇文章依次介紹這三個主題。

(1)目標跟蹤之速度計算

(2)目標跟蹤之計數

(3)目標跟蹤之行爲檢測

至此,三個主題都結束了。

本篇文章以交通類應用場景爲例,介紹車輛異常行爲分析方法。車輛異常行爲通常又稱“車輛異常交通事件”,指車輛在行駛道路上出現的違法行爲,一般包括 停車、逆行(倒車)、佔用應急車道、擁堵等等。本篇文章分別介紹這四種車輛異常交通事件的分析方法。

注意:高速交通中,通常異常交通事件還包括行人闖入、拋灑物、煙火等,由於這些跟車輛沒有直接關聯,本文不涉及此類事件。

(停車事件)

 

定位目標軌跡點

前面系列文章已經提到過,目標檢測算法會輸出目標的位置,一個四元組(Left、Top、Width、Height),代表一個矩形框,該矩形框住的範圍就是圖像中目標的位置。我們在進行目標行爲分析時,需要先找到一個二維點(X,Y),使它最能代表目標在地面上的位置,原因很簡單,因爲畫面中的目標實際是在三維世界中的地面上移動。大家可能第一反應應該選擇矩形框的中心點(Left + Width / 2, Top + Height /2),雖然這個點非常好計算,但是實際應用中該點並不非常準確,通過它並不能準確地反映目標在地面上的實際位置。

如上圖所示,黃色矩形框代表貨車在畫面中的位置,如果選取矩形框中心點來定位車輛在路面上的位置,那麼貨車應該在行車道(右側車道)上行駛,而實際情況貨車正在超車道(左側車道)上。顯然用這種方式去判斷車輛在路面上的位置非常不準確。

另外一種方式是選取矩形底邊的中心點(Left + Width/2, Top + Height),這種方式比前一種更準確,但是當車道方向與攝像夾角非常大時,定位誤差非常明顯。

如上圖,黃色矩形框代表客車在畫面中的位置,如果選取矩形框底邊中心點來定位車輛在路面上的位置,那麼客車應該壓線了,而實際情況客車行駛正常。

實際經驗得到,只取矩形框底邊中心點還不夠,還需要根據車輛行駛方向與垂直方向的夾角大小來動態調整該點的X指,也就是說,最終選取的點應該是 (Left + Width/2 + delta, Top + Height),其中delta可正可負,最終的效果如下:

 

停車

停車時,目標靜止不動,理論上目標軌跡點不變,我們只需要判斷軌跡點在連續若干幀之內都沒發生變化即可(Xm == Xn && Ym == Yn)。但現實場景中,由於目標檢測算法的準確性,同一個目標即使靜止不動,每一幀檢測到的矩形框也有可能不一樣(位置不同、大小不同等),最後得到的軌跡點也不會重合。因此更好的判斷方式是:目標軌跡點連續若干幀之內歐氏距離(平面直線距離)不大於某值,比如50像素,那麼我們即可認爲車輛靜止不動(停車事件發生)。

 

 

逆行(倒車)

逆行時,目標第M幀軌跡點和第N幀軌跡點的射線與道路方向之間的夾角如果大於某值,比如大於90°,那麼判定爲逆行。其中M<N

佔用應急車道

當車輛行駛時,判斷目標軌跡點在連續若干幀內是否都在應急車道中,若是,則爲佔用應急車道,其他類似的區域事件判定邏輯與這個一樣

 

擁堵 和 緩行

連續若干幀內靜止車輛數大於某值,車輛靜止的邏輯可以參照前面停車的邏輯。當路面多輛車靜止不動時,判定道路發生擁堵。該方式很簡單,但是通常情況下,除了這種堵死的情況外,我們更需要知道是否出現緩行(提前應對擁堵發生)。

緩行有兩種方式去判斷:

(1)結合前幾篇文章提到的測速,如果發現多輛行駛車輛的速度都小於某值(可以分級定義),那麼判定道路緩行;

(2)很多情況下,車速測不出來(前面文章中有提到,沒有參照物的道路測不出車速),那麼我們需要使用其他方式先判斷單個車輛是否緩行:在連續若干幀中,車輛軌跡點直線距離小於某值,但是大於另外一個值(保證車輛沒有停止)。如果連續多幀中出現緩行的車輛數大於某值,那麼判定整個道路進入緩行狀態。

 

目標行爲分析難點

前面所有的行爲邏輯判斷全部基於理想狀態下:檢測算法比較準確,矩形方框鎖定目標比較穩定,不會出現丟幀、矩形框抖動嚴重(位置、大小跳躍厲害)。實際應用場景中,由於各種各樣的因素,目標鎖定不夠準確,會對目標行爲分析造成非常大的負面影響。

另外,上面所有判斷邏輯全部基於像素單位(圖像二維座標系),這個判斷依據存在一定缺陷,檢測算法能檢測到很遠的車輛,雖然這時候車輛一直處於運動狀態,但是它反應到平面二維畫面上時,車輛幾乎靜止不動,根據前面的判斷邏輯,這種情況會出現停車、擁堵等誤報。避免這種誤報的方式之一是儘量將攝像頭斜對行車道,而不是剛好在車道的正前方/正後方。

除此之外,還有其他一些侷限性,比如上面提到的各種閾值的調整,也是非常考驗人的一項工作。一般視頻分析應用很難同時滿足多個場景,針對不同的需求最好做一些特定的優化。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章