首页> 中国专利> 一种VR环境下基于手势交互的空间能力提升方法

一种VR环境下基于手势交互的空间能力提升方法

摘要

本发明涉及一种VR环境下基于手势交互的空间能力提升方法,属于虚拟现实、人机交互技术领域。包括:步骤一、在Unity中进行基于手势的草图绘制及草图信息保存,将草图信息传入训练好的PyTorch网络模型中;步骤二、草图检索及模型生成。获取检索结果并传回Unity,Unity根据结果生成相应立体几何模型;步骤三、与Unity中生成的模型进行基于手势的几何探究,即用手抓取模型,进行切割和观察。本发明操作方便、有趣、真实,能大幅提高学生的学习积极性。草图绘制可通过手势操作在电脑上直接绘制,也可直接在纸上绘制后上传,兼顾趣味与效率。三维模型切割支持双手操作,与现实中的切割动作极为接近,能带给学生更好的交互体验。

著录项

  • 公开/公告号CN112764538A

    专利类型发明专利

  • 公开/公告日2021-05-07

    原文格式PDF

  • 申请/专利权人 杭州师范大学;

    申请/专利号CN202110041912.3

  • 发明设计人 姚争为;杨洋;潘志庚;

    申请日2021-01-13

  • 分类号G06F3/01(20060101);G06T19/00(20110101);G06T19/20(20110101);

  • 代理机构33224 杭州天勤知识产权代理有限公司;

  • 代理人颜果

  • 地址 311121 浙江省杭州市余杭区余杭塘路2318号

  • 入库时间 2023-06-19 10:54:12

说明书

技术领域

本发明涉及虚拟现实、人机交互技术领域,具体地说,涉及一种VR环境下基于手势交互的空间能力提升方法。

背景技术

空间能力的概念源于心理测量学和理论,它区别于语言能力、计算能力和推理能力,是人类智力的主要组成部分之一。空间想象能力就是大脑通过观察、触摸,以及实践经验得到的一种能思考物体形状、位置的能力。

在进行阅读书籍等平面图像的情况下,由于这些平面展示平台只能表现二维画面来描述立体的物体,然而在实际生活中双眼效应能从两个角度看物体产生立体感,而书籍等二维平面图像则不能利用到双眼效应。那么这就需要去思考事物的具体形状、位置。这种想象就是空间想象,而想的与事实是否一致,就是空间想象能力的体现。在一张平面的纸上画一张立体图,空间想象能力强的人马上就知道这个物体的具体形状。特别是图形较复杂的图,物体很多,形状各异。看这种图形时就需要较强的空间想象能力。

虚拟现实技术(英文名称:Virtual Reality,缩写为VR),又称灵境技术,是20世纪发展起来的一项全新的实用技术。虚拟现实技术囊括计算机、电子信息、仿真技术于一体,其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感。随着社会生产力和科学技术的不断发展,各行各业对VR技术的需求日益旺盛。VR技术也取得了巨大进步,并逐步成为一个新的科学技术领域。

VR环境能为学习者提供接近真实世界的学习情景,并且和真实世界的实验操作相比具有更好的可重复性。甚至有不少学者认为VR探究式环境相对于传统环境而言,对学生空间能力的开发更为有效。

“作图”是立体几何学习的基础和重要环节,中学数学“教学大纲”和“课程标准”都明确了几何作图的教学目标及具体学习要求。现有的立体几何辅助教学软件都是要求用户以特定的方式在电脑上进行作图,与在纸上作图有较大差距,且缺乏趣味性。

“多面体斜截面”在教学中也是学生普遍认为难以理解的章节,传统教学主要靠学生自己空间想象不够直观生动,直接对实物模型进行切割开销又太大。现有的立体几何辅助教学软件都是以点线的方式来表示三维物体,不够真实。

发明内容

本发明的目的是提供一种VR环境下基于手势交互的空间能力提升方法,利用手势进行草图绘制以及几何模型切割,以提升学生的空间想象能力。

为了实现上述目的,本发明提供的VR环境下基于手势交互的空间能力提升方法包括以下步骤:

1)利用leap motion设备跟踪手的位姿,在虚拟场景中用手势绘制想要的几何模型的草图,并将绘制的草图保存为图片文件;

2)使用图像分类网络模型处理草图信息,预测草图类型,把检索得到的草图分类信息返回给虚拟场景客户端,根据分类信息,在虚拟场景中生成对应的立体几何模型;

