Kalman滤波在运动跟踪中建模

合集下载

卡尔曼滤波轨迹预测matlab

卡尔曼滤波轨迹预测matlab

卡尔曼滤波是一种由芬兰控制理论专家卡尔曼(R.E.Kalman)于20世纪60年代提出的一种适用于线性动态系统的状态估计方法,它的原理是根据系统的数学模型通过观测数据对系统状态进行动态估计,具有对系统参数模型的误差进行校正、对系统运动的预测与跟踪的优点。

在今天的科学技术发展中,卡尔曼滤波已经广泛应用于航空航天、导航、通信、天文测量、生物医学工程等众多领域。

其中,在轨迹预测方面,卡尔曼滤波可以通过对目标的动态模型进行建模,结合观测数据,实现对目标位置的精确预测。

而在使用matlab进行卡尔曼滤波轨迹预测时,通常需要按照以下步骤进行操作:1. 建立系统模型在matlab中,首先需要根据目标运动的特点建立系统的动态模型。

这个过程通常会涉及到目标的运动方程、动态参数、观测误差等内容。

在建立好系统模型后,可以将系统模型表示为状态方程和观测方程。

2. 初始化滤波器参数在进行卡尔曼滤波之前,需要对滤波器的初始状态进行初始化,这包括系统状态向量的初始估计、系统噪声和观测噪声的协方差矩阵等参数的初始化。

3. 观测数据处理在实际应用中,通常会通过传感器或者其他设备获取目标的观测数据,这些数据需要进行预处理,包括去噪、滤波等操作,以提高滤波器的效果。

4. 卡尔曼滤波预测在完成上述准备工作后,就可以利用matlab中的卡尔曼滤波函数进行轨迹预测了。

这个过程通常包括对观测数据和系统模型进行融合,实现对目标轨迹的准确预测。

5. 评估与调整需要对滤波结果进行评估与调整。

这个过程包括对滤波器参数的调整优化以及与实际观测数据进行对比等步骤,以保证滤波器的准确性与稳定性。

总结来看,matlab在卡尔曼滤波轨迹预测中具有良好的适用性和灵活性,可以帮助用户快速、准确地实现对目标轨迹的预测与跟踪。

但在实际应用中,用户需要根据具体的系统模型和观测数据特点来合理选择滤波参数,以最大程度地发挥卡尔曼滤波的优势。

在进行卡尔曼滤波轨迹预测时,用户除了需要掌握matlab的基本操作以外,更需要对卡尔曼滤波理论有着深刻的理解与应用能力,这样才能更好地利用卡尔曼滤波来实现目标轨迹的准确预测与跟踪,为实际应用提供更好的支持与保障。

Kalman滤波的人体运动位置跟踪算法

Kalman滤波的人体运动位置跟踪算法

