在混合现实中显示虚拟对象的方法以及相关终端和系统与流程

文档序号:17831226发布日期:2019-06-05 23:04阅读:248来源:国知局
在混合现实中显示虚拟对象的方法以及相关终端和系统与流程

本发明涉及混合现实(mixedreality)、有时也称为混和现实(hybridreality)的一般领域,并且,更具体地涉及一种在混合现实中显示至少一个虚拟对象的方法。



背景技术:

终端用户,例如计算机用户,经常需要同时使用多个计算机应用程序,例如,同时一起使用文字处理器软件与电子邮件应用程序。

然而,小尺寸的终端屏幕往往不能做到同时显示所有使用中的应用程序的窗口,来使得用户能够清楚地看见它们。

举例来说,某些应用程序的显示仅可以缩小为图标,这样用户才不再对那些应用程序有任何视觉反馈,但是为了使那些应用程序再次显示,用户需要执行控制操作。

因此,需要一种能够改进多个应用程序的同时显示的解决方案。



技术实现要素:

本发明涉及一种在混合现实中显示至少一个虚拟对象的方法,该方法包括由第一终端执行的以下步骤:

·发送步骤,用于发送定位在计算机应用程序的第一窗口的一部分上的指针的至少一个位置数据元素,所述第一窗口由第二终端显示;

·接收步骤,用于接收与所述第一窗口的一部分相关的至少一个数据元素;以及

·处理步骤,用于处理与所述一部分相关的至少一个数据元素,以便基于与所述一部分相关的至少一个数据元素在混合现实中显示所述至少一个虚拟对象。

因此,第一终端的用户可以将使用中的计算机应用程序的显示从第二终端的显示设备扩展出来。可以同时显示与这些应用程序对应的许多个虚拟对象。

在特定的实施方式中,所述至少一个虚拟对象是计算机应用程序的第二窗口。

在特定的实施方式中,所述方法进一步包括由所述第一终端执行的以下步骤:

·用于获取显示所述第一窗口的所述第二终端的显示设备在所述第一终端和所述第二终端所定位的真实环境中的至少一个位置数据元素的获取步骤;以及

·用于获取所述指针的至少一个位置数据元素的获取步骤,所述指针的至少一个位置数据元素是所述指针相对于所述显示设备的位置数据元素。

在特定的实施方式中,在检测用于显示所述至少一个虚拟对象的命令时执行所述发送步骤。

在特定的实施方式中,所述接收步骤包括接收:

·所述第一窗口的一部分的至少一个抓取,其为数字图像格式;和/或

·与所述第一窗口的一部分相关的至少一个上下文数据元素;和/或

·与所述第一窗口的一部分相关的至少一个元数据元素。

在特定的实施方式中,所述第一终端是混合现实头戴式显示器或混合现实眼镜。

在特定的实施方式中,所述方法进一步包括由所述第二终端执行的缩小步骤,用于缩小所述第一窗口的一部分。

在特定的实施方式中,所述方法进一步包括由所述第二终端执行的确定步骤,用于根据所述指针的至少一个位置数据元素确定所述第一窗口的一部分。

此外,本发明提供了一种适于执行如上所述方法的混合现实终端。

而且,本发明提供了一种适于执行如上所述的方法、包括如上所述的终端的系统。

在特定的实施例中,用于显示本发明的至少一个虚拟对象的本发明的混合现实显示方法的各个步骤由计算机程序指令确定。

因此,本发明还提供了一种数据介质上的计算机程序,所述程序包括适于执行根据本发明的用于显示至少一个虚拟对象的混合现实显示方法的步骤的指令。

所述程序可以使用任何编程语言,并且它可以是源代码、目标代码,或者源代码与目标代码之间的代码的形式,诸如为部分编译的形式,或者为任何其它期望的形式。

本发明还提供了一种计算机可读数据介质,包括如上所述的计算机程序的指令。

数据介质可以是能够存储程序的任何实体或设备。例如,介质可以包括诸如只读存储器(rom)等的存储装置,例如光盘(cd)rom或微电子电路rom,或者甚至可以包括磁记录装置,例如硬盘。

此外,数据介质可以是可传输介质,诸如可以经由电缆或光缆、通过无线电或通过其它方式传送的电信号或光信号。特别地,本发明的程序可以从因特网类型的网络上下载。

可选地,数据介质可以是其中包含程序的集成电路,所述电路适于执行所讨论的方法或用于执行所讨论的方法。

