基于Kinect的操纵网络浏览器的系统及方法

文档序号:6550585阅读:211来源:国知局
基于Kinect的操纵网络浏览器的系统及方法
【专利摘要】本发明公开了一种基于Kinect的操纵网络浏览器的系统及方法,通过支撑层、逻辑处理层和交互层三层体系结构实现,所述系统包括数据流接收模块、动作信息获取模块、动作信息处理模块和显示模块;所述方法包括在支撑层接收Kinect传感器的原始数据流;通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层;在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层;在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果。本发明系统及方法在用Kinect操纵网络浏览器时,可以通过手势实现对网络浏览器的基本控制和文本信息的输入。
【专利说明】基于Kinect的操纵网络浏览器的系统及方法
【技术领域】
[0001]本发明涉及一种操纵网络浏览器的系统及方法,尤其是一种基于Kinect的操纵网络浏览器的系统及方法。属于人机交互领域。
【背景技术】
[0002]2010年,微软公司正式发布了 Kinect。Kinect是一款新型3D体感摄像设备。它可以获得骨骼、深度等原始感测数据流,对人的动作进行追踪和检测,以完成对计算机的控制。这种即时动态捕捉用户的肢体信息实现的人机交互方式具有一定的革命意义。同时,Kinect因其紧凑的,廉价的和易于使用的特点,必定会在世界范围内普及,成为一款家用的计算机辅助设备。
[0003]目前,市面上存在一些针对Kinect且与网络浏览器有关的应用开发,具体如下:
[0004]I)微软研究院有一个免费的 JavaScript AP1-Kinected Browser。Kinect 的
数据可用于JavaScript或者DOM的编程。Xbox360上的IE浏览器可以使用Kinect手势操作。麻省理工学院的一个团队开发了 D印thjs,允许使用Kinect进行网页浏览操作,包括点击、前进、后退、页面滚动、平移和放大。但是,这些项目都没有实现手势输入,用户进行网页浏览时难免会遇到需要进行输入的时候,如果要求用户使用手势来操作网页浏览器,而使用键盘进行输入,这显然是非常别扭的,不便于人机交互。
[0005]2)中国专利申请号为201110388900.4的基于手势识别的会议演示交互方法,它是通过采集图像中演示控制区域内的数据,识别身处演示控制区域内用户的手势,然后从控制手势集合中获取对应的控制命令,并通过其控制会议演示内容的输出。但演示者只能控制PPT的前进、后退、播放、停止等,并不能在PPT上进行标记操作,即不能在PPT上书写,也没有提供一些辅助的功能例如放大镜等,对于远程操作者来说会造成一定的操作难度。
[0006]3)中国专利申请号为201180061879.5的发明是英特尔公司提出的用于与网络浏览器上的内容交互的方法、装置和系统,它提出的是一种宏观的概念,而且重点研究用户手势的识别,工具也不只是针对Kinect。

【发明内容】

