多用户交互的增强现实方法及系统转让专利

申请号 : CN201910174205.4

文献号 : CN109992108B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 商彦磊乔秀全戴唯

申请人 : 北京邮电大学

摘要 :

本发明实施例提供一种多用户交互的增强现实方法及系统,该方法包括:根据用户在第一用户设备的屏幕中放置虚拟对象的位置和第一用户设备的摄像头信息,计算虚拟对象在第一用户设备的屏幕上的位姿信息;根据虚拟对象在第一用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第一用户设备的屏幕上显示虚拟对象;根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息,计算虚拟对象在第二用户设备的屏幕上的位姿信息;根据虚拟对象在第二用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第二用户设备的屏幕上显示虚拟对象。本发明实施例实现了多用户交互的增强现实,具有一定独立性。

权利要求 :

1.一种多用户交互的增强现实方法,其特征在于,包括:

根据用户在第一用户设备的屏幕中放置虚拟对象的位置和所述虚拟对象的模型信息,获取虚拟对象在所述第一用户设备的世界坐标系中的位姿信息;

根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息;

根据所述虚拟对象在所述第一用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第一用户设备的屏幕上显示所述虚拟对象;

根据第二用户设备的摄像头信息和所述虚拟对象在所述第一用户设备的世界坐标系中的位姿信息,计算所述虚拟对象在所述第二用户设备的屏幕上的位姿信息;

根据所述虚拟对象在所述第二用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第二用户设备的屏幕上显示所述虚拟对象;

其中,所述第一用户设备和所述第二用户设备均包括信息存储节点、位姿计算节点和客户端节点;

所述第一用户设备和所述第二用户设备均具有客户端节点标识;

其中,所述信息存储节点用于接收并存储所述虚拟对象的模型信息,并从所述客户端节点接收虚拟对象在世界坐标系中的位姿信息,将这两种信息存储在数据库中,同时也向所述客户端节点提供虚拟对象在世界坐标系中的位姿信息和虚拟对象的模型信息;

所述客户端节点用于将自身的摄像头信息和从所述信息存储节点获取的虚拟对象在世界坐标系中的位姿信息提供给位姿计算节点,并接收位姿计算节点提供的返回信息,同时结合信息存储节点提供的虚拟对象模型信息将虚拟对象呈现在屏幕上;

所述位姿计算节点用于使用进行位姿计算的SLAM算法系统,根据接收客户端节点的摄像头信息和虚拟对象在世界坐标系中的位姿信息,计算虚拟对象在当前用户设备屏幕上的位姿信息,并将结果提供给客户端节点;

只有标识出的节点才具有节点功能。

2.根据权利要求1所述的方法,其特征在于,根据用户在第一用户设备的屏幕中放置虚拟对象的位置和所述虚拟对象的模型信息,获取虚拟对象在所述第一用户设备的世界坐标系中的位姿信息的步骤之前还包括:若所述第一用户设备不具有信息存储节点标识,则使用所述第一用户设备中的客户端节点从具有所述信息存储节点标识的用户设备的信息存储节点中获取所述虚拟对象的模型信息。

3.根据权利要求1所述的方法,其特征在于,根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息的步骤具体包括:使用具有位姿计算节点标识的用户设备中的位姿计算节点根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息。

4.根据权利要求1所述的方法,其特征在于,所述第一用户设备和所述第二用户设备位于相同的网络环境和地理环境中;

所述第一用户设备和所述第二用户设备基于Ad-Hoc方式临时组建一个移动通信网络。

5.一种多用户交互的增强现实系统,其特征在于,包括:

多个用户设备,每个所述用户设备包括信息存储节点、位姿计算节点和客户端节点;

所述信息存储节点用于存储虚拟对象的模型信息和所述虚拟对象在世界坐标中的位姿信息;

所述客户端节点用于向所述信息存储节点发送请求,获取所述虚拟对象的模型信息,并根据用户在所述客户端节点所在用户设备的屏幕中放置所述虚拟对象的位置和所述虚拟对象的模型信息,获取所述虚拟对象在所述客户端节点所在用户设备的世界坐标系中的位姿信息,并将所述世界坐标系中的位姿信息发送给所述位姿计算节点和所述信息存储节点,将所述用户设备的摄像头信息发送给所述位姿计算节点;

