基于运动轨迹的三维控制方法及装置与流程

文档序号:14518617阅读:493来源:国知局
基于运动轨迹的三维控制方法及装置与流程

本发明涉及人机交互领域,具体而言,涉及一种基于运动轨迹的三维控制方法及装置。



背景技术:

随着虚拟现实(virtualreality,简称为vr)与增强现实(augmentedreality,简称为ar)概念逐渐被大众了解,相应的硬件设备也陆续发布,这些全新设备给用户带来了前所未有的三维空间交互体验。对比pc时代的标准输入方式鼠标与键盘和移动时代的触摸屏,用户希望能够在vr和ar设备中实现更多的灵活交互方式。现有技术中有以下三种人机交互方式:第一种,通过手持控制器的操作。如一些头戴式pcvr设备中标配了两个手持控制器,还有一些头戴式pcvr设备目前标配了xbox手柄,未来也将推出手持控制器,以这两种手持控制器为例,这种控制器上一般有多个按钮,包括“菜单”和“选择”键。当前的交互流程通常是,按压控制器按键“菜单”键,弹出菜单,通过另一个控制器找到需要的功能,对准并选择菜单项,判断菜单项是否已经是叶节点,如果是则按下“选择”键实现操作,如果否,则返回弹出菜单步骤。复杂点的功能,菜单会分级,需要寻找与点击更多次“选择”键。这样的操作流程繁琐,操作复杂。第二种,依靠人手和凝视(gaze)进行的操作,凝视是指看正前方,应用中通常会有光标指示,用于选择物体。手的状态当前可识别出两个“准备态”和“按压态”,准备态即握拳手背向脸且食指向上,按压态是准备态情况下食指向下收回。从“准备态”到“按压态”再到“准备态”表示一次“选择”,类似鼠标单击。当前的交互流程通常是,在应用中找到菜单选项凝视,然后通过单手动作“选择”所需功能,再凝视所需操作的物体,手从“准备态”到“按压态”,然后水平左右移动或者上下移动控制对象执行操作,例如左移表示向左旋转,右移表示向右旋转。同样地有些操作也可垂直上下移动代表对应操作。第三种,通过pc浏览器中的二维鼠标手势进行操作,一些浏览器中安装的鼠标手势插件,通过检测鼠标实时轨迹,识别用户操作的二维方向序列,执行对应的预定义动作,但这只能识别平面中的运动轨迹。

虽然当前人机交互的交互方式也有一些是二维交互向三维交互的延续,但需要在三维世界中仍然依靠弹出二维菜单再进行选择。虽然功能可用,但在有些场景下操作流程较多,没有充分利用到三维世界的三个纬度。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种基于运动轨迹的三维控制方法及装置,以至少解决二维的人机交互控制方法操作不灵活的技术问题。

根据本发明实施例的一个方面,提供了一种基于运动轨迹的三维控制方法,包括:追踪预设对象的位置,通过追踪所述预设对象的位置判断是否检测到第一三维运动轨迹;在检测到所述第一三维运动轨迹的情况下,在预设的信号库中查找所述第一三维运动轨迹对应的操作信号,其中,所述预设的信号库中存储有预先设置的一个或多个信号,所述一个或多个信号用于控制设备执行预定操作,所述操作信号用于控制所述设备执行目标操作;在所述信号库中查找到所述操作信号的情况下,根据所述操作信号控制所述设备执行所述目标操作。

根据本发明实施例的另一方面,还提供了一种基于运动轨迹的三维控制装置,包括:第一获取单元,用于追踪预设对象的位置;第一判断单元,用于通过追踪所述预设对象的位置判断是否检测到第一三维运动轨迹;查找单元,用于在检测到所述第一三维运动轨迹的情况下,在预设的信号库中查找所述第一三维运动轨迹对应的操作信号,其中,所述预设的信号库中存储有预先设置的一个或多个信号,所述一个或多个信号用于控制设备执行预定操作,所述操作信号用于控制所述设备执行目标操作;控制单元,用于在所述信号库中查找到所述操作信号的情况下,根据所述操作信号控制所述设备执行所述目标操作。

