【vc++精品源码栏目提醒】:本文主要为网学会员提供“基于OpenCV的粒子滤波 - 期刊论文”,希望对需要基于OpenCV的粒子滤波 - 期刊论文网友有所帮助,学习一下!
第 09 卷 第3期 中 国 水 运 Vol.9 No.3 2009 年 3月 China Water Transport March 2009 基于 OpenCV的粒子滤波 魏 怡,何一伟,倪海峰 (武汉理工大学 自动化学院,湖北 武汉 430070) 摘 要:粒子滤波是一种基于递推估计和蒙特卡罗模型的滤波算法,由于适合解决非线性及高斯估计问题而成为近 年研究的热点。
本文阐述了目前做运动检测研究中所使用的常用粒子滤波算法,介绍了 OpenCV 函数库的基本用法, 并利用 OpenCV 函数库功能了图像序列中的道路障碍物检测,试验结果表明利用 OpenCV 可以较好的 满足开发运动目标检测系统的要求。
关键词:粒子滤波;OpenCV;运动目标检测 中图分类号:TN713 文献标识码:A 文章编号:1006-7973(2009)03-0128-02 一、引言 根据目标的运动形式建立一个系统动态模型,描述粒子 OpenCV ( Intel Open Soruce Computer Vision 的传播过程,简单地可以表示为一个一阶系统:Library)是 Intel 公司面向应用程序开发者开发的开放式计 xt A xt - 1 Bωt – 1 (1)算机视觉函数库。
相对于其它图像函数库,OpenCV 是一种 也可以表示成一个二阶系统:源码开放式的函数库,开发者可以自由地调用函数库中的相 xtAxt - 2 B xt - 1 Cωt – 1 (2)关处理函数。
OpenCV 中包含 300 多个处理函数1,具备强 (2)设计粒子的表达方式,确定粒子数目并初始化粒子大的图像和矩阵运算能力,可以大大减少开发者的编程工作 粒子的表达方式要和系统动态模型相结合,尽量使整个 i 以降低计算量。
x0:k ω k t-1 用来表示粒子,x0:k i i量,有效提高开发效率和程序运行的可靠性。
另外,由于 系统更简单, OpenCV 具有很好的移植性,开发者可以根据需要在多种平 是粒子的位置参数。
初始化粒子是根据初始位置,计算所有台进行开发。
目前,OpenCV 逐步成为一个通用的基础研究 粒子的位置参数。
和产品开发平台。
OpenCV 由一系列 C 函数和 C类构成, (3)系统观测模型功能涵盖图像处理、计算机视觉和模式识别等领域。
OpenCV 系统观测值是用来修正由系统动态模型得到的状态的先实现了大量通用算法,涉及到图像处理、结构分析、运动检 验概率,从而得到状态的后验概率。
利用当前帧目标的特征测、摄像机定标、三维重建以及机器学习等方面,并有较高 和初始帧目标的特征的近似度表示观测值,而用近似度的高 i的运行效率 。
2 斯调制直接获得 P(zk xk )。
然后用下面的公式更新所有粒 与传统滤波方法相比,粒子滤波(Particle Filter , 简 子的权值: ωki ω k 1 p(zk x k 1 ) i i称 PF)具有简单易行、适用于非线性及非高斯噪声环境的优 (3)点,因此被广泛应用于诸多工业领域,如计算机视觉、航空 (4)利用加权准则确定目标的最终位置 M导航、金融领域数据分析及过程监控等。
除计算量较大外,粒子退化问题是 PF 的最大缺点,尤其对较长时间内维持不 x opt k ∑ i 1 x k ω ki i (4)变的量进行估计时影响尤为突出,更易导致 PF 算法退化, (5)重采样极端情形会导致算法发散,这对 PF 应用于运动目标检测影 重采样实质就是一个不断选择粒子的过程。
其目的在于响很大。
减轻粒子退化的最简单方法是加大样本集,显然该 减少权值较小粒子的数目,而把注意力集中在具有较大权值方法一般难以实现。
目前解决退化问题的两个关键技术分别 的粒子上,将新产生的粒子赋予相同的权值。
这些新粒子传是:适当选取重要密度函数和进行重采样。
近期出现的改进 播进下一帧的计算中,由系统动态模型改变粒子位置,观测方法有将混沌融入到传统粒子群提出的混沌粒子群算法3、 模型改变粒子的权值,确定目标位置,重采样不断循环进行。
提高算法在遮挡情况下目标跟踪鲁棒性的基于 Mean-shift 根据这个流程,可以很简单的实现计算机程序。
本系统的粒子滤波算法4。
从 采用 Microsoft VC编程工具实现, OpenCV 官方网站 二、系统设计及实现 上下载 2008 年 10 月发布的最新版本 OpenCV1.1pre1 后 粒子滤波器在运动目标检测中的一般流程如下: 按照安装说明安装 OpenCV 开发包,并在 VC系统中配置 (1)建立系统动态模型 好开发环境。
OpenCV 提供了卡尔曼滤波器的数据结构 收稿日期:2009-02-08 作者简介:魏 怡(1972-)女,河北省乐亭人,武汉理工大学自动化学院副教授,博士,研究方向为图象处理与计算机 视觉。
第3期 魏 怡等:基于 OpenCV 的粒子滤波 129CvKalman 与 函 数 CreateKalman , KalmanPredict , 四、结束语KalmanCorrect 和 ReleaseKalman 来完成卡尔曼滤波。
将 通过编程实现的运动目标检测系统表明,应用 OpenCV目标的 x,y 坐标作为粒子滤波的变量,将粒子滤波功能封装 函数库进行图像处理和分析编程,功能强大,简捷高效,可到 CvParticleFilter 类中。
利用 CvParticleFilter 类对预处 以使编程人员快速地实现粒子滤波算法。
OpenCV 确实为理得到的运动目标进行外推跟踪和相关分析,即将每帧生成 VC数字图像编程提供了极大的方便,提高了工作效率,使目标方块与外推方块坐标距离最近且灰度差别最小的视为同 开发者能把主要精力放在新算法的创新上,因此具有广阔的 ,此时继续外一目标;如果有粘连发生(方块之间发生重叠) 应用前景。
推,将预测的坐标显示出来,同时将该目标标记并存入异常数组;如果继续外推追踪到粘连模块的分离,就从异常数组移出标记;如果多帧(本系统中设为 20 帧)之后粘连模块仍未分离,则认为目标丢失,删除目标标记。
三、实验结果 采用该方法对目标进行检测跟踪的结果如图: 图3 帧原始图像 图1 帧原始图像 图4 帧检测结果 参考文献 1 Open Source Computer Image Library Reference Mannual.2001(8). 2 刘瑞祯,于仕琪.《OpenCV 教程——基础篇》北京航空 图2 帧检测结果 航天大学出版社 2008 年 6 月. 从这个实验结果可以看出,粒子滤波外推可以比较好的 3 刘军民,高岳林.混沌粒子群优化算法J.计算机应用,解决目标跟踪以及目标粘连的特殊情况。
同时,OpenCV 提 2008,2.供的 Kalman 滤波函数有很好的实时性,可以满足视频处理 4 李睿,刘涛,李明.基于 Mean_shift 的粒子滤波算法在遮的要求,本实验中程序的处理速度为 18 帧/秒。
挡目标跟踪中的应用J.科学技术与工程,2008,7.
上一篇:
边干边学LabVIEW报表生成
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a