基于kinect的手指定位
基于微软Kinect的手势识别技术研究

基于微软Kinect的手势识别技术研究近年来,随着科技的快速发展,各种智能设备也逐渐普及。
其中,基于微软Kinect的手势识别技术备受关注。
这一技术通过使用Kinect摄像头和深度传感器,可以感知人体的运动姿势和动作,并将其转化为相应的指令,实现对设备的控制。
本文就从技术原理、应用场景及发展趋势等方面进行探讨。
一、技术原理微软Kinect是一款专门用于游戏控制的设备,其核心技术在于3D深度摄像头和红外发射器。
摄像头能够捕捉周围环境的深度信息,而红外发射器则能够检测人体的运动姿势。
其中,深度摄像头通过红外线的反射和接收,可以精确地测量物体距离,将其转化为三维坐标。
而红外发射器则可以发射红外信号,以检测人体在空间中的运动。
基于这一技术,Kinect的手势识别功能应运而生。
通过人体骨架模型的建立和动作捕捉算法,Kinect可以识别人体姿态和动作,并将其转化成计算机能够理解的指令。
例如,向左移动手臂可以控制游戏中的角色向左转动,向前伸手可以控制角色前进等等。
同时,Kinect还支持语音控制和面部表情识别等功能,大大提升了用户的交互体验。
二、应用场景手势识别技术作为一种新兴的交互方式,已经得到了广泛的应用。
除了游戏控制以外,其实际应用场景还包括人机交互、智能家居、虚拟现实等领域。
在人机交互领域,手势识别技术可以被应用于机器人控制、医疗诊断、智能办公等方面。
例如,在智能办公场景中,用户可以通过手势控制电脑的开关、程序的启动以及文档的编辑等操作,提高工作效率。
在智能家居领域,手势识别技术可以被应用于智能家电的控制、家庭安防等方面。
例如,在智能家电方面,用户可以通过手势控制灯光的开关、音响的播放以及电视的切换等操作,提高家居生活的便利程度。
在虚拟现实领域,手势识别技术可以被应用于3D模型设计、游戏控制等方面。
例如,在游戏领域中,用户可以通过手势控制游戏角色的动作和攻击技能,提供更为真实的游戏体验。
三、发展趋势手势识别技术虽然已经取得了很大的进展,但还有很多发展空间。
基于Kinect深度图像的指尖识别及手势判定

Abs t r a c t I n t h e d e v e l o p me n t o f i n t e r a c t i v e a p p l i c a t i o n s y s t e ms b a s e d o n t h e Mi c r o s o f t Ki n e c t s o ma t o s e n s o r y e ・
a 叶技2 0 1 4 年 第 2 7 卷 第 8 期
ElБайду номын сангаасe c t r o ni c Sc i .& Te c h . /Au g .1 5. 201 4
基于 K i n e c t 深 度 图 像 的 指 尖 识 别 及 手 势判 定
袁方剑 ,王毅轩 ,王毅 刚 ,杨道谈
( 1 . 杭 州电子科 技大学 计算机学院 ,浙江 杭州 摘 要 3 1 0 0 1 8 ;2 . 伊 川县交通局 ,河南 伊川 4 7 1 3 0 0 ) 在基于微 软 K i n e c t 体 感设备 开发 的交互应用 系统 中,使用传统的 鼠标 、键盘等 交互设备难 以达到理 想的
《2024年基于Kinect的手势识别与机器人控制技术研究》范文

《基于Kinect的手势识别与机器人控制技术研究》篇一一、引言随着人工智能技术的不断发展,人机交互技术已成为研究热点之一。
其中,基于Kinect的手势识别技术因其高精度、高效率、低成本的优点,得到了广泛的应用。
而将手势识别技术应用于机器人控制,则能够进一步拓展人机交互的范畴,提高机器人的智能化水平。
本文将对手势识别技术和机器人控制技术进行深入的研究和探讨,基于Kinect传感器进行实验和分析。
二、Kinect传感器及其应用Kinect是微软公司开发的一款体感设备,具有捕捉人体动作、语音和手势等功能。
在计算机视觉、人机交互、机器人控制等领域有着广泛的应用。
基于Kinect的手势识别技术,可以通过捕捉人体手部动作的信息,实现对手势的准确识别和解析。
同时,Kinect还可以实时监测人体骨骼的位置和运动状态,从而更精确地完成动作捕捉。
三、手势识别技术研究基于Kinect的手势识别技术,主要通过以下步骤实现:首先,利用Kinect传感器捕捉人体的骨骼信息;其次,通过算法对手部骨骼信息进行提取和预处理;然后,利用机器学习算法对手势进行分类和识别;最后,将识别的手势信息转化为计算机可以理解的指令或命令。
在手势识别技术中,机器学习算法的应用至关重要。
常见的机器学习算法包括支持向量机(SVM)、随机森林(Random Forest)、神经网络等。
这些算法可以通过训练大量的手势样本,提高手势识别的准确性和鲁棒性。
此外,深度学习算法在手势识别中也得到了广泛的应用,如卷积神经网络(CNN)等。
四、机器人控制技术研究机器人控制技术是实现人机交互的关键技术之一。
基于Kinect的手势识别技术可以实现对机器人的控制。
在机器人控制中,需要将识别的手势信息转化为机器人的运动指令或动作。
这需要借助于计算机视觉技术和运动规划技术。
计算机视觉技术可以实现对机器人周围环境的感知和识别,从而为机器人的运动规划提供依据。
运动规划技术则可以根据机器人的任务需求和周围环境信息,规划出最优的运动轨迹和动作。
基于Kinect的实时稳定的三维多手指跟踪算法

