基于一次手势训练的kinect 3D 动态手势识别(提纲)
来源:互联网 发布:全站仪怎么导出数据 编辑:程序博客网 时间:2024/04/29 22:05
正在做kinect手势识别的项目,boss检查进度需要,特发一篇文章来记录所学顺便整理思路~~
基于一次手势训练是指一个手势的训练样本只有一个,无法使用SVM这种需要大量训练样本的模型
整体步骤有3个
一、手势分割
测试的视频中可能中不止一个手势,想将它们识别首先要做的是分割手势。可以用 Dynamic Time Warping(DTW),简单说原理就是时间上整合,消除手势挥动速度的影响。下面这个网址讲的很详细,就不复制了
http://blog.csdn.net/zouxy09/article/details/9140207点击打开链接
音频DTW和视频DTW原理相同,只是视频的纵坐标是向量,求距离的时候要求向量距离(差的平方和)而已。
二、视频图像特征提取
包括 关键点提取 和 关键点特征描述
基础知识:
(a)高斯金字塔、DOG金字塔的建立
(b) sift原理和代码
http://blog.csdn.net/xiaowei_cqu/article/details/8069548
http://blog.csdn.net/zddblog/article/details/7521424
sift算法要做两步:一是通过求局部极值提取兴趣点,二是计算兴趣点的梯度信息,运动信息(通过建立光流金字塔)
sift提取的兴趣点信息是xy轴的信息(每个特征点的维度=128维梯度信息+128运动信息),对于3D信息来说还要提取yz,,xz轴的信息(原理同xy轴一样),则每个特征点的维度=(128+128)X3=768维
其实sift的原理不用理解得很深入可以直接做2d识别项目,opencv简单地调用一两个函数就可以搞定,3D代码还需要自己修改一些东西。
三、手势分类
基于一次手势训练是指一个手势的训练样本只有一个,无法使用SVM这种需要大量训练样本的模型,这里可以采用K最近邻的方法来获取最终手势分分类。
具体步骤是:
1、对由训练样本获得的特征点向量信息通过聚类(kmean)训得到字典(codebook),计算出训练样本每一个特征点向量到哪个字典类心向量最近(欧式距离),最后得出代表这个训练样本特征的统计直方图(相当于稀疏编码)。
2、然后提取出测试样本的特征点向量信息,算出每一个特征点向量到那个字典类心向量最近(欧式距离),最后得出代表这个训练样本特征的统计直方图(相当于稀疏编码)。
3、对比所有训练样本统计直方图和测试样本统计直方图,用matlab的Knn分类的到最后手势识别的结果。。
全部流程推荐第一、第三大步骤用matlab编写,第二大步骤用opencv编写方便点
(转载请注明作者和出处:http://blog.csdn.net/a1363901216未经允许请勿用于商业用途)
- 基于一次手势训练的kinect 3D 动态手势识别(提纲)
- 基于C++的Kinect手势识别实现
- kinect 手势识别的原理?
- 基于Kinect的手势识别的相关资讯
- SoundWave:基于声波的手势识别 笔记本一秒变Kinect
- 基于Kinect手势跟踪和识别
- 手势动态识别(基于opencv的简单实现)
- kinect+openni手势识别
- 手势识别Kinect
- Kinect 手势识别
- Kinect 常用识别手势
- 关于Kinect手势识别的一点体会
- 动态手势识别--训练模板方法(三)
- 基于opencv 的手势识别(转)
- 【图像识别】【读论文】基于Kinect手势识别的网页控制软件设计——陈建军
- Kinect中动态手势的识别算法——倒序识别法
- 基于opencv和Tensorflow的实时手势识别(3)
- 基于opencv的手势识别
- 挑战2.1 Backward Digit Sums(POJ 3187)
- Linux内存管理和性能学习笔记(一):内存测量与堆内存
- Android 自定义View (六)
- LINUX内核升级 - 更新网卡驱动
- Mac OS--CLOC
- 基于一次手势训练的kinect 3D 动态手势识别(提纲)
- svn 搭建
- 单链表逆置
- 黑马程序员——集合框架
- 卡尔曼滤波原理
- & && | || 什么意思?怎么用?
- 准备蓝桥杯--dyx--01字串
- 《RFID技术与应用》第一部分基础理论学习
- 对分查找