名站之家

首页 / 正文

如一模式识别研究

收录时间:2017-10-20 16:12:15 / 提交网站:zhaomingming.cn / 网友热评 查看是否已被百度收录 查看是否已被谷歌收录 查看是否已被搜狗收录 查看是否已被360收录

如一模式识别研究

摘要: 模式识别方面材料整理。

username= 如一模式识别研究
登录后台 退出 后台管理 添加文章 注册管理员
如一模式识别研究 基本数学知识 语音识别研 图像识别研究 关于
回首页
语音识别
图像识别
基本数学知识
vc++
OPENCV
智能算法
matlab
其他小技巧
JAVA
电子电路
matlab平时常用函数
工作计划
python
准日记
deeplearning
关于 如一模式识别
帮助 如一模式识别 粒子滤波 一直都觉得粒子滤波是个挺牛的东西,每次试图看文献都被复杂的数学符号搞得看不下去。一个偶然的机会发现了Rob Hess(http://web.engr.oregonstate.edu/~hess/)实现的这个粒子滤波。从代码入手,一下子就明白了粒子滤波的原理。根据维基百科上对粒子滤波的介绍(http://en.wikipedia.org/wiki/Particle_filter),粒子滤波其实有很多变种,Rob Hess实现的这种应该是最基本的一种,Sampling Importance Resampling (SIR),根据重要性重采样。下面是我对粒子滤波实现物体跟踪的算法原理的粗浅理解: 1)初始化阶段-提取跟踪目标特征 该阶段要人工指定跟踪目标,程序计算跟踪目标的特征,比如可以采用目标的颜色特征。具体到Rob Hess的代码,开始时需要人工用鼠标拖动出一个跟踪区域,然后程序自动计算该区域色调(Hue)空间的直方图,即为目标的特征。直方图可以用一个向量来表示,所以目标特征就是一个N*1的向量V。 2)搜索阶段-放狗 好,我们已经掌握了目标的特征,下面放出很多条狗,去搜索目标对象,这里的狗就是粒子particle。狗有很多种放法。比如,a)均匀的放:即在整个图像平面均匀的撒粒子(uniform distribution);b)在上一帧得到的目标附近按照高斯分布来放,可以理解成,靠近目标的地方多放,远离目标的地方少放。Rob Hess的代码用的是后一种方法。狗放出去后,每条狗怎么搜索目标呢?就是按照初始化阶段得到的目标特征(色调直方图,向量V)。每条狗计算它所处的位置处图像的颜色特征,得到一个色调直方图,向量Vi,计算该直方图与目标直方图的相似性。相似性有多种度量,最简单的一种是计算sum(abs(Vi-V)).每条狗算出相似度后再做一次归一化,使得所有的狗得到的相似度加起来等于1. 3)决策阶段 我们放出去的一条条聪明的狗向我们发回报告,“一号狗处图像与目标的相似度是0.3”,“二号狗处图像与目标的相似度是0.02”,“三号狗处图像与目标的相似度是0.0003”,“N号狗处图像与目标的相似度是0.013”...那么目标究竟最可能在哪里呢?我们做次加权平均吧。设N号狗的图像像素坐标是(Xn,Yn),它报告的相似度是Wn,于是目标最可能的像素坐标X = sum(Xn*Wn),Y = sum(Yn*Wn). 4)重采样阶段Resampling 既然我们是在做目标跟踪,一般说来,目标是跑来跑去乱动的。在新的一帧图像里,目标可能在哪里呢?还是让我们放狗搜索吧。但现在应该怎样放狗呢?让我们重温下狗狗们的报告吧。“一号狗处图像与目标的相似度是0.3”,“二号狗处图像与目标的相似度是0.02”,“三号狗处图像与目标的相似度是0.0003”,“N号狗处图像与目标的相似度是0.013”...综合所有狗的报告,一号狗处的相似度最高,三号狗处的相似度最低,于是我们要重新分布警力,正所谓好钢用在刀刃上,我们在相似度最高的狗那里放更多条狗,在相似度最低的狗那里少放狗,甚至把原来那条狗也撤回来。这就是Sampling Importance Resampling,根据重要性重采样(更具重要性重新放狗)。 (2)->(3)->(4)->(2)如是反复循环,即完成了目标的动态跟踪。 根据我的粗浅理解,粒子滤波的核心思想是随机采样+重要性重采样。既然我不知道目标在哪里,那我就随机的撒粒子吧。撒完粒子后,根据特征相似度计算每个粒子的重要性,然后在重要的地方多撒粒子,不重要的地方少撒粒子。所以说粒子滤波较之蒙特卡洛滤波,计算量较小。这个思想和RANSAC算法真是不谋而合。RANSAC的思想也是(比如用在最简单的直线拟合上),既然我不知道直线方程是什么,那我就随机的取两个点先算个直线出来,然后再看有多少点符合我的这条直线。哪条直线能获得最多的点的支持,哪条直线就是目标直线。想法非常简单,但效果很好。 扯远了,下面还是说说代码吧。Rob Hess的代码好像是linux上的,我稍微改了下,让Windows+VS2008能跑。main函数在track1.c里,默认是处理附带的视频,当然可以方便的改成从摄像头输入视频(cvCaptureFromCAM)。我用的是opencv2.0,没有测试低于2.0的版本。程序开始后,读入第一帧图像后,需要用鼠标拖动出跟踪目标区域,(然后按回车)。跟踪区域较小时速度较快,跟踪区域大时明显变得很卡。代码还需要gsl库的支持,我用的是gsl1.8,下面提供了gsl1.8安装文件的下载。这里是全部代码和相关的VS2008工程文件 本站文章分类
语音识别
图像识别
基本数学知识
vc++
OPENCV
智能算法
matlab
其他小技巧
JAVA
电子电路
matlab平时常用函数
工作计划
python
准日记
deeplearning
如一模式识别 更新提示
在线课程网courses。Edit by[][2017-01-22]
命令行给github更新操作。Edit by[][2016-10-17]
Q-learning 和 DQN。Edit by[][2016-08-13]
Visualizing and Understanding Convolutional Networks笔记[from]。Edit by[selected][Wed, 27 Jul 2016 19:44:27 +0800]
15分钟学lua。Edit by[][2016-07-12]
torch/lstm。Edit by[][2016-07-09]
cifar10torchsmall.zip。Edit by[anxi][Thu, 07 Jul 2016 09:40:31 +0800]
mac 编译caffe时,veclib。Edit by[][2016-07-02]
双曲函数。Edit by[][2016-05-13]
鉴黄API。Edit by[][2016-04-22]
如一模式识别 友情链接 关于本站作者
chinaw3c
mozilla 本站相关博客Bo-blog 本站微博 人脸表情demo 搜索本站: 如一模式识别提供的内容仅用于自己学习。我们不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。当使用本站时,代表您已接受了本站的使用条款和隐私条款。版权所有,保留一切权利。如一模式识别 简体中文版的所有内容仅供测试,对任何法律问题及风险不承担任何责任。 《中华人民共和国电信与信息服务业务》信息产业部备案号 豫ICP备13014036号 登录后台 退出 后台管理 添加文章 注册管理员

TAG: 模式识别,图像识别,语音识别,matlab,vc++,c#,opencv,cximage,java,脚本,php,VB,联合编程


网友热评:

Powered By 名站之家 Version 1.2

© 2016 www.hnadsl.com. All rights reserved. 删除此页?