3)在虚拟场景中利用leap motion设备进行虚拟手与虚拟场景中的立体几何模型的抓取及切割功能。

上述技术方案中,草图绘制方式操作灵活,允许用户在纸上绘制,这样效率高真实感强。同时也支持在以手势的方式在电脑上绘制,这可增强学习的趣味性。然后通过计算草图的相似度,来生成对应的立体几何模型,供学生验证和探究。三维模型切割支持双手操作,即一手拿三维模型,一手进行切割,这样的操作更接近现实生活。

步骤1)中包括:使用leap motion设备跟踪真实手的运动,定期发送手的运动信息至虚拟场景客户端,在虚拟场景中模拟出虚拟手的运动。其中,每一份手的运动信息称为帧,每一帧中包含所有手掌、手指及手势的信息。

步骤3)中,在虚拟场景中通过手势操作模型运动的方法如下:

引用leap命名空间,其中controller作为主接口,用以取得leap的跟踪数据,调用frame()方法实时获取最新帧;Frame表示每一帧中探测到的一系列手以及手指的数据,包含Hands属性,表示探测到用户的手及其各种信息;在getLeapData()方法中,获取hand的属性PalmNormal,其在x方向的分量校准后作为对应旋转"Rotation"获取到的leap数据;利用取得的leap数据作为object旋转的quaternion值和移动的position值,将该行为附给模型,实现手势抓取模型运动。

步骤3)中,在虚拟场景中完成手势切割物体的过程如下:

在Unity中物体通过三角面片渲染,对模型进行切割处理时对模型的mesh组件即组成它的三角面片进行处理;通过计算切割面的表达式,根据三角面片的三个顶点位置坐标判断该三角面片是否被切割,若被切割则计算切割面与三角面片的交点,并判断三个顶点分别属于分割后的哪一部分模型,判断具体如下:

t=[(X

其中((X

最后按照以上判断规则以及渲染的顺序,将交点与所有三角面片的顶点分别加入所属部分模型的mesh组件中的顶点容器里,实现切割。

所述的虚拟场景通过Unity实现,步骤1)中,用手势在Unity场景中绘制草图时,通过设置Line Renderer组件上Positions属性的值实现画线功能,并通过Line Renderer组件自由设置线宽和颜色属性。

用手势在Unity场景中绘制草图时,将草图绘制在Canvas上,首先添置一个UICamera,将其设置为正交模式,并将Culling Mask属性设为仅渲染UI层;然后添加Canvas,将其设为Camera模式,使得UI元素会处在最下层,线显示在UI之上;最后对UICamera看到的画面即绘制的草图进行截图,并将截图文件保存至指定路径。

步骤2)中,使用图像分类网络模型进行草图类型的预测时,设置相似度约束,具体如下:

相似度计算

约束如下

其中,X

步骤2)包括:

2-1)对图像分类深度学习网络使用草图数据集进行训练,将训练好的模型保存下来;用脚本调用训练好的模型,然后将步骤1)中保存的草图图片传进网络中,返回分类信息;

2-2)根据分类信息在虚拟场景中生成对应的立体几何模型。

与现有技术相比,本发明的有益之处在于:

本发明虚拟场景中的交互是利用leap motion设备完成虚拟手与虚拟场景中的立体几何模型的抓取及切割功能,学生可以通过这个功能来任意切割模型最后观察切割面的形状,从而锻炼自身的空间能力。可以大大降低学生对于传统立体几何教学的枯燥厌烦感,提升学生的学习积极性,进而提高学生的空间能力。

附图说明

图1为本发明实施例的流程图;

图2为本发明实施例中球模型的三角面片切割前后的变化图,(a)为切割前,(b)为切割后;

图3为本发明实施例中三角面片被切割的三种情况,其中(1)为三角面片的边1-2和边2-3被切割,(2)为三角面片的边1-2和边1-3被切割,(3)为三角面片的边1-3和边2-3被切割;

图4为本发明实施例中VR环境中手势绘制草图;

图5为本发明实施例中VR环境中手势切割模型前的示意图;

图6为本发明实施例中VR环境中手势切割模型后的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合实施例及其附图对本发明作进一步说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

实施例

参见图1,本实施例中VR环境下基于手势交互的空间能力提升方法,包括以下步骤:

S100,在Unity中基于手势的草图绘制及草图信息保存

(1)使用leap motion设备跟踪真实手的运动,定期发送关于手的运动信息,每份这样的信息称为帧。每一个帧中包含所有手掌,手指以及手势的信息,通过这些信息在虚拟场景中模拟出虚拟手的运动。

