当前位置:编程学习 > 网站相关 >>

kalmanfilter在目标跟踪中的应用

运动目标跟踪的目的是确定各运动目标的运动轨迹。

所以,要确定当前检测的目标与以往检测到的目标(受跟踪的动态目标)的关系。

1. 目标检测、分割

2. 目标特征匹配

3. 目标的特征估计与校正


运动目标的匹配特征信息一般包括:

1. 位置

2. 大小,size

3. 形状,如高宽比

4. 颜色,(已知的试验中,不太可靠)

5. 边缘特征


目标是动态的,所以,以上特征信息一般也是随着序列图像不断变化的。所以,估计、测量与校正形成一个反馈系统,利于目标跟踪。

目标跟踪的目的:

一是更好的检测或监控,如行人,车辆持续跟踪

二是对目标进行一些统计,如车辆数目统计


其实两个应用本质相同:检测是否是新目标,去除序列图像中的重复检测。

以目标的位置特征为例:

x ( t) = Ax ( t - 1)
x ( t) = (x , y , dx ,dy)T, x, y为位置坐标,dx,dy为速度
A =
1 0 1 0
0 1 0 1
0 0 1 0
0 0 0 1
由x(t-1)的位置,预估下一个位置为 !x(t)

目标观测为y(t)=(x, y)T.

状态更新为 x(t) = !x(t) + K(t)*[y(t)-H*!x(t)]


在预估的位置,设置一个区域,进行搜索匹配,若在此区域中搜索到目标,并匹配大于阈值,则此目标为持续跟踪的目标,可以去除重复检测,若为匹配特征小于阈值,则可能为新目标。


序列图像里,单个目标的状态有:

1. 目标出现

2. 目标持续存在

3. 目标消失


而多个目标的状态还存在更复杂的情况:

1. 目标重叠

这种情况在实际应用中复杂但更为常见。这时,要考虑目标的重合与分离状况。


在实际的开发应用中,会应用多种特征和更复杂的模型来跟踪目标,但其原理是不变的,把握这种思路,也就不会无从下手了。

在行人、车辆检测时,检测新目标需要更高的阈值进行确认,而跟踪已知的目标,则利用特征的变化,跟踪阈值会放宽。这就是目标跟踪的距离比新目标检测更远些的原因吧。

补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,