一种基于ARKit框架的增强现实版化学元素周期表的交互方法与流程

文档序号:15696956发布日期:2018-10-19 19:12阅读:438来源:国知局
一种基于ARKit框架的增强现实版化学元素周期表的交互方法与流程

本发明属于增强现实及图像处理技术领域,具体涉及增强现实版化学元素周期表交互方法。



背景技术:

中学对化学的学习和教学过程中,对元素的认识还仅仅停留在书面上,初始学习阶段对元素的认识、原子结构模型和不同的原子如何结合形成新的分子进而组成现实生活中的物质没有深刻的认识,学习的过程将会变得缓慢且乏味;在教师的角度,对化学元素单纯讲解将会存在很多局限,对元素信息的单纯语言描述不够形象,同时这也将会导致学生的理解不够深刻。

基于上述,提出一种增强现实版的化学元素周期表则成为本发明所面临的重大课题。



技术实现要素:

本发明要解决的技术问题是:将基于视觉slam算法和imu的增强现实化学元素周期表发布到移动端,设计化学元素周期表的模型和化学元素信息的展示方式,通过识别手部和指尖位置提供交互功能。

本发明是采用以下的技术方案实现的:

一种基于arkit框架的增强现实版化学元素周期表的交互方法,其特征在于,包括如下步骤:

步骤a、开启移动设备的摄像头识别当前场景,执行arkit提供的slam算法接口识别出当前场景的平面并标识出来;

步骤b、将虚拟的化学元素周期表模型叠加到当前视角的场景并绑定到平面上;

步骤c、选择不同元素查看其详细的信息,选择元素周期表中不同的元素进行分子的合成;

步骤d、识别出当前用户的手部信息并确定指尖位置,与当前的场景进行交互。

进一步地,所述步骤d包括:

步骤d1、使用opencv提供的颜色空间转换方法将当前的摄像头捕捉到的图像从rgb颜色空间转换到ycrcb颜色空间,在crcb二维空间皮肤像素近似一个椭圆分布,通过判断像素点是否在椭圆内可以判断是否为皮肤的像素点,获得满足条件的手部轮廓区域,进而排除不满足条件的区域;

步骤d2、根据步骤d1得到的满足要求的手部区域轮廓,计算轮廓的矩,确定指尖候选区域,构造相邻点的方向向量,在候选区域中确定曲率最高的点作为指尖的位置。

进一步地,所述步骤a包括:运行slam算法对当前的场景进行识别,获取当前场景的点云信息,通过预先设定的阈值来获得当前视角下的属于平面的点云,并用带颜色的点标记出来,通过这些点确定一个平面。

进一步地,所述步骤b化学元素周期表模型建模如下:

步骤b1、设计一个元素的模型和整张元素周期表的生成算法逻辑,克隆出整张的元素周期表;

步骤b2、收集所有化学元素的属性信息,设计信息存储的数据结构,将当前的所有信息与元素周期表的模型进行绑定。

进一步地,所述步骤d1,将摄像头捕获到的图像从rgb空间转换到ycbcr色彩空间,具体的转换公式见如下公式:

y=0.299r+0.587g+0.i114b

u=-0.147r-0.289g+0.436b

v=0.615r-0.515-0.100b

其中,y表示明亮度,u和v表示色度,分别对应cb和cr。

进一步地,所述步骤d2,轮廓矩的计算采用如下公式所示:

其中,i(x,y)为表示坐标(x,y)位置像素的大小,通过轮廓的矩找到手部轮廓的质心公式,如下所示:

其中,c是最后求得的质心坐标,通过轮廓边缘点到质心的距离筛选出指尖的候选点,在候选点构造方向向量,通过计算方向向量的内积最后得出曲率最高的点,候选点处构造的向量和内积计算公式如下所示:

yi=<[pi,pi-k],[pi,pi+k]>

其中,pi为轮廓保留的指尖候选点,[pi,pi-k]为在pi处构造的方向向量,yi为pi点处构造方向向量的内积,根据内积越小曲率越大,最后通过寻找最小的yi会得出检测到指尖的位置pi。

与现有技术相比,本发明的优点和积极效果在于:

基于arkit框架的增强现实化学元素周期表更有利于学生对化学元素的自学和辅助老师的教学。增强现实版的化学元素周期表,一方面对元素的属性介绍更形象准确,不但给出当前选择元素的原子半径等属性信息还会给出原子模型,同时可以选择不同化学元素进行化学反应,同时给出进行化学反应后得到的分子模型以及存在该分子的现实生活中实际物质模型,使整个学习过程更生动形象,激发学习兴趣。另一方面,结合真实环境中出现的实体模型,讲解过程将会更容易,学习者认识也将会更直观。

