基于深度图像技术的手势识别方法
手势2d关键点检测算法综述

手势2d关键点检测算法综述
手势2D关键点检测算法是指通过计算机视觉技术,从给定的图像或视频中检测出手势的关键点或关键区域位置。
这些关键点可以表示手势的主要特征和姿势,广泛应用于手势识别、手势控制等领域。
以下是几种常见的手势2D关键点检测算法:
1. 传统计算机视觉算法:传统的计算机视觉算法通常采用特征提取和模式匹配的方法。
例如,使用边缘检测算法检测手势的轮廓,然后提取手势的关键点或特征点。
2. 基于深度学习的方法:近年来,随着深度学习的发展,基于卷积神经网络(CNN)的方法在手势2D关键点检测中取得了显著的进展。
这些方法通常通过训练一个CNN模型,将输入的图像映射到关键点的坐标。
3. 基于姿态估计的方法:手势2D关键点检测可以看作是人体姿态估计的一个特殊情况。
因此,一些姿态估计算法也可以用于手势2D关键点检测。
这些方法通常通过将手势视作一个人体的部分,使用CNN等方法来估计手势的关节位置。
4. 基于手工设计的特征:除了深度学习方法外,一些基于手工设计特征的方法也被用于手势2D关键点检测。
例如,利用颜色、纹理等图像特征来检测手势关键点。
总的来说,手势2D关键点检测算法在计算机视觉领域有着广
泛的研究和应用。
随着深度学习方法的不断发展,越来越多的基于深度学习的方法被应用于手势2D关键点检测,并取得了较好的效果。
mediapipe手势识别原理

mediapipe手势识别原理
MediaPipe是Google推出的一款机器学习开发框架,主要用于视频和音频处理领域。
其中,MediaPipe手势识别模块是一项重要的功能。
它基于机器学习算法和计算机视觉技术,实现了对手势动作的高效识别和分析。
下面,我们来详细介绍MediaPipe手势识别原理。
首先,MediaPipe手势识别基于深度学习算法,利用神经网络对手部关键点进行预测和定位。
在初步处理阶段,MediaPipe手势识别会使用深度学习算法预测用户手部的21个关键点,包括手指尖端、手腕等关键位置。
它利用图像和视频输入数据,并结合算法进行对比和分析,确定自然手势的类别和意图,并输出对应的动作。
其次,MediaPipe手势识别还将机器学习算法和计算机视觉技术相结合,进行特征提取和分类,实现对手势动作的分类识别。
在预测阶段,MediaPipe手势识别将根据分类模型进行精细的特征提取和计算,以准确地区分不同手势类型,从而实现高准确度的手势动作识别。
最后,通过集成多种优秀机器学习算法和计算机视觉技术,MediaPipe手势识别可以实现较高的速度和准确度。
此外,它还可以适应各种手势动作环境和不同使用场景,如直播、游戏和虚拟现实等。
因此,MediaPipe手势识别模块在许多领域都有着广泛的应用前景,特别是在智能终端设备和人机交互领域。
手势识别原理

手势识别原理
手势识别技术是一种通过分析和识别人体动作来理解人类意图的方法。
它主要基于计算机视觉和机器学习算法,在摄像头捕捉到的图像或视频中检测和识别出人体动作,进而将其转化为可理解的指令或控制信号。
手势识别的原理包括以下几个步骤:
1. 数据采集:使用摄像头或其他图像传感器采集人体动作的图像或视频数据。
2. 预处理:对采集到的图像或视频进行预处理,包括调整图像大小、滤波、边缘检测等,以提高后续处理的准确性和效率。
3. 特征提取:利用图像处理算法提取出与手势有关的特征,例如手的形状、运动轨迹、手指关节的位置等。
这些特征可以用来描述手势的形态和动作。
4. 特征选择和降维:从提取到的特征中选择最具代表性的几个特征,并进行降维处理。
这样可以减少特征维度,提高后续分类和识别的效果。
5. 分类和识别:利用机器学习算法,将特征与已有的手势模式进行比对和分类。
常用的算法包括支持向量机(SVM)、随机森林(Random Forest)和卷积神经网络(Convolutional Neural Networks, CNN)等。
6. 动作解析:识别出手势后,将其转化为控制信号或指令,以达到相应的功能。
例如,手势“握拳”可能对应着“点击”操作,手势“上下移动”可能对应着滚动页面。
手势识别技术广泛应用于各个领域,如智能家居控制、虚拟现实和增强现实交互、手势密码解锁等。
随着深度学习和人工智能的发展,手势识别技术将越来越智能和准确。
(方案)手势识别总结.ppt

