手势识别

ChaLearn Gesture Challenge挑战赛是手势识别中比较新的(2011年开始的)一个挑战赛,属于机器学习挑战赛中的一个,其初衷是进行One-Shot learning的挑战,当然也不局限在此。官网为:http://gesture.chalearn.org/  ,2012年分别主办了两轮比赛,一个是在CVPR2012中进行,另一个是在ICPR2012中进行。关于本次比赛的一些规则,以及已经完成比赛的作者的识别方法的一些细节在官网上都能查看得到。大家有兴趣13年也可以参加下。因为在日常生活中会遇到各种各样的手势,如果对这些手势的识别能取得很大成功的话,那么离AI又更近一步了,下面这张图是生

活中常见产生手势的场所:

  

  本文主要是简单介绍下关于这个挑战赛的数据库,数据库的英文名称为ChaLearn Gesture Data,简称CGD,或者CGD2011。数据库可以从http://gesture.chalearn.org/data/cgd2011这里下载,如果下载压缩版的则大小约5G,否则无压缩版的则达到30G。考虑到即使压缩过后,其实也不会对识别结果有太大的影响,且本人电脑承受能力有限,所以我这里下载了个压缩版的。

  当然了,下载下来后的数据库都是视频格式,分为深度图像视频和彩色图像视频,因为在录制视频的时候是用Kinect录制的。由此可见,这些手势识别既可以能有深度信息又可以利用色彩信息,这对搞深度数据的行为识别的人算是一个很好的公共数据库了。

  下面是这个数据库的一些特征:

  1. 共有30个左右的手势单词,也就是说有30个基本的手势动作。

  2. 视频数据分为500个batch,每个batch含有94个视频,视频分为2种,每种各47个。如果视频名称为M_x.avi的话,则表示是RGB图像的视频,否则名称为K_x.avi表示的是深度图像的视频。每个视频有可能有多个基本手势动作,一般是1~5个,且每个batch最终是100个手势,很明显这中间有重复的手势(因为总共才有30个手势单词)。因此,最终有50000=500*100个手势。每个batch如下图显示:

  

  当然了,其中还包含了2个csv文件,用来描述训练和测试数据用的(具体应用还没弄过)。

  3. 视频数据的录制是由20个人完成的。取出一个人的某一个手势的深度图和RGB图,显示如下:

  

  4. 视频中每一张图片的大小为240*320.

  5. 视频的帧率是每秒10帧。

  6. 这500个batch又分为2种,即”devel”和”valid”,其中”devel”有480个,”valid”有20个。”devel”表示可用于挑战赛开发(development)的数据库,这些数据提供了训练数据和测试数据的标注。”valid”表示用于验证(validation)的,只提供了训练数据的标签。测试结果需要在网络上提交。

  7. 深度图像是以灰阶的形式显示出来的,其计算公式如下所示:

  f(x)=(x-mini)/(maxi-mini),max为最大距离,min为最小距离。X是当前点的距离,f(x)为深度图像显示时的灰度值。

  8. 深度图像也是有不同精度的,因为录制数据时的软件版本不同。这里分为3个精度,0表示一般(Mediocre),1表示比较好(Good),2表示非常好(Very Good). 比如说前面几个batch的精度显示如下(num表示序号,acc表示精度, miss表示漏洞的文件):

   

  如果大家是研究手势识别的话,特别是基于Kinet深度信息的,可以一起交流下,挑战下这个数据库!

 

  参考资料:

     http://gesture.chalearn.org/

关于ChaLearn数据库在前面文章ChaLearn Gesture Challenge_1:CGD数据库简单介绍中已经介绍过,当然了,关于该数据库的挑战赛在2012年主办了2场,其比赛结果依次分别在CCPRW2012和ICPRW2012中公布。这2轮比赛过程中官网http://gesture.chalearn.org/中都有对参加比赛的队伍所使用的方法等从感性上做了个调查,并且公布了其调查报告。从这些报告中我们可以参考到做手势识别的大概流程,每个流程中常见的方法是什么,我想这点对初步进入该领域的人来说应该有很大的启发作用。下面就官网发布的第二轮比赛调查Method survey文章来简单分析下。

  从文章中可以看出识别过程主要分为2大部分:预处理及数据表达、识别。

  其中预处理及数据表达又可以细分为很多,比如说图像增强和滤波,这有时候也是需要的,因为识别的视频数据中有不少噪声。文章对比赛获得前8名的方法分析了下,其结果如下:

   

  其中的方法也有不少,比如说去噪,均衡白化,对比度增强,频域变化,背景消除等。特征提取各队伍使用的方法分布如下:

   

  其中包括了常见的HOG/HOF描述等。

  当然了,特征最终提取出来还是要经过维数约简的,如下:

   

  在识别过程中,有可能会使用到时间分割,如下:

   

  很多分割方法和识别是结合在一起的。

 

  当然了,识别过程中比较重要的是手势的表达,这些队伍使用的方法如下:

   

  其中基于可变长度的向量表示最多。

 

  在分类时的相似度测量,使用的方法分布如下:

   

  最后面就是使用的分类器了,如下所示:

   

  可以看出在这些队伍中,用得最多的分类器是最近邻。

 

  现在总结下手势识别系统的大概流程可以如下(当然了,并不是每个步骤都需要的):

  去噪预处理——》时间分割——》特征提取——》维数约简——》特征表示——》分类器设计(可能用到相似度测量).

 

 

  参考资料:

     http://gesture.chalearn.org/

      Method survey

     ChaLearn Gesture Challenge_1:CGD数据库简单介绍