( S t a t e Ke y L a b o r a t o r y o f C AD & C G.Z h  ̄i a n g Un i v e r s i t y.Ha n g z h o u 3 1 0 0 5 8 )
De c . 2O1 3
基 于 Ki n e c t 的 实 时稳 定 的 三维 多手指 跟踪 算 法
晏 浩 ” , 张明敏” , 童 晶 ∞ , 潘志庚h 。
1 ’ ( 浙江大学 C AD & C G国家重点实验室 杭 州 3 1 0 0 5 8 )
。 ( 杭州师范大学数字媒体与人机交互研究中心
me t h o d b a s e d o n p i x e l c l a s s i f i c a t i o n t o g e t t h e 2 D f i n g e r t i p s .F i n a l l y , we s a mp l e o n t h e d e p t h ma p a r o u n d t h e d e t e c t e d f i n g e r t i p t o g e t t h e Z- v a l u e o f t h e f i n g e r t i p s a n d t h e n c o mb i n e t h e Ka l ma n f i l t e r a n d t h e c o n t i n u i t y b e t we e n f r a me s t o t r a c k t h e 3 D p o s i t i o n o f f i n g e r t i p s . Th e f i n g e r t i p d e t e c t i o n
基于Kinect的手势识别算法研究及应用

Digital TV simulation control
割方法¨-及基于人为增加限制的方法(如有些系统要求使用者
0引
言
戴上有色手套∞1)。手势的特征提取是影响手势识别率的关键 因素,目前特征值的选取有很多方法。7J1:选择手掌区域、手掌 中心及手的倾斜度,或提取手掌轮廓区域的几何特征或手掌的 运动轨迹等进行分析识别;在手势识别环节,识别方法可以分为 基于规则的手势识别。9 o和基于机器学习的手势识别¨””1。其 中基于机器学习的手势识别方法通过学习大量的训练样本特征 向量来确定分类器,是一种鲁棒性较高的手势识别方法。目前 手势识别中人手分割与定位主要是从彩色的视频帧图像或静态 图像中提取颜色及形状等信息进行手势的定位与识别,但颜色 特征易受光照变化和人手肤色等因素的影响使得在复杂背景下
trajectories
using Kinect and extracts the
tangent.ande
of
trajectory
as the feature,then employs the improved hidden Markov model to the proposed dynamic hand gestures recognition algorithm
technology.In order
to
improve the performance of Kinect—based hand gesture recognition,we propose the static hand gestures recognition algorithm,which is based
that the
proposed static hand gestures recognition algorithm obtains hi【sher recognition rate.The palm
基于Kinect深度图像的指尖检测与手势识别

基于Kinect深度图像的指尖检测与手势识别高晨;张亚军【摘要】Aiming at the problem that hand gesture recognition system based on ordinary camera is susceptible to the different lighting conditions and complex background, a fingertip detection and hand gesture recognition algorithm based on Kinect depth image is proposed. First, we get depth image by Kinect sensor. Then the hand region is extracted by putting the depth of thresholds on hand point detected by using OpenNI library. Fingertip detection based on convex hull and curvature is proposed. After the number of fingertips and the location of fingertips being detected, it calculates a feature vector including the number of fingers, the angles between fingertips and horizontal of the hand, the angles between two consecutive fingers, and the distance between fingertips and hand center point. Finally, a support vector machine(SVM) is applied to identify nine scheduled number hand gesture. Five experimenters are invited to perform 9 different hand gestures in the complex environment, which each gesture is repeated at thirty times and the angle of hand gesture is different every time. The experiment results show that this algorithm can detect the number and location of fingertips, and the recognition rate of nine hand gesture is 97.1% on average. This proposed method uses simple features and has good robustness, also it is real-time.%针对基于普通摄像头的手势识别系统在不同光照条件和复杂环境下易受影响的问题,提出一种基于kinect深度图像进行指尖检测和手势识别的算法.首先利用Kinect传感器获取深度图像,再利用OpenNI手部跟踪器检测出手部的位置,根据手部位置对手势进行深度阈值分割.提出一种结合凸包和曲率检测指尖的算法,检测出指尖数目和位置后,计算出包括指尖和手掌水平方向的夹角、相邻两个指尖夹角以及指尖与掌心的距离的特征向量,最后利用支持向量机(SVM)对预定的9种数字手势进行识别.实验邀请5位实验者在复杂环境下每个手势做30次,每次的手势角度不同,实验结果表明该方法能够准确检测出指尖的数目和位置,9种数字手势平均识别率达到97.1%,该方法使用特征简单,实时性好,有较好的鲁棒性.【期刊名称】《计算机系统应用》【年(卷),期】2017(026)004【总页数】6页(P192-197)【关键词】Kinect传感器;指尖检测;支持向量机;手势识别【作者】高晨;张亚军【作者单位】北京化工大学机电工程学院,北京 100029;北京化工大学机电工程学院,北京 100029【正文语种】中文不同于以往的鼠标、键盘等交互设备, 手势作为一种新的人机交互方式, 不需要直接接触, 这种人机交互方式更接近人与人之间的交流. 手势识别系统可以通过摄像头获取包含手势的图像信息, 根据图像信息解释手势的含义, 成熟的手势识别系统已经开始应用于很多领域, 如体感游戏, 智能电视, 医疗设备, 手语识别和机器人控制等[1-3].采用普通摄像头获取图像信息进行手势识别容易受到光照和背景的影响, 针对此问题, 文献[4]通过给使用者佩带有颜色的手套来分割手势. 但是当背景有和手套颜色一样的物体时, 仍会影响手势的分割, 并且文献[4]使用的普通摄像头在光线不足的情况无法检测到手势. 而微软推出的Kinect摄像头可以同时获取彩色图像和深度图像信息, 利用深度图像进行手势识别可以避免光照和环境的影响.近几年基于Kinect的指尖检测和手势识别已经有相关的研究, 文献[5]采用三维手势模型, 将手部分成21个不同的部分, 然后使用支持向量机(SVM)做分类器识别常用的手语. 但是其模型复杂, 运算量大, 实时性较差. 文献[6]和[7]都采用深度阈值分割手势区域,默认手势区域是距离摄像头最近的, 但是当手掌和手臂垂直的情况下就会将手臂也分割出来, 降低手势识别的准确率. 文献[8]使用距离直方图来识别手势, 而文献[9]综合了距离特征和曲率特征使用多级支持向量机来识别手势. 文献[10]通过从深度图像中分割手部区域, 并建立表观特征, 再用决策树识别手势. 文献[8-10]使用的特征都较复杂, 需要的计算量较大.针对上述问题本文提出一种把指尖数目, 手部方向, 掌心和指尖距离以及指尖相对于手部水平方向夹角作为特征向量, 再通过支持向量机的方法进行手势识别的算法, 如图1所示.主要的工作步骤如下:Step 1. 检测到手部区域, 将手部区域从复杂背景中分割出来;Step 2. 根据分割出来的手势区域, 计算出手掌掌心、手部水平方向, 再结合凸包和曲率检测指尖, 最后计算出指尖相对于手部水平方向的夹角, 相邻指尖之间的夹角和指尖与掌心的距离;Step3. 最后采集9种预设数字手势样本, 用支持向量机方法训练识别手势. Kinect摄像头可以同时获取深度图像和RGB彩色图像, 并且支持骨骼跟踪和动作识别. Kinect一共有三个摄像头, 左边镜头为红外线发射器, 中间镜头是一般常见的RGB 彩色摄像头, 右边镜头是由红外线CMOS 摄像头所构成的 3D 深度传感器. 根据深度传感器可以获取摄像头一定范围内物体与摄像头的距离.2.1 基于OpenNI的手势检测通过开源库OpenNI可以检测到挥手、前推和举起三种预设手势动作并获得手部掌心的坐标. 本文采用识别效果较好的前推动作和挥手动作, 手部对着Kinect摄像头前推或者挥手时, 即可检测到手部区域,并且给出掌心的粗略坐标, 识别效果如图2所示. 距离摄像头越近的点灰度值越大, 离摄像头远的点灰度值越小, 红色的点为识别出来的掌心位置, 从图2可以发现OpenNI给出的掌心位置不准确, 本文将根据手部轮廓的最大内切圆重新计算掌心坐标.2.2 基于深度阈值的手势分割Kinect获取到的深度数据为16位, 若使用不带用户ID的方式存储深度值, 则16位中的低12位为深度值, 即最大值为4096, 其代表4.096m. 通过OpenNI获得的粗略掌心坐标包括二维坐标和深度值, 本文采用双深度阈值方法分割手势区域, 对掌心深度d在加减阈值T范围内的像素按照式(1)进行二值化, 公式如下所示:式(1)中d为掌心的深度值, T为手掌厚度的深度阈值, H(x, y)为分割后手部深度图像中点(x, y)所对应的像素值, D(x, y)为深度图像中点(x, y)所对应的深度值.为了避免手臂和手腕的干扰, 取距离掌心长宽一定的矩形作为包含手势的感兴区域, 分割效果如图3所示, 从图3(b)中可以看到经过式(1)分割出的手部区域, 其边缘存在锯齿, 会对之后的指尖检测造成干扰,针对此问题, 本文采用中值滤波和形态学开闭运算对其进行去除噪声处理, 使手部边缘平滑, 效果如图3(c)所示.3.1 手部边缘检测为了获取手部轮廓的特征, 本文采用Canny边缘检测算法, 边缘检测即检测出图像亮度变化大的区域, Canny 边缘检测算法是对信噪比和定位之乘积的最优化逼近算子, 用来计算图像边缘的梯度幅度和相位值,选取合理幅度阈值来确定边缘点[11]. 从抑制噪声方面来讲, Canny边缘检测子不容易受到噪声的干扰, 而相同尺度下LOG算子却容易受到噪声的干扰, 抑制噪声的能力要弱一些. 此外, 由于Canny边缘检测算子采用两种不同的阈值分别检测强边缘和弱边缘, 并且当弱边缘和强边缘相连时, 只将弱边缘包含在输出图像中, 故而Canny算子更容易检测出真正的弱边缘, 因此本文采用Canny边缘检测来提取手部轮廓. 检测效果如图4所示.3.2 计算手掌掌心位置通过OpenNI获得的手掌掌心坐标不够准确, 本文通过计算手部轮廓的最大内切圆来确定手掌掌心坐标和掌心圆半径. 首先计算手部轮廓内每个点到轮廓边界距离的最小值, 找出其中最大距离值所对应的点即为掌心点, 距离即掌心圆半径. 这个过程计算量会很大, 影响手势识别的实时性, 因此本文不计算感兴区间内的所有点, 而是每隔N个点计算一个点, 经过实验验证当N=4时可以保证速度和准确性. 求出的掌心圆如图5所示.3.3 计算手部水平方向为了计算指尖的相对位置, 要先计算手部水平方向, 如图6所示, xh为手部水平方向, α为手部水平方向和x轴方向的夹角, θ为手部主轴和x轴方向的夹角, 这两个夹角可以根据文献[12]中提出的方法, 利用图像中心矩计算, 公式如下所示:式(2)中θ为手部主轴和水平方向的夹角, α为手部水平方向和x轴水平方向的夹角, (2,0)mu和(0,2)mu为图像的二阶中心矩.3.4 指尖检测3.4.1 凸包结合曲率检测指尖算法本文采用凸包算法与曲率检测算法相结合的算法, 可以精确的获得指尖的位置, 首先求出包围手部轮廓的最小外接圆, 然后利用OpenCV计算机视觉开源库中函数convexHull和convexityDefects求出包含手部轮廓的凸包和凸缺陷, 手部轮廓的凸包和凸缺陷模型如图7所示, A、B、C等为手部轮廓的凸缺陷, 凸缺陷包括起始点Ps、终止点Pe、缺陷上距离轮廓凸包最远的点pd, 凸包缺陷深度Id. 根据指尖的几何特征, 指尖点应该满足的条件如下所示:1) 凸缺陷深度应该大于掌心圆半径, 但小于手部轮廓最小外接圆半径, 即ra<Id<rb.2) 凸缺陷起始点和终止点的夹角应小于90°, 即θα<90o.3) 指尖点附近最小曲率值应小于60°, 即θk<60o.检测指尖时首先将满足上述条件(1)和(2)的凸缺陷的起始点和终止点保存到点集Ap中, 并且删除重复和距离过近的点, 然后以点集Ap中的点Pi为原点, 在手部轮廓中各取Pi之前和之后的10个点, 计算这20个点的K曲率, 即向量(Ai(j), Ai(j-k))与(Ai(j), Ai(j+k))之间的夹角, 若点Pi的K曲率值小于60°并且是20个点中K曲率值最小的点, 则其为指尖点. 本文算法相比较于传统的K曲率检测指尖运算量小, 只需要计算凸缺陷起始点和终止点极其附近的20个点的K曲率, 同时有效地排除了两个手指指尖的凹点, 通过实验验证当K取值30时效果最好.上述三个条件虽然能较好的满足基本的指尖检测, 但是也存在一些不足, 如只有一个指尖时, 是没有凸缺陷满足条件1)和2), 此时我们把凸缺陷起始点和终止点夹角并且凸缺陷深度Id大于阈值Td的凸缺陷起始点和终止点存储到点集Ap中, 然后通过上述方法计算点集Ap中点的K曲率通过条件3)来检测指尖. 3.4.2计算指尖点与手部水平方向夹角在获得了掌心圆、手部方向, 指尖坐标等特征之后, 接下来计算指尖点和手部水平方向的夹角, 以及相邻两个指尖与掌心的夹角. 如图8所示, 分别计算每个指尖与手部水平方向的夹角α[i](i=0, 1, 2, 3, 4),在计算相邻两个指尖和掌心形成的夹角β[i](i=0, 1, 2, 3), 最后计算每个指尖和掌心指尖的距离D[i](i=0, 1, 2, 3, 4), 最后把计算得到的结果保存到特征向量数组中, 如式(4)所示:式(4)中fV储存特征向量的数组, N为指尖数目, []iα为每个指尖和手部水平方向的夹角, []iβ为相邻两个指尖的夹角, D[]i为每个指尖与掌心的距离.在得到手部特征向量之后, 要设计分类器根据每种手势的特征对手势进行分类. 本文采用支持向量机作为分类器, 支持向量机具有能有效发现目标函数的全局最优解, 最大化决策边界等特点13. 在解决线性问题中, SVM 能直接在该空间中划分出分割平面, 但在实际问题中更多的是非线性的问题, 支持向量机首先在低维空间中完成计算, 然后通过核函数将输入空间映射到高维特征空间, 最终在高维特征空间中构造出最优分离超平面, 从而把平面上本身不好分的非线性数据分开, 常用的核函数包括多项式核函数、径向基(RBF)核函数和 Sigmoid 核函数. 本文采用径向基函数, 因为其模型简单, 参数相对较少, 可以有效的把非线性问题转换为线性问题, 并经过实验验证径向基核函数的效果最好.为了验证本文提出方法的可靠性和准确性, 本文使用内存8G, CPU为Intel(R)*************************的笔记本作为处理平台, 使用微软Kinect一代摄像头采集图像, 通过使用开源库OpenNI、Opencv进行编程, 编程环境为VS2015, 实验包括指尖检测和手势识别两个部分, 实验过程中光照环境不稳定, 实验者与Kinect摄像头距离约为1m.5.1 指尖检测实验分析本文分别对指尖数目为0到5的六种情况进行测试, 测试过程中, 指尖的方向不断变化, 测试结果如图9所示. 然后将每种指尖数目的视频序列保存1000帧, 每隔5帧提取1帧, 共提取200帧, 统计出检测结果如表1所示.通过图9和表1可以看出, 本文提出的结合凸包和曲率检测指尖的算法平均准确率可以达到97.9%,在手部运动的过程中能准确的检测出指尖的位置和数目, 可以有效排除手腕处的干扰点, 针对不同方向的指尖都可以准确检测出来, 具有较好的鲁棒性. 同时可以看出1个手指和三个手指的误判比其他的多, 因为三个手指的情况较多, 在手指没伸直的情况下, 容易造成误判, 而一个手指则因为无法使用凸包和曲率结合算法, 容易受手腕干扰, 不同光照下的检测效果如图10所示.5.1 数字手势识别实验为了验证本文提出的手势识别算法, 本实验针对如图11所示的9种数字手势进行识别, 实验前先构建训练样本数据库, 邀请5位实验者针对每个手势做10次, 要求每个手势的角度不同, 总共采集450张样本图像, 然后对样本图像进行训练, 计算每张样本图像对应的特征向量并保存结果. 训练完成之后, 为了验证算法的鲁棒性, 再邀请另外的5个人实时检测手势, 每个手势做30次, 即测试样本图像共1350张, 每种手势的识别率如表2所示.从图11和表2可以看出, 用指尖与掌心的距离、指尖与手部水平方向的夹角以及相邻指尖之间的夹角作为特征向量可以明确的表示出每种手势的特征, 平均手势识别率可以达到97.1%, 其中手势3和手势6误检率最高, 因为手势3不是正对着摄像头时容易因为遮挡而识别错误, 手势6因为在运动过程中小拇指会因为噪声干扰而误判为手势8. 每帧手势识别处理时间平均为0.015秒, 实时性比较好. 本文方法与常用的HOG+SVM、几何特征、模板匹配方法14相比使用的特征简单, 计算量小, 准确率也相差不多.本文通过使用Kinect深度图像信息进行指尖检测和手势识别, 有效地解决了在不同光照条件和复杂背景下指尖检测和手势识别的难题, 提出一种结合凸包和曲率检测指尖算法, 避免传统曲率检测误判点多和凸包检测位置不准确的缺点. 检测出指尖后, 提出一种需要样本少, 方法简单的手势识别算法, 该方法利用指尖与手部水平方向夹角, 相邻指尖夹角以及指尖和掌心距离作为特征向量, 使用支持向量机做分类器.通过实验证明该算法手势识别精度较高, 指尖检测较准确, 能够在不同光照条件和复杂背景下进行检测,鲁棒性较好.但是本文提出的方法在手指并在一起等一些特殊情况无法准确检测出指尖, OpenNI的手部跟踪器效果不是很好, 在有遮挡的情况会跟丢手部区域, 在今后的工作中研究更精确, 鲁棒性更好的跟踪算法.1 孙丽娟,张立材,郭彩龙.基于视觉的手势识别技术.计算机技术与发展,2008,18(10):214–216.2 易靖国,程江华,库锡树.视觉手势识别综述.计算机科学, 2016,43(6A):103–108.3 李勇,高文,姚鸿勋.基于颜色手套的中国手指语字母的动静态识别.计算机工程与应用,2002,17:55–58.4 Lamberti L, Camastra F. Real-time hand gesture recognition using a color glove. Springer Proc. of the 16th International Conference on Image Analysis and Processing, 2011, 6978(1): 365–373.5 Keskin C, Kirac F, et al. Real time hand pose estimation using depth sensors. IEEE International Conference on Computer Vision Workshops, 2011, 28(5): 1228–1234.6 王艳,张奇志.基于Kinect深度信息的手势识别.北京信息科技大学学报,2013,28(1): 22–26.7 邓瑞,周玲玲,应忍冬.基于Kinect深度信息的手势提取与识别研究.计算机应用研究,2013,30(4):1263–1265.8 Ren Z, Yuan J, Zhang Z. Robust hand gesture recognition based on finger earth mover’s distance with a commodity depth cam era. Proc. of ACM Conference on Multimedia. 2011. 1093–1096.9 Domini F, Donadeo M, Marin G. Hand gesture recognition with depth data. ARTEMIS ’13 Proc. of the 4th ACM/IEEE International Workshop on Analysis and Retrieval of Tracked Events and Motion in Imagery Stream. 2013. 9–1610 曹雏清,李瑞峰,赵立军.基于深度图像技术的手势识别方法.计算机工程,2012,38(8):16–18.11 薛丽霞,李涛,王佐成.一种自适应的Canny边缘检测算法.计算机应用研究,2012,27(9):3588–3590.12 Liao SX, Pawlak M. Image Analysis by Moments. The University of Manitoba Winnipeg, 1993.13 祁亨年.支持向量机及其应用研究综述.计算机工程,2004, 30(10):6–9.14 刘淑萍,刘羽,淤俊,汪增福.结合手指检测的HOG特征的分层静态手势识别.中国图像图形学报,2015,20(6):781–788.。
基于Kinect的动态手势识别系统的开题报告

