动态图像的追踪
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接下来的工作:
1.分析人脸追踪代码 2.查找资料弄清楚kalman滤波器如何预 测、追踪运动目标 3.
谢谢!
2010.11.5
注:式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统 1 2 5 的预测。 X(k|k-1)是利用上一状态预测的结果 X(k-1|k-1)是上一状态最优的结果 P(k|k-1)是X(k|k-1)对应的covariance Kg为卡尔曼增益(Kalman Gain)
一个简单的例子来解释kalman filter
交通视频监控系统
之
动态图像Fra Baidu bibliotek追踪
小组成员:董乐 廉飚 吴昊
内容结构
人脸动态追踪 演示
1.实验环境搭建 2.程序的配置调试过 程
动态图像追踪:
Kalman滤波器算法
一: 人脸动态追踪演示 实验环境搭建及运行示例代码 程序的配置调试过程
实验环境
Windows平台 + VC++6.0 + OpenCV1.0
代码调试过程
代码调试过程 1:安装OpenCV 从http://www.opencv.org.cn 下载 http://www.opencv.org.cn OpenCV安装程序,安装到 C:\Program Files\OpenCV即可 如图:
注意:在安装时选择“将\OpenCV\bin加入
系统变量"(Add\OpenCV\bin to the systerm PATH)。
现在我们已经得到k时刻的最优温度值 了,下一步就是要进入k+1时刻,进行 新的最优估算。到现在为止,好像还 没看到什么自回归的东西出现。对了, 在进入k+1时刻之前,我们还要算出k 时刻那个最优值(24.56度)的偏差。 算法如下:((1-Kg)*5^2)^0.5=2.35。这 里的5就是上面的k时刻你预测的那个 23度温度值的偏差,得出的2.35就是 进入k+1时刻以后k时刻估算出的最优 温度值的偏差
4.运行示例程序facedetect.c(人脸识 别程序)运行结果如下图:
交通视频监控系统组成
运动目标检测 运动目标追踪
动态图像追踪简介 动态图像追踪技术就是在一段视频序列中的每幅图 像找到所感兴趣的运动目标所处的位置,以便进行 跟踪、分类或识别,其在军事、国防、工业过程控 制、医学研究、交通监控、飞机导航等领域有着广 泛的应用前景。运动目标跟踪的目的就是通过对序 列图像进行分析研究,计算出运动目标在连续帧图 像中的位移,给出运动目标速度等运动参数,而对 缓解城市交通拥挤、堵塞、违规现象提供依据。利 用图像捕捉并跟踪我们感兴趣的运动目标,形成运 动目标的序列图像由于比静止目标的一帧图像提供 了更多的有用信息,使得可以利用序列图像检测出 在单帧图像中很难检测出的目标
1.背景差法 2.帧间差分法 3.光流法
二:动态图像追踪
动态目标追踪常用方法:
1.Kalman滤波器法 2.波门跟踪法 3.主动轮廓线跟踪法 4.模板匹配跟踪法 5.多模跟踪法
Kalman滤波器法
Kalman filter简介 根据物理学中运动方程来估计目标的位置, 简单的说来,kalman filter是一个“optimal recursive data process algorithm(最优化自 回归数据处理算法)”,对解决很大部分的问 题,他是最优,效率最好的。他广泛应用于 机器人导航、控制、传感器数据融合、军事 方面的雷达系统以及导弹追踪等等。近些年 更被广泛应用于计算机图像处理,例如头脸 识别,图像分割,图像边缘检测等
然后选择source files,在下方填入路 径,最后点击OK完成设置
2,项目设置:每创建一个将要使用的 OpenCV的VC Project,都需要给他指 定需要的lib。菜单:Project>Settings ,然后将Setting for选为All Configutations,然后选择右边的link 标签,在Object/library modules附加 上Cxcore lib cv.lib ml.lib highgui.lib cvcam.lib 如图:
对房间温度的预测 1.根据自己经验预测值,但是对自己的 经验存在一个偏差(这个偏差专业点 的说法叫:高斯白噪声) 2.温度计的测量值,温度计同样会有个 偏差(高斯白噪声)
根据以上两个值结合他们的噪声来预测房间 的实际温度 首先要根据k-1时刻的温度值,来预测K时刻 的温度因为你相信温度是恒定的,所以你会 得到k时刻的温度预测值是跟k-1时刻一样的, 假设是23度,同时该值的高斯噪声的偏差是 5度(5是这样得到的:如果k-1时刻估算出 的最优温度值的偏差是3,你对自己预测的 不确定度是4度,他们平方相加再开方,就 是5)。然后,你从温度计那里得到了k时刻 的温度值,假设是25度,同时该值的偏差是 4度。
由于我们用于估算k时刻的实际温度有 两个温度值,分别是23度和25度。究 竟实际温度是多少呢?相信自己还是 相信温度计呢?究竟相信谁多一点, 我们可以用他们的covariance来判断。 因为Kg^2=5^2/(5^2+4^2),所以 Kg=0.78,我们可以估算出k时刻的实 际温度值是:23+0.78*(25-23)=24.56 度。可以看出,因为温度计的 covariance比较小(比较相信温度计), 所以估算出的最优温度值偏向温度计 的值。
Kalman filter原理
根据物理学中运动方程来估计目标的位置 利用反馈控制系统估计运动状态,该过程分 两步:预测和修正。 1.预测:负责利用当前的状态和误差协方差估 计下一时刻的状态,得到先验估计。 2.修正:负责反馈,将新的实际观测值与先验 估计值一起考虑,从而获得后验估计。 在每次完成预测和修正以后,由后验估计值预 测下一时刻的先验估计,重复以上步骤,这 就是Kalman 滤波器的递归工作原理
本质上就5条公式:
1.X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1) 2.P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2) 3.X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3) 4.Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4) 5.P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)
2:配置windows环境变量 检查C:\Program Files\OpenCV\bin 是 否已近被加入到环境变量path,如果 没有则需要加入 如图:
3.配置visual c++6.0
1.全局设置:菜单Tools->Options>Directories :先设置lib路径,选择 Library files,在下方填入路径: C:\Program Files\OpenCV\lib 。然后 选择include files,在下方填入路径: 如图:
时刻
自己 预测 值
偏差
温度 计测 量值
偏差
K-1 k k+1 K+2 23
3 5 25
4 4 4 4
实际 值 (估 计值) 23 24.56
24.56 2.35
总结:Kalman 滤波器是一套基本公式, 用于预测修正的评估,在最小化协方 差估计误差方面表现出众。他不要求 保存过去的测量数据,新的数据测得 以后,根据新的数据和前一时刻的参 数估计值,根据递推公式,可计算出 新的参数估计值。这样大大减少了滤 波装置的存储量和计算量。同时又是 一种最优算法,此算法在运动目标追 踪方面有很大的优势,运用广泛。
OpenCV简介
OpenCV(Open Source Computer Vision Library) 是一个基于C/C++语言的计算机视觉库。它轻量级 而且高效,由一系列的C函数和少量的C++类构成, 实习了图像处理和计算机视觉方面的很多通用算法, 可以进行图像/视频载入、保存和采集的常规操作。 OpenCV应用领域:物体识别,人脸识别,动作识 别,运动跟踪,图像分割,机器人等方面。 OpenCV特点:提供丰富的时间处理算法,开源, 便于算法移植,OpenCV的代码经过适当改写可以 正常的运行在DSP系统和单片机系统中,支持绝大 多数格式的图片处理,支持从摄像头或视频文件 (如AVI格式)中捕捉帧画面。