[0007]本发明的目的是为了解决上述现有技术的缺陷,提供一种基于Kinect的操纵网络浏览器的系统,该系统在用Kinect操纵网络浏览器时,可以通过手势实现对网络浏览器的基本控制和文本信息的输入。
[0008]本发明的另一目的在于提供一种基于Kinect的操纵网络浏览器的方法。
[0009]本发明的目的可以通过采取如下技术方案达到:
[0010]基于Kinect的操纵网络浏览器的系统,所述系统通过支撑层、逻辑处理层和交互层三层体系结构实现,具体包括:
[0011]数据流接收模块,用于在支撑层接收Kinect传感器的原始数据流;
[0012]动作信息获取模块,用于在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层;
[0013]动作信息处理模块,用于在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层;
[0014]显示模块,用于在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果O
[0015]作为一种优选方案,所述数据流接收模块中接收的原始数据流包括彩色图像数据流、深度图像数据流和骨骼信息数据流。
[0016]作为一种优选方案,所述动作信息获取模块具体包括:
[0017]数据流获取单元,用于获取深度图像数据流和骨骼信息数据流;
[0018]坐标转换单元,用于自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点;
[0019]信息提取单元,用于将从深度图像数据流和骨骼信息数据流中提取的信息进行保存;
[0020]手部状态判断单元,用于实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层。
[0021]作为一种优选方案,所述动作信息处理模块具体包括:
[0022]输入信息判断与处理单元,用于对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合;
[0023]按压点击信息判断与处理单元,用于对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,触发相应的事件,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层。
[0024]作为一种优选方案,所述显示模块,具体如下:
[0025]用于当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面放大;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,则在浏览界面的目标位置触发鼠标点击事件。[0026]本发明的另一目的可以通过采取如下技术方案达到:
[0027]基于Kinect的操纵网络浏览器的方法,所述方法通过支撑层、逻辑处理层和交互层三层体系结构实现,具体包括:
[0028]在支撑层接收Kinect传感器的原始数据流;
[0029]在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层;
[0030]在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层;
[0031]在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果。
[0032]作为一种优选方案,所述原始数据流包括彩色图像数据流、深度图像数据流和骨骼信息数据流。
[0033]作为一种优选方案,所述在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层,具体包括:
[0034]获取深度图像数据流和骨骼信息数据流;
[0035]自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点;
[0036]将从深度图像数据流和骨骼信息数据流中提取的信息进行保存;
[0037]实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层。
[0038]作为一种优选方案,所述在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层,具体包括:
[0039]对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合;
[0040]对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,触发相应的事件,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层。
[0041]作为一种优选方案,所述在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果,具体如下:
[0042]当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面放大;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,则在浏览界面的目标位置触发鼠标点击事件。
[0043]本发明相对于现有技术具有如下的有益效果:
[0044]1、本发明系统及方法设置了浏览界面和输入界面,使用户能用手势进行文字输入或浏览网页,并分为支撑层、逻辑处理层和交互层三层体现结构,耦合度小,操作更加稳定,实现思路也比较清晰,可以广泛应用于网络浏览器的操作上。
[0045]2、本发明系统及方法在用Kinect操纵网络浏览器时,可以通过手势实现对网络浏览器的基本控制和文本信息的输入,基本控制包括点击链接、将页面放大、进行页面跳转、滚动页面,文本输入支持中文和英文,克服了现有用Kinect操纵网络浏览器的系统只有手势控制而没有手势输入的不足之处。
【专利附图】

