当前位置:文档之家› 基于卡尔曼滤波的目标跟踪研究

基于卡尔曼滤波的目标跟踪研究

基于卡尔曼滤波的目标跟踪研究
基于卡尔曼滤波的目标跟踪研究

毕业设计

设计题目:基于卡尔曼滤波的目标跟踪研究

姓名XXX

院系信息与电气工程学院

专业电气工程及其自动化

年级XXXX级

学号XXXXXXXXX

指导教师周XX

2012年4月24 日

独创声明

本人郑重声明:所呈交的毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

此声明的法律后果由本人承担。

作者签名:

二〇一年月日

毕业论文(设计)使用授权声明

本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的规定。

本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意学校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它复制手段保存论文(设计);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布论文(设计)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)

论文作者(签名):

二〇一年月日

目录

引言

1.绪论

1.1研究背景

1.1.1卡尔曼滤波提出背景

1.1.2 应用范围

1.2本文研究的主要内容

2 2.初步认识卡尔曼滤波 2

2.1关于卡尔曼

2.2滤波及滤波器问题浅谈 2

2.3 卡尔曼滤波起源及发展

3.估计原理和卡尔曼滤波 2

4.卡尔曼滤波的实现

4.1卡尔曼滤波的基本假设 5

4.2卡尔曼滤波的特点 5

4.3卡尔曼滤波基本公式 6

4.4卡尔曼滤波参数的估计和调整

5.卡尔曼滤波的相关知识

5.1 8

5.2 8

5.3 9

6.卡尔曼滤波器的设计

7.目标跟踪模型的建立

8.结合数学模型进行matlb编程

9.目标跟踪仿真

10.结论11

11.参考文献11

12.致谢12

13

15

16

基于卡尔曼滤波的目标跟踪研究

杨倩倩

(信息与电气工程学院电气工程及其自动化 2008级2班 083515586) 摘要:卡尔曼滤波是Kalman 在线性最小方差估计的基础上,提出的在数学结构上比较简单的而且是最优线性递推滤波方法,具有计算量小、存储量低,实时性高的优点。在很多工程应用中都可以找到它的身影,包括航空器轨道修正、机器人系统控制、雷达系统与导弹追踪等。利用卡尔曼滤波预测物体移动的速度、角度,确定物体下一时刻的位置,控制摄像机跟踪物体。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要话题,具有重要的工程实践意义。此论文主要是通过介绍卡尔曼滤波的原理,结合实际建立卡尔曼滤波数学模型,设计关于目标追踪的卡尔曼滤波器。

关键词:卡尔曼滤波;目标跟踪;最优

Research on Object Tracking Based on Kalman Filter

Yang Qianqian

(College of Information and Electrical Engineering, Electrical Engineering and Automation, Class2 Grade2008,083515586) Abstract: Kalman Filter is easy and optimal Linear recursive filtering method In the mathematical structure,which is raised by Kalman based on linear minimum variance estimation.It has the advantages of small amount of calculation ,low storage capacity and high real-time.It can be found in many engineering application , including aircraft rail correction, robot control system, radar and missile tracking system, https://www.doczj.com/doc/dc12415231.html,ing Kalman filter to predict the object moving speed,angle,identification of objects in the next time location,controlling the camera tracking object.At the same time,Kalman filter is an important topic of control theory and control engineering with important practical significance for engineering.This paper mainly introduces the principle of Kalman filter,combined with reality to establish Kalman filter mathematical model to design object tracking about the kalman filter.

Key Words: Kalman Filter ; Object Tracking ; Optimal;

引言

本文首先介绍了卡尔曼滤波的基本原理,分析现有的跟踪算法,重点讨论卡尔曼滤波算法,行驶中的汽车所处的道路环境是相当复杂的,而安装车载雷达的汽车本身也是不时的处于机动状态之中,因此车载雷达所探测的目标也是在不停的变化当中,邻近车道上的车辆,车道间的护拦,路旁的树木和各种标识牌以及空中和远处的高大建筑等物体会产生虚警问题。结合路面目标跟踪的实际,卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻的估计值和现时刻的观测值来更新对状态变量的估计,求出现在时刻的估计值。进而建立数学模型并进行matlab编程仿真最后的出结论,具有一定的实践意义。

1 绪论

1.1 研究背景

1.1.1 卡尔曼滤波提出背景

关于最优估计问题,在20世纪40年代初,维纳提出最优线性滤波,称为维纳滤波。这种滤波是在信号和干扰都表示为有理谱密度的情况下,找出最优滤波器,使得实际输出与希望输出之间的均方误差最小。维纳滤波问题的关键是推导出维纳-霍夫积分方程,解这一积分方程可得最优滤波器的脉冲过渡函数,从脉冲过渡函数可得滤波器的传递函数。通常解维纳-霍夫积分方程是很困难的,即使对少数情况能得到解析解,但在工程上往往难以实现。特别对于非平稳过程,维纳滤波问题变得更为复杂。Wiener 滤波要求信号是平稳随机过程,要求存贮全部历史数据,且滤波器是非递推的,计算量和存贮量大,不便于实时应用,基于以上缺点,改进滤波器设计就有了更进一步的要求。

1960年,卡尔曼提出了在数学结构上比较简单的最优线性滤波方法,实质上这是一种数据处理方法。维纳滤波属于整段滤波,即把整个一段时间内所获得的测量数据存储起来,然后同时处理全部数据,估计出系统状态。卡尔曼滤波是递推滤波,由递推方程随时间给出新的状态估计。因此对计算机来说,卡尔曼滤波的计算量和存储量大为减少,从而比较容易满足实时计算的要求。因而卡尔曼滤波在工程实践中迅速得到广泛应用。

1.1.2 应用范围

卡尔曼滤波器最初是专为飞行器导航而研发的,目前已成功应用在许多领域中。卡尔曼滤波器主要用来预估那些只能被系统本身间接或不精确观测的系统状态。许多工程系统和嵌入式系统都需要卡尔曼滤波。

比如,在雷达中,人们感兴趣的是跟踪目标,但目标的位置,速度,加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计。

卡尔曼滤波器是一个最优化自回归数据处理算法(optimal recursive data processing algorithm),它的广泛应用已经超过 30 年,包括航空器轨道修正、机器人系统控制、雷达系统与导弹追踪等。近年来更被应用于组合导航与动态定位,传感器数据融合、微观经济学等应用研究领域。特别是在图像处理领域如头脸识别、图像分割、图像边缘检测等当前热门研究领域占有重要地位。

基本卡尔曼滤波(KF)器限定在线性的条件下,在大多数的非线性情形下,我们使用扩展的卡尔曼1滤波(EKF)器来对系统状态进行估计。随着卡尔曼滤波理论的发展,一些实用卡尔曼滤波技术被提出来,如自适应滤波,次优滤波以及滤波发散抑制技术等逐渐得到广泛应用。其它的滤波理论也迅速发展,如线性离散系统的分解滤波(信息平方根滤波,序列平方根滤波,UD 分解滤波),鲁棒滤波(H∞ 波)。

卡尔曼滤波作为一种数值估计优化方法,与应用领域的背景结合性很强。因此在应用卡尔曼滤波解决实际问题时,重要的不仅仅是算法的实现与优化问题,更重要的是利用获取的领域知识对被认识系统进行形式化描述,建立起精确的数学模型,再从这个模型出发,进行滤波器的设计与实现工作。

由于其具有实时递推、存储量小和简单易行的特点,在工程应用中受到了重视,广泛应用于信号处理、控制、通信、航天、制导、目标跟踪、石油勘探、故障诊断、卫星测控、GPS定位、检测与估计、多传感器信息融合、机器人及生物医学等领域。