(2)用手势在Unity场景中绘制草图,参见图4。主要是通过设置Line Renderer组件上Positions属性的值来实现画线的功能,并且Line Renderer组件的可自定义性很高,可以自由设置它的线宽,颜色等属性

(3)将草图绘制在Canvas上,首先添置一个UICamera将其设置为正交模式,并将Culling Mask属性设为仅渲染UI层。然后添加Canvas将其设为Camera模式,这样UI元素会处在最下层,线会显示在UI之上。最后指定对该UICamera看到的画面,即绘制的草图进行截图,并将截图文件保存至指定路径。

S200,草图检索及模型生成

(1)由于本实施例是对中小学生进行空间能力的训练,所以不需要太复杂的模型,只需一些简单的几何体模型。因此图片分类网络就可以满足对草图检索的需求,对现有图像分类深度学习网络使用草图数据集进行训练,并将训练好的模型保存下来。用脚本调用训练好的模型,然后将步骤S100中保存的草图图片传进网络中,返回分类信息。在这个步骤中对分类的结果进行约束,主要内容如下:

相似度计算

约束如下

其中,S

(2)利用C#脚本获得深度学习网络返回的分类信息后,根据分类结果在虚拟场景中生成对应的立体几何模型。

S300,虚拟场景中基于手势的几何探究

(1)手势抓取,操控模型运动,参见图5。首先引用leap命名空间,其中controller作为主接口,用以取得leap的跟踪数据,调用frame()方法可实时获取最新帧。Frame表示每一帧中探测到的一系列手以及手指的数据,包含了Hands属性,表示探测到用户的手及其各种信息。在getLeapData()方法中,获取hand的属性PalmNormal,其在x方向的分量校准后作为对应旋转"Rotation"获取到的leap数据。利用取得的leap数据作为object旋转的quaternion值和移动的position值,将该行为附给模型,实现手势抓取模型运动。

(2)手势切割物体。参见图2,在Unity中物体形状是通过若干个三角面片渲染出来的,三角面片的顶点顺序必须是顺时针,顺时针表示正面,逆时针表示背面,而Unity3d在渲染时默认只渲染正面,背面是看不见的。定义mesh然后在此基础上对物体附加texture、shader等属性,所以要对模型进行切割处理就要对模型的mesh组件即组成它的三角面片进行处理。通过计算切割面的表达式,以及三角面片的三个顶点位置坐标判断该三角面片是否被切割。若被切割则计算切割面与三角面片的交点,并判断三个顶点分别属于分割后的哪一部分模型。具体步骤如下:

(2.1)首先跟踪用于切割模型的虚拟手的数据信息,获得其小拇指指尖,食指指尖以及掌心的坐标。切割时,手型是展开的,所以可以根据这三个位置坐标来计算得到虚拟手形成的面即切割平面表达式;

(2.2)用脚本获取被操作物体的MeshFilter组件,然后将顶点数组、三角形数组、UV数组和颜色数组转化为List类型。方便后面对其进行处理;

(2.3)对每个三角面片都进行处理。参见图3,三角面片若被平面切割则只有以下三种情况发生

情况1:三角面片的边1-2和边2-3被切割,交点分别为j1,j2,此时原三角形(1,2,3)被分成三个三角形:(1,j2,3),(j2,j1,3)和(j2,2,j1)。

情况2:三角面片的边1-2和边1-3被切割,交点分别为j2,j1,此时原三角形(1,2,3)被分成三个三角形:(1,j2,j1),(j2,3,j1)和(j2,2,3)。

情况3:三角面片的边1-3和边2-3被切割,交点为j1,j2,此时原三角形(1,2,3)被分成三个三角形:(1,j2,j1),(j2,3,j1)和(1,2,j2)。

将产生的交点,和新的三角形分别加入顶点容器和三角形容器中。若三角面片没有被平面切割则不处理。当模型所有的三角面片都切割处理完成后,再对每个顶点和三角面片是属于切割后形成的两个模型中的哪一个部分进行判断。判断具体如下,

计算

t=[(X

其中(X

t

最后,按照上面判断规则以及渲染的顺序,将交点与所有三角面片的顶点和三角面片序列分别加入所属部分模型的MeshFilter组件中的顶点容器以及三角形容器里,实现切割效果,参见图6。并且可以将切割脚本及其他相关组件赋给切割后的模型,进行再次切割。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号