Adaboost优化方法
➢ 采集多样性样本(20k) ➢ 收集实际识别图片手工裁剪样本 ➢ 将误判图片作为消极样本再训练 ➢ 使用其他的方法进行二次判断(肤色验证及SVM)
.....
手势识别的其他方法
➢ 深度相机
可分割出手型的二值图像(手型轮廓),进而通过轮廓特征 进行手势及动作识别。
2. 在每个子区域内建立LBP特征的统计直方图。整个 图片就由若干个统计直方图组成
.....
手势识别常用特.....
手势识别算法-Adaboost
.....
手势识别算法-Adaboost训练
.....
OpenCV中Adaboost算法
➢ 训练程序
opencv_traincascade.exe -data data -vec pos/pos.vec -bg neg/neg.dat -numPos 15200 -numNeg 27000 -numStages 19 -w 18 -h 30 -precalcValBufSize 1024 -precalcIdxBufSize 1024 -featureType LBP -minHitRate 0.9999 -maxFalseAlarmRate 0.5 -mode ALL
手势识别技术介绍
LOGO
.....
手势识别的分类
➢ 基于不同传感器
RGB相机 红外相机(主动、被动) 加速度传感器 深度相机(双目、 结构光、 TOF)
➢ 手势类型
静态手势识别(手型) 动态手势识别(动作及轨迹)
.....
静态手势识别方法
➢ 基于手势分割
算法复杂度低 难于分割完整的手势 对光照比较敏感
.....
hololens手势识别原理

Hololens手势识别原理1.概述Hololens是由微软公司研发的混合现实头盔,它能够将虚拟图像与现实世界相结合,为用户带来全新的交互体验。
Hololens手势识别是其重要的交互方式之一,它能够识别用户的手势并将其转化为相应的操作指令,从而实现用户与虚拟内容的交互。
本文将详细介绍Hololens 手势识别的原理和技术实现。
2.深度摄像头Hololens头盔内置了多个深度摄像头,它们能够实时捕捉用户的手部动作,并通过计算和分析实现手势的识别。
这些深度摄像头能够获取关于手部位置、形状和动作的三维信息,为后续的手势识别和跟踪奠定了基础。
3.骨骼跟踪Hololens使用骨骼跟踪技术实现对用户手部动作的识别。
在捕捉到手部图像后,系统会通过计算和分析确定手指、手掌等骨骼的位置和运动轨迹,从而实现对手势的实时跟踪。
这一技术能够有效地将用户的手势转化为数字化的信息,为后续的交互操作提供了可靠的基础。
4.手势识别算法Hololens手势识别采用了一系列先进的图像处理和模式识别算法,例如机器学习、深度神经网络等。
这些算法能够对深度摄像头捕获到的图像进行高效的处理和分析,从而实现对用户手势的快速、准确的识别。
而且,Hololens还可以根据不同的应用场景和用户需求,动态调整手势识别算法的参数和模型,以提高识别的准确性和稳定性。
5.手势指令映射一旦用户的手势被成功识别,Hololens将会根据预先设定的映射规则将手势转化为相应的操作指令。
这些操作指令可以包括平移、旋转、缩放、点击等,从而实现对虚拟场景中的对象进行操控和交互。
Hololens还支持用户自定义手势映射,使用户可以根据自己的习惯和需求进行个性化操作设置。
6.应用场景Hololens手势识别技术的应用场景非常广泛,它可以用于虚拟现实游戏、工业设计、教育培训、医疗卫生等多个领域。
通过手势识别,用户可以轻松地操控虚拟对象、与虚拟人物进行互动、进行实时的三维建模等,极大地拓展了混合现实技术的应用领域。
基于深度学习的手语识别与翻译系统设计与实现

