目标跟踪
- Urban Tracker 参考文献: Urban Tracker: Multiple object tracking in urban mixed traffic
- Intelligent Transportation 参考文献: A feature-based tracking algorithm for vehicles in intersections
代码&数据
- Urban Tracker http://www.jpjodoin.com/urbantracker/tools.html
- Intelligent Transportation https://bitbucket.org/Nicolas/trafficintelligence/wiki/Home
Urban Tracker 算法
- 算法效果
- 算法流程
粒子团抽取(blob extraction)
- 背景抽取(background subtraction):在论文中,作者使用的是ViBe算法,但由于ViBe算法申请了专利,因此,建议参考ChangeDetection上的其它算法进行背景抽取。
- 预处理:高斯5x5噪声过滤,并对分割得到的前景Mask进行形态学填充,blob面积小于 Tm 则被当成噪声过滤。
- 前景检测算法:由于在红绿灯处车辆等会突然停止或者启动,因此作者修改了ViBe算法从而处理这种间歇性运动。即对相邻的两帧,统计blob内部灰度变化大于4的点,设其数目为 NPc ,如果 NPc/area(blob)<0.1 ,则将blob视为背景并进行更新,从而消除’Ghost blob’(http://blog.csdn.net/stellar0/article/details/8777283)。
- 连通块分析:对得到前景进行连通块分析,得到多个blob的大小和位置
- 特征点:作者使用FREAK描述子计算特征点(http://blog.csdn.net/yang_xian521/article/details/7732835)
blob模型(blob model):它由blob大小,位置和特征点组成,而跟踪模型(track model)由一系列blob模型组成。
粒子团跟踪 (blob tracking)
粒子团跟踪事件:粒子团进入场景,粒子团离开场景,粒子团跟踪丢失,多个粒子团混合,粒子团由一个分成多个小粒子团。
- 粒子团匹配:计算相邻两帧中两个粒子团 Bt−1,Bt 之间的特征点的海明距离,再进行比例测试和对称性测试。
- 比例测试:得到特征点最优匹配距离和次优匹配距离,检测其比例,如果比例接近1,则放弃这个匹配。(考虑区分性,匹配独一无二才好)。
- 对称性测试:如果特征点的匹配是对称的,即A的匹配为B,B的匹配也为A。则认为A与B是好匹配,否则放弃这个匹配。
- 特征点数目要求:当两个粒子团中有多个特征点(多于4)时,则认为粒子团匹配成功。
- 重叠检测:当粒子团重叠时,可以得到重叠的关系。
- 粒子团关系:
- 1->1 粒子团唯一地匹配。(当前帧中的粒子团与上一帧中的粒子团唯一地匹配)
- 1->N 粒子团匹配多个粒子团
- N->1 多个粒子团重叠
- 0->1 没有得到匹配的粒子团(当前帧中的粒子团,没有得到匹配)
- 1->0 丢失的粒子团(上一帧的粒子团,在当前帧中没有出现)
目标跟踪 (object tracking)
- 跟踪状态:
- 跟踪模型更新:
- 1->1 保持正常状态。
- 1->0 当粒子团丢失状态持续 Nr 次时,状态将被删除。
- 0->1 如果blob模型与丢失的状态相似(有4个特征点匹配),那么丢失状态将更新的正常状态。否则,新建一个假设状态,如果在接下来3帧中没有检测到该目标,则直接删除. 反之,如果连接3帧检测到该目标,则置为正常状态。
- N->1 如果多个粒子团相互交叉,则新建一个状态群,并对状态群中的每一个目标状态单独进行更新。
- 1-N 解散状态群。
- 边界问题:如果一个跟踪到达场景的边界,则更新为离开状态。如果下一帧没有跟踪到,则删除。如果一个退出的跟踪改变方向进入场景,需要3个特征匹配从而确认这是相同的跟踪。如果相同,则更新为正常状态,否则,删除并新建。
边界同一目标检测
过分割与状态群创建
欠分割与状态群解散