本发明技术上创新如下:第一,在unity3d引擎上,设计化学元素周期表和交互逻辑,并基于arkit框架将应用发布到移动端,具有方便使用的优点;第二,将手部识别和指尖检测引入到增强现实应用的交互当中,使得交互更加自然流畅,同时,使当前应用的扩展性更强,便于后续应用内容的扩充。

附图说明

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

图2为使用arkit的架构图;

图3为皮肤椭圆模型模拟图。

具体实施方式

本发明的设计过程简述如下:

增强现实版的化学元素周期表如果想要设计的更灵活方便些,需要抛弃之前简单的特征识别,本发明增强现实的算法基于视觉slam算法和移动端的imu,考虑到从头实现所有算法不现实,本发明采用最新的arkit,其提供一些算法的接口,让整个发明更加专注于增强现实元素周期表本身和基于手势交互的设计与实现,但由于arkit本身只提供了简单的平面检测等功能,因此必须通过更轻便的算法来讲手部检测和指尖识别,进而实现接下来的交互功能。同时,元素之间的查看和反应需要收集元素的详细信息和形成数据库,这个过程更加繁琐,需要注意到各种元素之间详细信息和结合。

另外,目前还没有存在将手部的交互引入到移动端的增强现实上,手部的交互使得使用者能够脱离屏幕,是增强现实交互一种极好的方式;目前最广泛基于深度学习的识别和检测在移动端的实现由于计算量的原因还不现实,因此必须提出同时兼顾速度和准确性的方法,肤色的颜色在ycrcb的颜色空间根据经验值满足椭圆分布,本发明通过寻找肤色区域的像素来获得手部的候选区域的轮廓,这一步会获取到零个或多个候选区域,考虑到手部轮廓的的特点,本发明通过区域的面积、周长和面积周长的比设置阈值,通过简单的方法和经验阈值的设定,这样即能满足计算量的需求有兼顾的准确性的需求。识别出手部后,又需要进一步识别出指尖的位置使交互更自然,同时为了兼顾准确性和速度,考虑两个信息,图像的矩和轮廓的曲率,通过矩先筛掉一些非指尖的点,通过构造向量来计算曲率信息获得指尖的位置。

为了能够更加清楚地理解本发明的上述目的、特征和优点,下面结合附图及实施例对本发明做进一步说明。

本实施例提出一种基于arkit框架的增强现实版化学元素周期表的交互方法,包括如下步骤:

步骤a、开启移动设备的摄像头识别当前场景,执行arkit提供的slam算法接口识别出当前场景的平面并标识出来;

步骤b、将虚拟的化学元素周期表模型叠加到当前视角的场景并绑定到平面上;

步骤c、选择不同元素查看其详细的信息,选择元素周期表中不同的元素进行分子的合成;

步骤d、识别出当前用户的手部信息并确定指尖位置,与当前的场景进行交互。

具体实施步骤参考图1如下:

step1、建立化学元素周期表模型

要完成虚拟化学元素周期表模型的设计,unity3d对于基本模型的设计简单快捷,考虑到整张元素周期表是由一个个单独的元素组成,并且元素的分布有一定规律,因此仅仅先设计出单个元素的模型,在脚本中编写整张周期表的生成逻辑,减少对模型细节的关注使建模更快捷方便,同时后期对模型的修改只需修改模型中的特定f参数即可。

step2、元素属性信息的数据结构绑定到当前模型

收集化学元素的各种属性信息并将其绑定到各个元素模型上,包括名称、原子序号、相对原子质量、各层电子数和原子半径等,由于这些信息是存储在脚本的数据结构中,后期的增加,修改和删除元素的各种信息只需直接与数据打交道,不用在模型上进行复杂的修改。

step3、设计交互逻辑,使用者在元素周期表上旋选择不同的元素时,会生成红色的框将当前的元素标识出来,同时脚本会判断当前所选的元素索引,查询数据库中对应的元素的所有属性信息并显示出来,当用户选择不同的元素进行合成的时候会形成新的分子模型,然后给出自然界中包含该分子的实际物质模型。

step4、搭建arkit框架

arkit是苹果公司2017年7月推出的增强现实软件开发工具包,集成了视觉slam算法和imu数据处理算法,开发人员无需再与复杂的slam算法直接打交道。在计算能力受限的移动端,仍然有强大的功能。基于以上arkit是增强现实强有力的开发工具。考虑到unity3d引擎的在移动开发的跨平台、建模简单、容易交互等优势,本发明基于arkit框架的增强现实版化学元素周期表在unity3d上开发完成