卡尔曼滤波器应用领域:

·自动驾驶仪

·动态定位系统

·经济学,特别是宏观经济学,时间序列模型,以及计量经济学

·惯性引导系统

·雷达跟踪器

·卫星导航系统

1.2 本文研究的主要内容

此论文主要是通过详细介绍卡尔曼滤波的发展背景和应用原理,并介绍各种最优估计原理和不同的滤波器,着重分析卡尔曼滤波的优点和和在工程实践中的优良特性,结合实际建立卡尔曼滤波数学模型,对数学模型进行分析计算,结合数学模型进行matlb 编程,分析改进程序并进行仿真应用,设计关于目标追踪的卡尔曼滤波器。

2 初步认识卡尔曼滤波

2.1 关于卡尔曼

鲁道夫·卡尔曼(Rudolf Emil Kalman),匈牙利裔美国数学家,1930年出生于匈牙利首都布达佩斯。1953年于麻省理工学院获得电机工程学士,翌年硕士学位。1957年于哥伦比亚大学获得博士学位。1964年至1971年任职斯坦福大学。1971年至1992年任佛罗里达大学数学系统理论中心(Center for Mathematical System Theory)主任。1972起任瑞士苏黎世联邦理工学院数学系统理论中心主任直至退休。现居住于苏黎世和佛罗里达。2009年获美国国家科学奖章。

2.2 滤波及滤波器问题浅谈

估计器或滤波器这一术语通常用来称呼一个系统,设计这样的系统是为了从含有噪声的数据中提取人们感兴趣的,接近规定质量的信息。由于这样一个宽目标,估计理论应用于诸如通信、雷达、声纳、导航、地震学、生物医学工程、金融工程等众多不同的领域。例如,考虑一个数字通信系统,其基本形式由发射机、信道和接收机连接组成。发射机的作用是把数字源(例如计算机)产生的0、1符号序列组成的消息信号变换成为适合于信道上传送的波形。而由于符号间干扰和噪声的存在,信道输出端收到的信号是含有噪声的或失真的发送信号。接收机的作用是,操作接收信号并把原消息信号的一个可靠估值传递给系统输出端的某个用户。

最初滤波器是指某种具有选频特性的电子网络,一般由线圈、电容器和电阻器等元件组成。滤波器将使它所容许通过的频率范围(即通带)内的电信号产生较小的衰减,而使它所阻止通过的频率范围(即阻带)内的电信号产生较大衰减。划分通带和阻带的频率,称为滤波器的截止频率。

按容器通过的频率范围,滤波器可分为低通,高通,带阻和带通滤波器等。

具有选频特性的串联或并联谐振回路,是一种常用的滤波器。收音机或其他差式接

收机中的中频放大器,也是一中滤波器。也是一种滤波器。各级中频放大器中回路靠放大器和变压器来耦合,形成一定的通带和阻带。信号在通过中放级时,通带内的成分将被放大,而阻带内的成分将大大衰减,而且对通带内的信号还有放大作用。

按组成电路的元件,滤波器可分为LC、RLC、RC、晶体和陶瓷滤波器等。我们也可以用机械元件代替电子元件,制成机械式滤波器,或利用物质的铁磁共振原理制成可点电调谐的滤波器。

此外,调幅波接收机中的包络是一种非线性滤波器。非线性滤波器实例还有:自动增益控制电路,调频接收机中的锁相环以及近年来在组合音响装置中用来提高信噪比的Dobly系统等。

上面所举的这些滤波器,不论是线性还是非线性的,由于都是用来对模拟信号进行处理,故统称为模拟滤波器或经典滤波器。

随着集成电路技术的出现,特别是数字电子计算机的广泛应用,模拟滤波器开始向数字滤波器方向发展。A/D或D/A转换器,移位寄存器。只读存储器以及微处理机这样一些与传统的模拟滤波电路元件截然不同的电路元件和模块被广泛应用于数字滤波电路中,以适应离散数字信号处理的要求。即使是模拟信号,也可通过A/D转换先变成离散的数字信号,经相应的处理后再恢复成模拟信号。

与模拟滤波器相比,数字滤波器不仅可使体积缩小,成本降低,而且还有如下优点:第一,滤波器的参数可根据对滤波器性能指标的要求来设定,从而具有较高的精度;第二,滤波器的参数很容易重新设定或使具有自适应性;第三,有些采用微处理机的数字滤波器可实现对微处理机的分时使用,从而大大提高工作效率。

经典滤波器的另一发展方向,就是利用统计理论来处理滤波问题,由此,产生了统计滤波器。

从经典滤波的观点来看,有用信号和噪声信号是分布在不同频带之内。因此,我们可用具有一定选频特性的经典滤波网络把噪声尽可能地滤除,而保留畸变不大的有用信号。但是,我们所遇到的信号和噪声有时可能是随机的,其特性往往只能从统计的意义上来描述。例如,在导弹控制系统中,由于目标运动的随机性,目标的位置和速度都是随机的。此外,测量装置也会有随机噪声。此时,我们就不可能采用一般的经典滤波器把有用信号从测量结果中分离出来,而只能用统计估算方法给出有用信号的最优估计值。从统计的观点来看,一个滤波器的输出越接近实际有用信号,这个滤波器就越好。也就是说,最优滤波器是输出最接近于实际有用的信号的滤波器。

随着通信系统复杂度的提高,对原消息信号的还原成为通信系统中最为重要的环节,而噪声是接收端需要排除的最主要的干扰,人们也设计出了针对各种不同条件应用的滤波器,其中最速下降算法是一种古老的最优化技术,而卡尔曼滤波器随着应用条件的精简成为了普适性的高效滤波器。

2.3 卡尔曼滤波起源及发展

随机信号没有既定的变化规律,对它们的估计也不可能完全准确,所谓最优估计也仅仅是指,在某一准则下的最优。根据不同的最优准则,可获得随机信号的不同最优估计。使贝叶斯风险达到最小的估计为贝叶斯估计;使关于条件概率密度的似然函数达到极大的估计为极大似然估计;使验后概率密度达到极大的估计为极大验后估计;使估计误差的均方误差达到最小的估计为最小方差估计,若估计具有线性形式,则估计为线性最小方差估计,卡尔曼滤波即属此类估计。

卡尔曼滤波理论的创立是科学技术和社会需要发展到一定程度的必然结果。早在1795年,高斯(Karl Gauss)为测定行星运动轨道而提出了最小二乘估计法。本世纪40年代,为了解决火力控制系统精确跟踪问题,维纳(N.Weaner)于1942年提出了维纳滤波理论。维纳根据有用信号和干扰信号的功率谱确定出线性滤波器的频率特性,首次将数理统计理论与线性系统理论有机的联系在一起,形成了对随机信号作平滑、估计或预测的最优估计新理论。比维纳稍早,前苏联科学家戈尔莫克罗夫(A.N.Kolmogorov)于1941年也曾提出过类似的理论。维纳给出了由功率谱求解维纳滤波器频率特性闭合解的一般方法,包括对功率谱的上、下平面分解及傅里叶变换和反变换,运算繁杂,解析求解十分困难。1950年,伯特和香农给出了功率谱为有理谱这一特殊条件下,由功率谱直接求取维纳滤波器传递函数的设计方法,这一方法简单易行,具有一定的工程实用价值。维纳滤波的最大缺点是适用范围极其有限,它要求被处理信号必须是平稳的,且是一维的。人们试图将维纳滤波推广到非平稳和多维的情况,都因无法突破计算上的困难而难以推广和应用。