第24卷 第3期华侨大学学报(自然科学版)V o l.24 N o.3 2003年7月Jou rnal of H uaqiao U n iversity(N atu ral Science)Ju l.2003  文章编号 100025013(2003)0320254203Ka l man滤波的人体运动位置跟踪算法黄 建 新(华侨大学数学系,福建泉州362011)摘要 基于视频的人体运动跟踪是当前计算机视觉研究的热点,具有广泛的应用领域.文中提出一种基于Kal m an滤波的跟踪算法.合理使用自适应背景颜色模型,能够准确地对人体运动位置进行跟踪.关键词 人体运动跟踪,Kal m an滤波,自适应背景颜色模型中图分类号 T P391.41∶TN713文献标识码 A跟踪视频中的运动人体对象是计算机视觉研究的活跃领域之一,它可以广泛地应用在计算机动画、互动游戏、实时监控和虚拟现实等领域.目前,人们提出的一些算法如光流法〔1〕,只能对背景光线亮度不变的情况下的人体位置进行跟踪.本文提出的算法,可以有效地解决在背景亮度发生变化的条件下人体运动位置跟踪的问题.它利用人体运动约束方程使用Kal m an 滤波器〔2~3〕和自适应背景颜色模型〔4〕.1 自适应背景颜色模型我们对图象中属于背景的象素颜色模型采用高斯模型,即[Λr,Λg,Λb,Ρ2r,Ρ2g,Ρ2b],其中Λr,Λg和Λb分别是象素R GB的均值,Ρ2r,Ρ2g,Ρ2b是它们的方差.在跟踪开始时,我们录入一些不含任何运动人体的纯背景图象,来计算这些模型参数的初始值.然后,使用简单的递归方法计算下一帧中每一个象素的模型参数值.更新算法为Λr(k+1)=Αr+(1-Α)Λr(k),(1)Ρ2r(k+1)=Α(r-Λr(k))2+(1-Α)Ρ2r(k).(2)而Λg,Λb,Ρ2g和Ρ2b的更新算法跟上述一样.在递归计算出某一帧的背景模型之后,即作前景提取算法.若 r-Λr >Ρr,则该象素属于前景.同样地,如果g和b值满足类似的上述条件,则该象素也视为前景.2 使用Ka l man滤波进行预测我们使用矩形框表示被跟踪的运动人体对象区域.描述矩形框的参数使用中心点坐标 收稿日期 2002211217 作者简介 黄建新(19692),男,讲师,E2m ail:jc huang@ 基金项目 华侨大学科研基金资助项目(02H ZR13)[x Cen ter ,y Cen ter ]、宽度W idth 和高度H eigh t .在跟踪过程中,我们将它看作一个线性动态系统.为了描述中心点的运动情况,这里使用中心点在x 和y 方向上的位移偏差∃x 和∃y .所以,状态向量定义为S =[∃x ,∃y ,W idth ,H eigh t ].Kal m an 滤波的状态方程定义为S (k +1)=F S (k )+Γ(k ).(3)观测方程为Z (k )=H S (k )+W (k ),(4)F =10000100001001, H =100001000010001.状态预测方程为S b (k )=F S a (k -1)(5)上述方程中下标a 和b 分别表示“修改以前”和“修改以后”,它们在下面方程的含义也一样.协方差预测方程为P b (k )=F (k 1)P a (k -1)F (k -1)T+Q (k ).(6)Kal m an 增益方程为K (k )=P b (k )HT(k )(H (k )P b (k )H T (k )+R (k ))-1.(7)状态修改方程为S a(k )=S b (k )+K (k )[Z (k )-H (k )S b (k )].(8)协方差修改方程为P a(k )=P b (k )-K (k )H (k )P b (k ).(9)3 跟踪实现算法根据上述思想,跟踪算法如下有6个步骤.(1)步骤1.首先设置方差Q ,R 和协方差P 的初始值.(2)步骤2.根据Kal m an 滤波,预测第k +1帧的状态向量.根据预测的(∃x ,∃y )和已知的第k 帧中心点坐标值,求出第k +1帧矩形框的中心点预测坐标值.(3)步骤3.根据方程(1),(2),计算第k +1帧的背景颜色模型.(4)步骤4.对已预测的第k +1帧中矩形框的参数值[x Cen ter ,y Cen ter ,W idth ,H eigh t ]进修正,即对人体位置进行精确地定位,求出它的观察值Z (k +1).修正方法以矩形框顶边为例.根据上述提取前景的方法,计算顶边中属于前景的象素数目.如果它小于(或大于)给定的阈值,则顶边向下(或向上)移动一个象素的位置,直至属于前景的象素数目大于(或小于)给定的阈值.其他边也进行类似地处理.经过这种修正方法获得的矩形框所覆盖的范围就是要跟踪的人体位置.(5)步骤5.将第k +1帧的观察值Z (k +1)代入方程(6),(7),(8)和(9)中.(6)步骤6.如果继续跟踪下一帧,则返回步骤2.4 实验结果我们使用一台普通的摄像机在实验室里拍摄一段视频,应用上述的算法进行跟踪.跟踪结552第3期 黄建新:Kal m an 滤波的人体运动位置跟踪算法 652 华侨大学学报(自然科学版) 2003年果如图1所示.(a)第4帧的跟踪结果(b)第30帧的跟踪结果图1 图像系列中人体运动位置跟踪结果5 结束语实验证明,本文提出的人体运动跟踪算法具有较准确的跟踪结果和速度,能够被应用在复杂背景下人体运动位置的跟踪.我们下一步工作就是利用跟踪结果进行人体运动行为分析.参 考 文 献1 T ekalp A M著.数字视频处理[M].崔之祜等译.重庆:电子工业出版社,1990.1~502 W ren C R,Jan i A A,D arrel T,et al.P rinder:R eal2ti m e track ing of the hum an body[J].IEEE PAM I, 1997,19(7):780~7853 罗忠祥,庄越挺,潘云鹤等.基于双摄像机的视频特征跟踪算法研究[J].计算机辅助设计与图形学学报, 2002,14(7):646~6494 A k ita K.I m age sequence analysis of real w o rld hum an mo ti on[J].Pattern R ecogn iti on,1984,17(1):73~83A Track i ng A lgor ithm Ba sed on Ka l man F iltra ton forTrack i ng K i nema tic Position of Hu man BodyH uang J ianx in(D ep t.of M ath.,H uaqiao U niv.,362011,Q uanzhou,Ch ina)Abstract T rack ing the mo ti on of hum an body based on video is one of ho t spo ts in compu ter visi on re2 search.It has a w ide app licati on.T he au tho r p resen ts here a track ing algo rithm based on Kal m an filtrati on. By u sing a model of adap tive background co lo r,the k inem atic po siti on of hum an body can be exactly tracked. Keywords track ing the mo ti on of hum an body,Kal m an filtrati on,model of adap tive background co lo r。