本文转载自http://blog.csdn.net/onezeros/article/details/6196095

指尖检测根据应用可以分为单指尖检测和多指尖检测。

下面是我在工作中想到的方法,希望对你有用或提供点儿灵感。

 

单指尖检测新方法:重心距离法

  1. 找到手的区域,我一般用肤色检测
  2. 计算手的区域的重心
  3. 在手的区域的边缘点集中寻找距离重心最远的点,该点即为指尖候选位置
  4. 判断找到的点是否为指尖。判据:候选点到重心的距离大于边缘到重心平均距离的1.6倍,即为指尖;否则不是指尖,也就是说没有手指伸出

 

下面是我在随便挑的几张图片上做的试验

 

下面是我在应用中的试验截图:

说明:红色圆是平均距离;蓝色为重心;绿色表示最远点,其中叉表示该点不是指尖,矩形表示该点是指尖

仔细看图,你会知道该算法的准确度怎么样

 

多指尖检测方法之一:

    1.细化图像,端点就是候选指尖点集:

    2.找出指尖的点。仍然可以用重心距离法,当然这次操作是在候选指尖点集中进行

 

本算法主要用于多指尖检测。

 

 多指尖检测方法之二:

 

 本算法是单指尖检测重心距离法的延伸

算法:找出手的区域的freeman chain code,也就是一个有序的边缘,然后求出其中所有点到重心的距离

相信你看到下图就会迫不及待地想要用自己的方法找到指尖,正好,因为我还没有找到准确度很高的找到指尖的方法。

这里我只是提供一个比较有效地特征,希望对你有用。

对图像的说明:四条线,从下往上,第一条是各点到重心的距离,第二条是第一条线的平滑,第四条是第一条的导数,第三条是第四条的平滑

第一组:

 

第二组:

 

 

多指尖检测方法之三:

使用轮廓

指尖检测根据应用可以分为单指尖检测和多指尖检测。

下面是我在工作中想到的方法,希望对你有用或提供点儿灵感。

 

单指尖检测新方法:重心距离法

  1. 找到手的区域,我一般用肤色检测
  2. 计算手的区域的重心
  3. 在手的区域的边缘点集中寻找距离重心最远的点,该点即为指尖候选位置
  4. 判断找到的点是否为指尖。判据:候选点到重心的距离大于边缘到重心平均距离的1.6倍,即为指尖;否则不是指尖,也就是说没有手指伸出

 

下面是我在随便挑的几张图片上做的试验

 

下面是我在应用中的试验截图:

说明:红色圆是平均距离;蓝色为重心;绿色表示最远点,其中叉表示该点不是指尖,矩形表示该点是指尖

仔细看图,你会知道该算法的准确度怎么样

 

多指尖检测方法之一:

    1.细化图像,端点就是候选指尖点集:

    2.找出指尖的点。仍然可以用重心距离法,当然这次操作是在候选指尖点集中进行

 

本算法主要用于多指尖检测。

 

 多指尖检测方法之二:

 

 本算法是单指尖检测重心距离法的延伸

算法:找出手的区域的freeman chain code,也就是一个有序的边缘,然后求出其中所有点到重心的距离

相信你看到下图就会迫不及待地想要用自己的方法找到指尖,正好,因为我还没有找到准确度很高的找到指尖的方法。

这里我只是提供一个比较有效地特征,希望对你有用。

对图像的说明:四条线,从下往上,第一条是各点到重心的距离,第二条是第一条线的平滑,第四条是第一条的导数,第三条是第四条的平滑

第一组:

 

第二组:

 

 

多指尖检测方法之三:

使用轮廓




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值