附图说明

本发明的其它特征和优点从以下参考附图的描述中呈现,所述附图示出了没有限制特征的实施方式。在图中:

图1是本发明的实施例中用于显示至少一个虚拟对象的混合现实显示系统的示图;

图2a和图2b是示出本发明的实施例中用于显示至少一个虚拟对象的混合现实显示系统的第一终端和第二终端的示图;

图3a和图3b分别是图1的系统的第一终端和第二终端的示图;

图4和图5是示出本发明的各实施方式中用于显示至少一个虚拟对象的混合现实显示方法的主要步骤的流程图;以及

图6是示出本发明的实施例中用于显示至少一个虚拟对象的混合现实显示系统的第二终端的屏幕的示图。

具体实施方式

图1是示出用于显示至少一个虚拟对象、并且适于实现本发明的实施方式中用于显示至少一个虚拟对象的混合现实显示方法的混合现实显示系统100的示图。

混合现实是使虚拟世界能够与真实世界融合以便产生新的环境和显示的技术,其中真实世界的物理对象以及虚拟世界的数字对象共存并且可以例如以实时方式进行交互。混合现实使得可以通过显示设备显示虚拟对象,以便将它们叠加在真实世界中。

系统100包括第一终端110,并且还可以包括第二终端120。第一终端110和第二终端120可以通过电信网络130彼此通信,所述电信网络130例如为因特网类型网络(例如wifi)、蓝牙网络,或者固定或移动电话网络(为3g、4g等类型)。

图2a示出了第一终端110和第二终端120的实例,其中第一终端110是用户佩戴的混合现实眼镜,而第二终端120是计算机。第二终端的屏幕显示两个计算机应用程序的窗口f1和f2。第一终端110和第二终端120的用户u可以通过凝视两个窗口之一f1的一部分将第一终端110的指针p定位在这一部分上。

用户u还可以进行抓取所述第一窗口f1的这一部分的运动,该抓取运动被第一终端110解释为显示第一窗口f1的这一部分的命令。

然后,第二终端120可以向第一终端110发送与指向窗口f1相关的数据,使得第一终端110可以基于该数据显示新窗口f3(参见图2b)。然后,第二终端120可以停止显示窗口f1或者可以缩小窗口f1。

然后,用户u可以自由移动新窗口f3。用户还可以与该新窗口f3交互。

第一终端110通常是混合现实眼镜,诸如“microsofthololens”(注册商标)眼镜,或者混合现实头戴式显示器。在一种变型中,第一终端110可以是移动终端,诸如智能手机型便携式电话或数字平板电脑。

举例来说,第二终端120是固定终端或移动终端,诸如计算机,通常是个人计算机、智能手机型移动电话、数字平板电脑或数字电视机。

第一终端110包括指针模块、用于发送位置数据的发送模块、用于接收第一窗口部分数据的接收模块,以及用于处理真实环境数据和第一窗口部分数据的处理器模块。此外,第一终端110可以包括用于获取位置数据的获取模块、用于采集真实环境数据的采集模块,和/或用于显示虚拟对象的显示设备。

在一个实例中,显示设备是透明或半透明屏幕,其上可以显示虚拟对象,所述虚拟对象通常采用全息图的形式。透明屏幕可以定位在用户眼睛的前方,使得用户通过屏幕看到屏幕上显示的虚拟对象和真实环境。因此,透明屏幕通常安装在混合现实眼镜上或安装在混合现实头戴式显示器上。

在另一个实例中,显示设备是能够显示来自真实世界的图像的屏幕,所述图像通常由采集模块采集,其中可以将虚拟对象叠加在该图像上。

在实例中,采集模块是移动相机或静止相机,和/或深度传感器。

发送模块和/或接收模块可以包括一个或多个远程通信模块,例如wifi子模块和/或多个近程通信子模块,例如近场通信(nfc)子模块或蓝牙子模块。

另外,第二终端120可以包括显示设备、用于接收位置数据的接收模块、用于处理位置数据的处理器模块、用于抓取第一窗口部分的抓取模块、用于存储第一窗口部分数据的存储模块、用于缩小第一窗口部分的缩小模块,和/或用于发送第一窗口部分数据的发送模块。

如图3a所示,第一终端110呈现计算机的传统架构。第一终端110具体包括处理器300、rom302、可重写非易失性存储器304(例如为电可擦除可编程只读存储器(eeprom)类型或“闪存nand”类型)、可重写易失性存储器306(为随机存取存储器(ram)类型),以及通信接口308。