在unity3d中搭建arkit框架,架构图如图2所示,arscnview主类,负责整合虚拟和现实的内容;scnscene继承arscnview,负责捕获虚拟场景信息;arcamera继承arscnview,负责捕获真实场景信息;arsession将获取的图像序列进行处理,最后输出arframe;arframe中就包含有现实世界场景的所有信息。arsessionconfiguration提供追踪信息,捕捉相机的空间位置,在添加3d模型的时候计算出3d物体模型相对于相机的真实矩阵位置。

step5、理解当前的场景检测出平面

通过使用arkit框架提供的slam算法接口,获取到当前场景的点云,对点云信息分析得出属于同一平面的点云,把当前场景属于平面点云的点和最后得出的平面标识出来。识别出平面后,在平面上选择确定的位置。

增强现实的目标是将虚拟的物体与真实的世界进行融合,其中在移动端的先进增强现实技术的核心是视觉slam,通过连续获取移动设备相机捕捉到的图像信息和移动设备本体的惯性传感器(inertialmeasurementunit,imu)获取的角速度和加速度信息,执行slam算法,对当前的环境点云进行估计,同时,定位出当前移动设备的位置。然后虚拟空间坐标系与真实环境的坐标系进行绑定,也就是将虚拟物体模型放置到真实环境中,进而实现虚实融合,slam算法对当前环境和自身坐标的准确定位使得虚拟物体的叠加达到没有违和感的效果。

step6、将虚拟元素周期表模型放置到平面上

将step1设计的虚拟元素周期表模型放置所识别出的平面上并进行绑定,使虚拟模型不会再随着移动设备的移动而移动,实现将虚拟模型与真实环境融合。

step7、基于肤色椭圆模型检测出手的轮廓

使用opencv提供的颜色空间转换方法将当前的摄像头捕捉到的图像从rgb颜色空间转换到ycrcb颜色空间,在crcb二维空间皮肤像素近似一个椭圆分布,通过判断像素点是否在椭圆内可以判断是否为皮肤的像素点,获得满足条件的手部轮廓区域,进而排除不满足条件的区域;

将摄像头捕获到的图像从rgb空间转换到ycbcr(亦称yuv)色彩空间,具体的转换公式见公式(1)(2)(3):

(1)y=0.299r+0.587g+0.i114b

(2)u=-0.147r-0.289g+0.436b

(3)v=0.615r-0.515-0.100b

其中y表示明亮度,u和v表示色度分别对应cb和cr,反应了rgb信号的亮度分别于红色和蓝色信号的差异。在cbcr二维空间,肤色的像素分布在一个近似的椭圆中,因此只需判断当前的cbcr坐标是否在椭圆中,即可筛选出所有的肤色连通区域,如图3所示,椭圆的中心坐标(113,155.6),长轴和短轴分别为(23.4,15.2),与水平方向上的旋转夹角为43度。通过对轮廓的周长和面积设置经验阈值排出不满足要求的轮廓。

step8、在手部轮廓上基于几何信息检测到指尖并进行交互

得到满足要求的手部区域轮廓后,计算轮廓的矩,确定指尖候选区域,构造相邻点的方向向量,在候选区域中确定曲率最高的点作为指尖的位置。矩的计算如公式(4)所示:

(4)

其中i(x,y)为表示坐标(x,y)位置像素的大小,通过轮廓的矩可以找到手部轮廓的质心如公式(5)所示:

(5)

其中,c是最后求得的质心坐标。首先通过轮廓边缘点到质心的距离筛选出指尖的候选点,在候选点构造方向向量,因为指尖的部分曲率较其它部分高,通过计算方向向量的内积最后得出曲率最高的点,候选点处构造的向量和内积计算如公式(6)所示:

(6)yi=<[pi,pi-k],[pi,pi+k]>

其中pi为轮廓保留的指尖候选点,[pi,pi-k]为在pi处构造的方向向量,yi为pi点处构造方向向量的内积,根据内积越小曲率越大,最后通过寻找最小的yi会得出检测到指尖的位置pi。

本发明的实现使用的软件平台为microsoftvisualstudio2017、unity3d5.6和xcode9.2。硬件平台为3.4ghzinter(r)core(tm)i7cpu32gb内存。移动端为ipad2017和iphone8。本发明通过增强现实的方式展示化学元素周期表和化学元素的各种属性,以及方便快捷的使用方法,使学生学习过程更形象,老师的教学更方便。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

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