- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
meanshift算法工作进度
工作进度:
仔细阅读了一个运用OpenCV中CamShift算法编写的视频跟踪程序,对整个项目的程序框架有了整体的感知。具体程序见附件“camshiftdemo.c”对其进行了更详细的注解。
2.现正在进一步学习manshift算法;主要方式是OpenCV中CvFuzzyMeanShiftTracker.cpp源程序和文献中MeanShift相关的数学公式结合,深刻学习MeanShift的原理和思想。但是我遇到了问题就是数学公式需要扎实概率论的基础。所以这方面工作比预期的计划安排推迟半周。
这是meanshift用的数学计算流程:
目标函数:最大的Bha相似系数。?
输入:目标的颜色概率分布q(u)及初始位置y0
步骤:
1、依据初始位置y0,计算y0处的侯选目标的概率分布p(y0)以及Bha?相似系数[p(y0),q(u)];
2、依据公式计算 权重wi;
3、?依据公式计算新的位置y1;
4、?计算y1处的侯选目标的概率分布p(y1)以及Bha?相似系数[p(y1),q(u)];如果[p(y1),q(u)][p(y0),q(u)],则y1=1/2(y0+y1);再重新计算。
5、如果|y1-y0|c,则迭代结束,否则y0=y1,跳到第1步继续进行。
其中,
第2步wi的计算,是 由于将目标函数按泰勒级数展开后,舍弃二级(包含)以上的高阶,而得到的一个系数。
第3步是 meanshift迭代的一个表达式。
第4步是为了保证Bha?相似系数始终增大,而且据Meer论文中提到在实际测试过程中,只有小于0.1%的概率会出现Bha?相似系数情况所以有时也可省略。目标函数:最大的Bha相似系数。?
输入:目标的颜色概率分布q(u)及初始位置y0
步骤:
1、依据初始位置y0,计算y0处的侯选目标的概率分布p(y0)以及Bha?相似系数[p(y0),q(u)];
2、依据公式计算 权重wi;
3、?依据公式计算新的位置y1;
4、?计算y1处的侯选目标的概率分布p(y1)以及Bha?相似系数[p(y1),q(u)];如果[p(y1),q(u)][p(y0),q(u)],则y1=1/2(y0+y1);再重新计算。
5、如果|y1-y0|c,则迭代结束,否则y0=y1,跳到第1步继续进行。
?其中,
第2步wi的计算,是 由于将目标函数按泰勒级数展开后,舍弃二级(包含)以上的高阶,而得到的一个系数。
第3步是 meanshift迭代的一个表达式。
第4步是为了保证Bha?相似系数始终增大,而且据Meer论文中提到在实际测试过程中,只有小于0.1%的概率会出现Bha?相似系数情况。所以有时也可省略。
?最近看到一个改进是,利用kalman滤波器对初始点进行预测,然后meanshift进行迭代找到局部最相似的目标,同时对目标运动距离和最大相似性系数进行计算.再利用运动相对距离和最大相似性系数(值小了,可信度就低,表明目标被遮挡了.)对kalman的状态矩阵进行更新.再对目标位置进行下一次的预测,再下一轮的计算.
kalman滤波器对初始点进行预测,然后meanshift进行迭代找到局部最相似的目标,同时对目标运动距离和最大相似性系数进行计算.再利用运动相对距离和最大相似性系数(值小了,可信度就低,表明目标被遮挡了.)对kalman的状态矩阵进行更新.再对目标位置进行下一次的预测,再下一轮的计算//对运动物体的跟踪:
//如果背景固定,可用帧差法然后在计算下连通域将面积小的去掉即可
//如果背景单一,即你要跟踪的物体颜色和背景色有较大区别可用基于颜色的跟踪如CAMSHIFT 鲁棒性都是较好的
//如果背景复杂,如背景中有和前景一样的颜色就需要用到一些具有预测性的算法如卡尔曼滤波等可以和CAMSHIFT结合
#ifdef _CH_
#pragma package opencv
#endif
#ifndef _EiC
#include cv.h
#include highgui.h
#include stdio.h
#include ctype.h
#endif
IplImage *image = 0, *hsv = 0, *hue = 0, *mask = 0, *backproject = 0, *histimg = 0;
//用HSV中的Hue分量进行跟踪
CvHistogram *hist = 0;
//直方图类
int backproject_mode = 0;
int select_object = 0;
int track_object = 0;
int show_hist = 1;
CvPoint origin;
CvRect selection;
CvRect track_window;
CvBox2D track_box;
//M
文档评论(0)