[AI开发]目标跟踪之行为分析

基于视频结构化的应用中,目标在通过跟踪算法后,会获得一个惟一标识和它对应的运动轨迹,利用这两个数据咱们能够作一些后续工做:测速(交通类应用场景)、计数(交通类应用场景、安防类应用场景)以及行为检测(交通类应用场景、安防类应用场景)。我会写三篇文章依次介绍这三个主题。html

(1)目标跟踪之速度计算算法

(2)目标跟踪之计数优化

(3)目标跟踪之行为检测spa

至此,三个主题都结束了。视频

本篇文章以交通类应用场景为例,介绍车辆异常行为分析方法。车辆异常行为一般又称“车辆异常交通事件”,指车辆在行驶道路上出现的违法行为,通常包括 停车、逆行(倒车)、占用应急车道、拥堵等等。本篇文章分别介绍这四种车辆异常交通事件的分析方法。htm

注意:高速交通中,一般异常交通事件还包括行人闯入、抛洒物、烟火等,因为这些跟车辆没有直接关联,本文不涉及此类事件。blog

(停车事件)事件

 

定位目标轨迹点get

前面系列文章已经提到过,目标检测算法会输出目标的位置,一个四元组(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)不少状况下,车速测不出来(前面文章中有提到,没有参照物的道路测不出车速),那么咱们须要使用其余方式先判断单个车辆是否缓行:在连续若干帧中,车辆轨迹点直线距离小于某值,可是大于另一个值(保证车辆没有中止)。若是连续多帧中出现缓行的车辆数大于某值,那么断定整个道路进入缓行状态。

 

目标行为分析难点

前面全部的行为逻辑判断所有基于理想状态下:检测算法比较准确,矩形方框锁定目标比较稳定,不会出现丢帧、矩形框抖动严重(位置、大小跳跃厉害)。实际应用场景中,因为各类各样的因素,目标锁定不够准确,会对目标行为分析形成很是大的负面影响。

另外,上面全部判断逻辑所有基于像素单位(图像二维坐标系),这个判断依据存在必定缺陷,检测算法能检测到很远的车辆,虽然这时候车辆一直处于运动状态,可是它反应到平面二维画面上时,车辆几乎静止不动,根据前面的判断逻辑,这种状况会出现停车、拥堵等误报。避免这种误报的方式之一是尽可能将摄像头斜对行车道,而不是恰好在车道的正前方/正后方。

除此以外,还有其余一些局限性,好比上面提到的各类阈值的调整,也是很是考验人的一项工做。通常视频分析应用很难同时知足多个场景,针对不一样的需求最好作一些特定的优化。

相关文章
相关标签/搜索