采用频域设计法是造成维纳滤波器设计困难的根本原因。因此人们逐渐转向寻求在时域内直接设计最优滤波器的新方法,其中卡尔曼的研究最具有代表性,他提出的递推最优估计理论也因此而被称为卡尔曼滤波。由于采用了状态空间法描述系统,算法采用递推形式,所以卡尔曼滤波能处理多维和非平稳的随机过程。

卡尔曼滤波理论一经提出,立即受到了工程界的重视,而工程应用中遇到的实际问题又使卡尔曼滤波的研究更加深入和完善。1959年起,美国太空署即NASA开始研究载人太空船登月方案,当时提出了两个主要问题:①中途导航和制导;②液体燃料助推器大挠度条件下的自动驾驶问题。因这两项研究的工作量都很庞大,所以主要研究前者,即宇宙飞船的测轨问题。导航问题中主要解决太空船运动状态的估计。估计方法曾试图采用递推加权最小二乘和维纳滤波,均因精度满足不了要求和计算过于繁杂而不得不放弃。1960年秋,卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗

计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。

卡尔曼滤波比维纳滤波的应用范围广,设计方法也简单易行得多,但它必须在计算机上执行,而60年代初,无论是速度、字长、容量,计算机还处于低水平阶段。为了适应当时的技术水平,避免由于字长不够产生的舍入误差引起卡尔曼滤波的计算发散,Bierman,Carlson和Schmidt等人提出了平方根滤波算法和UDU分解滤波算法,以确保卡尔曼滤波增益回路中的滤波方差阵始终正定。

卡尔曼最初提出的滤波基本理论只适用于线性系统,并且要求量测也必须是线性的。在之后的10多年的时间里,Bucy,Sunahara等人致力于研究卡尔曼滤波理论在非线性系统和非线性量测情况下的推广,拓宽了卡尔曼滤波理论的适用范围。

卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中的各个噪声与状态变量均呈高斯分布,而这两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。扩展卡尔曼滤波器(EKF)极大地拓宽了卡尔曼滤波的适用范围。EKF的基本思路是,假定卡尔曼滤滤对当前系统状态估计值非常接近于其真实值,于是将非线性函数在当前状态估计值处进行台劳展开并实现线性化。另一种非线性卡尔曼滤波叫线性化卡尔曼滤波。它与EKF的主要区别是前者将非线函数在滤波器对当前系统状态的最优估计值处线性化,而后者因为预先知道非线性系统的实际运行状态大致按照所要求、希望的轨迹变化,所以这些非线性化函数在实际状态处的值可以表达为在希望的轨迹处的台劳展开式,从而完成线性化。

不敏卡尔曼滤波器(UKF)是针对非线性系统的一种改进型卡尔曼滤波器。UKF 处理非线性系统的基本思路在于不敏变换,而不敏变换从根本上讲是一种描述高斯随机变量在非线性化变换后的概率分布情况的方法。不敏卡尔曼滤波认为,与其将一个非线性化变换线性化、近似化,还不如将高斯随机变量经非线性变换后的概率分布情况用高斯分布来近似那样简单,因而不敏卡尔曼滤波算法没有非线性化这一步骤。在每一定位历元,不敏卡尔曼滤波器按照一套公式产生一系列样点,每一样点均配有一个相应的权重,而这些带权的样点被用来完整地描述系统状态向量估计值的分布情况,它们替代了原先卡尔曼滤波器中的状态向量估计值及协方差。不敏卡尔曼滤器让这些样点一一经历非线性状态方程与测量方程,然后再将这些经非线性变换后的样点按照它们的权重而综合出对当前时刻的系统状态向量估计值。

多态自适应(MMA)卡尔曼滤波器是一种受到广泛关注的滤波器,它由好多个并联、同时运行的卡尔曼滤波器组成。在这组卡尔曼滤波器中,每一个滤波器对未知的滤波参数分别做出相互不同的假设,然后各自按照自己的模型假设进行滤波计算,而多态自适应滤波器最后将它们对系统状态的各个估计值进行加权,并以此作为最优估计值输出。

3估计原理和卡尔曼滤波

2.2 DS18B20的通信协议

2.3 DS18B20的测温原理

4 编程软件VB的特点

VB(Visual Basic)之所以受到广大编程者的喜爱,是由于它强大的功能:

(1) 可视化编程:最直观的编程方法,程序人员只需绘制界面,无需编程,VB自动产生界面代码,就可以完成许多步骤。这样大大的提高了程序设计的效率。这些在以前的编程语言下是要经过相当复杂的工作的。

(2) 结构化的程序设计语言:VB具有丰富的数据类型,是一种符合结构化设计思想的语言,简单易学。此外VB作为程序设计语言还有其独特的一面。

(3) 面向对象:VB采用了面向对象的程序设计思想。把复杂的程序设计问题分解为一个个简单的能够完成独立功能的对象集合,就是此程序设计最基本的思想。所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、时钟、文本框等。面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计的要求,直接在屏幕上“画”出窗口、菜单、按钮等不同类型的对象,并在属性窗口改写每个对象属性,从而达到所要求的目的。

(4) 强大的数据库访问功能。

(5) 多个应用程序向导,支持动态交换、动态链接技术,等等。

4.1 编程软件VB中MSComm控件的介绍

VB开发串口通信程序利用VB自身提供的控件MSComm 控件来实现。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm(Microsoft Communications Control)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

4.1.1 MSComm控件两种处理通讯的方式

MSComm提供两种处理通讯的方法:事件驱动方式和查询方式。该论文所采用的方法是事件驱动方式,在初始化代码中将Rthreshold设置为1。这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。

事件驱动通讯是一种功能很强的处理串口活动的方法,它是利用MScomm控件的OnComm事件触发机制来完成的。在大多数情况下,用户需要获知事件发生的时间,例如,在串口接收缓冲区中有字符,或者CD (Carrier Detect) 或RTS (Request To Send) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以捕获和处理通讯中的错误。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。

查询法是通过周期性地读取缓冲区的信号来发现是否有事件发生并进行处理的方法。它不使用端口的硬件中断,必须在足够频繁地查询端口的情况下才能保证不会遗失任何数据或者事件,查询的频率取决于缓存的大小、数据量和对快速响应的要求。查询法不具有自动判断通信的“智能”化,需要人为启动接收或发送数据。

4.1.2 MSComm控件的常用属性

在MSComm控件中有很多重要的属性,下面介绍几个重要属性。

CommPort 设置并返回通讯端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen 设置或返回串口的状态。也可以打开和关闭串口。

Inputlen 设置或返回一次从接收缓冲区中读取字节数。

Input 从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。

Output 向发送缓冲区发送数据,该属性设计时无效,运行时只读。

CommEvent 是一个非常重要的属性,该属性设计时无效,运行时只读。一旦串口发生通信事件或产生错误,根据产生的错误,MSComm控件为CommEvent属性赋不同的代码,与此同时产生OnComm事件。用户程序就可在OnComm事件处理程序中进行相应的处理。

SThreshold 该属性为一阀值,设置返回传输中所能允许的最小字符数。当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。

RThreshold 该属性为一阀值,设置返回要接受的字符数当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。用户可在OnComm事件处理程序中进行相应处理。

InBufferSize 设置或返回接收缓冲区的大小。

InBufferCount 设置或返回接收缓冲区中等待计算机接收的字符数。

OutBufferSize 设置或返回发送缓冲区的大小。

OutBufferCount 设置或返回发送缓冲区中等待计算机发送的字符数。

4.2 软件编程中的MSComm控件程序设计