在本发明实施例中,追踪预设对象的位置,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,一个或多个信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作;在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作,达到了通过三维运动轨迹对应的操作信号控制设备执行目标操作的目的,从而实现了通过三维运动轨迹进行人机交互控制的技术效果,进而解决了二维的人机交互控制方法操作不灵活的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的基于运动轨迹的三维控制方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的基于运动轨迹的三维控制方法的流程图;

图3是根据本发明实施例的另一种可选的基于运动轨迹的三维控制方法的流程图;

图4是根据本发明实施例的一种可选的三维空间坐标系的示意图;

图5是根据本发明实施例的一种可选的运动轨迹识别算法的流程图;

图6是根据本发明实施例的一种可选的基于运动轨迹的三维控制装置的示意图;以及

图7是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种基于运动轨迹的三维控制方法实施例。

可选地,在本实施例中,上述基于运动轨迹的三维控制方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。本发明实施例的基于运动轨迹的三维控制方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的基于运动轨迹的三维控制方法也可以是由安装在其上的客户端来执行。

在一个可选的应用场景中,例如,终端可以是虚拟现实设备或者增强现实设备中,用户佩戴上虚拟现实设备或者增强现实设备之后,用手划出三维运动轨迹(例如,划出圆圈),预设终端(例如,有深度感应功能的摄像机)追踪手的位置判断检测到三维运动轨迹,从预设的信号库中查找与三维运动轨迹对应的操作信号,如果查找到划出圆圈对应的是关闭当前网页,则控制设备执行关闭当前网页的目标操作,该方法可以由终端执行,可以作为一种功能插件或组件形式,提供给开发者使用,可以集成在虚拟现实设备或者增强现实设备中的应用(application,简称为app)中。通过充分利用三维空间,将暂未被发掘的手的运动轨迹作为一种交互方法,将手在三维空间的运动轨迹绑定常用操作,能够实现快速操作,提高人机交互效率。

图2是根据本发明实施例的一种可选的基于运动轨迹的三维控制方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,追踪预设对象的位置。

步骤s204,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹。

步骤s206,在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,一个或多个信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作。

步骤s208,在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作。

通过上述步骤s202至步骤s208,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,一个或多个信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作;在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作,解决了二维的人机交互控制方法操作不灵活的技术问题,进而达到通过三维运动轨迹对应的操作信号控制设备执行目标操作的技术效果。

在步骤s202提供的技术方案中,预设对象可以是用户的手或者胳膊等预设的部位,也可以是一些传感器或者操作杆等一些用户手持的装置,比较常用的预设对象是用户的手或者胳膊等部位,但并不排除未来技术发展或者用户操作习惯改变后使用其他的肢体部位或装置。

追踪预设对象的位置可以是通过佩戴在预设对象上的定位装置来追踪预设对象的位置,也可以是通过红外线对预设对象进行追踪定位,或者,通过能够获得深度信息的摄像头追踪预设对象的位置。第一三维运动轨迹是一种三维空间的运动轨迹,与二维平面的运动轨迹(例如滑动解锁)不同,三维空间的运动轨迹可以具有三维分量,而不只是在二维平面上运动。

在步骤s204提供的技术方案中,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹可以是通过追踪预设对象的位置判断是否检测到预设对象在三维空间运动,如果追踪到预设对象在三维空间运动,则判断出检测到第一三维运动轨迹。

在步骤s206提供的技术方案中,如果检测到第一三维运动轨迹,则在预设的信号库中查找第一三维运动轨迹对应的操作信号,识别出与第一三维运动轨迹对应的操作信号。第一三维运动轨迹对应的操作信号可以是对第一三维运动轨迹进行修正得到的对应操作信号,例如,在一些情况下,用户想要发出圆形的第一三维运动轨迹,但是可能无法画到很标准,或者画的有些毛刺等,发出的第一三维运动轨迹是椭圆,此时查找与第一三维运动轨迹对应的操作信号可以先对第一三维运动轨迹进行修正或近似。

