时序分析:HMM模型(状态空间)
关于HMM模型:时序分析:隐马尔科夫模型
HMM用于手势识别: 训练时每一种手势对应一个HMM-Model,识别率取最大的一个HMM即可。 类似于一个封装的完成多类识别器功能单层网络。
优点: 尤其适用于时间序列的建模,对复杂度高的动作也具有较高的识别精度,易于添加和修改手势库。
缺点:训练的难度大(需要多的样本来完成图的优化)。
以下引自于一篇论文:基于马尔可夫模型的手势识别算法。修改为了与我自己的项目相关的东西。
引言:
基于隐马尔可夫模型的动态手势识别一般是应用手势的时间特性进行识别。单一的手势可被认为是不同手形序列组成的,多个手势可由手形及其运动轨迹加以区分。可同时
应用手形及其运动轨迹两大特征进行手势识别(把静态手型作为特征向量的一个维度),在轮廓跟踪过程中,获得当前的手部轮廓,获取多自由度(六自由度(欧式位置x,y,x和欧式位姿alpha,beta,theta) + 一个静态手势码)的手势的运动轨迹,这样就可从图像序列中得到动态手势的特征向量,即观察值序列,记作Ol , l = 1,..., L,其中L为序列总数。
HMM的特征向量:
获取手势的观察值序列:
手势轨迹的基本特征是六自由度(位置、方位角)。由于同一个用户,手势速率的变化也是比较大的,因此,本文采用六自由度(位置和角度)相结合的方法获取运动轨迹。通过基于卡尔曼滤波器[2]与自适应形状模型的轮廓跟踪算法[3],我们可得滤波器最优估计值:
Xk = (Xc^t, Yc^t, Zc^t,Xc ^t - Xc ^(t-1), Yc^t-Yc^(t-1) ,Zc^t- Zc^(t-1) ) ^T (2)
其中(Xc^t, Yc^t, Zc^t )为t 时刻的位置坐标,( Xc ^(t-1), Yc^(t-1) ,Zc^(t-1) )为t −1时刻的轮廓质点,由此可得手势轨迹的角度,如图2(a)所示。
根据所得ϕ^t ,我们采用12 方向链码进行离散化,如图2(b)所示[4]。
(图错了,懒得修改!)
在手势跟踪过程中,跟踪器根据上述方法按固定时间间隔(有些问题)从图像序列中提取手势的特征向量,可得到手势的特征观察值序列Ol , l = 1,..., L。
HMM模型训练:
在获取手势的特征观察值序列后,则可对HMM 模型进行训练。首先要对HMM模型λ = (A, B,π )初始化,由于我们采用左右结构的离散HMM 模型,因此我们设定状态i 只能返回到本身或转移到i +1状态,状态转移矩阵A可初始化为[4]:
对于初始概率分布,设定:
π1 =1,
πi =0( i ≠ 1);
即假设HMM 是从第一个状态开始的。对于观察概率矩阵B, 设
初始模型确定以后,利用前后向递推法计算观察值序列O在这个模型下的P(O/λ ); 然后利用 Baum-Welch 算法对初始 HMM 模型λ = (A, B,π )进行重新计算,HMM 的各个参数在这一过程得到重新估计,即求得新的HMM 模型λˆ = (Aˆ, Bˆ,πˆ); 再利用 Viterbi 算法计算出观察序列O在这个模型下的P(O/λˆ)。
为了估计出最接近观察值序列O的HMM模型,我们设定阈值ε ,当 P(O /λˆ) − P(O /λ ) <ε 时即得到训练出的HMM模型;否则令 λ =λˆ。重复此步骤,直到P(O/λ )收敛,得到最接近观察值的HMM 模型。
基于HMM的识别过程:
基于HMM 模型进行手势识别研究,大多采用计算某测试样本与参考模型集的似然度,通过判断最大值以确定测试样本的类别[5]。基于这一原理,采用HMM 实现动态手势识别,HMM的输入为跟踪器提取的特征观察值序列Ol , l = 1,..., L。图像序列中手势识别过程可归纳为(流程图如图3
所示):
(1)检测手部位置初始化跟踪器,跟踪算法如文献[2]所述。
(2)在执行手势的图像序列中提取手部轮廓并按固定时间间隔获得手形与手势运动轨迹两类特征向量。
(3)由(2)可得特征观察值序列o l,将其作为训练所得HMM 模型的输入值,并应用前后向递推算法求其似然值,判断出最大可能手势。
参考文献:
[1]段洪伟. 基于视觉的手势识别及其应用 [D]. 上海:上海大学,2004
[2]NUMMIARO K,KOLLER-MEIER E,VAN GOOLL. An adaptive color-based particle filter [J]. Image and VisionComputing,2002,21(1):99-110
[3]齐苏敏,黄贤武,孟静. 基于自适应活动轮廓模型的实时手势跟踪 [J]. 计算机科学,2006,33(11):192-194.
[4]孔晓明. 人机交互系统中动态手势识别的研究 [D].上海:上海大学,2005
[5]FREEMAN W,WEISSMAN C. Television control by hand gestures [C]. Proc IEEE Int'I Conf. on Automated Face and Gesture Recognition (FG'95),1995:179-183
[6]RAMAMOORTHY A , VASWANI N , etl.all.Recognition of dynamic hand gestures [J]. Pattern Recognition,36(9):2069-2081
时序分析:HMM模型(状态空间)的更多相关文章
- HMM模型
通过前几时断续的学习,发现自己对HMM模型的了解还只停留在皮毛,导致在学习CRF模型并将其与最大熵模型.HMM.MEMM做比较时感觉很吃力,所以又花了两天时间使劲看了遍HMM,发现了解得确实深刻了很多 ...
- 应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型
选自:http://maotong.blog.hexun.com/6261873_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- 应用HTK搭建语音拨号系统2:创建单音素HMM模型
选自:http://maotong.blog.hexun.com/6204849_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- 隐马尔科夫模型HMM(一)HMM模型
隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比 ...
- HMM模型学习笔记(前向算法实例)
HMM算法想必大家已经听说了好多次了,完全看公式一头雾水.但是HMM的基本理论其实很简单.因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察 ...
- 数学之美——HMM模型(二)解码和Forward算法
上一篇讨论了HMM的基本概念和一些性质,HMM在现实中还是比较常见的,因此也带来一了一系列的HMM应用问题.HMM应用主要面向三个方面:预测.解码和学习.这篇主要讨论预测. 简单来说,预测就是给定HM ...
- 数学之美——HMM模型(一)介绍
一直想写点关于数学方面的blog,这对于数据挖掘分析,NLP处理等都有着比较重要的作用,之前在CSDN上想写点HMM方面的文章,一直没写成,最近几天终于抽点时间完成了HMM的文章,加以整理,遂有这个系 ...
- HMM 模型输入数据处理的优雅做法 来自实际项目
实际项目我是这样做的: def mining_ue_procedures_behavior(seq, lengths, imsi_list): print("seq 3:", se ...
- HMM模型学习笔记(维特比算法)
维特比算法(Viterbi) 维特比算法 编辑 维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中.术语“维特比 ...
随机推荐
- <embed> 标签
<embed> 标签定义嵌入的内容,比如插件. <embed quality="high" bgcolor="#FFF" wmode=&quo ...
- Python之路【第一篇】:Python基础
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- M - Substrings
You are given a number of case-sensitive strings of alphabetic characters, find the largest string X ...
- 实战体验几种MySQLCluster方案
来源:keepLearning的专栏 http://www.2cto.com/database/201504/387166.html 1.背景 MySQL的cluster方案有很多官方和第三 ...
- 快速傅立叶变换&HDU 1402
参考http://www.cnblogs.com/v-July-v/archive/2011/08/13/2214132.html <算导> 那么,更快速的多项式乘法就依赖于能否把一个系数 ...
- c++ 双冒号的作用
转:原文:http://www.cnblogs.com/charley_yang/archive/2011/02/24/1964217.html #define FLY 10 #line 100 &q ...
- NPM 3 Beta为Windows用户带来利好消息
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/angular-2-react-native-roadmap 近日,np ...
- Extjs4,form提交时emptyText传值问题
在Extjs4中,form提交时,文本框的emptyText会传到后台,比如 上图中的“请选择”这样的文本会作为值传到后台. 解决方法: form提交时配置 submitEmptyText: fal ...
- luogu3382【模板】三分法
给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 看代码即可. #include <cstdio> #include < ...
- 浅谈EL与JSTL
讲道理,自己在博大精深的Java世界里还只是一个很小很小的菜鸟.处于成长与学习之中,但学习一个漫长的过程.尤其对于那些知识点我觉得总结是尤为重要的.反正在我看来这段时间里虽然过了很多知识但却是一脸懵逼 ...