根据本发明的实施例,第一终端110的rom302构成数据介质;根据本发明的实施例,该数据介质可由处理器300读取并且存储计算机程序p1。在一种变型中,计算机程序p1存储在可重写非易失性存储器304中。

计算机程序p1定义功能模块和软件模块,这些功能模块和软件模块在该实例中被配置成执行根据本发明的实施方式的用于显示至少一个虚拟对象的混合现实显示方法的各步骤。这些功能模块依赖或控制上述第一终端110的硬件元件300、302、304、306和308。特别地,在该实例中,它们包括指针模块、发送模块、接收模块、处理器模块,并且还可能包括获取模块和/或采集模块。

另外,如图3b所示,第二终端120还通过包括处理器310、rom312、可重写非易失性存储器314(例如为eeprom或闪存nand类型)、可重写易失性存储器316(为ram类型)和通信接口318来呈现计算机的传统架构。

与第一终端110类似,根据本发明的实施例,第二终端120的rom312(或可重写易失性存储器314)构成数据介质;根据本发明的实施例,该数据介质可由处理器310读取并且存储计算机程序p2。

计算机程序p2定义功能模块和软件模块,这些功能模块和软件模块在该实例中被配置成实现根据本发明的实施方式的用于显示至少一个虚拟对象的混合现实显示方法的各步骤。特别地,它们包括接收模块、处理器模块、抓取模块、存储模块、缩小模块和发送模块。

下面参考图4和图5描述的方法步骤详细描述这些各种模块的功能。

图4示出了本发明的实施方式中用于显示至少一个虚拟对象的混合现实方法。

该方法由第一终端执行,例如,参考图1和图3a描述的第一终端110。

在步骤e410中,第一终端110的发送模块发送定位在计算机应用程序的第一窗口f1的一部分上的指针p的至少一个位置数据元素dp,第一窗口f1由第二终端120显示。

此外,在步骤e420中,第一终端110的接收模块接收与第一窗口f1的该一部分相关的至少一个数据元素dpf1。

另外,在步骤e430中,处理器模块处理与第一窗口f1的该一部分相关的至少一个数据元素dpf1,以便基于与第一窗口f1的该一部分相关的至少一个数据元素dpf1在混合现实中显示虚拟对象。

图5示出了本发明的另一个实施方式中用于显示至少一个虚拟对象的混合现实显示方法。

该方法由用于显示至少一个虚拟对象的混合现实显示系统执行,例如,参考图1描述的系统100。

在步骤f500中,第二终端120的显示设备显示第一窗口f1,可能还一起显示一个或多个其它窗口f2。

在步骤e502中,第一终端110获取显示第一窗口f1的第二终端120的显示设备在第一终端110和第二终端120所处的真实环境er中的一个或多个位置数据元素dpe。该步骤e502由第一终端110的获取模块以及采集模块执行。

术语“真实环境”er表示在获取步骤e502期间第二终端120与第一终端110所定位的空间。通常,真实环境er是建筑物中的房间的形式。

第一终端110的采集模块以三维方式扫描真实环境er。然后,通过使用三维坐标,基于来自采集模块的数据,获取模块以三维方式对虚拟环境ev进行建模。

术语“虚拟环境”ev在本文中用于指与参考系(通常为矩形参考系)相关的数字空间,参考系表示在获取步骤502期间第一终端110和第二终端120所定位的真实环境er,所述表示是通过三维坐标进行的。

建模使得可以从第二终端120的显示设备获取一个或多个位置数据元素dpe。更准确地说,在建模期间,可以通过获取模块获取第二终端120的显示设备在与真实环境er对应的虚拟环境ev中的一组或多组三维坐标。

在显示设备是矩形屏幕e的实例中,可以获取屏幕e的两个相对角的三维坐标,例如,屏幕e的左下角a和右上角b(见图6),或者甚至是左上角和右下角。然后,可以从屏幕e的两个相对角的三维坐标推导出屏幕e的高度hab和宽度lab。

第一终端110的用户将第一终端110的指针模块的指针p定位在第一窗口f1的一部分pf1上。

然后,在步骤e504中,第一终端110可以获取给出指针的位置的至少一个位置数据元素dp,所述指针位置数据元素dp可以是给出指针相对于显示设备的位置的数据元素。该步骤504可以由第一终端110的获取模块执行,也可以由采集模块执行。