预设的信号库是预先设置的信号存储的数据库,存储有预先设置的一个或多个信号,存储的一个或多个信号用于控制设备执行预定操作,与第一三维运动轨迹对应的操作信号用于控制设备执行目标操作。在查找第一三维运动轨迹对应的操作信号时,可以将第一三维运动轨迹与信号库中的信号进行相似度比对,如果相似度比对超过一定的阈值,则表示比对成功,此时识别第一三维运动轨迹为信号库中预设的三维运动轨迹,该预设的三维运动轨迹对应的操作信号即为第一三维运动轨迹对应的操作信号。如果比对失败,则表示未查找到该操作信号。预设的信号库中存储的信号可以修改或者增加,方便不同操作习惯的用户操作。

在步骤s208提供的技术方案中,在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作。根据操作信号控制设备执行目标操作可以是由安装在设备中的app来执行目标操作,也可以是由服务器控制设备执行目标操作。控制设备执行目标操作可以是控制虚拟现实设备或者增强现实设备中的场景执行目标操作。例如,左手静止,右手远离左手可以是将虚拟现实场景中的对象进行放大。目标操作可以是多种类型的操作,例如,将预设对象放大、缩小、关闭、选择等。

作为一种可选的实施例,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹之前获取第二三维运动轨迹,其中,第二三维运动轨迹对应于目标操作;将第二三维运动轨迹识别为操作信号;存储目标操作和操作信号之间的对应关系。

在判断是否检测到第一三维运动轨迹之前,需要预先建立信号库,建立信号库的过程可以是:获取第二三维运动轨迹,然后将第二三维运动轨迹识别为操作信号,存储目标操作和操作信号之间的对应关系。第二三维运动轨迹可以和第一三维运动轨迹不完全一致,例如,第二三维运动轨迹可以是标准的运动轨迹,例如,标准圆形或者标准的直线等,建立标准的第二三维运动轨迹可以提高第一三维运动轨迹识别的准确率,因此,第二三维运动轨迹除了可以由用户输入以外,也可以由标准仪器输入,在获取到第二三维运动轨迹之后,将第二三维运动轨迹识别为操作信号,建立第二目标操作与操作信号的对应关系,然后将目标操作和操作信号绑定保存在信号库中。通过对信号库中信号的修改和新建,能够方便用户根据自己的使用习惯进行操作,提高三维运动轨迹控制设备执行目标操作的灵活性。

在一种可选的情况下,如果在信号库中没有查找到第一三维运动轨迹的操作信号,可能该三维运动轨迹没有被定义过,此时,可以询问用户是否需要将该三维运动轨迹作为第二三维运动轨迹识别为目标操作,如果用户同意并将这个三维运动轨迹绑定为某个目标操作,则下一次再检测到同样的三维运动轨迹之后,即可将这个三维运动轨迹识别为目标操作。其中,一个目标操作可以具有多个三维运动轨迹,但是一个三维运动轨迹只能被识别为一个目标操作。

作为一种可选的实施例,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹可以是:判断是否检测到运动轨迹起始态信号;在检测到运动轨迹起始态信号之后,开始记录运动轨迹;判断是否检测到运动轨迹结束态信号;在检测到运动轨迹结束态信号之后,停止记录运动轨迹,并判断出检测到第一三维运动轨迹,其中,将在开始记录之后、停止记录之前所记录的运动轨迹记为第一三维运动轨迹。

在实际应用场景中,由于用户手或者胳膊等预设的部位可能会一直发出三维运动轨迹,而这些三维运动轨迹并不需要识别对应的操作信号,因此判断是否检测到运动轨迹起始态信号和结束态信号,在检测到运动轨迹起始态信号之后,开始记录运动轨迹,在检测到运动轨迹结束态信号之后,停止记录运动轨迹,将所记录的运动轨迹作为第一三维运动轨迹,并作出判断,判断已经检测出第一三维运动轨迹。通过检测起始态信号和结束态信号能够提高三维运动轨迹识别的准确率,减少内存占用。起始态信号和结束态信号可以是手势信号,也可以是通过按下按钮或者其他方式发出的信号,例如,起始态信号可以是右手握拳,食指竖直向上的手势,在检测到这个手势之后,开始检测三维运动轨迹。