所述位姿计算节点用于根据所述世界坐标系中的位姿信息和所述客户端节点的摄像头信息,计算所述虚拟对象在所述屏幕上的位姿信息,并将所述虚拟对象在所述屏幕上的位姿信息发送给所述客户端节点,以供所述客户端节点根据所述虚拟对象在所述屏幕上的位姿信息和所述虚拟对象的模型信息在所述屏幕上显示所述虚拟对象;

各所述用户设备具有信息存储节点标识、位姿计算节点标识和客户端节点标识中的一种或多种,所有所述用户设备的标识组合中包括所述信息存储节点标识、所述位姿计算节点标识和所述客户端节点标识;

具有信息存储节点标识的所述用户设备使用自身的信息存储节点与所述多个用户设备中的其他用户设备进行交互;

具有客户端节点标识的所述用户设备使用自身的客户端节点与所述多个用户设备中的其他用户设备进行交互;

具有位姿计算节点标识的所述用户设备使用自身的位姿计算节点与所述多个用户设备中的其他用户设备进行交互。

6.根据权利要求5所述的系统,其特征在于,所述位姿计算节点还用于根据所述信息存储节点中虚拟对象在任一用户设备的世界坐标系中的位姿信息和所述多个用户设备中任一其他用户设备的摄像头信息,计算所述虚拟对象在所述任一其他用户设备的屏幕上的位姿信息;其中,所述任一其他用户设备具有客户端节点标识;

所述任一其他用户设备的客户端节点根据所述虚拟对象在所述任一其他用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息在所述任一其他用户设备的屏幕上显示所述虚拟对象。

7.根据权利要求5所述的系统,其特征在于,所有所述用户设备位于相同的网络环境和地理环境中;

所有所述用户设备基于Ad-Hoc方式临时组建一个移动通信网络。

8.一种电子设备,其特征在于,包括:

至少一个处理器、至少一个存储器和总线;其中,

所述处理器和存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。

9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一所述的方法。

说明书 :

多用户交互的增强现实方法及系统

技术领域

[0001] 本发明实施例属于增强现实技术领域,更具体地,涉及一种多用户交互的增强现实方法及系统。

背景技术

[0002] 增强现实技术是一种基于现实世界环境的交互式体验,计算机通过计算生成对现实世界中对象的感知信息的增强,这些信息涉及多种感知形态,包括视觉、听觉、触觉、体感和嗅觉。增强现实应用广泛,尤其是作为移动端应用而实施的增强现实尤为广泛,极大地丰富了用户的生活。
[0003] 在对现实信息的增强时,计算机将增强的感官信息与自然环境进行叠加,这些重叠的感官信息可以是建设性的,即为仅仅是添加到自然环境中;亦可是破坏性的,即为掩蔽现实中的自然环境。两种方式与物理世界皆为无缝交织,使得感官体验为沉浸式。增强现实借助计算机图形技术和可视化技术产生现实环境中不存在的虚拟对象,并将虚拟对象准确“放置”在真实环境中,借助显示设备将虚拟对象和现实世界融为一体。因此增强现实系统具有虚实结合、实时交互、三维注册的特点。
[0004] 目前大部分增强现实应用需要基于固定基础设施进行交互,网络中的节点具有等级地位和固定分工,例如预先搭建的固定服务器。这种方式运行稳定,反应快速,但是成本高延时大。另一方面,大部分增强现实应用只能满足单用户体验,用户体验具有较大局限性。

发明内容