【附图说明】
[0046]图1为本发明系统的体系结构框图。
[0047]图2为本发明系统的浏览界面示意图
[0048]图3为本发明系统的输入界面示意图。
[0049]图4为本发明系统的动作信息获取流程图。
[0050]图5为本发明系统的悬停点击实现流程图。
[0051]图6为本发明系统的用户操作流程图。
【具体实施方式】
[0052]实施例1:
[0053]如图1所示,本实施例的基于Kinect的操纵网络浏览器的系统通过支撑层、逻辑处理层和交互层三层体系结构实现,在支撑层上有数据流接收模块和动作信息获取模块,在逻辑处理层上有动作信息处理模块,在交互层上有显示模块,显示模块含浏览界面和输入界面;输入界面如图2所示,主要提供画板给用户书写,并设置了包含中英文切换按钮、识别按钮和浏览界面切换按钮这三个按钮的菜单栏,浏览界面如图3所示,也设置了放大按钮、前进按钮、后退按钮、悬停点击按钮、输入界面切换按钮这五个按钮的菜单栏,两个界面都各有一个手形图标(即用户的手部骨骼点在界面上的展现)和KinectUserViewer控件(展示人物在Kinect中的深度影像),这两个控件可以给用户一些全局的反馈,表示当前系统运行正常;其中:
[0054]I)支撑层的实现
[0055]数据流接收模块,用于在支撑层接收Kinect传感器的原始数据流;该模块通过Kinect SDK可以直接获取Kinect传感器的原始数据流,并在此基础上进行较为底层的应用开发,从Kinect获得的数据流包括彩色图像数据流、骨骼信息数据流和深度图像数据流,这些数据流都是由数据帧构成,通过建立缓冲区,应用程序可以把数据帧保存起来,而获取数据帧的方法有两种,分别是轮询模型和事件模型,本实施例的系统主要使用事件模型,使用时先注册数据流的FrameReady事件,每当事件触发时,将会调用事件的属性FrameReadyEventArgs来获取数据巾贞,而且事件模型不需要其他的检查和异常处理。
[0056]动作信息获取模块,用于在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息(输入信息和按压点击信息)发送给逻辑处理层;该模块获取动作信息的流程如图4所示,具体包括数据流获取单元、坐标转换单元、信息提取单元和手部状态判断单元;其中:
[0057]数据流获取单元,用于通过注册DepthFrameReady和SkeletonFrameReady事件,获取深度图像数据流和骨骼信息数据流;
[0058]坐标转换单元,用于自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点;
[0059]信息提取单元,用于通过注册InteractionFrameReady事件,将从深度图像数据流和骨骼信息数据流中提取的信息进行保存;这些信息包括时间戳(每个数据帧被获取时的时间)、手部信息(状态和位置)和用户ID (信息属于哪个用户);
[0060]手部状态判断单元,用于利用Interaction流实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层;由于动作信息都被存储起来了,在需要时,逻辑处理层可以从Interaction流中获取这些信息,并作相关的处理。
[0061]2)逻辑处理层的实现
[0062]动作信息处理模块,用于在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层;该模块具体包括输入信息判断与处理单元,其中:
[0063]输入信息判断与处理单元,用于对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合;
[0064]关于轨迹信息的处理,需要调用InkAnalyzer类,该类是专门用来分析墨迹的一个类,提供布局分析、书写和绘制分类以及手写识别的访问等功能;其中,添加墨迹和移除墨迹需要使用AddStroke方法和RemoveStroke方法,Analyze O方法启动同步墨迹分析操作;墨迹分析包括布局分析、书写和绘制分类以及手写识别,而GetAltematesO方法可以获得备选的分析结果,通过使用InkAnalyzer类能得到很高的识别率。
[0065]当支撑层传来输入信息时,表示输入开始,因为手部是在输入界面的画板上移动,且记录的是每个时间点手部的位置点,所以要先进行类型转换,将Point类型转化为Stroke类型,然后对Stroke利用Recognize函数进行分析和识别,用伪代码描述如下:
[0066]I) Function Begin
[0067]2) if没有输入
[0068]3) 返回空候选集
[0069]4) else
[0070]5)调用 GetCombinedStore (strokes)函数获取墨迹
[0071]6)新建类 InkAnalyzer 对象[0072]7) 调用类方法AddStroke将墨迹添加到对象中
[0073]8) 调用类方法SetStrokeType设置墨迹类型
[0074]9) 调用类方法Analyze开始分析墨迹
[0075]10) if分析成功
[0076]11) 返回候选集
[0077]12) else
[0078]13) 释放InkAnalyzer使用的所有资源
[0079]14) 返回空候选集
[0080]15) endif
[0081]16) endif
[0082]17) Function End
[0083]针对集合中的每一个候选字,制作成一个KinectTileButton,所有按钮集中在一个ScrollViewer控件中,在输入界面拖动滚动条并按压按钮就能选择所需要的字符。
[0084]按压点击信息判断与处理单元,用于对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,按压放大按钮、前进按钮、后退按钮、输入界面切换按钮等都是Kinect支持的KinectTileButton,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,如图5所示,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层,这是针对网页的元素或者是浏览器功能菜单所设计的一种悬停点击模式。
[0085]3)交互层的实现
[0086]显示模块,用于在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果,具体如下:
[0087]用于当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,如图5所示,则在浏览界面的目标位置触发鼠标点击事件。
[0088]关于输入界面的设计,核心是创建一个面板,使手部也能像鼠标一样在画板上书写;首先,Kinect具有Kinect Interactions (手势识别)、手掌前推可实现按键(Push-to-Press)、抓握手势可实现平移(Grip-to_Pan)等功能,使用的前提是需要在界面上添加一个 KinectRegion 容器类,KinectRegion 是 WPF 中使用 Kinect Interaction 进行交互的关键元素,是其它Kinect interaction控件的容器,KinectRegion也负责展示和移动手形图标,即用户的手部骨骼点在界面上的展现。应用程序主界面上可以有多个KinectRegion,但是每个KinectRegion不能够嵌套,每一个KinectRegion中可以有自己的Kinect sensor对象;因此,交互层主要由一个KinectRegion容器组成,上面放有画板和按钮等控件。
[0089]传统的画板是定义接收和显示墨迹笔划的区域,由InkCanvas类来控制的,鼠标可以在上面移动和书写,为了实现手部与鼠标绑定并能在画板上显示,就必须在InkCanvas类上添加对Kinect的支持,所以新建了一个Kinectinkcanve类,是继承InkCanvas类的,增加了一些用于识别手部动作的方法。其中InitializeKinectinkcanva是核心方法,调用KinectRegion容器所具有的手势操作,使画板也能识别出手势;另外,当手部状态发生变化时,OnKinectRegionChanged方法会更新数据,并同步给画板,通过Kinectinkcanve类,画板能显示手部和移动手形图标,并且由于画板的原生功能,手部也能像鼠标那样在画板上涂写了。
[0090]如图2、图3和图6所示,本实施例的基于Kinect的操纵网络浏览器的系统用户操作步骤如下:
[0091]S1、连接Kinect,打开系统和浏览器;
[0092]S2、切换到浏览界面,按压悬停点击按钮,开启悬停点击模式;
[0093]S3、将手部移动到地址栏或搜索栏上,悬停1.5秒;
[0094]S4、获得输入焦点,切换到输入界面,通过中英文切换按钮选择中文或英文模式,准备进行手写输入;
[0095]S5、握拳,开始书写,手部的移动轨迹会被记录,同时输入界面上的输入区域I会显示手写笔迹,直到松拳结束;
[0096]S6、若需要重写,可以握拳向右画线清除笔迹,然后重新输入;否则,按压识别按钮,输入界面下方就会出现若干个候选字构成的候选字区域2,可以拖动滚动条3并按压候选字按钮选择所需要的字符;
[0097]S7、选择所需要的字符后,若完成输入,切换到浏览界面;否则,返回步骤S5继续输入;
[0098]S8、处于浏览界面时,通过悬停点击的方式进入所需要的页面(即所输入文字信息对应的页面),此时可以执行的操作有:通过悬停点击的方式点击浏览器的菜单项和页面元素、向上挥手或向下挥手来滚动页面、利用放大按钮进行页面放大、利用前进按钮或后退按钮进行页面跳转;若需要进行文字输入时,可以在输入的地方上悬停1.5秒,采用步骤S3?S6的方法进行输入;若用户不需要继续浏览页面,在浏览完毕后,关闭系统并断开Kinect 连接。
[0099]实施例2:
[0100]本实施例的基于Kinect的操纵网络浏览器的方法与实施例1的系统对应,同样通过支撑层、逻辑处理层和交互层三层体系结构实现,具体包括:
[0101]在支撑层接收Kinect传感器的原始数据流,所述原始数据流包括彩色图像数据流、深度图像数据流和骨骼信息数据流;
[0102]在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层;[0103]在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层;
[0104]在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果。
[0105]所述在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层,具体包括:
[0106]获取深度图像数据流和骨骼信息数据流;
[0107]自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点;
[0108]将从深度图像数据流和骨骼信息数据流中提取的信息进行保存;
[0109]实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层。
[0110]所述在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层,具体包括:
[0111]对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合;
[0112]对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,触发相应的事件,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层。
[0113]所述在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果,具体如下:
[0114]当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面放大;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,则在浏览界面的目标位置触发鼠标点击事件。
[0115]本领域普通技术人员可以理解实现上述实施例的系统及方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0116]综上所述,本发明系统及方法设置了浏览界面和输入界面,使用户能用手势进行文字输入或浏览网页,并分为支撑层、逻辑处理层和交互层三层体现结构,耦合度小,操作更加稳定,实现思路也比较清晰,可以广泛应用于网络浏览器的操作上。
[0117]以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。
【权利要求】
1.基于Kinect的操纵网络浏览器的系统,其特征在于所述系统通过支撑层、逻辑处理层和交互层三层体系结构实现,具体包括: 数据流接收模块,用于在支撑层接收Kinect传感器的原始数据流; 动作信息获取模块,用于在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层; 动作信息处理模块,用于在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层; 显示模块,用于在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果。
2.根据权利要求1所述的基于Kinect的操纵网络浏览器的系统,其特征在于:所述数据流接收模块中接收的原始数据流包括彩色图像数据流、深度图像数据流和骨骼信息数据流。
3.根据权利要求2所述的基于Kinect的操纵网络浏览器的系统,其特征在于:所述动作信息获取模块具体包括: 数据流获取单元,用于获取深度图像数据流和骨骼信息数据流; 坐标转换单元,用于自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点; 信息提取单元,用于将从深度图像数据流和骨骼信息数据流中提取的信息进行保存; 手部状态判断单元,用于实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层。
4.根据权利要求3所述的基于Kinect的操纵网络浏览器的系统,其特征在于:所述动作信息处理模块具体包括: 输入信息判断与处理单元,用于对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合; 按压点击信息判断与处理单元,用于对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,触发相应的事件,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层。
5.根据权利要求4所述的基于Kinect的操纵网络浏览器的系统,其特征在于:所述显示模块,具体如下: 用于当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面放大;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,则在浏览界面的目标位置触发鼠标点击事件。
6.基于Kinect的操纵网络浏览器的方法,其特征在于所述方法通过支撑层、逻辑处理层和交互层三层体系结构实现,具体包括: 在支撑层接收Kinect传感器的原始数据流; 在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层; 在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层; 在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果。
7.根据权利要求6所述的基于Kinect的操纵网络浏览器的方法,其特征在于:所述原始数据流包括彩色图像数据流、深度图像数据流和骨骼信息数据流。
8.根据权利要求7所述的基于Kinect的操纵网络浏览器的方法,其特征在于:所述在支撑层通过Kinect传感器的原始数据流获取用户的相关信息,并根据用户的相关信息触发相应的事件,将与事件对应的动作信息发送给逻辑处理层,具体包括: 获取深度图像数据流和骨骼信息数据流; 自动追踪用户手部的移动,并把深度坐标和骨骼坐标转换成二维的坐标,将手部的位置映射为屏幕上的坐标点; 将从深度图像数据流和骨骼信息数据流中提取的信息进行保存; 实时监听手部状态,并对手部状态进行判断,当手部处于握拳状态时,触发输入事件,将输入信息发送给逻辑处理层;当手部位置的Z坐标发生变化而XY坐标变化较小时,触发按压点击事件,将按压点击信息发送给逻辑处理层。
9.根据权利要求8所述的基于Kinect的操纵网络浏览器的方法,其特征在于:所述在逻辑处理层对支撑层发送的动作信息进行处理,并将处理结果发送给交互层,具体包括: 对支撑层发送的输入信息进行判断,若输入信息是在浏览界面的手势信息,根据转换表将手势映射为实际的操作,并向交互层发送操作结果;若输入信息是在输入界面的轨迹信息,根据手部移动过程的数据信息生成墨迹集合,对墨迹进行分析,并向交互层发送墨迹信息和候选字集合; 对支撑层发送的按压点击信息进行判断,若按压点击信息是在浏览界面按压放大按钮、前进按钮、后退按钮或输入界面切换按钮的点击信息,或是在输入界面按压中英文切换按钮、识别按钮或浏览界面切换按钮的点击信息,触发相应的事件,并且这个事件触发另一个可为交互层接收到并作出响应的事件;若按压点击信息是在浏览界面按压悬停按钮的点击信息,开启定时器,收集若干个手部的位置点信息,当定时器的时间为1.5秒且所有位置点都在一个小范围内,判断为悬停点击,计算所有位置点的平均值确定点击的目标位置,然后发送目标位置信息给交互层。
10.根据权利要求9所述的基于Kinect的操纵网络浏览器的方法,其特征在于:所述在交互层利用浏览界面或输入界面显示逻辑处理层发送的处理结果,具体如下: 当交互层接收到的是向上或向下挥手的手势信息,则在浏览界面向上或向下滚动网页页面;当交互层接收到的是墨迹信息,则输入界面的画板的输入区域上显示手写笔迹,或将手写笔迹清除;当交互层接收到的是放大按钮的事件,则在浏览界面将网页页面放大;当交互层接收到的是前进按钮或后退按钮的事件,则在浏览界面进行网页页面跳转;当交互层接收到的是输入界面切换的事件,则将浏览界面切换成输入界面;当交互层接收到的是中英文切换按钮的事件,则在输入界面将中文切换为英文,或将英文切换为中文;当交互层接收到的是识别按钮的事件,则在输入界面生成候选字;当交互层接收到的是浏览界面切换按钮的事件,则将浏览界面切换成输入界面;当交互层接收到的是悬停点击的目标位置信息,则在浏览界面的目标位置触发鼠标点击事件。
【文档编号】G06F3/0487GK104020853SQ201410283898
【公开日】2014年9月3日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】张庆丰, 董侠, 张嘉昕, 汤中伟, 林烈峰, 容玉钿 申请人:暨南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1