基于扩展卡尔曼滤波的目标跟踪定位算法及matlab程序实现

基于扩展卡尔曼滤波的目标跟踪定位算法及matlab程序实现

基于扩展卡尔曼滤波的目标跟踪定位算法及matlab程序实现扩展卡尔曼滤波(Extended Kalman Filter,EKF)是一种用于非线性系统状态估计的算法。

在目标跟踪定位中,它可以用于估计目标的运动轨迹。

下面是一个简单的基于扩展卡尔曼滤波的目标跟踪定位算法的描述,以及一个简化的MATLAB程序实现。

算法描述1. 初始化:设置初始状态估计值(例如位置和速度)以及初始的估计误差协方差矩阵。

2. 预测:根据上一时刻的状态估计值和模型预测下一时刻的状态。

3. 更新:结合观测数据和预测值,使用扩展卡尔曼滤波算法更新状态估计值和估计误差协方差矩阵。

4. 迭代:重复步骤2和3,直到达到终止条件。

MATLAB程序实现这是一个简化的示例,仅用于说明扩展卡尔曼滤波在目标跟踪定位中的应用。

实际应用中,您需要根据具体问题和数据调整模型和参数。

```matlab% 参数设置dt = ; % 时间间隔Q = ; % 过程噪声协方差R = 1; % 观测噪声协方差x_est = [0; 0]; % 初始位置估计P_est = eye(2); % 初始估计误差协方差矩阵% 模拟数据:观测位置和真实轨迹N = 100; % 模拟数据点数x_true = [0; 0]; % 真实轨迹初始位置for k = 1:N% 真实轨迹模型(这里使用简化的匀速模型)x_true(1) = x_true(1) + x_true(2)dt;x_true(2) = x_true(2);% 观测模型(这里假设有噪声)z = x_true + sqrt(R)randn; % 观测位置% 扩展卡尔曼滤波更新步骤[x_est, P_est] = ekf_update(x_est, P_est, z, dt, Q, R);end% 扩展卡尔曼滤波更新函数(这里简化为2D一维情况)function [x_est, P_est] = ekf_update(x_est, P_est, z, dt, Q, R)% 预测步骤:无观测时使用上一时刻的状态和模型预测下一时刻状态F = [1 dt; 0 1]; % 状态转移矩阵(这里使用简化的匀速模型)x_pred = Fx_est + [0; 0]; % 预测位置P_pred = FP_estF' + Q; % 预测误差协方差矩阵% 更新步骤:结合观测数据和预测值进行状态更新和误差协方差矩阵更新K = P_predinv(HP_pred + R); % 卡尔曼增益矩阵x_est = x_pred + K(z - Hx_pred); % 更新位置估计值P_est = (eye(2) - KH)P_pred; % 更新误差协方差矩阵end```这个示例代码使用扩展卡尔曼滤波对一个简化的匀速运动模型进行估计。

基于Kalman滤波原理的运动目标跟踪_王宇

基于Kalman滤波原理的运动目标跟踪_王宇