[0005] 为克服上述现有多用户交互的增强现实方法成本高且局限于单用户交互的问题或者至少部分地解决上述问题,本发明实施例提供一种多用户交互的增强现实方法及系统。
[0006] 根据本发明实施例的第一方面,提供一种多用户交互的增强现实方法,包括:
[0007] 根据用户在第一用户设备的屏幕中放置虚拟对象的位置和所述虚拟对象的模型信息,获取虚拟对象在所述第一用户设备的世界坐标系中的位姿信息;
[0008] 根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息;
[0009] 根据所述虚拟对象在所述第一用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第一用户设备的屏幕上显示所述虚拟对象;
[0010] 根据第二用户设备的摄像头信息和所述虚拟对象在所述第一用户设备的世界坐标系中的位姿信息,计算所述虚拟对象在所述第二用户设备的屏幕上的位姿信息;
[0011] 根据所述虚拟对象在所述第二用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第二用户设备的屏幕上显示所述虚拟对象。
[0012] 根据本发明实施例第二方面提供一种多用户交互的增强现实系统,包括:
[0013] 多个用户设备,每个所述用户设备包括信息存储节点、位姿计算节点和客户端节点;
[0014] 所述信息存储节点用于存储虚拟对象的模型信息和所述虚拟对象在世界坐标中的位姿信息;
[0015] 所述客户端节点用于向所述信息存储节点发送请求,获取所述虚拟对象的模型信息,并根据用户在所述客户端节点所在用户设备的屏幕中放置所述虚拟对象的位置和所述虚拟对象的模型信息,获取所述虚拟对象在所述客户端节点所在用户设备的世界坐标系中的位姿信息,并将所述世界坐标系中的位姿信息发送给所述位姿计算节点和所述信息存储节点,将所述用户设备的摄像头信息发送给所述位姿计算节点;
[0016] 所述位姿计算节点用于根据所述世界坐标系中的位姿信息和所述客户端节点的摄像头信息,计算所述虚拟对象在所述屏幕上的位姿信息,并将所述虚拟对象在所述屏幕上的位姿信息发送给所述客户端节点,以供所述客户端节点根据所述虚拟对象在所述屏幕上的位姿信息和所述虚拟对象的模型信息在所述屏幕上显示所述虚拟对象;
[0017] 各所述用户设备具有信息存储节点标识、位姿计算节点标识和客户端节点标识中的一种或多种,所有所述用户设备的标识组合中包括所述信息存储节点标识、所述位姿计算节点标识和所述客户端节点标识;
[0018] 具有信息存储节点标识的所述用户设备使用自身的信息存储节点与所述多个用户设备中的其他用户设备进行交互;
[0019] 具有客户端节点标识的所述用户设备使用自身的客户端节点与所述多个用户设备中的其他用户设备进行交互;
[0020] 具有位姿计算节点标识的所述用户设备使用自身的位姿计算节点与所述多个用户设备中的其他用户设备进行交互。
[0021] 根据本发明实施例的第三个方面,还提供一种电子设备,包括:
[0022] 至少一个处理器;以及
[0023] 与所述处理器通信连接的至少一个存储器,其中:
[0024] 所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的多用户交互的增强现实方法。
[0025] 根据本发明实施例的第四个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的多用户交互的增强现实方法。
[0026] 本发明实施例提供一种多用户交互的增强现实方法及系统,该方法通过根据用户在第一用户设备的屏幕中放置虚拟对象的位置和虚拟对象的模型信息,获取虚拟对象在第一用户设备的屏幕中的位姿信息,根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息获取虚拟对象在第二用户设备的屏幕中的位姿信息,从而将用户在第一用户设备上放置的虚拟对象显示在第二用户设备中,实现了多用户交互的增强现实,且不依赖于现有网络通信设施,具有一定独立性。

附图说明