作为一种可选的实施例,在开始记录运动轨迹之后、停止记录运动轨迹之前,判断已经记录的运动轨迹在预先确定的三维坐标系下的多个预设方向上的分量是否达到预设阈值;如果判断出已经记录的运动轨迹在三维坐标系下的第一方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第一方向上的第一分量;如果判断出已经记录的运动轨迹在三维坐标系下的第二方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第二方向上的第二分量;在第一方向与第二方向不同的情况下,将第一分量和第二分量组合作为运动轨迹;在第一方向与第二方向相同的情况下,将第一分量作为运动轨迹。

为了提高三维运动轨迹识别的准确性,需要预先设置阈值,在某个方向上的移动距离只有到达一定的阈值才进行识别。在识别时,可以是三维运动轨迹全部获取完成之后再进行识别,也可以在检测到运动轨迹起始态信号之后实时识别,实时的识别相比于全部完成之后再识别能够处理效率,节约时间,如果整个三维运动轨迹全部完成之后再识别会导致等候处理时间较长,反应速度慢。如果三维运动轨迹为向下滑动的20厘米的直线,而预设的向下滑动的阈值为10厘米,则在检测到第一个10厘米的运动轨迹之后,识别出该三维运动轨迹中包含向下滑动,在检测到第三维运动轨迹的第二个10厘米的运动轨迹时,由于这两个10厘米的运动轨迹相同,因此,只将第一个10厘米作为运动轨迹,而不是记录为两个向下的运动轨迹。

作为一种可选的实施例,开始记录运动轨迹包括:在预先确定的三维坐标系下记录第一三维运动轨迹的运动方向和运动轨迹,其中,运动方向包括上、下、左、右、前、后中的至少一个方向或至少二个方向的组合,运动轨迹包括直线轨迹和非直线轨迹。

记录运动轨迹可以是根据预先确定的三维坐标系记录,三维坐标系通常根据设备来确定,例如,对于vr眼镜,在用户戴上眼镜后,应用场景中的三维坐标系就已经预先设定好,根据设定好的坐标系记录三维运动轨迹,包括运动方向和运动轨迹,运动方向包括六个方向或者六个方向中至少两个方向或三个方向的组合。运动轨迹可以是直线轨迹,也可以是非直线轨迹,例如圆弧轨迹等。

作为一种可选的实施例,在根据操作信号控制设备执行目标操作之前,检测佩戴设备的用户眼睛的凝视方向;根据凝视方向确定目标对象,其中,目标对象为设备的应用场景中的对象。

以虚拟现实设备为例,虚拟现实设备的应用场景中有多个对象,在根据操作信号控制设备执行目标操作之前,需要确定目标对象,对目标对象执行目标操作,目标对象的确定可以是通过触摸板等输入设备进行选择,也可以是通过眼睛凝视进行选择,例如,用户眼睛凝视正前方时,应用中通常会有光标指示,用于选择目标对象。通过眼睛凝视选择目标对象,能够使操作更加方便,提升用户体验。

本发明实施例的基于运动轨迹的三维控制方法是一种基于运动轨迹的三维空间的交互方法,能够给将vr和ar的交互从受限的二维空间拓展到自由的三维空间,通过识别三维运动轨迹的方式控制设备执行目标操作,能够使手在三维空间的自然使用作为输入,相比于vr设备—在应用里与虚拟物体交互时需要选定交互动作、选定物体、水平或垂直移动按压状态的手指等一系列动作,实际操作中会令人感到效率不够或体验不佳等缺陷,本发明实施例的控制方法不仅能识别上下左右的移动方向,还有向前向后的移动方向,轨迹方向更为丰富,充分利用手的三维运动轨迹也能够省去寻找操作按钮等步骤,提升交互效率。更进一步,不同于鼠标的单个设备,ar与vr设备通常能够识别双手或有两个手持控制器设备代表双手,这样就有了两个可同时滑动的轨迹,从而衍生出更自然的交互动作。例如双手同时由远及近滑动并碰在一起,可以指定为调出主菜单命令;左手静止,右手远离左手可以指定为放大,反之靠近左手可以指定为缩小。诸如此类可以定义出更多更有效率的交互方法。