'初始化代码

Private Sub Form_Load()

https://www.doczj.com/doc/dc12415231.html,mPort = 4 '设置串口4

MSComm.Settings = "19200,n,8,1" '波特率19200bit/s,无校验,8位数据,1位停止位

MSComm.InputLen = 0 '读取接收缓冲区的所有字符

MSComm.InBufferSize = 1024 '设置接收缓冲区为1024字节

MSComm.OutBufferSize = 512 '设置发送缓冲区为512字节

MSComm.PortOpen = True '打开串口

MSComm.SThreshold = 0 '不触发发送事件

MSComm.RThreshold = 1 '每个字符到接收缓冲区都触发接收事件

MSComm.InBufferCount = 0 '清除发送缓冲区数据

MSComm.OutBufferCount = 0 '清除接收缓冲区数据

Text2.Text = "" '清空接收文本框

End Sub

'接收数据

Private Sub mscomm_oncomm()

Dim str, numb As String

Select Case https://www.doczj.com/doc/dc12415231.html,mEvent ' 检验串口事件

'错误处理

Case comEventOverrun '数据丢失

Text2.Text = "" '清空接收缓冲区

Exit Sub

Case comEventRxOver '接收缓冲区溢出

Text2.Text = "" '清空接收缓冲区

Exit Sub

Case comEventTxFull '发送缓冲区满

Text2.Text = "" '清空接收缓冲区

Exit Sub

'事件处理

Case comEvReceive '接收缓冲区内有数据

str = MSComm.Input '从接受队列中读入字符串

End Select

If str = "NO Devic" Then

str = ""

Text2.Text = "没有检测到感温元件"

End If

If str = "e" Then

str = ""

Text2.Text = "没有检测到感温元件"

End If

If str = "p" Then

str = ""

Text2.Text = "+" '读出字符串送显

End If

If str = "n" Then

str = ""

Text2.Text = "-" '读出字符串送显

End If

Text2.Text = Text2.Text + str '读出字符串送显

End Sub

5 系统应用软件设计方案

5.1 应用程序功能概述

论文选用USB接口作为数据采集系统与PC机之间的接口,它能够在很大程度上改善外设和接口的矛盾。VB给设备提供了一个可控制、编程的界面,例如接收外部发送的温度数据,并显示这些数据等,在此环境下编写温度数据采集系统的驱动程序,完成的应用程序可以直观的看到所采集的温度数据和时间。

5.2 系统总体方案的设计

设计步骤:

1.建窗体

添加一个MSComm控件,用来建立与串口的连接;

添加一个Text控件,Name属性为Text2,用来显示接收的温度数据;

添加几个Lable按扭,目的是用于美化界面,使界面看起来更直观、形象;

添加1个Timer控件,设置Interval属性为1000(两次调用Timer控件的Timer 事件间隔为1000毫秒),还添加了一个Lable控件,用来显示当前时间。时间设置在Timer控件中并且编写数据保存的触发程序,程序编写如下:

'时间设置

Private Sub Timer1_Timer()

Label7.Caption = Now()

If Command3.Caption = "停止保存" Then

Print #1, Text2.Text, Label7.Caption

End If

End Sub

添加了3个CommandButton按扭,分别用于程序运行过程中测温的开始、结束和测温系统的退出以及数据保存、停止,程序编写如下:

'控制测温按扭

Private Sub Command1_Click()

If Command1.Caption = "停止测温" Then

MSComm.PortOpen = False '关闭串口

Command1.Caption = "开始测温"

Else

MSComm.PortOpen = True '打开串口

Command1.Caption = "停止测温"

End If

End Sub

'退出系统

Private Sub Command2_Click()

Unload Me

End Sub

'数据保存与停止

Private Sub Command3_Click()

If Command3.Caption = "保存数据" Then

Open App.Path & "\" & "数据保存.txt" For Append As #1 '相对路经

Command3.Caption = "停止保存"

Else

Close #1 '关闭

Command3.Caption = "保存数据"

End If

End Sub

2.根据设计要求对窗体中的所有控件设置属性,查阅相关资料对各个模块的程序进行编写。

3.编写完后,程序进行反复的运行、调试、改写。

4.对界面进行最后的完善、美化。

5.3 系统总体方案设计中出现的一些实际问题

一开始对于时间函数的编写我选用了Print函数,可是此函数程序设计麻烦,只能显示当时时间,然后我又询问了同学,他们告诉我用Now函数在Timer控件中编写就能实现动态显示,特别是对Interval属性的设置。加入一个Lable按扭,程序代码是Label7.Caption = Now() '显示当前时间,简单直观。

当我建文件夹保存数据的时候,总是出错误,不是保存一次数据就是保存几次数据后再不保存了。我最初的设想是每当数据发生变化时采集一次,不过没有编写成功。最后在老师的提醒与帮助下,想到在Timer控件程序中触发数据保存按扭,这样随着时间的变化,每秒采集的数据以及时间也会保存下来,而且如果按停止保存按扭,数据保存就会停止。

一开始保存数据的路径我设置的是J:\Documents and Settings\lj\桌面\鲁东大学\编程\数据保存.txt,由于这是绝对路径,所以它只在我编程用的电脑上好用,如果换了电脑就要修改程序的路径,很不方便。最后想到用相对路径App.Path & "\" & "数据保存.txt",不过一开始的时候程序改了还是不能运行,最后我又上网下了一点相对路径方面的知识,终于发现了自己的错误,改相对路径的时候“数据保存.txt”必须和程序在同一个文件夹里。

5.4 系统方案设计的窗体界面

此界面是在老师的帮助下一步步改进和完善的,基本完成了设计要求的任务。程序运行过程中通过观察软件界面上温度数据的变化规律,操作人员可以对当前正在进行的

实验情况有一个清楚的了解,这也有助于逼真、形象的显示采集的温度数据。

图5 程序窗体界面

图6 代码程序

图7 运行所采集的画面

6 小节

本界面显示系统采用总体到局部,逐步完善的方法,用硬件描述语言VB完成。该系统界面清晰,模块分明,易于实现温度数据采集、显示和保存等功能。但是本系统也有不足的地方,就是串口选择不太完善,数据的保存不能达到我所期望的目标,我期望的是当数据发生变化时自动保存一次,并且有时间显示,我们可以了解到温度在何时发生变化的,这有待改进。总体上说,本设计系统能够实现温度数据采集、显示和保存的基本功能,能够较好的进行功能扩展。

参考文献:

[1] 崔武子,齐华山,于宁.界面设计与Visual Basic[M].北京:清华大学出版社,2004

[2] 唐大仕.Visual Basic程序设计[M].北京:清华大学出版社,2003

[3] 边海龙,贾少华.USB2.0设备的设计与开发[M].北京:人民邮电出版社,2004

[4] 仵浩,齐燕杰.Visual Basic串口通信工程开发实例导航[M].北京:人民邮电出版

社,2002.

[5] 范逸之,陈立元,孙德营.利用Visual Basic实现串并行通信技术[M].北京:清华大学出版社,2001

[6] 李光忠.基于单片机的温湿度检测系统的设计[D].济南:山东大学,2007.

[7] 曹真贯.基于USB接口的数据采集系统的设计[D].淮南:安徽理工大学,2006

[8] 于克龙,毕小龙,邱立峻.数组温度传感器DS18B20的应用[J].Machine Building & Automation,2004,33(2) :47-49.

[9] 程安宇,孙士民,徐洋.基于DS18B20的单片机温度测量控制系统[J].

自动测量与控制,2007,26(2)