基于Kinect的动态手势识别系统的开题报告1. 问题提出在现代生活中,人与计算机的交互方式越来越多样化。
其中手势交互成为一种快速、自然的交互方式。
手势识别技术的发展使得计算机可以根据人体动作的信息实现人与计算机之间的交互。
Kinect作为一种深度摄像头,可以捕捉人体动作以及深度信息,为手势识别技术提供强有力的支持,被广泛应用于人机交互领域。
然而,目前基于Kinect的手势识别系统还存在很多问题,例如:精度不够高、实时性差、容易被环境影响等。
因此,开发一种高效、实用的基于Kinect的动态手势识别系统具有重要的研究价值和实际意义。
2. 研究目标本文旨在设计一种基于Kinect的动态手势识别系统,具体研究目标包括:(1) 建立手势库:收集并整理手势图片,建立丰富的手势库。
(2) 设计手势识别算法:通过分析和比较不同的手势识别算法,设计出一种精度高、实时性好的手势识别算法。
(3) 系统设计与实现:根据手势识别算法,设计并实现一套完整的基于Kinect的动态手势识别系统,包括图像采集、手势追踪、手势识别等模块。
(4) 系统优化与实验验证:通过实验验证和系统优化,提高系统的性能和稳定性,并对系统的精度、实时性等参数进行评估和分析,分析系统的优缺点以及未来改进方向。
3. 研究方法本文采用以下研究方法:(1) 文献调研:调研国内外关于基于Kinect的手势识别系统的研究现状和发展趋势,分析已有手势识别算法的优缺点,探索新的算法和实现方法。
(2) 系统设计:根据手势识别算法和系统需求,设计系统的整体框架、数据流程和模块实现。
(3) 系统实现:利用C#等编程语言和Visual Studio等开发工具,实现系统的各个模块,完成手势采集、识别、运动跟踪等功能。
(4) 系统测试:选取不同场景下的手势图片,对系统进行测试并进行参数分析和性能评估,分析系统的优缺点及未来的改进方向。
4. 研究意义本文将研究和实现一套高效的基于Kinect的动态手势识别系统,为人机交互技术提供了一种新的交互方式。
《2024年基于Kinect的手势识别与机器人控制技术研究》范文