更准确地说,可以通过第一终端110的获取模块获取指针p在与真实环境er对应的虚拟环境ev中的一组或多组三维坐标。可以使用所获得的多组三维坐标来计算指针相对于显示设备的位置数据元素dp。

在图6的显示设备是矩形屏幕e的实例中,可以获取指针p相对于屏幕上的某一点的若干位置数据元素dp,例如,与指针p相对于位于屏幕一角的点(通常是矩形参考系的原点),通常是屏幕的左下角a的代数距离对应的垂直分量hap和水平分量lap。

然后,在步骤e510中,第一终端110的发送模块发送指针p的位置数据元素dp,并且可以由第二终端120的接收模块接收(步骤f510)。

当第一终端110检测显示虚拟对象的命令c时(步骤e506),可以执行该发送步骤e510。

在该实例中,显示命令c是由用户u做出的手势,通常是抓取运动,例如,抓取第一窗口f1的一部分pf1的运动,如图2a所示。然后,第一终端110的采集模块可以采集包括用户手势的一个或多个图像或视频。然后,第一终端110的处理器模块可以分析所述图像或视频,以便检测手势。

在另一个实例中,显示命令c是通过分析第一终端110采集的音频数据而检测到的语音命令。

在又一个实例中,显示命令c是对第一终端110的控制外围设备的动作,该外围设备可以例如是按钮或触摸表面。当第一终端110是混合现实眼镜时,该控制外围设备可以位于该眼镜的镜腿分支上。

在第二终端120的接收模块接收到指针p的位置数据元素dp(步骤f510)之后,第二终端120的处理器模块在步骤f512中运行以基于指针p的位置数据元素dp确定第一窗口f1的一部分pf1。

在实例中,第一窗口f1的一部分pf1是第一窗口f1的窗格、栏条或标签。因此,第一窗口f1的一部分pf1通常是导航标签或地址栏。在另一个实例中,第一窗口f1的一部分pf1完全由第一窗口f1构成。

更确切地说,在步骤f512的子步骤中,处理器模块将位置数据元素dp与第二终端120的显示设备显示的每个窗口的一个或多个部分的一个或多个位置数据元素进行比较。然后,处理器模块可以找到第一窗口f1的一部分pf1,用户将第一终端110的指针模块的指针p放置在所述第一窗口f1的这一部分pf1。

该比较可选择在确定指针p在屏幕上的位置的子步骤之前进行。

在图6的显示设备是矩形屏幕e的实例中,在步骤f510中,接收模块可以接收屏幕e的高度hab、屏幕e的宽度lab、与指针p相对于位于屏幕e的一角(通常是左下角)的点的代数距离对应的垂直分量hap,以及与指针p相对于同一点的代数距离对应的水平分量lap。然后,可以通过以下公式获得指针p的坐标(x,y):

x=rx*lap/lab;以及

y=ry*hap/hab;

其中,rx和ry表示屏幕的分辨率。

因此,即使当第一终端110不知道第二终端120的屏幕的分辨率时,也可以获得指针p的坐标(x,y)。

在一种变型中,不执行步骤e502、e504、e506、e510、f510和/或f512,并且第二终端120的处理器模块根据第二终端120的指针模块的指针的一个或多个位置数据元素,确定第一窗口f1的一部分pf1。在该变型中,第二终端的指针模块可以例如是计算机鼠标。

一旦确定了第一窗口f1的一部分pf1,就可以通过第二终端120的抓取模块以数字图像格式抓取第一窗口f1的一部分pf1(步骤f514)。

而且,与第一窗口f1的一部分pf1相关的一个或多个上下文数据元素dc和/或与第一窗口f1的一部分pf1相关的一个或多个元数据元素met,可以由第二终端120的存储模块存储在第二终端120的可重写非易失性存储器314中(步骤f516)。

每个上下文数据元素dc可以是描述计算机应用程序的数据元素,并且因此可以指示计算机应用程序的类型、名称和版本号。每个上下文数据元素还可以指示显示大小、语言、所使用的连接类型等。

对于文本处理器应用程序,每个上下文数据元素也可以是描述文档的数据元素,并且可以例如指定文档的作者。

此外,每个元数据元素met可以是关于第二终端120的显示设备显示的一部分pf1的数据元素。因此,对于文字处理器应用程序,每个元数据元素可以包括在第一窗口的该一部分中显示的文本、显示的当前页码、选定的字体、字体大小、剪贴板内容等。

