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. 目标重叠
这种情况在实际应用中复杂但更为常见。这时,要考虑目标的重合与分离状况。
在实际的开发应用中,会应用多种特征和更复杂的模型来跟踪目标,但其原理是不变的,把握这种思路,也就不会无从下手了。
在行人、车辆检测时,检测新目标需要更高的阈值进行确认,而跟踪已知的目标,则利用特征的变化,跟踪阈值会放宽。这就是目标跟踪的距离比新目标检测更远些的原因吧。
补充:综合编程 , 其他综合 ,