图3是根据本发明实施例的另一种可选的基于运动轨迹的三维控制方法的流程图,如图3所示,该方法包括以下步骤:

步骤s301,轨迹预定义。

该方法可以作为一种功能插件或组件形式,提供给开发者使用,可以集成在虚拟现实设备或者增强现实设备中的应用中。轨迹可以是三维运动轨迹,轨迹预定义可以是操作者或者用户对三维运动轨迹进行预定义的过程,例如,将某个三维运动轨迹与对应的目标操作进行绑定,建立对应关系。

步骤s302,轨迹识别。

在接收到一个三维运动轨迹之后,对这个三维运动轨迹进行识别。

步骤s303,操作执行。

如果将某个三维运动轨迹识别为某个操作信号,则执行这个操作信号对应的目标操作。

步骤s304,轨迹及绑定操作的集合。

在轨迹预定义之后,保存轨迹及绑定操作的集合。

步骤s305,操作功能集合。

在操作执行之前,需要保存操作功能集合,操作功能集合可以是目标操作所对应的功能,例如,关闭页面等,操作功能集合中还可以存储这些功能对应的代码文件。

当前主流开发工具为unity和unreal,以unity为例,插件的主要产品表现在自定义编辑器面板。开发者只需要在编辑器面板上定义轨迹组合,针对每种轨迹绑定一个函数作为轨迹对应的功能入口,然后根据产品所需具体实现该入口功能。

在应用中的实际产品表现为,用户通过手或手持控制器,在其可识别的三维空间滑动一些预定义的方向序列。该序列被轨迹识别算法识别后会立刻执行其对应的操作,从而高效地实现用户的操作。

本发明实施例还提供了一种优选实施例,该实施例作为一种人机交互方式主要应用于带手持控制器或识别双手的vr和ar设备,包括但不限于vr头盔、ar眼镜以及混合现实设备。该方法主要依靠预定义轨迹模块、运动轨迹识别模块和操作模块,下面结合该优选实施例对本发明的技术方案进一步说明:

第一部分,预定义轨迹模块。

本模块的作用是定义轨迹并预先绑定轨迹对应的操作,以实现运动轨迹识别模块识别出预定义的轨迹后可以唯一确定所执行的操作。

静态的字符(例如光学字符)只需要一个最终态字符,而轨迹是动态的,与静态的字符不同,轨迹是按照时间顺序的方向序列。具体地,以单手为例,最简单的一种方式是将方向拆分为“上”“下”“左”“右”“前”“后”六个方向。图4是根据本发明实施例的一种可选的三维空间坐标系的示意图,如图4所示,按照多数开发工具的三维坐标系系统,可以将上述六方向与坐标系一一对应,+y为上,-y为下,+x为右,-x为左,+z为前,-z为后。与操作者的对应关系通常是+y为操作者的正上方,+z为正前方,+x为正右方。

轨迹是手的位置在上述六个方向的按时间顺序的序列,如“前”“上”代表被识别的“手”首先向前(+z方向移动),再向上(+y方向移动)划出的轨迹。本实施例的技术方案并不假定方向必需是六向,除上述六向外,还可以是算法所能识别到的任意方向,包括但不限于“左下”“左上”“右下”“右上”“前下”“前上”“后下”“后上”“左前”“左后”“右前”“右后”等斜线方向,三维运动轨迹可以是弧形、圆形以及不规则的自定义图案等非直线轨迹。

轨迹扩展到双手后,除了拓展了轨迹组合排列,还可增加相对位置来扩展轨迹的外延,如双手同时靠近或远离,另外仅靠近一点又可衍生出,平行方向、垂直方向、斜线方向的靠近轨迹。确定一个特定轨迹后,即可绑定它对应的一个功能,经轨迹识别模块确认后由操作模块执行。

第二部分,运动轨迹识别模块。