信息技术Information Technology2008年第10期 中图分类号:TP391 文献标识码:A 文章编号:1009-2552(2008)10-0048-03基于Kalman滤波原理的运动目标跟踪王 宇1,程耀瑜2(1.中北大学信息与通信工程学院,太原030051;2.中北大学仪器科学与动态测试教育部重点实验室,太原030051)摘 要:应用Kalman滤波原理,对运动目标进行跟踪,缩小目标的搜索范围,实现快速实时跟踪,使跟踪更为准确。

理论分析和实验结果表明,该算法与常规的模板匹配法、直方图模板匹配法等算法相比,有效地提高了目标跟踪的速度及跟踪的准确性。

该算法对运动目标进行跟踪,运行速度可提高三倍。

关键词:运动目标跟踪;模板匹配;Kalman滤波原理Moving target tracking based on Kalman filtering principleWANG Yu1,CHENG Yao-yu2(1.School of Information and Comm unication Engineering,North University o f China,Taiyuan030051,C hina;2.Key Laboratory of Instrum ental Science and Dynam ic Measurement,The Ministryof Education,North University o f China,Taiyuan030051,C hina)Abstract:Applying Kalman filtering principle to tracking moving target can reduce the search range of the target,implement fast rea-l time tracking.The theoretical analysis and the result of the experiment indicate that this algorithm can effec tively enhance the speed of target tracking and veracity c ompared with other routine te mplate matching algorithm and Gray matching algorithm.Applying this algorithm to track moving target the speed of target tracking has quadrupled.Key w ords:tracking of moving target;template matching;Kalman filtering principle0 引言运动目标跟踪的研究对象是视频序列,或者说是图像序列,是指在整个视频序列中监控运动目标的时空变化,如目标的出现与消失,目标的位置、尺寸和形状等。

卡尔曼滤波实现目标跟踪

卡尔曼滤波实现目标跟踪

卡尔曼滤波实现目标跟踪1.系统模型x_k=A_k*x_{k-1}+B_k*u_k+w_k其中,x_k是目标的状态向量,A_k是系统状态转移矩阵,表示目标从k-1时刻到k时刻状态的变化;B_k是控制输入矩阵,表示外部输入对目标状态的影响;u_k是控制输入向量,表示外部输入的值;w_k是过程噪声,表示系统模型的误差。

2.观测模型观测模型描述了如何根据目标状态得到观测值。

观测模型可以用下面的观测方程表示:z_k=H_k*x_k+v_k其中,z_k是观测值,H_k是观测矩阵,表示目标状态到观测值的映射关系;v_k是观测噪声,表示观测数据的误差。

3.初始化在开始跟踪之前,需要对目标的状态进行初始化。

可以根据已有的观测数据和模型来初始化状态向量和协方差矩阵。

4.预测步骤在预测步骤中,根据系统模型和上一时刻的状态估计,可以预测目标的下一时刻状态。

预测的状态估计由下面的方程给出:x_k^-=A_k*x_{k-1}+B_k*u_k其中,x_k^-是预测的状态估计值。

同时,还需要预测状态估计值的协方差矩阵,可以使用下面的方程计算:P_k^-=A_k*P_{k-1}*A_k^T+Q_k其中,P_k^-是预测的协方差矩阵,Q_k是过程噪声的协方差矩阵。

5.更新步骤在更新步骤中,根据观测数据来修正预测的状态估计。

首先,计算创新(innovation)或者观测残差:y_k=z_k-H_k*x_k^-其中,y_k是观测残差。

然后,计算创新的协方差矩阵:S_k=H_k*P_k^-*H_k^T+R_k其中,S_k是创新的协方差矩阵,R_k是观测噪声的协方差矩阵。

接下来,计算卡尔曼增益:K_k=P_k^-*H_k^T*S_k^-1最后,更新估计的目标状态和协方差矩阵:x_k=x_k^-+K_k*y_kP_k=(I-K_k*H_k)*P_k^-其中,I是单位矩阵。

6.重复预测和更新步骤重复进行预测和更新步骤,可以得到目标的状态估计序列和协方差矩阵序列。

卡尔曼滤波实现目标跟踪

卡尔曼滤波实现目标跟踪

卡尔曼滤波实现目标跟踪卡尔曼滤波(Kalman Filtering)是一种应用于估计系统状态的数学算法,通过将历史测量值与系统模型进行融合,可以准确地预测系统的当前状态。