而且,在步骤f518中,第二终端120的缩小模块缩小第二终端120的显示设备显示的第一窗口f1的该一部分。当第一窗口f1的一部分pf1由整个第一窗口f1构成时,将第一窗口f1缩小到由第二终端120的显示设备显示的图标的大小。在一种变型中,第二终端120停止显示第一窗口f1。

在步骤f520中,第二终端120的发送模块发送与在步骤f512中确定的第一窗口f1的一部分pf1相关的一个或多个数据元素dpf1。举例来说,在该步骤f520期间,可以发送数字图像格式的第一窗口f1的一部分pf1的抓取和/或上下文数据元素和/或元数据元素。

在第一终端110的接收模块接收到与第一窗口f1的一部分pf1相关的数据dpf1(步骤e520)之后,第一终端110的处理器模块在步骤e530中运行以处理所接收的数据元素dpf1,从而基于该数据元素dpf1在混合现实中显示虚拟对象ov。在该处理步骤e530中,可以定义虚拟对象ov的三维坐标。

在步骤e532中,第一终端110的显示设备显示虚拟对象ov。

更确切地说,第一终端110的显示设备可以显示虚拟对象ov,使得第一终端110的用户u可以在第一终端110上看到叠加在真实环境er上的该虚拟对象ov。

当第一终端110是混合现实眼镜或混合现实头戴式显示器时,显示设备是透明或半透明屏幕,其上在步骤e532中显示虚拟对象ov。所述屏幕安装在眼镜或头戴式显示器上,使得当用户u佩戴眼镜或头戴式显示器时,用户通过屏幕看到屏幕上一起显示的虚拟对象ov以及真实环境er。

当第一终端110是诸如移动电话或数字平板电脑等移动终端时,显示设备是屏幕,该屏幕在步骤e532中运行以显示叠加在源自真实环境er(通常由移动终端的相机采集)的图像上的虚拟对象ov。

举例来说,虚拟对象ov以这样的方式显示:对于第一终端110的用户u,虚拟对象ov看起来与第二终端120的显示设备的显示表面间隔开。因此,虚拟对象ov可以出现在第二终端120的显示设备的显示表面周围的某处,例如上方、下方、左侧和/或右侧。然后,可以在处理步骤e530期间将虚拟对象ov的三维坐标,定义为在步骤e502中获取的第二终端120的显示设备的位置数据元素dpe的函数。

在实例中,所显示的虚拟对象ov是数字图像格式的第一窗口的一部分pf1的抓取。在一种变型中,虚拟对象ov可以是视频。

在另一个实例中,处理器模块根据上下文数据元素和/或元数据元素创建虚拟对象ov。在处理所花费的时间期间,即在显示虚拟对象ov之前,第一终端110的显示设备可以显示第一窗口的一部分pf1的抓取。

那么,虚拟对象可以是例如为全息图形式的、适于在混合现实中显示的计算机应用程序的第二窗口(参见例如图2b的窗口f3),或者它可以是与第一窗口的一部分pf1对应并且适于在混合现实中显示的计算机应用程序的服务的三维表示(通常为全息图形式)。

当虚拟对象ov是第二窗口时,处理器模块显示一个或多个元数据元素并且可以利用一个或多个上下文数据元素以便定义第二窗口的形状和人体工程学。因此,在第一窗口f1的一部分pf1是窗口、窗格、栏条或导航标签的实例中,虚拟对象ov可以是第二窗口,可以类似于一部分pf1并且显示与一部分pf1基本上相同的内容。

在其它实例中,虚拟对象ov的内容、形状和/或人体工程学可以与一部分pf1的内容、形状和/或人体工程学不同。因此,当第一窗口f1的一部分pf1是二维图像时,虚拟对象ov可以是包括该图像的相框。

在步骤e534中,用户u可以通过第一终端110与虚拟对象ov交互。所述交互可以包括移动虚拟对象ov,和/或修改虚拟对象的内容。

例如,如果虚拟对象ov是视频,则内容的修改为回放视频。

在另一个实例中,当虚拟对象ov是第二文字处理器窗口时,用户可以使用第一终端110的虚拟键盘来修改其内容。

然后,为了同步目的,可以将内容修改发送到第二终端120。

可以重复本方法的各步骤以便显示多个虚拟对象ov。

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