在二维空间,轨迹识别算法中,有类似dollarone的标准差比对算法,有提供方向训练图的神经网络算法,以及浏览器鼠标手势用到的四方向运动阈值识别等。扩展到三维空间,在上述轨迹方向种类里,有直线与斜线序列,也有弧线及不规则序列。前者使用方向阈值算法即可达到简洁有效的目的,而后者则需采用类似dollarone或神经网络算法。本方案的运动轨迹识别模块不局限某种特定算法。此处以方向阈值算法为例进行说明,此方法预先设定一个阈值,在手滑动过程中计算运动向量对应到各个方向轴的滑动距离,首先超越该阈值的方向即被按序添加到轨迹的方向序列中。同时在该阈值点作为起始点重新计算运动向量,下次被识别的方向如与此前一致则不需再添记录,不一致则表示需添加新方向到轨迹的方向序列中。图5是根据本发明实施例的一种可选的运动轨迹识别算法的流程图,如图5所示,该方法包括以下步骤:

步骤s501,触发轨迹识别。

触发轨迹识别可以是检测到运动轨迹起始态信号之后触发轨迹识别。

步骤s502,三维空间滑动。

获取到用户的手或者操作杆等再三维空间滑动的信号。

步骤s503,各方向分量是否有达到阈值。

在三维空间滑动过程中,实时判断各个方向分量是否有达到预设阈值。

步骤s504,达阈值方向与最近添加到方向序列的方向是否一致。

如果判断结果为是,则将这个方向添加到方向序列中,如果判断出到达预设阈值的方向与最近添加到方向序列的方向一致,则不再次将这个方向添加到方向序列中,而是返回s502,继续检测三维空间的滑动信号,如果检测到达阈值方向与最近添加到方向序列的方向不一致,则执行步骤s505。

步骤s505,添加新方向到序列。

在识别出的方向序列中添加新的方向。

步骤s506,实时方向序列。

将添加新的方向后的序列作为新的实时方向序列。

步骤s507,识别结束。

运动轨迹的触发与终结,在不同的设备上有不一样的方式,但大体类似。在一些设备环境下,手从“准备态”到“按压态”即可触发开始轨迹识别,反之表示轨迹结束。另一些设备环境下,利用手持控制器的按键,按压按键时触发识别,释放时结束。

第三部分,操作模块。

在轨迹被唯一识别后,接下来即执行轨迹对应的操作。主要概念有两个,操作本身和被操作对象。其中操作本身即某一特定功能,完全由开发者掌控,但对于常见通用的操作可以提供预设功能,如缩放、平移、旋转。

被操作对象根据应用场景可能有两种情况,一种是整个场景作为一个被操作对象,更多的一种情况是场景内含多个独立物体,每个物体都可以作为一个被操作对象。对于前者,动作直接在唯一的对象上执行即可。对于后者,还需要物体选择步骤,在vr和ar领域,凝视(gaze)是常见的使物体成为焦点的交互方式,也是适合在这种情况下作为选择被操作物体的方式之一。因此,技术方案的流程可简单归结为,首先凝视需要操作的物体,使用手或控制器在三维空间滑出预定义轨迹,识别模块确认轨迹,最后执行轨迹对应的动作。

本发明实施例的技术方案可以给vr和ar用户带来三维的运动轨迹新的交互体验,有助于提升用户的操作效率。尤其是在三维空间的设计、模型、建筑、培训教育等需要对某一物体进行多种操作或展示的场景,避免了频繁更换操作而需要用户反复从菜单点选功能子菜单项。另外,一些应用内含有二维场景,例如放置浏览器、信息板等用于信息获取及提示,在这些三维空间的局部区域,本方案也可让用户回到熟悉的操作,降低用户的学习成本。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述基于运动轨迹的三维控制方法的基于运动轨迹的三维控制装置。图6是根据本发明实施例的一种可选的基于运动轨迹的三维控制装置的示意图,如图6所示,该装置可以包括:

第一获取单元10,用于追踪预设对象的位置;

第一判断单元20,用于通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;

查找单元30,用于在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,所述预设的信号库中存储有预先设置的一个或多个信号,所述一个或多个信号用于控制设备执行预定操作,操作信号用于控制所述设备执行目标操作;