在目标跟踪领域,卡尔曼滤波被广泛用于在动态环境中估计目标的位置和速度。

在目标跟踪任务中,预测步骤通常根据目标物体的运动模型进行。

其中最常用的模型是线性模型,假设目标物体的运动是匀速直线运动。

在这种情况下,预测步骤可以通过简单地将当前位置和速度与时间增量相乘来计算下一个状态。

如果目标物体的运动模型是非线性的,可以使用扩展卡尔曼滤波(Extended Kalman Filtering)进行预测。

预测步骤的输出是卡尔曼滤波的预测状态和预测状态协方差矩阵。

预测状态表示目标物体在没有更新的情况下的最佳估计位置和速度。

预测状态协方差矩阵表示估计的不确定性。

更新步骤的输入是测量值和测量误差协方差矩阵。

测量值表示由传感器提供的目标位置信息,测量误差协方差矩阵表示测量值的不确定性。

在更新步骤中,首先计算卡尔曼增益。

卡尔曼增益是一个权重,用于在预测状态和测量值之间进行加权求和。

卡尔曼增益的计算根据预测状态协方差矩阵和测量误差协方差矩阵进行。

然后,使用卡尔曼增益将预测状态进行修正,得到更新状态。

更新状态表示目标物体在考虑了测量值的情况下的最佳估计位置和速度。

最后,通过计算更新状态协方差矩阵,更新步骤反映了估计的不确定性。

卡尔曼滤波在目标跟踪中的应用是非常广泛的。

它可以用于处理各种传感器的测量数据,如雷达、相机、激光扫描仪等。

卡尔曼滤波可以处理传感器测量数据中的噪声和不确定性,并生成最佳估计的目标位置和速度。

通过将卡尔曼滤波与运动模型结合使用,可以实现对目标物体的准确跟踪。

总结起来,卡尔曼滤波是一种基于数学算法的目标跟踪方法,通过融合历史测量值和系统模型,可以预测目标的状态,并修正预测结果。

卡尔曼滤波在目标跟踪任务中有广泛的应用,可以处理多种不确定性,并提供准确的目标位置和速度估计。

利用KALMAN滤波算法对运动目标进行定位与跟踪

利用KALMAN滤波算法对运动目标进行定位与跟踪

大。本文在 WL S基础上对 系统再进行 Ka l ma n滤波 ,经过仿真 ,结果表 明,采用 WL S与 Ka l ma n滤波结合的新方法,系 统运行 收敛速度快 ,跟踪误差有 了明显下降。 关键词 :波达方 向( DO A) ;来 波到达 时间( T 0A ) ;卡 尔曼滤波 ;加权最小二乘算法
Ke y w o r d s : Di r e c t i o n o f Ar r i v a l f D oA ) ; T i me o f Ar r i v a l t T o A ) ; K a l ma n F i l t e r ;We i g h t L e a s t S q u a r e Al g o r i t h m
利用 K AL MA N 滤 波算 法对 运 动 目标进 行 定位 与 跟 踪
丁 卫安
空 军 空 降 兵 学 院 ,广 西 桂 林 5 4 1 0 0 3

要 :通过 目标 D OA 与 T O A 的测 量,利用 WL S算法可 以实现运动 目标 的定位 与跟 踪,但是该 方法的跟踪误差较
Ka l ma n il f t e r c a r l q u i c k e n he t s y s t e m r u n n i n g a n d i mp r o v e he t a c c ra u c y o f t r a c k i n g r e s u l t .
Us i n g Ka l ma n F i l t e r Al g o r i t h m t O Lo c a t e a n d Tr a c k t h e Mo v i n g Ta r g e t
We i a n Di n g

卡尔曼滤波处理轨迹

卡尔曼滤波处理轨迹

卡尔曼滤波处理轨迹
卡尔曼滤波(Kalman filter)是一种最优化自回归数据处理算法,它广泛应用于各种领域,包括轨迹跟踪、控制系统、传感器数据融合、计算机图像处理等。

在处理车辆轨迹数据时,卡尔曼滤波可以平滑处理轨迹数据,减少数据噪声的影响。

在轨迹跟踪中,卡尔曼滤波将目标的运动模型表示为一组线性方程,并利用卡尔曼滤波对目标位置进行估计和预测。

由于目标的运动不确定性和测量噪声的存在,目标的真实状态很难被准确地测量。

