一种基于体感技术及云计算的文件传输方法

文档序号:8223169阅读:480来源:国知局
一种基于体感技术及云计算的文件传输方法
【技术领域】
[0001]本发明涉及人机交互界面和云计算技术领域,具体涉及采用自然用户界面实现网络云存储的方法。
【背景技术】
[0002]在人机交互界面设计的发展过程中,鼠标和键盘一直是我们与计算机沟通的主要输入设备,而屏幕就一直是计算机信息的最主要输出设备,所以在人机交互作品的创作过程中经常会使用“鼠标经过”、“鼠标点击”、“键盘按下”等事件来判断用户的行为与指令,而鼠标和键盘就成了传达指令的“传令官”。但这种方式并不是人类沟通的原有方式,这是计算机强加给我们的要求,用户无法以更自然、更直观、更接近人类行为方式的自然用户界面(NUI)来操控计算机。
[0003]近年来,为了摆脱鼠标、键盘的限制,人们开始关注更接近人类行为的人机交互方式。目前,人机交互技术正处于由图形用户界面向自然交互界面转化的阶段。但是目前为止还没有人将网络云存储技术结合到自然交互界面上,文件传输不够方便,还不能做到通过手势操作在网络云空间中进行上传和下载。

【发明内容】

[0004]为了解决上述问题,本发明利用Kinect摄像头获得的深度数据流和骨骼数据流以及网络云存储技术,提供一种基于Kinect无接触性操作控制计算机和网络云存储技术来实现文件的传输和操作功能的方法。
[0005]一种基于体感技术及云计算的文件传输方法,具体按以下步骤进行:
[0006]步骤I,体感操作。
[0007]步骤1.1,将Kinect接入计算机系统,检查Kinect设备的连接情况,并进行初始化。
[0008]步骤1.2,跟踪人体骨骼数据,选择最近的人体骨架作为主控者。
[0009]步骤1.3,根据人体头部位置和双手位置进行空间坐标的转换,使得手部的移动范围可以铺满整个屏幕。
[0010]步骤1.4,跟踪双手的位置变化,切换左右手模式。
[0011]步骤1.5,识别手势,实现主控手做出抓取或放开的动作。
[0012]步骤1.6,使用Windows Native API,将人手的动作与鼠标功能对应。
[0013]步骤2,网络云文件传输。
[0014]步骤2.1,向用户使用的网盘服务上进行第三方应用授权,获得对用户网络文件的操作权限。
[0015]步骤2.2,登陆网盘,并获取文件列表。
[0016]步骤2.3,上传文件。
[0017]步骤2.4,下载和打开文件。
[0018]与现有技术相比,本发明具有以下优点:
[0019]应用本发明可以通过手势操控电脑,通过特定的肢体动作进入到用户个人的网络云空间中进行上传和下载的操作。本发明适用于从家庭、学校、到工作等场景,用户不必再使用优盘来存放需要携带的文件,只需站在Kinect体感摄像头前挥动手臂,就能轻松存放和获取云端的文件。给用户带来新颖的使用体验,简便人们的日常生活及办公。
【附图说明】
[0020]图1为Kinect人体骨骼追踪示意图;
[0021]图2为Kinect骨骼跟踪20个关节点示意图;
[0022]图3为Kinect骨骼坐标系;
[0023]图4为从骨骼坐标系到鼠标绝对坐标系的转换;
[0024]图5为授权和登陆功能流程图;
[0025]图6为OAuth协议基本流程图;
[0026]图7为获取文件列表流程图;
[0027]图8为本发明所述方法的流程图。
【具体实施方式】
[0028]下面结合附图和【具体实施方式】对本发明做进一步说明。
[0029]一种基于体感技术及云计算的文件传输方法,流程图如图8所示,具体按以下步骤进行:
[0030]步骤I,体感操作。
[0031]步骤1.1,将Kinect接入计算机系统,检查Kinect设备的连接情况,并进行初始化。在初始化Kinect设备之后,进行一些交互的基本设置:首先需要获得Kinect连接状态和数量,选择使用的Kinect设备,设置摄像头仰角,打开颜色数据流、深度数据流、骨骼数据流和交互数据流。
[0032]步骤1.2,Kinect跟踪人体骨骼数据,选择最近的人体骨架作为主控者。
[0033]如图1、2所示,Kinect最多可以跟踪2个骨骼,可以最多检测6个人。站立模式可以跟踪20个关节点,坐着模式可以跟踪10个关节点。
[0034]NUI骨骼跟踪分主动和被动两种模式,提供最多两副完整的骨骼跟踪数据。主动模式下需要调用相关帧读取函数获得用户骨骼数据,而被动模式下还支持额外最多四人的骨骼跟踪,但是在该模式下仅包含了用户的位置信息,不包括详细的骨骼数据。对于所有获取的骨骼数据,其至少包含以下信息:
[0035]相关骨骼的跟踪状态,被动模式时仅包括位置数据(用户所在位置),主动模式包括完整的骨骼数据(用户20个关节点的空间位置信息)。
[0036]分配给视野中的每个用户的唯一的骨骼跟踪ID,即前述深度数据中的ID,用于区分当前骨骼数据属于哪个用户的。
[0037]用户质心位置,该值仅在被动模式下可用(就是标示用户所在位置的)。
[0038]Kinect跟踪的用户的各关节点位置用三维骨骼坐标(x,y, z)表示,与深度图像空间坐标不同的是,该坐标单位是米。这个坐标系是右手螺旋的,Kinect感应器处于原点上,Z坐标轴则与Kinect感应的朝向一致。y轴正半轴向上延伸,x轴正半轴(从Kinect感应器的视角来看)向左延伸,如图3所示。为了方便讨论,称这个坐标系为骨骼坐标系。
[0039]由于Kinect感应器位于骨骼坐标系的原点,Kinect放置的位置会影响生成的图像和数据。例如,Kinect可能被放置在非水平表面上或者有可能在垂直方向上进行了旋转调整来优化视野范围。在这种情况下,y轴就往往不是相对地面垂直的,或者不与重力方向平行。最终得到的图像中,尽管人笔直站立,在图像中也会显示出是倾斜的。
[0040]步骤1.3,根据人体头部位置和双手位置进行空间坐标的转换,使得手部的移动范围可以铺满整个屏幕。
[0041]这是为了根据空间坐标的信息确定出手部操控的范围,从而实现对手部动作的细节捕捉。
[0042]步骤1.4,跟踪双手的位置变化,切换左右手模式。方法与步骤1.2中的骨骼跟踪模式相同。
[0043]步骤1.5,识别手势,实现主控手做出抓取或放开的动作。
[0044]在许多不同的学科中,手势(gesture)有着其独特的含义,可能这些含义之间有某些异同。在艺术领域,手势被用来传达舞蹈中最富表现力的部分,特别是在亚洲舞蹈艺术中,手势被作为某些宗教符号或象征。在人机交互领域,手势通常有一些含义,表示有意让某些事情发生。手势是一种指令。当通过鼠标或者触控板去点击CTI界面上的按钮时,希望按钮会触发其背后的事件。通常,按钮上会有一个标签来指示按钮的功能,如:开始,取消,打开,关闭。我们的手势操作就是想要实现这些事件。
[0045]手势的一个特点是比较随意(arbitrary)。手势有限定的领域,那么在该领域之外没有任何意义。令人惊讶的是除了指向(pointing)和耸肩(shurg),人类学家没有发现任何可以称之为一种通用手势的东西。然而,在计算机的UI中,指向(pointing)通常被认为是直接操作因为它牵涉到跟踪,同时耸肩的含义太微妙而不好辨识。所以,想要使用任何Kinect手势必须基于应用程序的用户和应用程序的设计和开发者之间就某种手势代表的含义达成一致。
[0046]手势识别功能的实现是根据关节坐标与Kinect的距离来判定是左手还是右手来操作鼠标,兼容左右手习惯。首先查找离Kinect最近的被跟踪的骨骼,然后获得离Kinect距离最近被骨骼跟踪的用户,根据与Kinect的距离来判定是左手还是右手来操作鼠标,如果没有伸出手,则不作跟踪,而是以头部的坐标为参照点模拟鼠标移动。然后通过骨骼跟踪事件,捕捉到用户左手或右手的空间坐标(X,1,z)o由于鼠标移动的绝对坐标系和屏幕坐标系不完全一致,鼠标绝对坐标系的X轴、Y轴的点坐标为Int型,值范围是(O?65535),因此需要进行变换:X = (x*65536/screenffidth), Y = (y*65536/screenHeight),将屏幕坐标(X,y)转换成鼠标移动的绝对坐标(X,Y)。其中,screenffidth和screenHeight分别为屏幕的长和宽。如图4所示。
[0047]这样,操控者就可以通过左右手的抓握和放开来进行对电脑的鼠标操控。
[0048]步骤1.6,使用Windows Native API,将人手的动作与鼠标功能对应。
[0049]通过骨骼跟踪事件,首先捕捉到用户左手或右手的空间坐标(X,y,z);其次,将(X,Y, Z)的XY平面坐标部分映射为屏幕坐标。这一过程可以使用Coding4Fun.Kinect工具包,引用其中的扩展方法Joint.ScaleTo,该方案将骨骼坐标映射为屏幕坐标。
[0050]步骤2,网络云文件传输。
[0051]步骤2.1,向用户使用的网盘服务上进行第三方应用授权,获得对用户网络文件的操作权限。
[0052]在MainPage.Xaml.Cs中,当程序启动后先检查有没有已获取的Access Token,若无已获取的Access Token就跳转到授权页面。本实施例采用OAuth 2.0协议进行授权验证,用户只需在此登录自己的账号密码就可以完成授权过程。授权成功后,应用获取并保存Access
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1