[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1为本发明实施例提供的多用户交互的增强现实方法整体流程示意图;
[0029] 图2为本发明实施例提供的多用户交互的增强现实系统中各类节点之间交互的示意图;
[0030] 图3为本发明一实施例提供的多用户交互的增强现实系统中各用户设备交互的示意图;
[0031] 图4为本发明另一实施例提供的多用户交互的增强现实系统中各用户设备交互的示意图;
[0032] 图5为本发明又一实施例提供的多用户交互的增强现实系统中中各用户设备交互的示意图;
[0033] 图6为本发明实施例提供的电子设备整体结构示意图。

具体实施方式

[0034] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 在本发明的一个实施例中提供一种多用户交互的增强现实方法,图1为本发明实施例提供的多用户交互的增强现实方法整体流程示意图,该方法包括:S101,根据用户在第一用户设备的屏幕中放置虚拟对象的位置和所述虚拟对象的模型信息,获取虚拟对象在所述第一用户设备的世界坐标系中的位姿信息;
[0036] 其中,虚拟对像为预先创建好的,可以为文字、图片和三维模型等。虚拟对象的模型信息也为预先获取的,包括虚拟对象的形状和尺寸。第一用户设备为智能终端,如手机、平板电脑等,用户在第一用户设备的屏幕上放置虚拟对象。根据虚拟对象的放置位置和虚拟对象的模型信息,获取虚拟对象在第一用户设备的世界坐标系中的位姿信息。其中,位姿信息包括位置信息和位姿信息。
[0037] S102,根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息;
[0038] 其中,摄像头信息为摄像头的设备属性信息和位置信息,根据虚拟对象在第一用户设备的世界坐标系中的位姿信息和第一用户设备的摄像头信息,使用SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)算法系统计算虚拟对象在第一用户设备的屏幕上的位姿信息。将虚拟对象在第一用户设备的世界坐标系中的位姿信息进行保存,以将计算结果提供给其他用户设备使用。
[0039] S103,根据所述虚拟对象在所述第一用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第一用户设备的屏幕上显示所述虚拟对象;
[0040] 根据虚拟对象在第一用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第一用户设备的屏幕上显示虚拟对象,即将虚拟对象以增强现实的方式进行显示。
[0041] S104,根据第二用户设备的摄像头信息和所述虚拟对象在所述第一用户设备的世界坐标系中的位姿信息,计算所述虚拟对象在所述第二用户设备的屏幕上的位姿信息;
[0042] 其中,第二用户设备为另一个智能终端。由于第二用户设备和第一用户设备相对于虚拟对象的位置不同,在第一用户设备和第二用户设备上显示不同角度的虚拟的对象。即虚拟对象在第一用户设备的屏幕上的位姿信息和在第二用户设备的屏幕上的位姿信息是不同的。当其他用户需要在第二用户设备的屏幕上观看用户在第一用户设备的屏幕上放置的虚拟对象时,由于不同用户设备的世界坐标系很可能不同,使用SLAM算法系统根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息,计算虚拟对象在第二用户设备的屏幕上的位姿信息。
[0043] S105,根据所述虚拟对象在所述第二用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息,在所述第二用户设备的屏幕上显示所述虚拟对象。
[0044] 根据虚拟对象在第二用户设备的屏幕上的位姿信息和虚拟对象的模型信息,以增强现实的方式在第二用户设备的屏幕上显示虚拟对象。可以将虚拟对象在第一用户设备的世界坐标系中的位姿信息可以提供给除第二用户设备以外的其他用户设备进行位姿信息的计算,以在其他用户设备的屏幕上以增强现实方式显示虚拟对象,从而实现第一用户设备与多个用户设备进行用户交互。
[0045] 本发明实施例根据用户在第一用户设备的屏幕中放置虚拟对象的位置和虚拟对象的模型信息,获取虚拟对象在第一用户设备的屏幕中的位姿信息,根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息获取虚拟对象在第二用户设备的屏幕中的位姿信息,从而将用户在第一用户设备上放置的虚拟对象显示在第二用户设备中,实现了多用户交互的增强现实,且不依赖于现有网络通信设施,具有一定独立性。
[0046] 在上述实施例的基础上,本实施例中所述第一用户设备和所述第二用户设备均包括信息存储节点、位姿计算节点和客户端节点;所述第一用户设备和所述第二用户设备均具有客户端节点标识。
[0047] 具体地,第一用户设备和第二用户设备均具有三类节点,即存储节点、位姿计算节点和客户端节点。其中,信息存储节点用于接收并存储虚拟对象的模型信息,并从客户端节点接收虚拟对象在世界坐标系中的位姿信息,将这两种信息存储在数据库中,同时也向客户端节点提供虚拟对象在世界坐标系中的位姿信息和虚拟对象的模型信息。客户端节点用于将自身的摄像头信息发和从信息存储节点获取的虚拟对象在世界坐标系中的位姿信息提供给位姿计算节点,并接收位姿计算节点提供的返回信息。同时结合信息存储节点提供的虚拟对象模型信息将虚拟对象呈现在屏幕上。位姿计算节点用于使用进行位姿计算的SLAM算法系统,根据接收客户端节点的摄像头信息和虚拟对象在世界坐标系中的位姿信息,计算虚拟对象在当前用户设备屏幕上的位姿信息,并将结果提供给客户端节点。虽然第一用户设备和第二用户设备均具有三类节点,但只有标识出的节点才具有节点功能。其中,第一用户设备和第二用户设备均具有客户端节点标识,即第一用户设备和第二用户设备均具有客户端节点的功能。
[0048] 在上述实施例的基础上,本实施例中根据用户在第一用户设备的屏幕中放置虚拟对象的位置和所述虚拟对象的模型信息,获取虚拟对象在所述第一用户设备的世界坐标系中的位姿信息的步骤之前还包括:若所述第一用户设备不具有信息存储节点标识,则使用所述第一用户设备中的客户端节点从具有所述信息存储节点标识的用户设备的信息存储节点中获取所述虚拟对象的模型信息。
[0049] 具体地,若第一用户设备不具有信息存储节点标识,即第一用户设备不具有信息存储节点功能,则获取具有信息存储节点标识的用户设备,即获取具有信息存储节点功能的用户设备,该设备可以为第二用户设备,或者是除第一用户设备和第二用户设备以外的其他用户设备。第一用户设备中的客户端节点从该用户设备的信息存储节点中获取虚拟对象的模型信息。若第一用户设备具有信息存储节点标识,则第一用户设备直接从自身的信息存储节点标识中获取虚拟对象的模型信息。
[0050] 在上述实施例的基础上,本实施例中根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息的步骤具体包括:使用具有位姿计算节点标识的用户设备中的位姿计算节点根据所述虚拟对象在世界坐标系中的位姿信息和所述第一用户设备的摄像头信息,计算所述虚拟对象在所述第一用户设备的屏幕上的位姿信息。
[0051] 具体地,获取具有位姿节点标识的用户设备,该用户设备可以为第一用户设备、第二用户设备,或者是除第一用户设备和第二用户设备以外的其他用户设备。该用户设备使用进行位姿计算的SLAM算法系统根据虚拟对象在世界坐标系中的位姿信息和第一用户设备的摄像头信息,计算虚拟对象在第一用户设备的屏幕上的位姿信息。
[0052] 在上述实施例的基础上,本实施例中所述第一用户设备和所述第二用户设备位于相同的网络环境和地理环境中;所述第一用户设备和所述第二用户设备基于Ad-Hoc方式临时组建一个移动通信网络。
[0053] 本实施例中进行交互的用户设备至少有两个,在设备可以承受范围内进行交互的用户设备数量没有上限,当系统中为单个用户设备时,能进行单用户的增强现实。进行交互的用户设备,包括第一用户设备和第二用户设备位于相同的网络环境和地理环境中,即位于同一个蜂窝网络或Wi-Fi网络中,并且进行交互的用户设备处于相同地点和相同场景。进行交互的用户设备可以使用Ad-Hoc方式临时组建一个移动通信网络。Ad-Hoc方式是一种自组织形式,Ad-Hoc网络通常指的是没有预先计划或者按很低的计划由一些网络设备组建在一起的临时网络。
[0054] 在本发明的另一个实施例中提供一种多用户交互的增强现实系统,该系统用于实现前述各实施例中的方法。因此,在前述多用户交互的增强现实方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。本发明实施例提供的多用户交互的增强现实系统结构示意图,该系统包括多个用户设备,每个所述用户设备包括信息存储节点、位姿计算节点和客户端节点;所述信息存储节点用于存储虚拟对象的模型信息和所述虚拟对象在世界坐标中的位姿信息;所述客户端节点用于向所述信息存储节点发送请求,获取所述虚拟对象的模型信息,并根据用户在所述客户端节点所在用户设备的屏幕中放置所述虚拟对象的位置和所述虚拟对象的模型信息,获取所述虚拟对象在所述客户端节点所在用户设备的世界坐标系中的位姿信息,并将所述世界坐标系中的位姿信息发送给所述位姿计算节点和所述信息存储节点,将所述用户设备的摄像头信息发送给所述位姿计算节点;所述位姿计算节点用于根据所述世界坐标系中的位姿信息和所述客户端节点的摄像头信息,计算所述虚拟对象在所述屏幕上的位姿信息,并将所述虚拟对象在所述屏幕上的位姿信息发送给所述客户端节点,以供所述客户端节点根据所述虚拟对象在所述屏幕上的位姿信息和所述虚拟对象的模型信息在所述屏幕上显示所述虚拟对象;各所述用户设备具有信息存储节点标识、位姿计算节点标识和客户端节点标识中的一种或多种,所有所述用户设备的标识组合中包括所述信息存储节点标识、所述位姿计算节点标识和所述客户端节点标识;具有信息存储节点标识的所述用户设备使用自身的信息存储节点与所述多个用户设备中的其他用户设备进行交互;具有客户端节点标识的所述用户设备使用自身的客户端节点与所述多个用户设备中的其他用户设备进行交互;具有位姿计算节点标识的所述用户设备使用自身的位姿计算节点与所述多个用户设备中的其他用户设备进行交互。
[0055] 具体地,每个用户设备具有三类节点,即存储节点、位姿计算节点和客户端节点。如图2所示,信息存储节点表示为内嵌有菱形的正方形,客户端节点表示为内嵌有圆形的正方形,位姿计算节点表示为内嵌有六边形的正方向。信息存储节点与客户端节点进行交互,接收并存储虚拟对象的模型信息,并从客户端节点接收虚拟对象在世界坐标系中的位姿信息,将这两种信息存储在数据库中,同时也向客户端节点提供虚拟对象在世界坐标系中的位姿信息和虚拟对象的模型信息。客户端节点与信息存储节点和位姿计算节点进行交互,用于将自身的摄像头信息发和从信息存储节点获取的虚拟对象在世界坐标系中的位姿信息提供给位姿计算节点,并接收位姿计算节点提供的返回信息。同时结合信息存储节点提供的虚拟对象模型信息将虚拟对象呈现在屏幕上。位姿计算节点用于与客户端节点进行交互,用于使用进行位姿计算的SLAM算法系统,根据接收客户端节点的摄像头信息和虚拟对象在世界坐标系中的位姿信息,计算虚拟对象在当前用户设备屏幕上的位姿信息,将结果提供给客户端节点,并将虚拟对象在屏幕上的位姿信息发送给信息存储节点进行存储以供其他用户设备使用。虽然第一用户设备和第二用户设备均具有三类节点,但只有标识出的节点才具有节点功能。同一用户设备可具有三类标识中的一种或多种,可以根据需要进行不同设置。系统中所有设备的节点标识需覆盖这三类标识。
[0056] 本发明实施例通过将包含信息存储节点、位姿计算节点和客户端节点的多个用户设备进行标识,根据标识确定各用户设备的节点功能,具有节点功能的用户设备进行交互,实现了多用户交互的增强现实,且不依赖于现有网络通信设施,具有一定独立性。
[0057] 在上述实施例的基础上,本实施例中所述位姿计算节点还用于根据所述信息存储节点中虚拟对象在任一用户设备的世界坐标系中的位姿信息和所述多个用户设备中任一其他用户设备的摄像头信息,计算所述虚拟对象在所述任一其他用户设备的屏幕上的位姿信息;其中,所述任一其他用户设备具有客户端节点标识;所述任一其他用户设备的客户端节点用于根据所述虚拟对象在所述任一其他用户设备的屏幕上的位姿信息和所述虚拟对象的模型信息在所述任一其他用户设备的屏幕上显示所述虚拟对象。
[0058] 具体地,位姿计算节点还用于根据信息存储节点中虚拟对象在任一用户设备的世界坐标系上的位姿信息和除该用户设备以外其他用户设备的摄像头信息,计算虚拟对象在其他用户设备的屏幕上的位姿信息。由于需要在其他用户设备的屏幕上显示虚拟对象的位姿信息,其他设备一定具有客户端节点功能,即具有客户端节点标识。其他用户设备的客户端节点用于向位姿计算节点提供自身的摄像头信息和已存储在信息存储节点中虚拟对象在任一用户设备世界坐标系中的位姿信息。
[0059] 如图3所示,系统中包括4台用户设备,4台用户设备处于相同的网络环境和物理环境中。在进入网络后,用户设备2、3标识自身为客户端节点,用户1标识自身为信息存储节点,用户4标识自身为位姿计算节点,具体的流程包括以下步骤:
[0060] 步骤1、用户设备2对用户设备1提出获取虚拟对象模型信息的请求。
[0061] 用户设备2中的客户端节点在网络中向用户设备1的信息存储节点发送请求,获取可以虚拟对象的模型信息,用户设备1信息存储节点返回虚拟对象的模型信息。
[0062] 步骤2、用户设备2对用户设备4提出计算放置位姿的请求。
[0063] 用户设备2向用户设备4提供自身的摄像头信息和用户在用户设备2的屏幕中的一点放置的虚拟对象,用户设备4中的位姿计算节点接收信息,进行当前位姿的计算,得出虚拟对象在用户设备2放置的位姿信息,将其返回至用户设备2中的客户端节点。用户设备2结合虚拟对象模型信息和位姿信息,在自身屏幕上呈现虚拟对象。
[0064] 步骤3、用户设备2对用户设备1提出保存虚拟对象在用户设备2屏幕上的位姿信息的请求。
[0065] 用户设备2将虚拟对象放置在用户设备2世界坐标系中的位姿信息提供给用户设备1的信息存储节点进行存储,用户设备1进行存储后,后续根据其他用户设备的请求提供给其他用户设备。
[0066] 步骤4、用户设备3对用户设备1提出获取虚拟对象信息的请求。
[0067] 用户设备3在进入当前环境后标识自身为客户端节点,向用户设备1的信息存储节点提出请求,获取虚拟对象模型信息和虚拟对象在用户设备2世界坐标系中的位姿信息。
[0068] 步骤5、用户设备3对用户设备4提出计算虚拟对象位姿的请求。
[0069] 用户设备3向用户设备4的位姿计算节点提供自身摄像头信息和虚拟对象放置在用户设备2世界坐标系中的位姿信息,用户设备4计算出虚拟对象在用户3设备的屏幕中的位姿信息,并将其返回给用户设备3。
[0070] 步骤6、用户设备3呈现虚拟对象。
[0071] 用户设备3根据从用户设备4获取的位姿信息和从用户设备1获取的模型信息,将虚拟对象呈现在自身设备的屏幕上,完成了视觉上的多用户互动增强现实效果共享。
[0072] 如图4所示,有4台用户设备,4台用户设备处于相同的网络环境和地理环境中,在进入网络后,用户设备2、3标识自身为客户端节点,用户设备1标识自身为信息存储节点,用户设备4标识自身为位姿计算节点。具体的流程包括以下步骤:
[0073] 步骤1、在用户设备1上放置虚拟对象并向用户设备4提出位姿计算请求。
[0074] 用户设备1自身包含信息存储节点,无需向外获取虚拟对象模型信息。用户在用户设备1的屏幕上放置虚拟对象,用户设备1将自身的摄像头信息提供给用户设备4的位姿计算节点,用户设备4进行计算后返回位姿信息。用户设备1获取计算结果后将虚拟对象在世界坐标系中的位姿信息存储在自身的信息存储节点中。
[0075] 步骤2、用户设备2、3请求获取虚拟对象信息。
[0076] 用户设备2、3进入当前环境后,向用户设备1的信息存储节点提出请求,获取虚拟对象模型信息和位姿信息。
[0077] 步骤3、用户设备2、3请求计算虚拟对象的当前位姿。
[0078] 用户设备2、3向用户设备4提供虚拟对象位姿信息和自身摄像头信息,用户设备4的位姿计算节点分别计算用户2、3中虚拟对象放置位姿的信息并返回。
[0079] 步骤4、用户设备2、3呈现虚拟对象。
[0080] 用户设备2、3从用户设备4位姿计算节点得到虚拟对象在自身屏幕中的位姿信息后,结合从用户设备1信息存储节点获取的虚拟对象模型信息,将虚拟对象呈现在各自设备屏幕中,完成多用户互动增强现实效果的共享。
[0081] 如图5所示,6台用户设备均包含三类节点。在同一物体和网络环境下,用户1标记自身为信息存储节点,用户2、4、5标记自身为客户端节点,用户3、6标记自身为位姿计算节点。具体的流程包括以下步骤:
[0082] 步骤1、用户设备2向用户设备3请求放置虚拟对象的位姿计算。
[0083] 用户设备2本身具有信息存储节点,在该信息存储节点中预先存储有虚拟对象模型信息,用户设备2无需向外获取模型信息。用户在用户设备2的屏幕中放置虚拟对象,用户设备2向用户3提供摄像头信息和放置虚拟对象在世界坐标系中的位置,用户设备3进行位姿信息的计算,并返回结果给用户设备2。用户设备2结合虚拟对象模型信息在设备屏幕呈现虚拟对象。
[0084] 步骤2、用户设备2向用户设备1提供虚拟对象在世界坐标系中的位姿信息进行存储。
[0085] 用户设备1自身标识为信息存储节点,用户设备2向用户设备1提供从用户设备3处获取的虚拟对象位姿信息,用户设备1将此信息存储在自身信息存储节点中,以便提供给后续进入网络中的用户设备。
[0086] 步骤3、用户设备4、5向用户设备1请求获取虚拟对象位姿信息。
[0087] 用户设备4、5都为客户端节点,但均包含了信息存储节点,用户4、5的客户端节点都可以直接从自身的信息存储节点获取虚拟对象模型信息,但是必须从用户设备1的信息存储节点获取虚拟对象的位姿信息。
[0088] 步骤4、用户设备4、5分别向用户设备3、6的位姿计算节点提出计算请求。
[0089] 由于网络中存在两个位姿计算节点,所以用户设备4、5可以同时分别向用户设备3、6提出计算虚拟对象在当前设备中位姿的计算。用户设备3、6获取上一步骤的位姿信息之后进行计算,并将结果返回至用户设备4、5。
[0090] 步骤5、用户设备4、5分别在各自的屏幕上呈现虚拟对象。
[0091] 用户设备4、5获取计算结果后,结合自身信息存储节点中的虚拟对象模型信息,将用户设备2放置的虚拟对象呈现在各自的屏幕上,实现视觉上的多用户互动增强现实效果的共享。
[0092] 在上述实施例的基础上,本实施例中所有所述用户设备位于相同的网络环境和地理环境中;所有所述用户设备基于Ad-Hoc方式临时组建一个移动通信网络。
[0093] 具体地,进行交互的用户设备位于相同的网络环境和地理环境中,即位于同一个蜂窝网络或Wi-Fi网络中,并且进行交互的用户设备处于相同地点和相同场景。进行交互的用户设备可以使用Ad-Hoc方式临时组建一个移动通信网络。Ad-Hoc方式是一种自组织形式,Ad-Hoc网络通常指的是没有预先计划或者按很低的计划由一些网络设备组建在一起的临时网络。
[0094] 本实施例提供一种电子设备,图6为本发明实施例提供的电子设备整体结构示意图,该设备包括:至少一个处理器601、至少一个存储器602和总线603;其中,[0095] 处理器601和存储器602通过总线603完成相互间的通信;
[0096] 存储器602存储有可被处理器601执行的程序指令,处理器调用程序指令能够执行上述各方法实施例所提供的方法,例如包括:根据用户在第一用户设备的屏幕中放置虚拟对象在世界坐标系中的位姿信息和第一用户设备的摄像头信息,计算虚拟对象在第一用户设备的屏幕上的位姿信息;根据虚拟对象在第一用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第一用户设备的屏幕上显示虚拟对象;根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息,计算虚拟对象在第二用户设备的屏幕上的位姿信息;根据虚拟对象在第二用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第二用户设备的屏幕上显示虚拟对象。
[0097] 本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:根据用户在第一用户设备的屏幕中放置虚拟对象在世界坐标系中的位姿信息和第一用户设备的摄像头信息,计算虚拟对象在第一用户设备的屏幕上的位姿信息;根据虚拟对象在第一用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第一用户设备的屏幕上显示虚拟对象;根据第二用户设备的摄像头信息和虚拟对象在第一用户设备的世界坐标系中的位姿信息,计算虚拟对象在第二用户设备的屏幕上的位姿信息;根据虚拟对象在第二用户设备的屏幕上的位姿信息和虚拟对象的模型信息,在第二用户设备的屏幕上显示虚拟对象。
[0098] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0099] 以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0100] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0101] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。