[10] 潘笑,高玉玲,康亚娜.基于模糊PID 的AT89C2051单片机智能温度控制系统[J]. 兵工自动化,2006,3(5):65-67.

[11] 基于DS18B20数字温度传感器的设计与实现

https://www.doczj.com/doc/dc12415231.html,/xsj07/xsj084531w.asp

[12] DS18B20数字温度传感器应用详解

https://www.doczj.com/doc/dc12415231.html,/u10362888/d5*******.htm

[13] 金伟正.单线数字温度传感器的原理及应用[J ].电子技术应用,2000 ,3 (6):92-96

致谢

论文在软件编程设计和写作的过程中,周XX老师给我提供了相关资料,多次询问设计进程,帮助我开拓设计思路。而且每周三傍晚都会组织我们开会,帮助我们解决实际过程中遇到的一些问题,还对我们已完成的一些设计要求提出更完善的建议,在此非常感谢周老师。在做程序调试的时候,周老师又不厌其烦的一次次帮我看程序、给我指导,同时还在思想、生活上给我以无微不至的关怀,令我很感动。周老师渊博的学识、严谨的治学精神、灵活的思维方式、耐心细致的言传身教、无私的奉献精神及精益求精的工作作风使我深受的启迪。从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理,在此我要向我的导师致以最衷心的感谢和深深的敬意。另外还要感谢在论文的软件编程设计过程中给予我指导、帮助的李XX和王XX同学,他们那种刻苦认真、勤奋进取的精神让我学到了很多。

同时特别感谢我的班主任印XX老师这四年来对我的关心和帮助,感谢父母对我二十多年来辛勤的养育!

最后,我要向在百忙之中抽时间对本文进行审阅、评议和参加本人论文答辩的各位老师表示感谢!

Kalman滤波在运动跟踪中建模

目录 一、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滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

基于粒子滤波和贝叶斯估计的目标跟踪

大庆石油学院学报 第32卷第3期2008年6月J OU RNAL OF DAQ IN G PETROL EUM INSTITU TE Vol.32No.3J un.2008 收稿日期:2007212224;审稿人:付光杰;编辑:郑丽芹 作者简介:任伟建(1963-),女,博士生导师,教授,主要从事复杂系统的控制及故障诊断方面的研究. 基于粒子滤波和贝叶斯估计的目标跟踪 任伟建1,山茂泉1,谢 锋2,王文东3 (1.大庆石油学院电气信息工程学院,黑龙江大庆 163318; 2.大庆油田有限责任公司第二采油厂,黑龙江大庆  163414; 3.大庆钻井技术服务公司钻井工具分公司,黑龙江大庆 163461) 摘 要:针对颜色直方图的彩色物体的运动目标,在各种噪声的干扰下多呈现非线性和非高斯的特点,利用粒子滤 波的方法进行运动估计和跟踪.利用粒子滤波对非线性和非高斯的有效逼近的性质,获得粒子的后验概率分布,估计目 标状态,实现目标的有效跟踪.采用累加权值概率并且引入随机正态分布进行采样,保证粒子的多样性,有效避免粒子退 化问题.仿真结果表明该方法的有效性. 关 键 词:粒子滤波;贝叶斯估计;目标跟踪;彩色直方图 中图分类号:TP182 文献标识码:A 文章编号:100021891(2008)0320067204 0 引言 目标存在变化多样和跟踪设备对环境适应性不完善等问题,复杂环境下的运动目标跟踪是个难题[1,2].为了有效跟踪运动目标,必须对运动对象进行有效的估计,利用已有的信息,获得当前运动物体估计状态,然后利用现有观察数据对运动状态进行修正.该类问题经常采用广义卡尔曼滤波方法.广义卡尔曼滤波依赖于模型的线性化和高斯假设.在估计系统状态和方差时,由于线性逼近,可能导致滤波发散.且如果密度函数不是高斯分布,该方法估计精度不高.近年来出现一种新的最优非线性方法———粒子滤波,它源自序列蒙特卡罗方法[3].该方法不受动态系统各个随机变量的限制,能够有效地应用于非线性、非高斯的运动系统中. 文中首先对选定区域目标建立颜色直方图模型,然后在选定区域附近产生目标粒子区域,利用巴特查理亚系数测量粒子区域和选定区域2种分布之间的相似度,运用粒子滤波估计方法实现运动目标的跟踪.在跟踪过程中,粒子存在退化现象.文献[4]采取重采样方法在一定程度上解决了退化问题,但由于重采样是根据权值大小进行的,导致采样后的粒子由大量重复的粒子构成,失去了多样性.文中采取概率累加的方法保持粒子的多样性,防止粒子退化,取得较好的效果. 1 运动目标模型 在确定运动目标后,建立基于指数分布的统计模型.在区域中心,属于运动目标的概率为1,在偏离中心的距离大于阈值时,概率属于指数衰减[5]: p pos (z i )=1,‖z i ‖≤T ; exp -‖z i ‖-T max (‖z i ‖-T )N i =1 ,‖z i ‖>T ,(1)可得到目标的统计直方图分布模型: p pos (u )=C 6N i =1p pos (z i )δ(b (z i )-u ),(2) C =1 6N i =1p pos (z i ). (3)

(整理)Kalman滤波在运动跟踪中的建模.

目录一、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滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

基于卡尔曼滤波器的雷达目标跟踪

随机数字信号处理期末大作业(报告) 基于卡尔曼滤波器的雷达目标跟踪 Radar target tracking based on Kalman filter 学院(系):创新实验学院 专业:信息与通信工程 学生姓名:李润顺 学号:21424011 任课教师:殷福亮 完成日期:2015年7月14日 大连理工大学 Dalian University of Technology

摘要 雷达目标跟踪环节的性能直接决定雷达系统的安全效能。由于卡尔曼滤波器在状态估计与预测方面具有强大的性能,因此在目标跟踪领域有广泛应用,同时也是是现阶段雷达中最常用的跟踪算法。本文先介绍了雷达目标跟踪的应用背景以及研究现状,然后在介绍卡尔曼滤波算法和分析卡尔曼滤波器性能的基础上,将其应用于雷达目标跟踪,雷达在搜索到目标并记录目标的位置数据,对测量到的目标位置数据(称为点迹)进行处理,自动形成航迹,并对目标在下一时刻的位置进行预测。最后对在一个假设的情境给出基于卡尔曼滤波的雷达目标跟踪算法对单个目标航迹进行预测的MATLAB仿真,对实验的效果进行评估,分析预测误差。 关键词:卡尔曼滤波器;雷达目标跟踪;航迹预测;预测误差;MATLAB仿真 - 1 -