因此,需要利用卡尔曼滤波来对目标状态进行估计和预测。

卡尔曼滤波的工作原理可以简化为两个阶段:预测阶段和更新阶段。

在预测阶段,卡尔曼滤波会根据上一时刻的状态估计,预测当前时刻的状态。

在更新阶段,卡尔曼滤波会根据当前的观测数据,对预测状态进行修正,得到最优的状态估计。

在处理车辆轨迹数据时,轨迹点实际上是对车辆实际状态的观测信息。

由于误差的存在,观测数据可能会与车辆的实际状态存在一定的偏差。

卡尔曼滤波可以结合以前的状态估计(即预测的当前轨迹点的位置)和当前的观测数据(记录的当前位置轨迹点),来进行当前状态的最优估计。

这样,卡尔曼滤波可以对轨迹数据进行平滑处理,减少数据噪声的影响,从而得到更加准确和可靠的轨迹数据。

总之,卡尔曼滤波是一种有效的轨迹处理方法,可以平滑处理轨迹数据,减少数据噪声的影响,提高轨迹的准确性和可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、kalman滤波简介 (1)二、kalman滤波基本原理 (1)三、Kalman滤波在运动跟踪中的应用的建模 (3)四、仿真结果 (6)1、kalman的滤波效果 (6)2、简单轨迹的kalman的预测效果 (7)3、椭圆运动轨迹的预测 (9)4、往返运动归轨迹的预测 (10)五、参数的选取 (11)附录: (13)Matlab程序: (13)C语言程序: (13)Kalman滤波在运动跟踪中的应用一、kalman滤波简介最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。

从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。

为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。

卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。

它适合于实时处理和计算机运算。

Kalman滤波是卡尔曼(R.E.kalman)于1960年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。

他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的—个线性系统的输出,用状方程来描述这种输入—输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。

Kalman滤波是一套由计算机实现的实时递推算法.它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。

所以,Kalman滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。

卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法),对于解决很大部分的问题,他是最优,效率最高甚至是最有用的二、kalman滤波基本原理Kalman滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。

实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。

其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。

设一系统所建立的模型为:状态方程:个离散控制过程的系统,X(k)=A X(k-1)+B U(k)+W(k)观测方程:系统的测量值Z(k)=H X(k)+V(k)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。

A 和B是系统参数,对于多模型系统,他们为矩阵。

Z(k)是k时刻的测量值,H 是测量系统的参数,对于多测量系统,H为矩阵。

W(k)和V(k)分别表示过程和测量的噪声。

他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。

下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。

首先我们要利用系统的过程模型,来预测下一状态的系统。

假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=A X(k-1|k-1)+B U(k) (1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。

我们用P表示covariance:P(k|k-1)=A P(k-1|k-1) A’+Q (2)式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance。

式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。

结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):X(k|k)= X(k|k-1)+Kg(k)(Z(k)-H X(k|k-1)) (3)其中Kg为卡尔曼增益(Kalman Gain):Kg(k)= P(k|k-1) H’/(H P(k|k-1) H’ + R) (4)到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。

但是为了要使卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:P(k|k)=(I-Kg(k)H)P(k|k-1) (5)其中I为1的矩阵,对于单模型单测量,I=1。

当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。

这样,算法就可以自回归的运算下去。

总结以上内容克制,Kalman滤波器实现的主要五个方程为:(1)状态向量预报方程1~'~-=k k X A X (2)状态向量协方差预报方程11'--+=k T k k k k Q A P A P(3)Kalman 加权矩阵(或增益矩阵)1)'('-+=k T k k k T k k k R H P H H P K(4)状态向量更新方程)'~('~~k k k k k k X H Z K X X -+=(5)状态向量协方差更新方程')(k k k k P H K I P -=Kalman 滤波预估计就是用前面两个时间更新方程获得先验估计然后通过后面三个状态更新方程对先验估计矫正获得最优估计。

根据这5个公式,可以很容易的实现计算机的程序。

