基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法转让专利

申请号 : CN201710512501.1

文献号 : CN107193384B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 裴以建李波韩甲甲薛端

申请人 : 云南大学

摘要 :

基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法,采用鼠标和键盘行为模拟的切换系统分别与Kinect感应器和输出设备连接;所述切换系统包括五个模块,由主程序模块分别与数据捕获模块,鼠标行为模拟模块、键盘行为模拟模块和行为切换模块连接;数据捕获模块中彩色图像上对应骨骼点的像素颜色的提取采用OpenCV开发库,彩色图像和骨骼数据的获取分别放入不同的线程中;鼠标行为模拟模块负责鼠标左键的单击、双击和右键的单击行为模拟;键盘行为模拟模块负责按键按下和弹起行为的模拟;行为切换模块负责状态的切换,即鼠标行为模拟和键盘行为模拟的切换。本发明具有将彩色图像应用到动作识别中,在很大程度上减少动作的数量,避免动作之间的相互影响的优点。

权利要求 :

1.基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法,其特征在于,采用实现鼠标和键盘行为模拟的切换系统分别与Kinect感应器和输出设备连接;其中所述切换系统包括五个模块组成,由主程序模块分别与数据捕获模块,鼠标行为模拟模块、键盘行为模拟模块和行为切换模块连接;其中数据捕获模块中彩色图像上对应骨骼点的像素颜色的提取采用OpenCV开发库,彩色图像和骨骼数据的获取分别放入不同的线程中;鼠标行为模拟模块负责鼠标左键的单击、双击和右键的单击行为模拟;键盘行为模拟模块负责按键按下和弹起行为的模拟;行为切换模块负责状态的切换,即鼠标行为模拟和键盘行为模拟的切换;所用动作类型设在左手和右手上,且不同动作之间的切换集中在单个骨骼点上,即实现相同功能需求,尽量减少骨骼的数量和增加操作的灵活性;行为切换模块的切换方式是通过动态提取彩色图像上对应HandLeft骨骼点映射位置的像素颜色来实现的,当颜色为白色时,当前模拟状态为键盘行为模拟,当颜色为黑色时,当前模拟状态为鼠标行为的模拟;

首先由Kinect感应器捕获彩色图像和骨骼点数据,彩色图像像素颜色数据以矩阵的形式存储到Mat变量中,并通过OpenCV图形库动态提取矩阵中对应映射后HandLeft骨骼点位置处的像素颜色,以及根据提取的像素颜色的四个通道判定当前模拟行为的状态,同时系统会根据当前模拟行为状态和捕获的骨骼点位置数据判定系统当前执行的功能;系统的数据有彩色图像数据和骨骼点三维坐标数据,处理过程包括捕获数据、像素提取、状态判定、动作类型判定;

其中,矩阵中对应映射关系如1-1式所示:

上式中S为缩放矩阵,R为旋转矩阵,T为平移矩阵,(x,y,z)为骨骼点转换后在彩色图像中的坐标,(X,Y,Z)为骨骼点以Kinect感应器为原点的三维坐标;对应彩色图像的点坐标如

1-2式所示:

其中(fx,fy)是感应器捕获的彩色图像上的比例参数,(ox,oy)为感应器捕获的彩色图像上中心点。

说明书 :

基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法

技术领域

[0001] 本发明属于人机交互技术领域,主要是将Kinect感应器捕获的彩色图像应用到动作识别中,来实现鼠标和键盘的行为模拟切换。为了使模拟鼠标和键盘行为的系统能够使用更少的动作类型和具有更灵活的操纵性,本文在前人的基础上,提出了一种新的设计思路,通过读取Kinect感应器彩色图像数据和其自带骨骼跟踪的特性,实现鼠标和键盘的行为模拟切换。通过加入彩色图像识别,可以有效的减少要识别的动作类型数量,从而减少动作之间的相互干扰,像素颜色可选范围很广,从而提供了较大的识别域,同时通过标定骨骼点颜色,使其骨骼点位于感应器视野的中心位置,以此达到提高动作行为识别的准确度和精度目的。

背景技术