控制单元40,用于在信号库中查找到操作信号的情况下,根据所述操作信号控制设备执行目标操作。

需要说明的是,该实施例中的第一获取单元10可以用于执行本申请实施例1中的步骤s202,该实施例中的第一判断单元20可以用于执行本申请实施例1中的步骤s204,该实施例中的查找单元30可以用于执行本申请实施例1中的步骤s206,该实施例中的控制单元40可以用于执行本申请实施例1中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,可以解决二维的人机交互控制方法操作不灵活的技术问题,进而达到通过三维运动轨迹对应的操作信号控制设备执行目标操作的技术效果。

可选地,该装置还包括:第二获取单元,用于在通过追踪预设对象的位置判断是否检测到第一三维运动轨迹之前,获取第二三维运动轨迹,其中,第二三维运动轨迹对应于目标操作;第一识别单元,用于将第二三维运动轨迹识别为操作信号;存储单元,用于存储目标操作和操作信号之间的对应关系。

可选地,第一判断单元10包括:第一判断模块,用于判断是否检测到运动轨迹起始态信号;第一纪录模块,用于在检测到运动轨迹起始态信号之后,开始记录运动轨迹;第二判断模块,用于判断是否检测到运动轨迹结束态信号;第一纪录模块还用于在检测到运动轨迹结束态信号之后,停止记录运动轨迹,并判断出检测到第一三维运动轨迹,其中,将在开始记录之后、停止记录之前所记录的运动轨迹记为第一三维运动轨迹。

可选地,该装置还包括:第二判断单元,用于在开始记录运动轨迹之后、停止记录运动轨迹之前,判断已经记录的运动轨迹在预先确定的三维坐标系下的多个预设方向上的分量是否达到预设阈值;第二识别单元,用于在判断出已经记录的运动轨迹在三维坐标系下的第一方向上的运动距离到达预设阈值时,识别出已经记录的运动轨迹在第一方向上的第一分量;第三识别单元,用于在判断出已经记录的运动轨迹在三维坐标系下的第二方向上的运动距离到达预设阈值时,识别出已经记录的运动轨迹在第二方向上的第二分量;处理单元,用于在第一方向与第二方向不同的情况下,将第一分量和第二分量组合作为运动轨迹,在第一方向与第二方向相同的情况下,将第一分量作为运动轨迹。

可选地,第一纪录模块用于:在预先确定的三维坐标系下记录第一三维运动轨迹的运动方向和运动轨迹,其中,运动方向包括上、下、左、右、前、后中的至少一个方向或至少二个方向的组合,运动轨迹包括直线轨迹和非直线轨迹。

可选地,该装置还包括:检测单元,用于在根据操作信号控制设备执行目标操作之前,检测佩戴设备的用户眼睛的凝视方向;确定单元,用于根据凝视方向确定目标对象,其中,目标对象为设备的应用场景中的对象。

可选地,控制单元40用于根据操作信号控制虚拟现实设备或增强现实设备中的场景的显示内容执行目标操作。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

实施例3

根据本发明实施例,还提供了一种用于实施上述基于运动轨迹的三维控制方法的服务器或终端。

图7是根据本发明实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图7所示,该终端还可以包括输入输出设备207。

其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的基于运动轨迹的三维控制方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于运动轨迹的三维控制方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器203用于存储应用程序。

处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:追踪预设对象的位置;通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,一个或多个信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作;在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作。

处理器201还用于执行下述步骤:在通过追踪预设对象的位置判断是否检测到第一三维运动轨迹之前,获取第二三维运动轨迹,其中,第二三维运动轨迹对应于目标操作;将第二三维运动轨迹识别为操作信号;存储目标操作和操作信号之间的对应关系。

处理器201还用于执行下述步骤:判断是否检测到运动轨迹起始态信号;在检测到运动轨迹起始态信号之后,开始记录运动轨迹;判断是否检测到运动轨迹结束态信号;在检测到运动轨迹结束态信号之后,停止记录运动轨迹,并判断出检测到第一三维运动轨迹,其中,将在开始记录之后、停止记录之前所记录的运动轨迹记为第一三维运动轨迹。