《基于Kinect的手势识别与机器人控制技术研究》篇一一、引言随着科技的进步和人工智能的不断发展,人机交互的方式也日趋多样化和智能化。
Kinect作为一种重要的传感器技术,其应用领域不断扩大,尤其是在手势识别与机器人控制方面具有广泛的应用前景。
本文旨在研究基于Kinect的手势识别技术及其在机器人控制领域的应用,为未来的智能人机交互提供理论基础和技术支持。
二、Kinect技术概述Kinect是一种由微软开发的深度传感器技术,广泛应用于游戏、娱乐、科研等领域。
它能够捕捉人体的运动和姿态,具有高精度、高效率、低成本等优点。
Kinect技术通过捕捉人体骨骼运动信息,实现对人体动作的精确识别和跟踪。
三、基于Kinect的手势识别技术研究1. 手势识别的基本原理基于Kinect的手势识别主要依靠对人体骨骼信息的捕捉和分析。
通过Kinect传感器捕捉到的骨骼数据,可以分析出手部关节的位置和运动轨迹,进而实现对手势的识别。
2. 手势识别的关键技术(1)数据预处理:对捕捉到的骨骼数据进行滤波、去噪等处理,以提高数据的准确性和可靠性。
(2)特征提取:通过对手部关节位置、运动轨迹等特征进行提取,形成手势的特征向量。
(3)模式识别:利用机器学习、深度学习等算法,对特征向量进行分类和识别,实现对不同手势的区分。
四、手势识别在机器人控制领域的应用研究1. 机器人控制的需求与挑战随着机器人技术的不断发展,其在工业、医疗、军事等领域的应用越来越广泛。
然而,如何实现人机协同、高效地控制机器人一直是研究的难点。
手势识别作为一种自然、直观的人机交互方式,为解决这一问题提供了可能。
2. 手势识别在机器人控制中的应用方案(1)手势命令的识别与解析:通过手势识别技术,将用户的手势转化为机器人的命令或动作。
例如,通过挥手、指向等手势,实现机器人的启动、停止、移动等功能。
(2)手势与机器人协同操作:通过对手势的精确识别和解析,实现人与机器人的协同操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于kinect的手指定位
作者:魏来王迪邢程胡珊
来源:《电脑知识与技术》2014年第28期
摘要:为了实现更加自然的人机交互方式,利用微软的kinect体感设备提出一种实时手指定位方法。
本方法首先利用kinect的关节点信息获取包含手部的区域,然后在此区域利用肤色颜色模型来提取出人的手部区域,并利用canny方法提取出手部的边缘信息,最后利用手部边缘曲线的曲率来判断手指的指尖。
本方法能快速准确的定位手指位置,为进一步进行手指动作的识别做基础。
关键词:人机交互;kinect;骨架跟踪;肤色模型;k曲率
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)28-6713-03
人机交互(Human-Computer Interaction, HCI):是指为完成确定任务,在人与计算机之间进行信息交换的过程。
传统的人机交互方式(鼠标、键盘、触摸屏)则由于其便携性不足而显得捉襟见肘。
在人机交互的研究中,能够以自然的方式给计算机提供交互信息是当前人机交互系统研究的热点。
由于在传统的人机交互中人类输入给计算机的信息都是都是通过键盘和鼠标来完成的,而键盘和鼠标的操作都利用手部的动作来实现的,因此在自然的人机交互中利用手部动作来进行人机交互是首选的方式。
手部的手指是人体最灵活的部位,因此手指的动作能提供丰富的三维信息,利用这些三维信息可以方便户以操作真实世界物体的方法去操作计算机,这必将极大的增强人机交互系统的真实感。
对人体的手指进行识别,然后对识别后的手指指尖进行动态的跟踪,利用实时跟踪的动态三维信息来进行人机交互,在自然人机交互系统中有很大的应用前景。
随着微软Kinect设备的推出,利用这一廉价的硬件设备能够实时捕获场景的彩色和深度信息。
该文实现了是利用kinect来实时检测手指的方法,本方法首先利用kinect的骨架信息定位关节点righthand和lefthand的位置信息[1],然后在此区域的附近利用肤色颜色模型来提取出人的手部区域,同时利用canny方法提取出手部的边缘信息,最后利用手部边缘曲线的曲率来判断手指的指尖。
1 基于kinect的骨架追踪
Kinect利用模式识别和机器学习的方法,识别出20个关节点,通过20个关节点来表示一个骨架的,具体由下图1可以看到。
当你在Kinect前面做动作的时候,这些关节点的位置的也在不断的变化,因此,通过对关节点之间位置的变化信息可以识别出人体的动作。
Kinect SD中的骨豁追踪系统有四个主要的对象,分别是骨豁数据流(SkeletonStream)、骨豁框架(SkeletonFrame)、骨豁模型(Skeleton)和关节点(Joint)。
当Kinect正确识别操作者后,kinect 运行库中SkeletonFrameReady事件被触发来处理骨骼跟踪,该事件的参数包含两个重要的对象:SkeletonFrame和Skeleton。
在Skeleton对象的Joints属性集合中保存了所有关节点的信息。
每个关节点的信息都是一个Joint对象,其中的Position的X、Y、Z表示了三维位置。
其中Z是Kinect到识别对象的距离。
利用kinect sdk中的MapSkeletonPointToColorPoint 函数可以把骨骼空间的点映射到彩色图像空间中。
因此只要在骨骼空间中找到代表hand right和hand left的骨架中的关节点,就能利用MapSkeletonPointToColorPoint函数找到手部的区域大概位置。
在此,以hand关节映射到彩色空间的点坐标为中心设定一个区域来查找手部的区域。
2 基于 YCbCr 空间的手部区域提取
图像中皮肤的颜色主要取决于血红蛋白、黑色素和光照情况。
由于颜色的浓度主要影响的是饱和度而不是色相,所以在光照一致的环境中,不同肤色人种的皮肤色调是大致不变的,这是静态肤色模型构建的基础。
基于颜色的皮肤检测具有简单、快速、直观,不受物体形状变化及视点改变等影响的优势,受到研究者的普遍重视,具有重要的理论研究意义和应用价值。
本文需要寻找一个对人的肤色分布有着很好聚类性的颜色空间,在这个空间中,利用肤色信息可以有效的将人的手势和其他背景分离出来,传统的颜色空间有 RGB,HSV,YCbCr,LAB 空间等,由于RGB 空间的三个颜色分量具有较强的相关性,不能将色彩信息和亮度信息分离开来,故它不适合用于肤色分割,该文将重点放在YCbCr 空间上,并将 YCbCr 空间的肤色分割用到本系统中[2]。
通过研究表明,发现在 YCbCr颜色空间进行肤色分割具有如下特点[3]:
1)在 YCbCr颜色空间,不同的肤色上分布在比较小的范围内;
2)在 YCbCr颜色空间,肤色的色度受到亮度变化的影响较小;
3)在 YCbCr颜色空间,肤色聚类性较好,适合做分割。
YCbCr是色彩空间的一种,常用于数字视频领域,其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
YCbCr它可以由 RGB 空间线性变换得到,RGB 变换到 YCbCr 空间的转换公式为:
[Y= 65.481R+ 128.553G +24.966B+ 16Cb= 37.797R +74.203G+ 112.000B +128Cr=112.00R +93.786G +18.214B+ 128] (1)
通过实验表明,在YCbCr颜色空间中进行肤色分割时,由于Y分量的值表示的是亮度的变化,对肤色的影响较小,故只用考虑Cb和Cr两个颜色分量。
当Cb的数值在区间[77,127],Cr的数值在区间 [147,173]时能取得较好的效果。
图显示了利用YCbCr颜色模型分割手部区域的结果:
在获取了手部区域的图像之后,首先利用自适应阈值方法把彩色图像变化成二值图像,然后利用canny算法获取手部区域的边缘轮廓。
实验结果如图所示,图3为有彩色图像变化得到的二值图,图4是手部的边缘轮廓图。
3 基于K曲率的手指定位
在得到了手部区域的轮廊之后,就可以利用某种算法来找出指尖点所处的位置。
该文利用K曲率算法来进行手指指尖识别[4][5],如图5所示,P(i)为手部区域的轮廓线上的一个点。
给定一个常数K,顺时方向前进K个点,得到点P(i+K),逆时针方向前进K个点,得到点P(i-K)。
图形轮廓上的点P(i)的K曲率计算方法如下:以P(i)为起点,P(i-k)为终点得到向量V1,以P(i)为起点,P(i+k)为终点得到向量V2。
利用向量V1与的向量V2之间夹角α的余弦作为点P(i)的K曲率。
夹角计算公式如公式(2)所示。
[cosα=V1∙V2|V1||V2|] (2)
通过判断向量V1和V2的夹角α是否在某一范围内,来判断轮廓上的点P(i)是否为指尖点。
所选择的判断角度大小要合适,如若判断角度太大,可能会将手腕处那一段误认为为指尖;当手指较短时或者由于离Kinect较远,造成截取图片中手指较短时,测出的角度会很大,如若判断角度太小,就无法识别出指尖。
经过实验发现当K=20及α
4 结束语
由实验分析可知,采用本文的方法能实时的检测到手指指尖。
在获取了手指的位置信息后,就可以利用kinect sdk开发包把彩色图像空间的位置信息映射到深度空间,进而就能获取手指的动态深度信息。
利用手指的动态深度信息就能判断手指的动作,从而为高级的人机交互系统提供信息来源。
参考文献:
[1] 吴国斌,李斌,阎骥洲.Kinect人机交互开发实践[M].北京:人民邮电出版社,2013.
[2] Chai D,Ngan K N. Locating facial region of a head and shoulders color
image[C].Proceedings of the 3rd International Conference on Automatic Face and Gesture Recognition,1998:124-129.
[3] 江凤兵.不同颜色空间肤色检测算法的研究[D].赣州:江西理工大学,2011.
[4] Trapero Cerezo.3D Hand and Finger Recognition using Kinect. Universidad de Granada,2012.
[5] 王松林.基于Kinect的手势识别与机器人控制技术研究[D].北京:北京交通大学,2014.。