1 引言 1.1 研究背景及意义 雷达目标跟踪是整个雷达系统中一个非常关键的环节。跟踪的任务是通过相关和滤波处理建立目标的运动轨迹。雷达系统根据在建立目标轨迹过程中对目标运动状态所作的估计和预测,评估船舶航行的安全态势和机动试操船的安全效果。因此,雷达跟踪环节工作性能的优劣直接影响到雷达系统的安全效能[1]。 鉴于目标跟踪在增进雷达效能中的重要作用,各国在军用和民用等领域中一直非常重视发展这一雷达技术。机动目标跟踪理论有了很大的发展,尤其是在跟踪算法的研究上,理论更是日趋成熟。在跟踪算法中,主要有线性自回归滤波、两点外推滤波、维纳 α-滤波和卡尔曼滤波,其中卡尔曼滤波算法在目标跟踪滤波、加权最小二乘滤波、β 理论中占据了主导地位。 雷达跟踪需要处理的信息种类多种多样。除了目标的位置信息外,一般还要对目标运动速度进行估计,个别领域中的雷达还要对目标运动姿态进行跟踪。雷达跟踪的收敛速度、滤波精度和跟踪稳定度等是评估雷达跟踪性能的重要参数。因此提高雷达跟踪的精度、收敛速度和稳定度也就一直是改善雷达跟踪性能的重点。随着科技的发展,各类目标的运动性能和材质特征有了大幅度的改善和改变,这就要求雷达跟踪能力要适应目标特性的这种变化。在不断提高雷达跟踪性能的前提下,降低雷达跟踪系统的成本也是现代雷达必须考虑的问题。特别是在民用领域中由于雷达造价不能过高,对目标跟踪进行快收敛性、高精度和高稳定性的改良在硬件上是受到一些制约的,因此雷达跟踪算法的研究就越来越引起学者们的关注。通过跟踪算法的改进来提高雷达的跟踪性能还有相当大的挖掘潜力。考虑到雷达设备的造价,民用雷达的跟踪系统首要的方法就是对于雷达的跟踪算法进行开发。

目标跟踪算法的分类

运动目标跟踪就是在一段序列图像中的每幅图像中实时地找到所感兴趣的运动目标 (包括位置、速度及加速度等运动参数)。在运动目标跟踪问题的研究上,总体来说有两种思路: a)不依赖于先验知识,直接从图像序列中检测到运动目标,并进行目标识别,最终跟踪感兴趣的运动目标; b)依赖于目标的先验知识,首先为运动目标建模,然后在图像序列中实时找到相匹配的运动目标。 一、运动目标检测 对于不依赖先验知识的目标跟踪来讲,运动检测是实现跟踪的第一步。运动检测即为从序列图像中将变化区域从背景图像中提取出来。运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测。 静态背景下运动检测就是摄像机在整个监视过程中不发生移动,只有被监视目标在摄像机视场内运动,这个过程只有目标相对于摄像机的运动;动态背景下运动检测就是摄像机在整个监视过程中发生了移动 (如平动、旋转或多自由度运动),被监视目标在摄像机视场内也发生了运动,这个过程就产生了目标与摄像机之间复杂的相对运动。 1、静态背景 背景差分法 背景差分法是利用当前图像与背景图像的差分来检测运动区域的一种技术。它一般能够提供最完全的特征数据,但对于动态场景的变化,如天气、光照、背景扰动及背景物移入移出等特别敏感,运动目标的阴影也会影响检测结果的准确性及跟踪的精确性。其基本思想就是首先获得一个背景模型,然后将当前帧与背景模型相减,如果像素差值大于某一阈值,则判断此像素属于运动目标,否则属于背景图像。背景模型的建立与更新、阴影的去除等对跟踪结果的好坏至关重要。 帧间差分法 相邻帧间差分法是通过相邻两帧图像的差值计算,获得运动物体位置和形状等信息的运动目标检测方法。其对环境的适应性较强,特别是对于光照的变化适应性强,但由于运动目标上像素的纹理、灰度等信息比较相近,不能检测出完整

卡尔曼滤波在目标跟踪中的应用