基于深度学习的手语识别与翻译系统设计与实现手语是聋人社群中一种重要的交流方式,但由于其特殊性,使得手语的理解和传播给非手语使用者带来了一定的困难。
基于深度学习的手语识别与翻译系统的设计与实现旨在利用深度学习算法来实现手语的自动识别和翻译,从而提供有效的手语交流解决方案。
手语的复杂性在于它不仅仅包括手势的形状和动作,还包括手势在时间和空间上的变化。
因此,传统的图像识别和动作识别算法无法很好地适应手语识别的挑战。
而深度学习算法,尤其是卷积神经网络(CNN)和循环神经网络(RNN)的结合,能够更好地处理手语识别的问题。
首先,手语识别系统需要一个准确且丰富的手语数据集。
数据集的构建可以通过在手语视频中标注手语的相应手势或使用虚拟手套和深度相机捕捉手势。
这样的数据集应该涵盖不同的手语词汇和表达方式,以建立一个全面的手语识别模型。
接下来,基于深度学习的手语识别模型可以使用卷积神经网络(CNN)和循环神经网络(RNN)进行设计。
CNN主要用于提取手语图像中的空间特征,而RNN则用于捕捉手语动作的时间序列信息。
这两个网络可以通过逐层训练和优化来适应手语识别的任务。
训练过程中可以使用反向传播算法来调整网络的权重和参数,以最小化识别误差。
在手语识别模型训练完毕后,就可以使用该模型对新的手语图像进行分类和识别。
用户可以通过手势捕捉设备将手势输入到系统中,系统将利用深度学习模型分析和识别手势,给出对应的手语词汇或短语。
在这一过程中,系统还可以采用注意力机制来进一步提高识别的准确性,使得系统能够更好地关注手势序列的重要部分。
除了手语的识别,基于深度学习的手语翻译系统还可以将手语翻译成口语或文字。
通过将手语的表示转化为对应的语义信息,再利用自然语言处理技术将其翻译成可理解的语言。
这个过程可以使用序列到序列(seq2seq)模型来实现,其中编码器网络将手语序列转化为一个“上下文”向量,而解码器网络根据这个“上下文”向量生成翻译结果。
基于深度学习技术的手语识别系统设计与实现
基于深度学习技术的手语识别系统设计与实现第一章:引言手语是一种重要的沟通方式,它可以帮助聋哑人士进行交流。
然而,由于手语的复杂性和多样性,手语的学习和理解一直是困难的问题。
近年来,深度学习技术在许多领域都取得了重要的突破,包括图像识别、语音识别等。
因此,利用深度学习技术来实现手语识别系统,是一种非常有前途的研究方向。
本文主要介绍了基于深度学习技术的手语识别系统的设计和实现。
第二章:相关工作手语识别是一个较为复杂的任务,需要考虑不同的手势种类、手势的姿态变化、手势的速度等因素。
传统的手语识别方法一般采用特征提取和分类器设计的方法。
其中,特征提取是手语识别的关键之一,主要是通过对手势图像的描述提取出有用的特征,如 LBP、HOG 等。
分类器设计则是根据提取的特征构建分类器,分类器的设计包括 KNN、SVM、决策树等。
虽然这些传统方法已经取得了不错的效果,但是在面对更为复杂的情况时,如光线变化、抖动等,其效果并不理想。
近年来,深度学习技术在图像识别、语音识别等领域取得了重要的突破,许多研究者开始探索深度学习在手语识别中的应用。
目前,应用较广泛的深度学习模型有 CNN、LSTM、GRU、深度神经网络等。
第三章:基于深度学习技术的手语识别系统设计本系统的设计分为三个步骤:第一步:数据采集和处理手语识别系统的训练需要大量的手语图像和其对应的标签。
本系统采用的是美国手语字母表,共计 26 个字母。
数据采集使用的是普通 RGB 摄像头,将手语动作拍摄下来,保存成图像格式。
数据预处理包括图像大小调整、灰度化等,使得图像能够更好地输入到深度神经网络中。
第二步:深度学习模型构建本系统采用的是基于 CNN 的神经网络模型。
CNN 是一种特殊的神经网络结构,具有局部感知和权值共享的特性,可以有效地识别图像中的特征。
网络提取到的特征随后会送到全连接层进行分类。
深度神经网络的训练属于监督学习,需要提供训练数据和对应的标签。
在训练过程中,网络会不断地调整权值使得预测值和实际标签尽量一致。
手部识别总结
手部识别总结引言手部识别是一种通过计算机视觉技术将人的手部姿态进行检测和识别的方法。
它在人机交互、虚拟现实、智能医疗等领域有着广泛的应用。
本文将对手部识别的原理、方法和应用进行总结和分析。
手部识别原理手部识别的原理主要基于计算机视觉技术和机器学习方法。
下面将介绍其中的几种常见的手部识别原理。
1.颜色模型颜色模型是手部识别中常用的一种方法。
通过对人手皮肤的颜色进行提取和分析,来识别手部的位置和姿态。
常见的颜色模型有RGB、HSV等。
2.模板匹配模板匹配是一种通过将手部的模板与输入的图像进行匹配来进行手部识别的方法。
首先需要事先收集一些标注了手部位置和姿态的图像作为模板,然后将输入图像与模板进行匹配,找到与模板最相似的部分来进行手部识别。
3.深度学习深度学习是当前手部识别领域的热门方法。
通过使用深度神经网络对大量手部图像进行训练和学习,得到一个高效的手部识别模型。
深度学习在手部识别中能够取得较好的准确率和鲁棒性。
手部识别方法除了上述的手部识别原理外,还有一些常见的手部识别方法。
1.关键点检测关键点检测是一种通过检测手部的关键点位置来进行识别的方法。
通过确定手部关键点的位置可以计算手部的姿态,如手掌的旋转角度、指尖的位置等。
2.动态手势识别动态手势识别是一种通过识别手部的动态姿态来进行识别的方法。
可以使用传感器或者摄像头进行动态手势的采集,在采集的数据上应用机器学习方法对手部的动态姿态进行识别和分类。
3.骨骼识别骨骼识别是一种基于计算机视觉技术的手部识别方法。
通过计算手部的骨骼关节位置和关节连接关系,来识别手部姿态。
常见的骨骼识别方法有基于深度相机的骨骼识别、基于单目摄像头的骨骼识别等。
手部识别应用手部识别在多个领域有着广泛的应用。
1.人机交互手部识别可以实现自然的人机交互方式。
通过识别手部的位置和动作,可以实现手势控制电脑、触摸屏等设备,提高用户的使用体验。
2.虚拟现实手部识别可以在虚拟现实环境中实现自由的手部交互。
手势识别技术的研究与应用
手势识别技术的研究与应用手势识别技术作为一种非接触式的人机交互方式,近年来受到了越来越多的关注。
它允许用户通过简单的手势来控制设备,如手机、电视、计算机等,使得人机交互更加自然、高效和便捷。
本文将介绍手势识别技术的基本原理、常见应用以及研究热点。
一、基本原理手势识别技术是利用计算机视觉、模式识别和机器学习等技术,通过分析和理解人的手势动态特征,实现手势识别和解析。
手势识别技术的实现过程一般包括三个主要步骤:1.手势采集:采集人的手势动态图像或视频序列。
2.特征提取:提取人的手势动态特征,如颜色、形状、运动轨迹等。
3.手势识别和解析:根据特征提取结果,采用分类器、神经网络等模式识别技术,对不同的手势进行识别和解析。
二、常见应用手势识别技术在很多领域都得到了广泛应用,以下是一些典型的例子:1.智能手机和平板电脑:手势识别技术可以让用户通过简单的手势来控制手机和平板电脑的功能,如拍照、调整音量、切换应用等。
2.家庭娱乐:手势识别技术也可以应用于家庭娱乐领域,用户可以通过手势来控制电视、游戏机等设备的操作,实现更加便捷和自然的操作方式。
3.智能医疗:手势识别技术可以用于医疗领域中,如手术操作、体征采集等。
通过手势识别技术,医生可以更加精确和快速地采集病人的数据,提高医疗效率。
三、研究热点手势识别技术虽然已经有了一定的应用,但是在实际使用中还存在很多难题需要解决。
以下是一些目前研究的热点问题:1.多手势识别:如何实现多人协同操作,多手势之间的互动和识别问题。
2.深度学习:如何利用深度学习技术来提高手势识别的准确性和鲁棒性。
3.实时处理:如何实现实时处理和异步通信,提高手势识别在实际应用场景中的稳定性和性能。
四、结论与展望手势识别技术已经成为人机交互领域的重要研究方向。
在未来的发展中,我们有理由相信,手势识别技术将会在人机交互、智能城市、智能家居等领域发挥越来越重要的作用。
同时,随着深度学习、3D成像等技术的不断进步,手势识别技术也将会不断改善,为我们带来更加便捷、高效和智能的生活体验。
《基于机器视觉的手势识别系统设计与实现》
《基于机器视觉的手势识别系统设计与实现》一、引言随着人工智能技术的不断发展,机器视觉作为其重要组成部分,在各个领域得到了广泛的应用。
手势识别作为机器视觉的一个重要研究方向,具有广泛的应用前景。
本文旨在设计并实现一个基于机器视觉的手势识别系统,以提高人机交互的便捷性和自然性。
二、系统设计1. 硬件设计本系统主要包含摄像头、计算机等硬件设备。
其中,摄像头用于捕捉手势图像,计算机则负责处理这些图像信息。
为保证系统识别的准确性和实时性,我们选用高分辨率、低延迟的摄像头,以及具有强大计算能力的计算机。
2. 软件设计软件设计是本系统的核心部分,主要包括图像预处理、特征提取、模式识别等模块。
(1) 图像预处理图像预处理是为了提高图像的质量,以便后续的特征提取和模式识别。
主要包括图像滤波、二值化、归一化等操作。
其中,图像滤波用于消除图像中的噪声,二值化将图像转化为黑白二值图像,归一化则将图像的尺寸和亮度进行统一处理。
(2) 特征提取特征提取是手势识别的关键步骤,主要目的是从预处理后的图像中提取出手势的特征。
本系统采用基于深度学习的特征提取方法,通过训练卷积神经网络(CNN)来提取手势的特征。
(3) 模式识别模式识别是对提取出的特征进行分类,以确定手势的种类。
本系统采用支持向量机(SVM)进行模式识别,通过训练大量的手势样本,建立手势与类别之间的映射关系。
三、系统实现1. 数据采集与处理首先,我们需要采集大量的手势数据。
这些数据可以通过专业的手势采集设备获取,也可以通过网络资源进行收集。
然后,对采集到的数据进行预处理,包括图像滤波、二值化、归一化等操作,以便后续的特征提取和模式识别。
2. 特征提取与训练利用深度学习技术,我们训练一个卷积神经网络来提取手势的特征。
在训练过程中,我们需要大量的带标签的手势数据。
通过不断调整神经网络的参数,使网络能够准确地提取出手势的特征。
3. 模式识别与测试在特征提取完成后,我们使用支持向量机进行模式识别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于深度图像技术的手势识别方法曹雏清,李瑞峰,赵立军(哈尔滨工业大学机器人技术与系统国家重点实验室,哈尔滨 150001)摘 要:针对复杂环境下的手势识别问题,提出一种基于深度图像技术的手势识别方法。
利用深度图像信息从复杂环境中提取手势区域,综合手势的表观特征,建立决策树实现手势的识别。
对常见的9种手势在复杂背景条件下进行测试,实验结果表明,手势的平均识别率可达到98.4%,速度达到每秒25帧。
关键词:手势识别;深度图像;表观特征;复杂背景;决策树Hand Posture Recognition Method Based on Depth Image TechnoloyCAO Chu-qing, LI Rui-feng, ZHAO Li-jun(State Key Laboratory of Robotics and System, Harbin Institute of Technology, Harbin 150001, China)【Abstract 】Aiming at the problem of hand posture recognition from complex backgrounds, this paper proposes a hand posture recognition method based on depth image technoloy. The hand posture region is extracted from complex background via depth image. Appearance features are integrated to build the decision tree for hand posture recognition. Nine common postures with complex background are tested. Experimental results demonstrate that recognition rate is 98.4% and speed rate achieves 25 frames per second.【Key words 】hand posture recognition; depth image; appearance feature; complex background; decision tree DOI: 10.3969/j.issn.1000-3428.2012.08.006计 算 机 工 程 Computer Engineering第38卷 第8期 V ol.38 No.8 2012年4月April 2012·博士论文· 文章编号:1000—3428(2012)08—0016—03文献标识码:A中图分类号:TP3911 概述随着机器人技术的发展,智能服务机器人开始逐步融入人类的生活,人机交互技术的发展是智能服务机器人研究的重要组成部分。
人机交互的研究方向主要有表情、声音和手势识别技术。
其中,手势是一种自然直观的人机交流模式,在信息表达上比表情更明确、信息量更丰富。
在人机交互中,基于视觉的手势识别是实现新一代人机交互的关键技术。
基于视觉的手势识别通过图像信息,让机器人获取人的手势姿态信息,对不同的手势信息进行分类。
近年来,学者们对基于视觉的手势识别进行研究,文献[1]提出特征空间匹配法,文献[2]采用提取同类手势的SIFT 特征方法进行手势识别,文献[3]提出手势图解析分类法,文献[4]针对复杂背景采用空间分布特征对手势进行识别。
复杂背景下手势识别的研究[4-5]一般使用肤色模型实现手势区域分割,虽然可以区分肤色和非肤色区域,但是实际应用中图像都包含有肢体和面部肤色区域,它们对手势区域提取有着较大的影响,同时光线也直接影响肤色模型。
现有的文献中并没有考虑强光和弱光环境下的手势识别情况,在实际应用中往往伴随光线的变化问题,这些问题都直接影响了人机交互的实际效果。
本文提出一种基于深度图像技术的手势识别方法,从深度图像信息中提取手势区域,运用几何方法提取手势表观特征并分类,从而实现复杂环境下基于手势的人机交互。
22.1 手势识别系统基于深度图像信息的手势识别系统框架如图1所示。
深度图像的采集采用非接触测量方式,获取的场景中深度信息不受物体自身的颜色、纹理特征以及背景环境光线强弱的影响。
本文选用微软公司的Kinect 进行深度图像的采集,获取深度信息值,转换到灰度值图像,经过手势区域分割、特征提取、手势识别,转换为手势信息,提供人机交互使用。
图1 面向人机交互的手势识别框架2.2 手势区域分割2.2.1 深度图像成像原理深度图像技术在近年来逐步得到广泛的关注,Kinect 采集640×480像素的深度图像速度可以达到30 f/s ,深度的分辨率在5 mm 左右。
本文把Kinect 采集到的场景深度值转换到灰度值空间,实际场景的RGB 图像如图2所示。
在深度图像中像素点灰度值的大小对应于场景中点的不同深度值,如图3所示,图像中的灰度值越大,表明该区域距离深度摄像头的距离越近。
图2 场景RGB 图像 图3 深度图像基金项目:国家自然科学基金资助项目(61075081);机器人技术与 系统国家重点实验室课题基金资助项目(SKLRS200802A02)作者简介:曹雏清(1982-),男,博士研究生,主研方向:模式识 别,人机交互;李瑞峰,教授、博士生导师;赵立军,讲师 收稿日期:2011-07-11 E-mail :caochuqing@灰度值501001502002500.00.51.01.52.02.50图4 灰度直方图图5 手势区域分割效果2.3 特征提取2.3.1 手势的表观特征本文通过提取手势的表观特征,根据表征手势的指头数以及指间的夹角的不同对手势进行分类,实现手势在旋转缩放条件下的快速识别。
相比于其他的手势特征提取方法,手势的表观特征具有更加直观、无需训练样本、适应性强、运算速度快实时性好等优点。
手势表观特征的提取步骤如下:(1)通过数学形态学中的腐蚀操作[6]获取手势区域中心位置点。
由于手掌作为手势表观的主要组成部分,在手势区域中它占有最大的面积而且点较为集中。
通过连续的腐蚀操 作,可以消除手势区域的边界点,使手势区域逐步缩小,最终得到手势区域的中心位置点C 0,实际效果如图6所示。
图6 手势区域中心点(2)计算出中心点与手势区域边缘的最大距离值l ,对距离进行10等分,以d=l/10。
以手势区域中心点为圆心做出 圆轨迹,圆半径从d 开始到l ,每次递加值为d ,得到10个圆轨迹线,如图7所示。
C 0P 42P 41P 51P 52Q 41Q 51Q 42Q 52P 61P 62P 63P 64P 53P 54P 55P 56P 43P 44P 45P 46Q 43Q 53Q 63Q 64Q 44Q 54Q 65Q 55Q 45Q 66Q 56Q 46P 71Q 71Q 72Q 73P 72P 73P 31P 32P 33Q 32Q 31A 1A 2A 3A 4图7 手势表观特征提取ij ij 不能表现手指的实际宽度值,所以当D ij 小于阈值δ时,删除对应的P ij 和Q ij 点,由图2可以看出一些手指的指间处P ij 和Q ij 点被去除,根据经验设置阈值为δ=d /4。
(5)每个轨迹圆上获得的j 最大值,为与手掌相连分支数量总和N=max(j )。
由于分支中包含手指和手腕分支,则手指数量是N f =N −1。
(6)由每个分支的平均值计算得到分支的平均宽度W j =D ij 。
在手形上可知手腕宽度大于手指,在分支中手腕对应于最大宽度的分支。
由除手腕分支外的其他分支在各自截取的最大轨迹圆上取P ij 和Q ij 的中点与中心位置点C 0连线,得到指间夹角A j -1。
2.3.2 旋转和缩放不变性人机交互中需要自然的手势动作,而不局限于某些特定手势位姿或是特定手势区域大小。
距离的远近以及手势的位姿会造成图像中手势大小以及旋转的问题。
本文的特征提取方法,利用等分轨迹圆消除手势区域大小对特征提取的影 响,同时对轨迹上的变化点进行特征计算,提取的手指数量N f 和指间夹角A j -1特征都具有旋转和缩放的不变性,不受手势距离远近和旋转的影响。
2.4 手势识别9种常见的手势如图8所示。
图8 9种常见的手势18 计 算 机 工 程 2012年4月20日本文通过提取手势的表观特征,建立决策树模型,对手势进行识别分类。
决策树是通过对训练样本进行归纳学习, 生成决策树或决策规则,然后使用决策树或决策规则对新数据进行分类的一种数学方法[7]。
决策树通过把实例从根节点排列到某个叶子节点来分类,叶子节点即为实例所属的分 类。
构造好的决策树的关键在于如何选择恰当的逻辑判断或属性。
手势主要的提取特征是手指数量N f 和指间夹角A j -1特征,作为决策树的分类节点。
不同手势之间手指数量特征区分比较明显,建立的决策树首先以手指数量N f 作为决策树的根节点,对于手指数相同的手势,再建立子节点对各个指间夹角A j -1差异情况进行区分。
子节点上对于指间夹角A j -1, 通过小样本的测试训练获取分类条件,建立的决策树如图9所示。
图9 手势分类决策树手势1、手势3、手势4、手势5的手指数量特征具有唯一性,可直接通过根节点分类;手势2和手势6的N f =2,下一层子节点通过判断指间夹角A 1大小加以区分;手势7、手势8、手势9的N f =3,需要通过2层子节点判断指间夹角A 1和A 1大小进行区分。
3 实验结果及分析3.1 手势识别实验为验证本文采用的实验方法,基于机器人平台,Kinect 通过USB 口与机器人主机进行数据通信,机器人主机的配 置是2.0 GHz 的CPU 和2 GB 的RAM ,当采样图片大小为640×480像素时,识别速度可以达到25 f/s ,达到实时手势识别的要求。
实验针对9种常见的手势进行识别,由5个人在强光、弱光和普通光线的背景条件对下每种手势测试200次,共计1 800次测试。
手势识别结果如表1所示。
表1 手势识别结果识别次数 测试 手势 手势1 手势2 手势3 手势4 手势5手势6 手势7 手势8 手势9识别率/(%)手势1 200 0 0 0 0 0 0 0 0100.0手势2 0 200 0 0 0 0 0 0 0100.0手势3 0 0 200 0 0 0 0 0 0100.0手势4 0 0 0 200 0 0 0 0 0100.0手势5 0 0 0 0 200 0 0 0 0100.0手势6 1 5 0 0 0194 0 097.0手势7 0 0 0 0 0 0 190 10 0 95.0手势8 0 0 0 0 0 0 8 192 0 96.0手势9 023 19597.5从表1中可以看出,手势1~手势5的识别率都为100%。