处理器201还用于执行下述步骤:在开始记录运动轨迹之后、停止记录运动轨迹之前,判断已经记录的运动轨迹在预先确定的三维坐标系下的多个预设方向上的分量是否达到预设阈值;如果判断出已经记录的运动轨迹在三维坐标系下的第一方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第一方向上的第一分量;如果判断出已经记录的运动轨迹在三维坐标系下的第二方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第二方向上的第二分量;在第一方向与第二方向不同的情况下,将第一分量和第二分量组合作为运动轨迹;在第一方向与第二方向相同的情况下,将第一分量作为运动轨迹。

处理器201还用于执行下述步骤:开始记录运动轨迹包括:在预先确定的三维坐标系下记录第一三维运动轨迹的运动方向和运动轨迹,其中,运动方向包括上、下、左、右、前、后中的至少一个方向或至少二个方向的组合,运动轨迹包括直线轨迹和非直线轨迹。

处理器201还用于执行下述步骤:在根据操作信号控制设备执行目标操作之前,检测佩戴设备的用户眼睛的凝视方向;根据凝视方向确定目标对象,其中,目标对象为设备的应用场景中的对象。

处理器201还用于执行下述步骤:根据操作信号控制虚拟现实设备或增强现实设备中的场景的显示内容执行目标操作。

采用本发明实施例,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;在检测到第一三维运动轨迹的情况下,识别出与第一三维运动轨迹对应的操作信号;在预设的信号库中查找操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作;在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作,达到了通过三维运动轨迹对应的操作信号控制设备执行目标操作的目的,从而实现了通过三维运动轨迹进行人机交互控制的技术效果,进而解决了二维的人机交互控制方法操作不灵活的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行基于运动轨迹的三维控制方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,追踪预设对象的位置;

s2,通过追踪预设对象的位置判断是否检测到第一三维运动轨迹;

s3,在检测到第一三维运动轨迹的情况下,在预设的信号库中查找第一三维运动轨迹对应的操作信号,其中,预设的信号库中存储有预先设置的一个或多个信号,一个或多个信号用于控制设备执行预定操作,操作信号用于控制设备执行目标操作;

s4,在信号库中查找到操作信号的情况下,根据操作信号控制设备执行目标操作。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在通过追踪预设对象的位置判断是否检测到第一三维运动轨迹之前,获取第二三维运动轨迹,其中,第二三维运动轨迹对应于目标操作;将第二三维运动轨迹识别为操作信号;存储目标操作和操作信号之间的对应关系。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:判断是否检测到运动轨迹起始态信号;在检测到运动轨迹起始态信号之后,开始记录运动轨迹;判断是否检测到运动轨迹结束态信号;在检测到运动轨迹结束态信号之后,停止记录运动轨迹,并判断出检测到第一三维运动轨迹,其中,将在开始记录之后、停止记录之前所记录的运动轨迹记为第一三维运动轨迹。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在开始记录运动轨迹之后、停止记录运动轨迹之前,判断已经记录的运动轨迹在预先确定的三维坐标系下的多个预设方向上的分量是否达到预设阈值;如果判断出已经记录的运动轨迹在三维坐标系下的第一方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第一方向上的第一分量;如果判断出已经记录的运动轨迹在三维坐标系下的第二方向上的运动距离到达预设阈值,则识别出已经记录的运动轨迹在第二方向上的第二分量;在第一方向与第二方向不同的情况下,将第一分量和第二分量组合作为运动轨迹;在第一方向与第二方向相同的情况下,将第一分量作为运动轨迹。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:开始记录运动轨迹包括:在预先确定的三维坐标系下记录第一三维运动轨迹的运动方向和运动轨迹,其中,运动方向包括上、下、左、右、前、后中的至少一个方向或至少二个方向的组合,运动轨迹包括直线轨迹和非直线轨迹

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在根据操作信号控制设备执行目标操作之前,检测佩戴设备的用户眼睛的凝视方向;根据凝视方向确定目标对象,其中,目标对象为设备的应用场景中的对象。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据操作信号控制虚拟现实设备或增强现实设备中的场景的显示内容执行目标操作。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1