[0002] 人机交互技术作为计算机技术研究领域中一个至关重要的环节,吸引着越来越多的学者在探求更方便、快捷的交互方式[1]。交互方式取得里程碑的意义,来自于人们熟练使用鼠标和通过可视化用户界面操纵计算机。传统鼠标和键盘的操作模式的缺陷和局限性也越来越凸显,人们不再满足传统的交互方式[2],从而促使人们不断寻找其他的更为自然舒适的交互方式。下表是人机交互方面的动作识别的相关研究。
[0003] 表1人机交互方面的动作识别的相关研究文献
[0004]
[0005] 伴随着人机交互技术的不断提升,出现了能够捕捉深度信息的感应器,如Kinect感应器,具有动态捕获人体彩色图像、深度图像和骨骼数据、并通过麦克风输入来进行语音辨识和语音来源方向定位等功能,Kinect V2能够追踪6套完整骨骼以及每人25块关节,并可以捕获每个关节信息,理解人体动作行为,并向计算机发送鼠标和键盘的操作指令,再以计算机作为媒介,来操控依托于计算机的机器设备和游戏等,使得人机交互不再受距离、位置和硬件方面的限制,操作更加自然、方便且更符合人机交互的初衷。但是通过人体动作识别(人体静止位置的定位、人体运动状态的跟踪、人体不同姿势的识别以及对人体不同行为的理解实现人机交互,会出现动作类型数量过多产生不同动作类型之间相互影响、一个模拟行为中出现另一个模拟行为、如何动态提取彩色图像、骨骼点抖动引起的光标抖动等众多问题。

发明内容

[0006] 本发明的目的正是为了克服上述现有技术存在的缺陷和不足之处而提出一种基于动作识别和彩色图像识别对鼠标和键盘模拟行为的切换方法,本发明针对Kinect设计开发过程中遇到的问题,提出的解决方案如下。
[0007] (1)在提取彩色图像上转换后骨骼点位置处像素颜色的基础上,提出了通过标定颜色,来让Kinect感应器通过检测标定的颜色是否为红色,或者其它颜色,来自动计算旋转角度并旋转,从而使骨骼点位于感应器视野的中心位置,以此达到提高动作行为识别的准确度和精度目的。
[0008] (2)为了减少动作类型的数量,将Kinect捕获的彩色图像应用到动作识别中,将动作识别转换为判定彩色图像上骨骼点对应的像素颜色的四个通道值的范围,实现键盘和鼠标模拟行为的切换,很大程度上减少了动作类型数量,避免了个动作之间的相互干扰,由此避免了一个模拟行为中出现另一个模拟行为。
[0009] 本发明技术方案如下:
[0010] 基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法,本发明特征在于,采用实现鼠标和键盘行为模拟的切换系统分别与Kinect感应器和输出设备连接;其中所述切换系统包括五个模块组成,由主程序模块分别与数据捕获模块,鼠标行为模拟模块、键盘行为模拟模块和行为切换模块连接;系统实现过程中各模块遵循高内聚、低耦合的原理进行实现,各个模块分工明确;其中数据捕获模块中彩色图像上对应骨骼点的像素颜色的提取采用OpenCV开发库,彩色图像和骨骼数据的获取分别放入不同的线程中;鼠标行为模拟模块负责鼠标左键的单击、双击和右键的单击行为模拟;键盘行为模拟模块负责按键按下和弹起行为的模拟;行为切换模块负责状态的切换,即鼠标行为模拟和键盘行为模拟的切换;为了使动作类型简单化和便于操作,应尽量减少动作类型的数量和动作之间相互切换的复杂度,所用动作类型设在左手和右手上,且不同动作之间的切换集中在单个骨骼点上,即实现相同功能需求,尽量减少骨骼的数量和增加操作的灵活性;行为切换模块的切换方式是通过动态提取彩色图像上对应HandLeft骨骼点映射位置的像素颜色来实现的,当颜色为白色时,当前模拟状态为键盘行为模拟,当颜色为黑色时,当前模拟状态为鼠标行为的模拟,如表2所示;
[0011] 首先由Kinect感应器捕获彩色图像和骨骼点数据,彩色图像像素颜色数据以矩阵的形式存储到Mat变量中,并通过OpenCV图形库动态提取矩阵中对应映射后HandLeft骨骼点位置处的像素颜色,以及根据提取的像素颜色的四个通道判定当前模拟行为的状态,同时系统会根据当前模拟行为状态和捕获的骨骼点位置数据判定系统当前执行的功能;系统的数据有彩色图像数据和骨骼点三维坐标数据,处理过程包括捕获数据、像素提取、状态判定、动作类型判定。
[0012] 本发明的有益效果是使模拟鼠标和键盘行为切换过程中系统能够使用更少的动作类型和具有更灵活的操纵性,通过加入彩色图形识别,有效的减少要识别的动作类型数量;同时通过标定骨骼点颜色,使其骨骼点位于感应器视野的中心位置,以此达到提高动作行为识别的准确度和精度目的。
[0013] 表2切换行为模拟功能表
[0014]

附图说明

[0015] 图1为本发明系统模块示意图;
[0016] 图2为总体数据流程图;
[0017] 图3获取像素颜色算法流程图;
[0018] 图4为行为切换算法流程图;
[0019] 图5为行为切换类图;
[0020] 图6为骨骼空间坐标和屏幕坐标映射关系图;
[0021] 图7为捕获骨骼点和Kinect感应器的位置关系图;
[0022] 图8为光标在不同像素颜色下的运动轨迹示意图。

具体实施方式

[0023] 见图1,图2,基于Kinect彩色图像在鼠标和键盘模拟行为的切换方法,本发明采用实现鼠标和键盘行为模拟的切换系统分别与Kinect感应器和输出设备连接;其中所述切换系统包括五个模块组成,由主程序模块分别与数据捕获模块,鼠标行为模拟模块、键盘行为模拟模块和行为切换模块连接;系统实现过程中各模块遵循高内聚、低耦合的原理进行实现,各个模块分工明确;其中数据捕获模块中彩色图像上对应骨骼点的像素颜色的提取采用OpenCV开发库,彩色图像和骨骼数据的获取分别放入不同的线程中;鼠标行为模拟模块负责鼠标左键的单击、双击和右键的单击行为模拟;键盘行为模拟模块负责按键按下和弹起行为的模拟;行为切换模块负责状态的切换,即鼠标行为模拟和键盘行为模拟的切换;为了使动作类型简单化和便于操作,应尽量减少动作类型的数量和动作之间相互切换的复杂度,所用动作类型设在左手和右手上,且不同动作之间的切换集中在单个骨骼点上,即实现相同功能需求,尽量减少骨骼的数量和增加操作的灵活性;行为切换模块的切换方式是通过动态提取彩色图像上对应HandLeft骨骼点映射位置的像素颜色来实现的,当颜色为白色时,当前模拟状态为键盘行为模拟,当颜色为黑色时,当前模拟状态为鼠标行为的模拟,如表2所示;
[0024] 首先由Kinect感应器捕获彩色图像和骨骼点数据,彩色图像像素颜色数据以矩阵的形式存储到Mat变量中,并通过OpenCV图形库动态提取矩阵中对应映射后HandLeft骨骼点位置处的像素颜色,以及根据提取的像素颜色的四个通道判定当前模拟行为的状态,同时系统会根据当前模拟行为状态和捕获的骨骼点位置数据判定系统当前执行的功能;系统的数据有彩色图像数据和骨骼点三维坐标数据,处理过程包括捕获数据、像素提取、状态判定、动作类型判定。
[0025] 系统的数据流程及其总体流程如图2所示,其中平行四边形部件表示的是系统涉及到的主要数据,矩形则表示主要处理过程,菱形则表示判定过程。
[0026] 本发明具体实施方式为:
[0027] 第一部分:
[0028] 行为切换模块主要包括人体骨骼和彩色图像匹配和像素颜色提取,其中人体骨骼和彩色图像匹配中涉及到坐标转换技术,像素颜色提取中需要借助OpenCV图形库动态提取彩色图像上相应位置的像素颜色,并计算r,g,b,a四个通道的值,并判定四个通道的数值是否满足阀值要求,来实现相关状态的切换,具体实现如下。
[0029] Kinect V2感应器捕获的人体骨骼和彩色图像坐标系不属于同一维度,通过坐标转换,使得Kinect捕获的人体骨骼与彩色图像配准,通过转换后的HandLeft骨骼点的二维坐标提取彩色图像上的像素颜色,算法流程图如图3.4所示。
[0030] Kinect V2感应器捕获的人体骨骼和屏幕的坐标系维度不同,通过坐标映射,实现HandLeft骨骼点和屏幕坐标的映射[51],并通过调节lx,ly值控制光标在单位时间内在水平方向和垂直方向移动距离受骨骼点移动距离的影响程度,通过改变HandLeft骨骼点在彩色图像中的提取的像素颜色,来控制模拟行为的切换,算法流程图如图3所示。
[0031] 第二部分:
[0032] (1)行为切换程序设计
[0033] 行为切换的类图如图5所示,StateSwitch类继承于BaseStateSwitch类,BaseStateSwitch类主要负责把骨骼点的三维坐标位置变换到以左上角为原点的彩色图像上的二维坐标位置和进行状态切换,Execute函数负责子类功能的实现,Vector2类描述彩色图像上任意一点的坐标点,StateSwitch类主要负责行为切换的具体实现。
[0034] (2)算法描述
[0035] 行为切换模块涉及到鼠标行为模拟和键盘行为模拟的相互切换,切换是通过彩色图像上像素颜色的动态提取来实现的,由于需要将Kinect感应器捕获的骨骼点的位置和彩色图像上人体骨骼点位置进行配对,实现位置上的一一对应,本文中采用了坐标转换的方法,通过移动、缩放、旋转等仿射变换,实现坐标的配对,当Kinect坐标配对后,将彩色图像上每个像素颜色值存储在矩阵中,通过转换后HandLeft骨骼点的坐标找到对应的矩阵的下标,从而取出彩色图像上HandLeft骨骼点位置处像素颜色值,并提取像素颜色的四个通道,若四个通道的值满足白色颜色,则切换到键盘行为模拟,若四个通道的值满足黑色颜色,则切换到鼠标行为模拟,通过彩色图像像素颜色的动态识别代替部分动作行为识别的方法,能够很大程度上减少动作类型的数量,从而避免动作行为之间的相互影响。
[0036] 由于骨骼点位置距离Kinect感应器较远或者在感应器视野范围的边缘时,此时捕获的骨骼点信息是错误的,本文在像素颜色提取的基础上,通过标定骨骼点的颜色为红色或者其它颜色,当Kinect感应器检测到彩色图像上转换后骨骼点位置处的颜色为标定颜色时,则自动计算旋转的角度θ,并旋转至朝向该骨骼点的方向,该方向能够使骨骼点位于感应器视野的中心位置,从而避免获取错误的骨骼点信息,以此实现提高动作识别的正确率和识别精度的目的,涉及到的具体算法实现如下。
[0037] (3)坐标映射
[0038] 在模拟光标的移动过程中,需要光标随着HandRight骨骼点的运动而运动,且具有相同的运动轨迹,而Kinect感应器捕获的骨骼点和屏幕的坐标系维度不同,如图7所示,人体HandRight骨骼点是以感应器为原点(O1)的三维坐标,显示屏上存在的点是以其左上角为原点(O2)二维坐标,且X轴方向水平向右,Y轴方向竖直向下[50],因此需要将以(O1)为原点HandLeft骨骼点坐标(X,Y,Z)(-lx<=x<=lx,-ly<=y<=ly)映射为以(O2)为坐标原点的屏幕坐标(x,y,z)。
[0039] 人体HandRight骨骼点和屏幕的坐标映射关系为,如3-1,3-2,3-3,3-4式所示,其中公式中系数lx,ly用来控制光标在单位时间内在水平方向和垂直方向移动距离受骨骼点移动距离的影响程度。
[0040]
[0041]
[0042]
[0043]
[0044] 上式中screenWidth为屏幕的宽度,screenHeight为屏幕的高度,(X,Y,Z)为左手骨骼点以KinectV2感应器为原点的三维坐标,(x,y,z)为映射后在屏幕上的坐标。
[0045] (4)坐标转换
[0046] Kinect感应器捕获的骨骼坐标和彩色图像上像素颜色的坐标不在同一个坐标系,且坐标系维度不同,同时需要满足彩色图像上动态提取像素颜色的位置和Kinect捕获的人体骨骼点的位置是一一对应的,因此需要将骨骼点的位置和彩色图像上人体骨骼的位置进行配对,本文中提出了坐标转换方法来进行实现,具体算法实现如下。
[0047] 具体步骤需要对骨骼点坐标点进行缩放仿射变换,从而转换到深度图像的三维坐标系中,在进行旋转、平移的仿射变换,从而转换到彩色图像的二维坐标中,故可采用投影计算公式进行计算,映射关系为,如5-1式所示:
[0048]
[0049] 上式中S缩放矩阵,R为旋转矩阵,T为平移矩阵,(x,y,z)为骨骼点转换后在彩色图像中的坐标,(X,Y,Z)为骨骼点以Kinect感应器为原点的三维坐标。对应彩色图像的点坐标如5-2式所示:
[0050]
[0051] 其中(fx,fy)是感应器捕获的彩色图像上的比例参数,(ox,oy)为感应器捕获的彩色图像上中心点。对以上拟合结果如5-3式所示
[0052]
[0053] 通过对Kinect感应器捕获的骨骼点位置进行旋转、缩放、平移等仿射变换,可以将三维坐标的骨骼点显示到二维坐标的彩色图像上,且能够实现Kinect感应器捕获的骨骼点的位置和彩色图像上人体骨骼点的位置实现匹配,即在彩色图像上位置的一一对应。
[0054] (5)像素颜色提取
[0055] 行为切换模块涉及到键盘行为模拟和鼠标行为模拟的切换,若仍采用动作识别进行行为模拟的切换,则会导致动作行为识别数量过多,本文中通过提取彩色图像上转换后骨骼点位置处的像素颜色,并根据像素颜色的四个通道的值的范围来实现模拟行为的切换,由于可选颜色较多,从而很大程度上减少了动作行为的数量,避免了个动作之间的相互干扰,由此避免了一个模拟行为中出现另一个模拟行为,像素颜色提取的具体算法如下。
[0056] 首先通过OpenCV图形库函数获取Kinect V2捕获的彩色图像数据,并通过读取捕获的每个像素颜色的值来显示彩色图像,由于彩色图像上X轴和Y轴的方向和矩阵下标位置正好相反,因此彩色图像上(x,y)坐标点的像素颜色通过存储彩色图像数据的矩阵的(y,x)下标获得。
[0057] 将提取的彩色图像的像素颜色数据拷贝到OpenCV图形库的Mat矩阵中,通过Mat矩阵下标来提取像素颜色,首先经过坐标转换使得骨骼点位置和彩色图像进行匹配,使得HandLeft骨骼点转换后的位置为提取像素颜色的位置,其中像素颜色四个通道的计算公式如5-4,5-5,5-6,5-7式所示。
[0058] b=I.at(y,x).val[0]    (5-4)
[0059] g=I.at(y,x).val[1]    (5-5)
[0060] r=I.at(y,x).val[2]    (5-6)
[0061] alpha=I.at(y,x).val[3]    (5-7)
[0062] 上式中I存储彩色数据的矩阵,b,r,g,a为像素颜色的四个通道,(y,x)坐标为提取像素颜色点的位置。
[0063] (6)像素颜色对动作识别精度的影响
[0064] Kinect感应器捕获的骨骼点的信息受人体与感应器相对位置的影响,当人体距离摄像机较远,或者在摄像机视野边缘时,捕获的骨骼的信息往往是错误的,而骨骼点位于Kinect感应器视野的中心位置是捕获该骨骼点信息的最佳位置。Kinect感应器捕获的彩色图像分辨率较高,且视野较广,不会受人体与感应器相对位置影响,而且Kinect感应器提供了调节摄像头朝向的函数,本文中通过OpenCV提取不同骨骼点的像素颜色,当提取的像素颜色为红色或其它颜色时,且骨骼点发生位移时,Kinect感应器的摄像头会自动通过上下旋转朝向该骨骼点,从而使得该骨骼点位于感应器视野的中心位置,由此保证了捕获的该骨骼点的信息是正确的,以此达到提高了该动作行为识别的准确率和精度的目的。
[0065] Kinect感应器的旋转分为正向旋转和反向旋转,如图7所示,当需要捕获的骨骼点在Kinect感应器的上方,且与OXY平面的夹角为θ,则应设置摄像头的角度a=|θ|,需要捕获的骨骼点在Kinect感应器的下方,且与OXY平面的夹角为θ,则应设置摄像头的角度a=-1*|θ|。
[0066] 假设要捕获骨骼点A的坐标为(x,y,z),要计算角度θ,首先将A点投影到OYZ平面,得到投影后B点坐标为(o,y,z),在计算B点和OXZ平面的夹角,即为要求的夹角θ,公式如5-8式所示。
[0067]
[0068] 通过设置感应器旋转的角度θ,使得骨骼点位于感应器视野的中心位置,从而避免了因骨骼点在感应器边缘位置,导致捕获的骨骼点信息是错误的,由此提高了动作行为识别的准确度和精度。
[0069] 第三部分:
[0070] (1)像素颜色提取实验
[0071] 在行为切换模块需要对键盘模拟行为和鼠标模拟行为进行切换,而如果采用动作识别进行切换,会很大程度上增加动作数量,因此本文中采用了判定彩色图像上对应转换后骨骼点位置处的像素颜色来进行切换,其中涉及到转换后骨骼点像素颜色的提取,本文中给出了提取方法,并通过实验验证了像素颜色提取方式的可行性,具体实验方法如下。
[0072] 在像素颜色提取实验中,选取KinectV2感应器中提供的25个骨骼点中的Neck骨骼点,假设Neck骨骼点转换到彩色图像中的坐标为(x,y),提取彩色图像中(x,y)坐标点像素颜色,并以该像素颜色绘制(x,y)为原点,半径R=15的圆。
[0073] 改变转换后在彩色图像上的坐标为(x,y)的Neck骨骼点的像素颜色为白色和红色,程序会根据在(x,y)点提取的像素颜色分别绘出白色的圆和红色的圆,彩色图像上显示的圆边框的颜色和Neck骨骼点提取的像素颜色相同,即通过坐标转换可以实现Kinect感应器捕获的骨骼点位置和彩色图像上人体骨骼的位置实现了匹配,由于骨骼点会随着人体的运动而产生运动,而坐标转换公式适用于人体的运动,由此实现了像素颜色的动态提取。
[0074] (2)像素颜色对光标移动影响实验
[0075] 本章给出了像素颜色提取的方式,并通过了实验验证了该方式的可行性,然而对于提取的像素颜色能否应用到实际的开发中,还需要进一步通过实验验证,实验的方法是首先提取彩色图像上转换后HandLeft骨骼点的像素颜色,并根据提取的像素颜色来控制光标的运动,当提取的像素颜色为白色,光标会随着HandRight骨骼点的运动而运动,当提取像素颜色为黑色,光标会停止运动。具体实现方法如下所示。
[0076] 首先在实验之前,先对未结合彩色图像识别和结合彩色图像识别进行了对比,给出了两种状态下的动作类型、动作类型数量、骨骼点的类型和骨骼点数量的数据,如表3所示。
[0077] 表3:不同状态条件下对比
[0078]
[0079] 从表3中得出结论为,使用彩色图像识别后,明显减少了动作类型和骨骼点的数量,由此也避免了多个动作之间的相互影响,且随着功能不断增加,动作行为的数量会更加庞大,加入彩色图形识别后,由于可识别颜色范围比较广泛,因此可以很大程度上减少动作类型的数量,即对于功能要求越多的系统,基于像素颜色动态提取的彩色图像识别越适用。
[0080] 在该实验中,移动HandRight骨骼点,并保证HandRight骨骼点始终处于运动状态,每隔t=1s时间间隔获取屏幕上光标的坐标为(x,y)如表4。在屏幕二维坐标基础上,加上表示取样时间的z轴,绘制三维坐标轴,如图8所示,其中图中(e,d,c,b,a)位置为提取像素颜色为黑色的点,而其他位置为提取的像素颜色为白色的点。
[0081] 表4:单位时间内提取不同像素颜色条件下光标的屏幕坐标
[0082]
[0083] 由图8可以看出,随着Z轴的时间不断增加,光标运动了一段时间后,停止运动,接着又开始运动,其中(e,d,c,b,a)位置处光标坐标(x,y)没有变化,即停止了运动,而此时彩色图像上在转换后HandLeft骨骼点位置处提取的像素颜色为黑色,在其他位置,光标始终随着HandLeft骨骼点的运动而运动,而此时彩色图像上在转换后HandLeft骨骼点位置处提取的像素颜色为白色,从实验中可以看出,通过改变在彩色图像中提取的像素颜色值,能够较好的实现鼠标的移动控制,即能够较好将彩色图像应用到实际应用开发中。
[0084] (3)像素颜色对识别精度的影响实验
[0085] 当要捕获的骨骼点距离Kinect感应器较远或者在感应器视野的边缘时,获取的骨骼点信息是错误的,本发明提出了通过标定彩色图像上转换后骨骼点位置处的像素颜色为红色,且当骨骼点发生位移时,Kinect感应器的摄像头通过计算角度θ值,自动朝向人体标注为红色的骨骼点,使得该骨骼点位于感应器视野的中心位置,从而使得捕获的骨骼点的信息是正确的,以此来达到提高动作识别准确度和精度的目的。本文中给出了实验方法,具体方法如下。
[0086] 在该实验中,通过右手的握拳来模拟鼠标右键的单击,若每次模拟中当右手握拳行为未激发鼠标右键的单击,则认为是错误事件,且右手位于Kinect视野的边缘,并标定HandRight骨骼点的颜色分别为红色和白色,当颜色为红色时,Kinect感应器能够计算θ值,并通过旋转θ角度,实现朝向HandRight骨骼点的方向,当为白色时,摄像头保持正常朝向,未发生旋转,本实验中进行10次鼠标右键单击行为的模拟实验,并记录模拟次数i对应的产生错误的总次数Si如表5。
[0087] 表5:不同像素颜色模拟行为产生的错误总次数
[0088]
[0089] 随着鼠标的右键单击模拟行为次数的不断增加,当提取的像素颜色为红色时,鼠标右键单击模拟行为产生的错误总次数明显低于提取的像素颜色为白色的情况,即验证了通过标定骨骼点处的像素颜色,来判定是否让Kinect感应器自动计算旋转角度θ,并通过旋转角度θ,实现骨骼点位于感应器视野的中心位置,从而提高动作行为识别准确度和精度的方法是可行的。
[0090] 第四部分:
[0091] 系统中模拟了鼠标行为的光标移动、左键的单击、双击、右键的单击、窗口的拖动以及键盘行为的按键的按下、弹起,在本阶段,测试了系统中涉及到的模拟行为,具体测试过程如下所示。
[0092] (1)进行鼠标右键模拟行为功能测试,测试者首先做左手自然下垂,右手握拳的动作,并观察屏幕是否出现鼠标右键单击行为,随着右手握拳动作行为,出现了鼠标右键单击行为。
[0093] (2)进行键盘按键按下和弹起行为功能测试,通过右手掌移动光标并单击系统界面上的打开键盘按钮,然后把光标移动到虚拟键盘的a按键上,并做握拳和手掌伸开动作,观察是否出现按键按下的行为,当左手握拳后,虚拟键盘上的a按键被按下,当左手处于伸展状态,被按下的a键弹起。
[0094] (3)进行光标移动行为功能测试,首先移动右手掌位置,通过观察可知光标的移动轨迹和右手掌的移动轨迹相同。
[0095] 经过测试,测试的系统功能都能正常实现。
[0096] 参考文献:
[0097] [1]王彦凯.动态手势识别及应用研究[D].西安电子科技大学,2014.[0098] [2]S.Szilvia,M.Zichar,F.Attila.Gesture-based computer mouse using Kinect sensor[c].In Proceeding ofthe 5th IEEE International Conference on Cognitive Infocommunications.IEEE,2014:419-424.
[0099] [3]Tran N X,Phan H,Dinh V V,et al.Wireless Data Glove for Gesture-Based Robotic Control[J].Human-Computer Interaction.Novel Interaction Methods and Techniques,2009,5611:271-280.
[0100] [4]李存东.基于模型的人体运动分析[D].南京理工大学,2012.
[0101] [5]任海兵,祝远新,徐光祐,等.连续动态手势的时空表观建模及识别[J].计算机学报,2000,23(8):824-828.
[0102] [6]Michal W F.Orientation Histograms for Hand Gesture Recognition[J].Mitsubishi Electric Research Labs,1999:296--301.
[0103] [7]S.Qin,X.Zhu,Y.Yang,et a.Real-time hand gesture recognition from depth images using convex shape decomposition method[J].Journal of Signal Processing Systems,2014:47–58.
[0104] [8]A.Michael,Y.Yang,L.Li.Joint Filtering:Enhancing gesture andmouse movement in Microsoft Kinect application[C].In Proceedings of the 12th International Conference on Fuzzy Systems and Knowledge Discovery.IEEE,2015:2528–2532
[0105] [9]雷明,张军英,董济扬.一种可变光照条件下的肤色检测算法[J].计算机工程与应用,2002,38(24):123-125.