卡尔曼滤波的算法流程为:1. 预估计X(k)^= F(k,k-1)·X(k-1)2. 计算预估计协方差矩阵C(k)^=F(k,k-1)×C(k)×F(k,k-1)'+T(k,k-1)×Q(k)×T(k,k-1)'Q(k) = U(k)×U(k)'3. 计算卡尔曼增益矩阵K(k) = C(k)^×H(k)'×[H(k)×C(k)^×H(k)'+R(k)]^(-1)R(k) = N(k)×N(k)'4. 更新估计X(k)~=X(k)^+K(k)×[Y(k)-H(k)×X(k)^]5. 计算更新后估计协防差矩阵C(k)~ = [I-K(k)×H(k)]×C(k)^×[I-K(k)×H(k)]'+K(k)×R(k)×K(k)'6. X(k+1) = X(k)~C(k+1) = C(k)重复以上六个步骤。

三、 Kalman 滤波在运动跟踪中的应用的建模卡尔曼滤波器是一个对动态系统的状态序列进行线性最小误差估计的算法,一般用于线性系统。

一般在运动跟踪领域中摄像机相对于目标物体运动有时属于非线性系统,但由于在一般运动跟踪问题中图像采集时间间隔较短,可近似将单位时间内目标在图像中的运动看作匀速运动,采用卡尔曼滤波器可以实现对目标运动参数的估计。

对于复杂背景下运动目标识别与跟踪问题,要实现实时控制,对算法的实时性和准确性都有较高的要求。

如果目标识别算法都是基于像素的全局搜索,则存在显著缺点:1)全局搜索计算量大、耗时,实时性无法满足;2)全局搜索抗干扰能力差,容易受到背景中相似特征物体的干扰。

基于卡尔曼滤波器预测功能的运动目标快速跟踪算法可以通过预测目标物体在下一帧中的位置,将全局搜索问题转化为局部搜索,缩小搜索范围,提高算法的实时性。

在跟踪运动目标的过程中,由于目标物体单位时间内在图像中的运动可以看作匀速运动,所以可以采用目标某一时刻在图像中的位置和速度来表示目标的运动状态。

为了简化算法的计算复杂度,可以设计2个卡尔曼滤波器分别描述目标在X 轴和Y 轴方向上位置和速度的变化。

下面仅讨论X 轴方向上卡尔曼滤波器的实现过程,Y 轴方向上同理。

目标物体运动方程为:⎩⎨⎧+=+=++T a v v T v x x k k k k k k 11 式中k x ,k v ,k a 分别为目标在t=k 时刻的X 轴方向的位置、速度和加速度;T 为k 帧图像和k+1帧图像之间的时间间隔,T a k 可以当作白噪声处理。

写成矩阵形式如下:系统状态方程为:⎪⎪⎭⎫ ⎝⎛+⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛++T a v x T v x k k k k k 010111卡尔曼滤波器系统状态矢量为:T k k k v x X ][+= 状态转移矩阵为:⎪⎪⎭⎫ ⎝⎛=101)(T k H 系统动态噪声矢量为:⎪⎪⎭⎫ ⎝⎛=T a w k k 0系统观测方程为:()⎪⎪⎭⎫ ⎝⎛=+k k k v x x 011卡尔曼滤波器系统观测矢量为:k k x Z =观测系数矩阵为:[]01=k H由观测方程可知,观测噪声为0,所以k R =0。

建立了上述系统状态方程和观测方程之后,就可以利用卡尔曼滤波方程式通过递推方法,不断预测目标在下一帧中的位置。

在t=k 时刻,对第k 帧图像利用目标识别算法识别出的目标位置记为k x ,当目标首次出现时,根据此时目标的观测位置初始化滤波器0'~X =[0x ,0]。

系统初始状态向量协方差矩阵可以在对角线上取较大值,取值根据实际测量情况来获得,但在滤波启动一段时间后影响就不大了。

取:⎪⎪⎭⎫ ⎝⎛=1000100P 。

系统动态噪声协方差为0Q ,可取为:⎪⎪⎭⎫ ⎝⎛=1000100Q 。

通过公式(1),计算得到目标在下一帧图像中的预测位置1'~X 。

在该位置附近,对下一帧图像进行局部搜索,识别出的目标质心位置即为1Z ,通过公式(2)至公式(5)完成对状态向量和状态向量协方差矩阵的更新,为目标位置的下一步预测做好准备,得出新的预测位置2'~X ,采用图像处理算法,在该位置进行局部搜索,从而得出新的目标质心位置2Z ,一直迭代计算下去,从而实现对目标物体的跟踪。

相关文档
最新文档