卡尔曼滤波在目标跟踪中的应用 摘要:机动卡尔曼算法(VD 算法)在扩展卡尔曼滤波诸算法中原理较为简单,目标跟踪效果也较好。 一. 模型建立 (1) 非机动模型(匀速直线运动) 系统模型 )()()1(k GW k X k X +Φ=+ 其中 ?????? ????? ???=)()()()()(k V k y k V k x k X y x ; ? ? ??????????=Φ10001000010001 T T ; ????? ? ? ???? ???=10200102T T G ? ?? ???=)()()(k W k W k W y x ; 0)]([=k W E ; kj T Q j W k W E δ=)]()([ 测量模型为: )()()(k V k HX k Z +=; 其中 ?? ? ???=01000001H )(k V 为零均值,协方差阵为R 白噪声,与)(k W 不相关。 (2) 机动模型 系统模型 );(*)()1(k W G k X k X m m m m m +Φ=+ 其中

?? ? ? ??? ? ?? ??????????=)()()()()()()(k a k a k V k y k V k x k X m y m y m y m m x m m ;??? ???????????? ?????=Φ100 00 00100000100020100000100200 122 T T T T T T m ;??? ???????????????????=10012040020422T T T T G m 0)]([=k W E m , kj m m m Q j W k W E T δ=)]()([ 观测模型与机动模型的相同,只是H 矩阵为m H 。 ?? ? ???=000100000001m H 二.Kalman 滤波算法 作为一般的Kalman 滤波算法其算法可以描述如下: )1/1(?)1/(?--Φ=-k k X k k X T T G k GQ k k P k k P )1()1/)1()1/(-+Φ--Φ=- 1])1/([)1/()(-+--=R H k k HP H k k P k K T T )]1/()()[()1/(?)/(?--+-=k k HX k Z k K k k X k k X )1/()()1/()/(---=k k HP k K k k P k k P 起始估计值为 ()()()()()()()221/?2/2221/x x x y y y z z z T z z z T ????-??????=????????-???? X 起始估计的估计误差为 (2)(1)(2)(1)2(2/2)(2) (1)(2)(1)2x x x x y y y y v v v T u T v v v T u T -?? ??-?? ?+?? =??-?? -???+???? X 起始估计的估计误差协方差矩阵为

目标定位跟踪算法及仿真程序

目标定位跟踪算法及仿真程序 质心算法是最简单的定位算法,如图2-1所示,四个小圆为观测站,实线三角形是目标真实的位置,假设四个圆形观测站都探测到目标的存在,则根据质心定位算法,目标的位置(x,y )可以表示为:4 4 321x x x x x +++= , 4 4 321y y y y y +++= ,这里观测站得位置为),(i i y x ,同理,当观测站数目为N 时,这时候的质心定位算法可以表示为: ???? ? ? ??????=??????∑∑==N i i N i i y N x N y x 11 11 图1 质心定位 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 质心定位算法Matlab 程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function main % 定位初始化 Length=100; % 场地空间,单位:米 Width=100; % 场地空间,单位:米 d=50; % 目标离观测站50米以内都能探测到,反之则不能 Node_number=6; % 观测站的个数 for i=1:Node_number % 观测站的位置初始化,这里位置是随机给定的 Node(i).x=Width*rand; Node(i).y=Length*rand; end % 目标的真实位置,这里也随机给定 Target.x=Width*rand; Target.y=Length*rand; % 观测站探测目标 X=[]; for i=1:Node_number

基于卡尔曼滤波的目标跟踪研究_毕业设计

毕业设计 设计题目:基于卡尔曼滤波的目标跟踪研究 姓名 院系信息与电气工程学院 专业电气工程及其自动化 年级 学号 指导教师 2012年4月24 日

独创声明 本人郑重声明:所呈交的毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 此声明的法律后果由本人承担。 作者签名: 二〇一年月日 毕业论文(设计)使用授权声明 本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的规定。 本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意学校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它复制手段保存论文(设计);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布论文(设计)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 论文作者(签名): 二〇一年月日

目录 引言 1.绪论 1.1研究背景 1.1.1卡尔曼滤波提出背景 1.1.2 应用范围 1.2本文研究的主要内容 2 2.初步认识卡尔曼滤波 2 2.1关于卡尔曼 2.2滤波及滤波器问题浅谈 2 2.3 卡尔曼滤波起源及发展 3.估计原理和卡尔曼滤波 2 4.卡尔曼滤波的实现 4.1卡尔曼滤波的基本假设 5 4.2卡尔曼滤波的特点 5 4.3卡尔曼滤波基本公式 6 4.4卡尔曼滤波参数的估计和调整 5.卡尔曼滤波的相关知识 5.1 8 5.2 8 5.3 9 6.卡尔曼滤波器的设计 7.目标跟踪模型的建立 8.结合数学模型进行matlb编程 9.目标跟踪仿真 10.结论11 11.参考文献11 12.致谢12 13 15 16

目标跟踪算法综述

。 目标跟踪算法综述 大连理工大学卢湖川一、引言 目标跟踪是计算机视觉领域的一个重 要问题,在运动分析、视频压缩、行为识 别、视频监控、智能交通和机器人导航等 很多研究方向上都有着广泛的应用。目标 跟踪的主要任务是给定目标物体在第一帧 视频图像中的位置,通过外观模型和运动 模型估计目标在接下来的视频图像中的状 态。如图1所示。目标跟踪主要可以分为5 部分,分别是运动模型、特征提取、外观 模型、目标定位和模型更新。运动模型可 以依据上一帧目标的位置来预测在当前帧 目标可能出现的区域,现在大部分算法采用的是粒子滤波或相关滤波的方法来建模目标运动。随后,提取粒子图像块特征,利用外观模型来验证运动模型预测的区域是被跟踪目标的可能性,进行目标定位。由于跟踪物体先验信息的缺乏,需要在跟踪过程中实时进行模型更新,使得跟踪器能够适应目标外观和环境的变化。尽管在线目标跟踪的研究在过去几十年里有很大进展,但是由被跟踪目标外观及周围环境变化带来的困难使得设计一个鲁棒的在线跟踪算法仍然是一个富有挑战性的课题。本文将对最近几年本领域相关算法进行综述。 二、目标跟踪研究现状 1. 基于相关滤波的目标跟踪算法 在相关滤波目标跟踪算法出现之前,大部分目标跟踪算法采用粒子滤波框架来进行目标跟踪,粒子数量往往成为限制算法速度的一个重要原因。相关滤波提出了 一种新颖的循环采样方法,并利用循环样 本构建循环矩阵。利用循环矩阵时域频域 转换的特殊性质,将运算转换到频域内进 行计算,大大加快的分类器的训练。同时, 在目标检测阶段,分类器可以同时得到所 有循环样本得分组成的响应图像,根据最 大值位置进行目标定位。相关滤波用于目 标跟踪最早是在MOSSE算法[1]中提出 的。发展至今,很多基于相关滤波的改进 工作在目标跟踪领域已经取得很多可喜的 成果。 1.1. 特征部分改进 MOSSE[1] 算法及在此基础上引入循 环矩阵快速计算的CSK[2]算法均采用简单 灰度特征,这种特征很容易受到外界环境 的干扰,导致跟踪不准确。为了提升算法 性能,CN算法[3]对特征部分进行了优 化,提出CN(Color Name)空间,该空 间通道数为11(包括黑、蓝、棕、灰、绿、 橙、粉、紫、红、白和黄),颜色空间的引 入大大提升了算法的精度。 与此类似,KCF算法[4]采用方向梯度 直方图(HOG)特征与相关滤波算法结合, 同时提出一种将多通道特征融入相关滤波 的方法。这种特征对于可以提取物体的边 缘信息,对于光照和颜色变化等比较鲁棒。 方向梯度直方图(HOG)特征对于运 动模糊、光照变化及颜色变化等鲁棒性良 好,但对于形变的鲁棒性较差;颜色特征 对于形变鲁棒性较好,但对于光照变化不 够鲁棒。STAPLE算法[5]将两种特征进行 有效地结合,使用方向直方图特征得到相 关滤波的响应图,使用颜色直方图得到的 统计得分,两者融合得到最后的响应图像 并估计目标位置,提高了跟踪算法的准确 度,但也使得计算稍微复杂了一些。 图1 目标跟踪算法流程图

粒子滤波的目标跟踪算法研究与实现

龙源期刊网 https://www.doczj.com/doc/dc12415231.html, 粒子滤波的目标跟踪算法研究与实现 作者:韩雪王元亮 来源:《现代商贸工业》2011年第15期 摘要:通过已经获得的运动目标的先验特征点,以及基于这些特征点在各种噪声的干扰 下多呈现非线性和非高斯的特点,我们可以利用粒子滤波的方法进行运动估计和跟踪。由于粒子滤波具有对非线性和非高斯的有效逼近的性质,获得粒子的后验概率分布,估计目标状态,实现目标的有效跟踪。为了有效避免粒子退化问题,采用累加权值、聚类算法并且引入高斯分布函数进行采样,保证粒子的多样性。经过程序测试,结果很有效。 关键词:粒子滤波;高斯分布;目标跟踪;先验概率分布 中图分类号:TB 文献标识码:A 文章编号:1672-3198(2011)15-0271-03 目标存在变化多样和跟踪设备对环境适应性不完善等问题,复杂环境下的运动目标跟踪是个难题。例如:由于检测结果不连续,在连续帧间,有些帧没有检测结果。为了有效跟踪运动目标,必须对运动对象进行有效的估计,利用已有的信息,获得当前运动物体估计状态,然后利用现有观察数据对运动状态进行修正。该类问题经常采用广义卡尔曼滤波方法。广义卡尔曼滤波依赖于模型的线性化和高斯假设。不过卡尔曼滤波存在许多缺点:在估计系统状态和方差时,由于线性逼近,可能导致滤波发散;如果密度函数不是高斯分布,该方法估计精度不高;在多维、多因素等复杂性的限制情况下,其结果计算量往往几何倍的增长。近年来出现一种新的最优非线性方法———粒子滤波,它源自序列蒙特卡罗方法。该方法不受动态系统各个随机变量的限制,能够有效地应用于非线性、非高斯的运动系统中。 粒子滤波的核心思想是利用一系列随即样本的加权和表示所需的后验概率密度,得到状态的估计值。当样本点数增至无穷大时,蒙特卡罗特性与后验概率密度的函数表示等价。一般都是用序贯粒子滤波算法,由于此方法会产生退化现象,随意在此基础上用重新采样方法。但这又会导致有大量重复的粒子构成,增加了计算量。而文中的方法加入了聚类算法和当前帧的特征点,进一步减少了粒子退化。 1 蒙特卡罗法基本原理 粒子滤波的理论基础是基于蒙特卡罗方法,即利用一系列随机抽取的样本,计算后验概率分布的方法。因为当这个抽样足够大的时候,这样计算的结果和实际后验分布的概率分布近

基于粒子滤波的目标跟踪算法浅析

基于粒子滤波的目标跟踪算法浅析 高 翔 (甘肃联合大学 电子信息工程学院 甘肃 兰州 730010) 摘 要: 所做的工作是利用粒子滤波理论解决目标跟踪所面临的技术问题。首先介绍粒子滤波中的两种重要算法:贝叶斯理论和蒙特卡罗方法,接着在此基础上详细阐述基于粒子滤波的目标跟踪算法。 关键词: 目标跟踪;粒子滤波;序列重要性采样 中图分类号:TN.2 文献标识码:A 文章编号:1671-7597(2011)0510193-02 1 绪论 时就可以根据上式计算出p 的概率分布。可以表示为: 粒子滤波技术在非线性、非高斯系统表现出来的优越性,决定了它的应用范围非常广泛。另外,粒子滤波器的多模态处理能力,也是它应用广泛有原因之一。本文首先介绍了粒子滤波理论的基础,接下来在此基础上研究了基于粒子滤波的目标跟踪算法。 2 粒子滤波的计算理论方法 其中,为模拟随机试验的次数,即是p 的子样本的个数。p i ,表示试2.1 贝叶斯理论 验所得到的相应的子样本。 贝叶斯估计理论较经典的统计估计理论具有更大的优势,逐渐成为科蒙特卡罗方法是以概率模型为基础的,它解题的三个主要步骤是:学界推理的一个重要工具。贝叶斯推论提供了一种与传统方法不同的概率分布形式的估计,它利用所有的已知信息来构造系统状态变量的后验概率密度,即用系统模型预测状态的先验概率密度,再利用最新的量测值进行修正,得到后验概率密度。这样它就包括了量测值和先验知识在内的所有可以利用的信息,得到的估计误差自然就小一些。 我们将会描述一个以状态x 为参数的一般模型的框架,其中t 表示离散时t 间。对于跟踪所关心的分布是后验概率 也叫滤波分布,其中 波分布可以用两步递归迭代来计算: 其中预测阶段是一个边缘分布,而新的滤波分布则是由贝叶斯法则直 接得到的。递归过程的完成需要有状态演进 的动态模型和一个当前测量值 的状态似然模型,迭代过程用一些初始状态的分布来初始化。上述跟踪迭代只是在极少的情况下具有严格的表述形式。其中最著名的是用于线性和高斯动态系统与似然模型的卡尔曼滤波器(KF ),而对于一般的非线性和非高斯模型跟踪迭代变得束手无策,这时就需要逼近技术。而序列蒙特卡罗方法也叫粒子滤波器由于它们具有有效、简单、适应性强、易实现等优点,作为一个计算复杂模型的跟踪迭代近似方案近年来受到广泛的欢迎。 2.2 蒙特卡罗方法 蒙特卡罗方法的基本原理是:在物理、数学、建筑工程以及工业生产等领域,如果要求解的问题是某种事件出现的概率,或者是某个随机变量的数学期望时,首先按照一定的方法建立一个数学模型,使该模型的参数等于要求的问题的解,然后以此数学模型为基础通过抽样试验来计算出参数的统计特性,最后给出所求问题的近似估计值。在实际的应用中,解的精确度可以用估计值的标准误差来表示。 假如有以下的函数关系式:P 二f (x ) 其中,变量x 服从某一概率分布,是一个随机变量。f (x )是一个包含多重积分的表达式,直接用解析的方法很难求出函数 p 的概率分布。 按照蒙特卡罗方法的基本思想,要想用“试验”的方法求出函数p 的概率分布概率分布,就要在函数表达式满足的定义域内,随机的抽取每一个随机变量二,并把它带入表达式f (x )中,进而求出函数p 的值。由于变量:的值是在一定的定义域内随机抽取的,所以经过多独立的模拟试验后,可以得到相应的抽样数据Pi 。当对变量:进行模拟抽取的次数足够大 第一步:构造或者描述概率过程。在实际的应用中,有些问题不具有随机性质,比如计算多重积分问题,偏微分方程的边值求解问题等。使用传统的计算方法求解这些问题比较困难,为了能利用蒙特卡罗方法求解,就需要人为的设计一个概率过程,并且该概率过程要能很好的描述该事件的发生,同时把要求问题的解设置为该概率过程的某些参数。对于本身就具有随机性质的问题,其主要任务是如何准确的描述和模拟这个概率过程。把不具有随机性质的问题,通过特定的模型转化为具有随机性质的问题,是蒙特卡罗方法应用和研究的主要问题之一。 第二步:实现从已知概率分布中抽样。由概率论的知识可知,各种各样的概率分布都可以按照一定的方式构造出相应的概率模型。当概率 模型构造完成以后,如何准确的产生己知概率分布的随机变量,就成为实现蒙特卡罗方法的关键步骤。从另一个方面来讲,如何产生合适的随机变量也是蒙特卡罗方法随机抽样原理的重要体现。通常情况下,一个最典型的概率分布是(0,l )区间上的均匀分布。同时,这种分布也是最简单的概率分布,在这种分布上产生的随机变量就是我们常说的随机数。具有相同分布的随机数构成的一个序列就是随机数序列,随机数序列中的各个子样都是相互独立的。因此,随机数的产生问题,就演化为从己知的概率分布中抽样的问题。随机数的独立性就保证了抽取的样本是若干次独立的试验,这样就保证了样本的多样性。具有这些特性的样本总体就能准确的表达相应的概率分布,这就是蒙特卡罗方法的重要特征。 第三步:建立各种估计量。通常情况下,要实现蒙特卡罗模拟试验,首先要构造概率模型,然后从已经的概率分布中抽样,最后还要设置一个合适的随机变量。使该随机变量恰好是所求问题的解,我们称之为无偏估计。在前两步的基础上,建立各种估计量,相当于对模拟实验的结果进行考察和登记,进而得到所求问题的解。 3 粒子滤波的基本原理 3.1 序列重要性采样 序列重要性采样算法,是一种通过蒙特卡罗模拟实现递推的贝叶斯滤波的技术。它的主要思想可以描述为:利用一系列随即样本的加权和来表示所需状态的后验概率密度,进而得到状态的估计值。当样本点增至无穷大时,蒙特卡罗特性与后验概率密度的函数表示等价,515滤波器逼近最优的贝叶斯估计。重要采样技术是一个关键的步骤,因为粒子的权值就是根据重要采样技术来选择的,所以提议分布的设计是一项重要的工作。如果粒子是根据重要密度q (x0:k|z0:k )选择的,那么粒子的权值可以表 示为: 预测阶段:

卡尔曼滤波在目标跟踪中的应用

卡尔曼滤波在目标跟踪中的应用 [摘要]机动卡尔曼算法(VD 算法)在扩展卡尔曼滤波诸算法中原理较为简单,目标跟踪效 果也较好. 一.模型建立 (1) 非机动模型(匀速直线运动) 系统模型 )()()1(k GW k X k X +Φ=+ 其中 ??????????? ???=)()()()()(k V k y k V k x k X y x ; ? ? ?? ????????=Φ10001000010001T T ; ??????????????=10200102T T G ; ? ? ????=)()()(k W k W k W y x ; 0)]([=k W E ; kj T Q j W k W E δ=)]()([。 测量模型为: )()()(k V k HX k Z +=; 其中 ? ? ? ? ??=01000001H ; )(k V 为零均值,协方差阵为R 白噪声,与)(k W 不相关。 (2) 机动模型 系统模型 );(*)()1(k W G k X k X m m m m m +Φ=+ 其中

?? ? ? ??? ? ?? ??????????=)()()()()()()(k a k a k V k y k V k x k X m y m y m y m m x m m ;??? ???????????? ?????=Φ100 00 0010000010002010000 010*******T T T T T T m ;??? ???????????????????=10012040020422T T T T G m ; 0)]([=k W E m , kj m m m Q j W k W E T δ=)]()([。 观测模型与机动模型的相同,只是H 矩阵为m H , ?? ? ???=000100000001m H 二.kalman 滤波算法 作为一般的kalman 滤波算法其序贯算法可以描述如下: )1/1(?)1/(?--Φ=-k k X k k X T T G k GQ k k P k k P )1()1/)1()1/(-+Φ--Φ=- 1])1/([)1/()(-+--=R H k k HP H k k P k K T T )]1/()()[()1/(?)/(?--+-=k k HX k Z k K k k X k k X )1/()()1/()/(---=k k HP k K k k P k k P 起始估计值为 ()()()()()()()221/?2/2221/x x x y y y z z z T z z z T ?? ??-??????=????????-???? X 起始估计的估计误差为

相关主题
文本预览
相关文档 最新文档