时序分析: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) 维特比算法 编辑 维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中.术语“维特比 ...
随机推荐
- BZOJ 1232 USACO 2008 Nov. 安慰奶牛Cheer
[题解] 对于每一条边,我们通过它需要花费的代价是边权的两倍加上这条边两个端点的点权. 我们把每条边的边权设为上述的值,然后跑一边最小生成树,再把答案加上最小的点权就好了. #include<c ...
- android 彩信附件添加删除
http://blog.csdn.net/yuzhu_guan2012/article/details/6679154
- 【Codeforces 1106E】Lunar New Year and Red Envelopes
[链接] 我是链接,点我呀:) [题意] 给你k个红包,每个红包可以在si..ti的时间范围内拿走. 抢完红包之后你得到wi元,然后你需要在di+1时刻才能继续抢红包 时间是线性的从1..n 然后某个 ...
- 【[Offer收割]编程练习赛13 A】风格不统一如何写程序
[题目链接]:http://hihocoder.com/problemset/problem/1501 [题意] [题解] 模拟题 [Number Of WA] 1 [完整代码] #include & ...
- Oracle EBS LOV速度优化
一.现象 本文地址:http://blog.csdn.net/sunansheng/article/details/50952758 当我们的EBS LOV的SQL写得比較复杂.或者数据量比較多时,L ...
- UISearchBar作为inputAccessoryView时的响应链
UISearchBar对象做为一个普通的视图对象加入到视图控制器的self.view中,定义.初始化.设置delegate.然后becomeFirstResponder,最后resignFirstRe ...
- ubuntu下eclipse连接mysql
提示:一定要保证电脑处于联网状态 我们要下载一个mysql-connector-java-5.0.8-bin.jar的东西(当然这个jar包的版本号和你的mysql版本号的关系不是非常大),放到你新建 ...
- 剑指Offer——面试小提示(持续更新中)
(1)应聘者在电话面试的时候应尽可能用形象的语言把细节说清楚. (2)假设在英语面试时没有听清或没有听懂面试官的问题,应聘者要敢于说Pardon. (3)在共享桌面远程面试中.面试官最关心的是应聘者的 ...
- DirectFB编程【转】
本文转载自:http://www.cnblogs.com/274914765qq/p/4358088.html DirectFB编程 一.简介 DirectFB是一个轻量级的提供硬件图形加速,输入设备 ...
- 牛逼的postman,分类管理更好用