CN114730482A - 关联多人增强现实系统中的设备坐标系 - Google Patents
关联多人增强现实系统中的设备坐标系 Download PDFInfo
- Publication number
- CN114730482A CN114730482A CN202080078551.3A CN202080078551A CN114730482A CN 114730482 A CN114730482 A CN 114730482A CN 202080078551 A CN202080078551 A CN 202080078551A CN 114730482 A CN114730482 A CN 114730482A
- Authority
- CN
- China
- Prior art keywords
- mobile device
- coordinate system
- dimensional coordinates
- fiducial marker
- feature points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/97—Determining parameters from multiple pictures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
公开了用于映射AR系统的设备的坐标系的方法和系统。第三设备可以从第一设备接收与第一坐标系关联的第一姿势以及从第二设备接收与第二坐标系关联的第二姿势。第三设备可以接收包括第一设备和第二设备中的每一个呈现的基准标记的图像。第一姿势和包括第一基准标记的图像的一部分可以定义第一组3D坐标。第二姿势和包括第二基准标记的图像的一部分可以定义第二组3D坐标。可以从第一组和第二组3D坐标之间的对应关系生成坐标系变换。可以向第一设备和/或第二设备发送坐标系变换。
Description
技术领域
本公开一般涉及增强现实(augmented reality,AR),更具体地且非限制性地,涉及关联AR环境中的多个设备的坐标系。
背景技术
在设备所在的真实世界环境,AR演示(AR presentations)可以在设备的显示屏所显示的虚拟环境中投影虚拟物体。设备的摄像头可以拍摄真实世界环境。可以创建虚拟物体以模仿真实世界物体,并呈现在设备的显示屏,使得虚拟物体看起来像自然地处在虚拟环境中。例如,摄像头可以拍摄包括空野餐桌的真实世界环境的实时视频。该设备生成野餐篮的虚拟物体,并且该虚拟物体被呈现为如同放置在野餐桌上一样。虚拟物体呈现在显示屏中,看起来基本上如同对应的现实世界物体物理上位于该野餐桌一样。
在多设备AR系统中,每个设备可以呈现表示真实环境的虚拟环境。特别地,每个设备从该设备的角度呈现虚拟环境。因此,在这样的系统中,虚拟环境在设备之间呈现的一致性很重要。
发明内容
本公开的各方面包括用于映射多人AR系统中的设备的坐标系的方法。该方法包括:第三移动设备接收指示第一移动设备的第一姿势的数据,其中,第一姿势相对于与第一移动设备关联的第一坐标系定义;第三移动设备接收指示第二移动设备的第二姿势的数据,其中,第二姿势相对于与第二移动设备关联的第二坐标系定义;第三移动设备接收图像,该图像示出第一移动设备显示的第一基准标记和第二移动设备显示的第二基准标记;第三移动设备识别与第一基准标记关联的第一组三维坐标,第一组三维坐标相对于第一坐标系被标识;第三移动设备识别与第二基准标记关联的第二组三维坐标,第二组三维坐标相对于第二坐标系被标识;第三移动设备基于第一组三维坐标和第二组三维坐标生成坐标系变换,该坐标系变换在第一坐标系和第二坐标系之间映射坐标;第三移动设备将坐标系变换发送至第二移动设备。
本公开的另一方面包括一种系统,该系统包括一个或多个处理器以及非暂时性计算机可读介质,非暂时性计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使一个或多个处理器执行上述方法。
本公开的另一方面包括一种非暂时性计算机可读介质,其包括指令,当由一个或多个处理器执行时,该指令使一个或多个处理器执行上述方法。
从下文提供的具体实施方式中,本公开的其他应用领域将变得显而易见。应当理解,具体实施方式和具体示例虽然指示了各种实施例,但仅旨在用于说明的目的,而不旨在必然限制本公开的范围。
附图说明
本公开结合附图进行描述。
图1是根据本公开至少一个方面的AR系统的图示,其中多个设备的坐标系可以对齐。
图2示出了根据本公开至少一个方面的可以呈现在第一设备上以用于多设备坐标系对齐的基准标记的示例。
图3A示出了根据本公开至少一个方面的生成一个设备相对于另一设备的坐标系的姿势的过程。
图3B示出了根据本公开至少一个方面的生成第二设备相对于第二设备的坐标系的3D坐标的过程。
图3C示出了根据本公开至少一个方面的生成坐标系变换的过程。
图4是根据本公开至少一个方面的对齐两个移动设备的坐标系的过程的流程图。
图5示出了根据本公开至少一个方面的执行AR应用的计算系统的组件的示例。
在附图中,相似的组件和/或特征可以具有相同的附图标记。此外,可以通过在附图标记后加上破折号和区分相似组件的第二标签来区分相同类型的各种组件。如果在说明书中仅使用了第一附图标记,则说明书适用于具有相同第一附图标记的任何类似部件,而与第二附图标记无关。
具体实施方式
以下描述仅提供优选的示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,以下优选示例性实施例的描述将为本领域技术人员提供用于实现优选示例性实施例的有效说明。应当理解,在不脱离所附权利要求中阐述的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
增强现实应用在设备上执行,以在对设备所在的真实世界环境同时拍摄的视频中呈现虚拟物体。设备可以在设备的显示屏上呈现所拍摄的视频,其中呈现虚拟物体,使得虚拟物体正确地显现在虚拟环境中。例如,如同对应的真实世界物体物理地处于真实世界环境中所显现的一样,虚拟物体可以以基本相同的位置和方向呈现在显示屏上。为了在设备移动时保持虚拟物体的连贯性,设备可以追踪其在真实世界环境中的位置和方向,以确保虚拟物体在设备视角发生变化的情况下继续正确显现。位置和方向定义了设备的姿势。该设备可以定义一个坐标系来将虚拟环境映射到真实世界环境并追踪其姿势和虚拟物体。
在多设备增强现实应用中,同一虚拟物体可以呈现在位于真实世界环境中的多个设备的每个显示屏上。通常,每个设备都会执行追踪过程,例如SLAM过程,以根据其自己的坐标系在环境中追踪其姿势(例如位置和方向)。由于设备的坐标系不同,因此可能需要坐标系之间的变换,以便以协调连贯的方式在设备上显示同一虚拟物体的各个实例。可以基于显示已知基准标记的设备以及拍摄这些基准标记的图像的其余设备中的一个或多个来生成变换。特别地,至少两个设备呈现基准标记,并且第三设备生成示出所呈现的基准标记的图像,以导出两个设备的坐标系之间的变换。
例如,在AR校准期间,第一设备和第二设备可以开始在真实世界环境中追踪其各自的姿势(例如,位置和方向)。第一设备可以使用例如SLAM过程或其他追踪技术来确定相对于第一设备的第一坐标系的第一姿势(T1)。类似地,第二设备可以确定相对于第二设备的第二坐标系的第二姿势(T2)。第一设备可以在第一设备的显示屏上呈现第一基准标记并将关于第一姿势(T1)的数据发送到第三设备。第二设备也可以在第二设备的显示屏上呈现第二基准标记并将关于第二姿势(T2)设备的数据发送到第三设备。第三设备可以被引导生成在同一图像内示出第一设备和第二设备显示的基准标记的图像。
在一些示例中,第一设备和第二设备可以呈现同一基准标记的实例。基于该图像,第三设备的AR应用从第一基准标记检测第一特征点p1i(i=0,1,2,3…n)并从第二个基准标记检测第二特征点p2i(i=0,1,2,3…n)。第二特征点p2i(i=0,1,2,3…n)与第一特征点p1i(i=0,1,2,3…n)一一对应。AR应用从第一设备的第一姿势(T1)以及关于第一设备的几何形状的已知信息导出第一坐标系中第一特征点p1i(i=0,1,2,3…n)的第一组三维(three-dimensional,3D)坐标。此外,AR应用从第二姿势(T2)以及关于第二设备的几何形状的信息导出第二坐标系中第二特征点p2i(i=0,1,2,3…n)的第二组3D坐标。AR应用在第一组3D坐标和第二组3D坐标之间建立对应关系。
第三设备使用上述对应关系来生成坐标系变换。坐标系变换可以将第一坐标系中的点(例如坐标)映射到第二坐标系内的对应点,反之亦然。在一些情况下,坐标系变换可以包括一个或多个刚性变换的估计,例如旋转、平移、反射、以上的组合等。
本文描述的设备可以是任何类型的计算设备,例如移动设备(例如,智能手机、膝上型电脑、平板电脑、PDA等)、台式计算设备、专用硬件设备如固定或便携式游戏控制台等。本文所述的设备可以包括可以在执行AR应用期间使用的内置摄像头。在某些情况下,摄像头可能不是内置的,而是连接到设备。在这些情况下,设备和摄像头可以相互独立地移动。设备的坐标系可以基于设备的位置/方向或基于摄像头的位置/方向。
图1是根据本公开至少一个方面的可以映射多个设备的坐标系的AR系统100的图示。AR系统100可以运行多设备增强现实应用,其中可以在每个设备的显示屏内呈现虚拟物体。例如,第一设备104可以定义要在第一设备所在的环境内呈现的虚拟物体。该虚拟物体可以呈现在第一设备104的显示屏108上,就好像该虚拟物体是位于环境中的物理物体一样。由于虚拟物体在环境中的位置可以基于第一设备的坐标系102,该坐标系可能不能被多设备AR应用的第二设备116共享,因此虚拟物体可能无法正确地呈现在第二设备116的显示屏120上,除非第一设备104的坐标系可以映射到第二设备116的坐标系118。
在AR应用的初始校准过程中,可以将第一设备104的坐标系102映射到第二设备116的坐标系118,而无需使用环境中的固定参考点。例如,第一设备104和第二设备中的每一个可以在各自的显示屏上呈现基准标记的图像。第三设备128可以访问显示基准标记的第一设备104和第二设备116的图像,并使用该图像(连同第一设备和第二设备中的每一个的姿势以及每个设备的设备几何信息)来生成坐标系变换,该坐标系变换将与第一设备关联的第一坐标系102的坐标映射到与第二设备关联的第二坐标系118的对应坐标。
特别地,在校准过程中,可以确定设备的当前位置是其自身坐标系的原点。设备可以使用内部传感器(例如,加速度计、全球定位系统(global positioning system,GPS)传感器、指南针、以上的组合等)、图像处理(例如,使用机器学习、深度学习等)、或以上的组合来追踪自身运动,并更新其在其坐标系中的位置。设备可能没有与其所处环境相关的数据,但其可以追踪其相对于设备最初校准位置(例如,其原点)的位置。例如,如果内部传感器指示设备在校准后已经移动了一米,则可以将设备的位置确定为(在特定方向上)距原点一米。因此,设备的坐标系可用于指示设备的相对位置(例如,相对于校准时设备的位置),而不一定是设备的绝对位置,因为环境可能是未知的。
在某些情况下,设备可以执行同时定位和建图(simultaneouslocalization andmapping,SLAM)过程,该过程可以定义设备的坐标系和设备的姿势。SLAM过程还可以相对于设备的坐标系追踪环境中的设备和物体。即使环境对于SLAM过程是未知的(至少最初是未知的),SLAM过程也可用于追踪环境中的设备和物体。SLAM过程可以将诸如但不限于控制数据ct、传感器数据st、和时间间隔t等变量作为输入,并生成一个输出,该输出可以包括在给定时间间隔内设备的大致位置xt和环境的地图mt。
SLAM可以从校准步骤开始,其中,可以初始化环境的空地图,其中设备位于原点。当设备捕获指示特定方向上的移动的传感器数据(以及可选的来自设备的摄像头的可用于指示环境中的物体的图像数据)时,SLAM过程可以更新xt和mt。SLAM可以是一个迭代过程,会在设定的时间间隔内或在可以检测到新的传感器数据或图像数据时更新xt和mt。例如,如果在时间间隔t和t+1之间没有发生传感器变化,那么SLAM过程可以延迟更新位置和地图以保留处理资源。在检测到传感器数据的变化表明设备已从其先前位置xt移动的可能性很高时,SLAM过程可以计算设备的新位置xt并更新地图mt。
一旦第一设备和第二设备分别检测到第一设备和第二设备的初始姿势,第一设备可以在第一设备104的显示屏108上呈现基准标记112并且第二设备可以在第二设备116的显示屏120上呈现基准标记124。基准标记112和124可以预先确定,使得多设备AR系统100的设备可以知道尺寸、形状、颜色、图案、阴影等。基准标记112和124可以相同或不同。如果基准标记112和124将是相同的基准标记,则第一设备可以将要显示的基准标记的标识发送到第二设备,以使第二设备显示相同的基准标记。备选地,第二设备可以将要显示的基准标记的标识发送到第一设备,以使第一设备显示相同的基准标记。
如果在第一设备和第二设备上显示的基准标记112和124不同,则第三设备可以识别每个设备所显示的基准标记,例如,使用如下所述的成像处理来识别或通过从第一设备和第二设备接收所显示的基准标记的标识。然后,第三设备可以确定一个基准标记的特征点对应于另一个基准标记的特征点(例如,对应于第一设备上的相同2D坐标或相同物理位置等)。例如,第三设备可以使用包括两个或更多个基准标记的特征点之间的对应关系的表格。第三设备可以使用每个基准标记的标识并且从表格中识别每个基准标记的对应特征点。基准标记112和基准标记128被示为不同的基准标记,其中基准标记112可以包括分布在预定区域上的一组黑色正方形,预定区域具有已知的尺寸。基准标记124可以是黑白正方形的棋盘图案。
第三设备128可以被引导以获得当基准标记112和124被呈现时第一设备104的显示屏108和第二设备116的显示屏120的图像,使得基准标记112和124都可以出现在图像中。由于基准标记的大小、颜色、图案等是已知的,因此可以处理基准标记112和124的图像以定义对应于基准标记112的第一组二维特征点和对应于基准标记124的第二组二维特征点。特征点可以对应于基准标记内的点,例如正方形的中心、正方形之间的顶点、基准标记的角、或基准标记的任何其他可以根据基准标记的特性容易地识别的点。第一组二维特征点可以与第一设备104的第一姿势和第一设备的已知几何信息一起处理,以识别第一组3D坐标(相对于第一坐标系102),其中每个3D坐标可以对应于第一组特征点中的一个特征点。第二组二维特征点可以与第二设备116的第二姿势和第二设备的已知几何信息一起处理,以识别第二组3D坐标(相对于第二坐标系118),其中每个3D坐标可以对应于第二组特征点的一个特征点。第一组3D坐标和第二组3D坐标之间的对应关系可用于生成包括一个或多个刚性变换的坐标系变换。刚性变换是欧几里得空间的几何变换,其保留了点对之间的距离。刚性变换可以包括旋转(围绕一个或多个轴)、平移、反射或其组合。刚性变换可以提供第一坐标系102的坐标到第二坐标系118的对应坐标的映射。
可以在初始校准过程期间将第一坐标系102映射到第二坐标系118。在某些情况下,在初始校准过程之后可以再次执行映射过程,例如当SLAM过程重置时(因为这将为该设备启动新的坐标系),在校准值指示映射不再准确之后,或经过预定的时间间隔。
图2示出了根据本公开至少一个方面的可以呈现在设备上以映射每个设备的坐标系的基准标记的示例。基准标记204-236可以是可用于映射设备坐标系的基准标记。当放置在真实世界中时,基准标记可以用来检测环境中物体的位置、方向和/或比例。基准标记204-236可以包括拍摄基准标记的图像的设备可以知道的预定尺寸、形状和图案。利用基准标记的已知特性,该设备可以检测图像中的基准标记并计算基准标记的位置,定义虚拟物体以占据基准标记附近或基准标记处的空间,检测环境内物体的比例,检测设备相对于基准标记的方向,以上组合等。
例如,可以选择每个基准标记的特性以使得不管拍摄图像内标记如何特定旋转或变换,都能够检测基准标记及其特征点。例如,基准标记可以包括基准标记内的一个或多个形状,当旋转或变换时这些形状看起来不同,以便在检测时指示旋转和/或变换的程度。旋转/变换的程度可用于确定拍摄图像的设备的方向。例如,如果图像中的基准标记旋转了45度,则可以确定设备也旋转了45度。
在一些情况下,可以对基准标记的图像执行一个或多个旋转、仿射变换、欧几里得变换、反射、转置及其组合,并输出以预定方向显现的经处理的基准标记。例如,拍摄基准标记的设备可以存储基准标记的特性(例如,大小、图案、颜色等)。然而,基准标记可能不会按预期显现(例如,旋转、模糊、拉伸等)。可以处理图像以分离基准标记并旋转和/或变换基准标记,使得基准标记显现在预期的方向上。在其他情况下,基准标记的图像可能不被处理以改变图像内基准标记的方向。
设备通过检测基准标记的一个或多个特征点来检测基准标记的方向。可以使用检测到的基准标记的特性和基准标记的已知特性来检测特征点。例如,特征点可以基于标记的特定特性。例如,基准标记204可以是棋盘图案。可以在每组四个正方形之间的顶点、每个白色正方形或黑色正方形的中心、角、每个白色正方形的角、每个黑色正方形的角、及其组合等地方检测特征点。每个基准标记可以包括可以在图像内检测到的一个或多个特征点。在某些情况下,每个基准标记可以包括三个或更多个特征点。虽然可以检测到任意数量的特征点,但是可以检测到的特征点越多,将一个坐标系映射到另一个坐标系的精确度就越高。
在一些情况下,每个基准标记可以包括与其他基准标记不同数量的特征点。例如,第一基准标记可以包括第一组特征点,第二基准标记可以包括第二组特征点(其中第一组中的特征点的数量不等于第二组中的特征点的数量)。第一组特征点中的至少一些特征点可以对应于第二组特征点中的至少一些特征点。这些对应的特征点可以通过不同基准标记之间的对应关系表来识别。例如,该表可以指示第一基准标记的第一组特征点中的哪些特征点对应于第二基准标记的第二组特征点中的哪些特征点。在这些情况下,第一组特征点可以包括与第二组特征点中的特征点对应的三个或更多个特征点。
设备可以使用图像处理来从图像的其他部分检测基准标记以及从基准标记中检测特征点。一种这样的图像处理技术包括边缘检测。边缘检测可以包括滤波技术,其中,一个或多个滤波器可以应用于图像。滤波器可以通过模糊、锐化、变换(例如但不限于一个或多个仿射变换、欧几里得变换等)等来修改图像。滤波器可以通过例如去除图像伪影和/或图像的不对应于基准标记的其他部分来减少图像噪声。
在某些情况下,图像的某些部分可能比图像的其他部分处理得更多。例如,图像的一部分看起来模糊,而图像的另一部分可能清晰。不同的滤波器可以应用于图像的不同部分,此外,一组不同的过滤器可以应用于图像的不同部分。例如,可以对图像的第一部分进行滤波以锐化第一部分,并且可以利用仿射变换滤波器和降噪对图像的第二部分进行滤波。可以将任意数量的不同过滤器应用于图像和/或每个分块。
一旦应用了过滤器,边缘检测就可以识别相邻像素之间像素强度梯度的变化。相邻像素之间强度的变化大可以指示存在边缘。例如,与具有低强度值的像素相邻的第一像素具有高强度值,可以提供第一像素是边缘的一部分的指示。在某些情况下,可以抑制不属于边缘的像素(例如,设置为预定的红色/绿色/蓝色值,例如黑色,其中红色=0、蓝色=0和绿色=0,或任何预定的红色/绿色/蓝色值)。诸如Roberts交叉算子、Prewitt算子、Sobel算子等的边缘检测算子可以用作像素强度梯度的识别的一部分。
可以使用非极大值抑制过程来抑制与边缘不强烈对应的像素。非极大值抑制过程将边缘强度值分配给使用像素强度梯度识别为边缘的一部分的每个像素。对于识别为边缘一部分的每个像素,可以将像素的边缘强度值与像素的八个周围像素的边缘强度值进行比较。如果该像素具有比周围像素的边缘强度值更高的边缘强度值(例如,局部最大值),则周围像素被抑制。可以对整个图像中的每个像素重复非极大值抑制。
然后,可以执行双阈值过程以去除本文应用的先前图像处理技术所带来的噪声和/或虚假边缘像素。可以定义两个像素强度阈值,一个高一个低。阈值可用于将强或弱的强度属性分配给每个像素。包括高于高阈值的强度值的像素可以被分配强强度属性,其中包括在高阈值和低阈值之间的强度值的像素可以被分配弱强度属性。可以抑制包括低于低阈值的强度值的像素(例如,以与上述相同的方式)。
接着,可以执行滞后过程以去除具有弱强度属性(由于噪声、颜色变化等而弱)的像素。例如,可以对具有弱强度属性的每个像素执行局部统计分析(例如,连通域分析等)。可以抑制未被包括强强度属性的像素包围的具有弱强度属性的像素。滞后过程之后的剩余像素(例如,未抑制的像素)仅包括那些属于边缘的像素。尽管以特定顺序描述了上述五个处理过程,但是在不背离本公开的精神或范围的情况下,每个过程可以被执行任意次数(例如,重复执行)和/或以任意顺序执行。在某些情况下,只需对图像执行五个过程的子集。例如,图像处理可以执行像素强度梯度的识别处理,而不首先执行滤波处理。在一些情况下,可以接收部分处理后的图像(例如,上述过程中的一个或多个已经被执行)。在这种情况下,可以执行一个或多个附加过程来完成图像处理。
在某些情况下,可以对图像执行信号处理(例如,类似于射频信号)。可以将图像变换到频域(例如,使用傅里叶变换等)以表示图像中存在特定像素特征的频率(例如,像素强度、RGB值等)。在频域中,可以将一个或多个滤波器(例如但不限于巴特沃斯滤波器、带通等)应用于图像(例如,在预处理、边缘检测期间或之后)以抑制或更改特定频率。抑制特定频率可以减少噪声、消除图像伪影、抑制非边缘像素、消除特定颜色或颜色梯度的像素、标准化颜色梯度等。高通滤波器可以显出图像中的边缘(例如,锐化相邻像素之间的颜色和/或强度),而低通滤波器可以混合边缘(例如,模糊)。在信号处理之前可以执行图像填充以改进信号处理技术。在一些情况下,图像的不同部分和/或分块可以不同地处理,其中一些用高通滤波器处理,而另一些用低通滤波器处理。在一些情况下,可以针对图像的不同部分修改阈值(例如,高通或低通滤波器的截止频率)(例如,基于图像处理一个或多个先前图像、机器学习和/或类似)。
信号处理还可以确定图像的其他属性,例如识别像素之间的关系的连贯性(例如,用于边缘检测、分割、模式分析等)。像素之间的关系可用于进一步细化边缘检测和/或识别图像内描绘的结构特性。例如,连贯性可用于识别出相关的图像部分(例如,同一物体的部分)和不相关的图像部分。
基准标记204-236是可用于将两个或更多个设备的一个坐标系映射到另一坐标系的基准标记的示例。例如,基准标记204可以是具有两种或更多种颜色的交替正方形的棋盘图案。在某些情况下,颜色可以具有高对比度,例如白色和黑色。在其他情况下,可以使用黑色和白色之外的一种或多种颜色,例如红色、绿色和/或蓝色(或替代地,青色、品红色和/或黄色)。在又一些情况下,可以使用对比图案填充,其中一组正方形可以不包括图案,而另一组正方形可以使用交叉影线。基准标记204可以包括或不包括围绕基准标记的边界,因为可以使用边缘检测来定义基准标记的边界。
基准标记可以具有不规则的形状并且可以不遵照设置的图案。例如,基准标记208、212、216、220和236包括散布在预定区域的一组黑色方块。基准标记的正方形形状可以部分地用于确定基准标记的特定轮廓。此外,该组正方形的散布图案(例如,两个或多个特定正方形之间的距离等)可用于指示拍摄图像的设备的位置。例如,两个不相邻的正方形之间的距离可以是设备已知的。该设备可以计算已知距离和在拍摄的图像中检测到的距离之间的差异。已知值与从图像计算的距离之间的差异越大,摄像头可能离基准标记越远。
类似地,可以计算特定一组正方形的大小并将其与已知大小进行比较。正方形大小的变化可用于确定设备相对于基准标记的方向。例如,正方形的一条边大于正方形的其他边,则设备的摄像头可能是从与基准标记偏移而不是垂直的角度拍摄基准标记的图像。
在一些情况下,基准标记可以具有非方形形状,例如基准标记224和228。基准标记224和228可以是具有内部圆形形状的圆形形状。在一些情况下,这些基准标记内可以包括一个或多个附加形状,例如平分圆的线。这些附加形状可以指示基准标记的方向以便指示设备的方向。
虽然图2中示出的特定形状具有特定图案、形状、颜色、方向等,但基准标记可以具有任何特定的形状,该形状可以是几何形状,例如所示的正方形和圆形,或无定形的。
图3A示出了根据本公开至少一个方面的生成第一设备相对于第一设备的坐标系的3D坐标的过程。第三设备可以拍摄呈现基准标记的第一设备和第二设备的图像。第一设备可以呈现基准标记,例如基准标记304。第三设备可以检测基准标记304的一个或多个特征点。特征点可以是基准标记的任何可见独特特征。在一些情况下,可以基于基准标记的特性从基准标记的方向确定摄像头的方向。例如,基准标记304可以基于拐角形状的颜色或非相邻形状之间的距离(例如316、320)来定向。特征点可以基于基准标记的特定特性来检测,例如基准标记的单个部分的大小(例如308和312)、颜色、形状、图案及其组合等。例如,基准标记304可以包括由共享相同颜色的两个相邻形状形成的每个顶点324处的特征点。在这种情况下,基准标记304可以包括9个特征点。其他基准标记可以包括更多或更少的特征点。在一些情况下,包括至少三个特征点的任何基准标记都可以用作基准标记304。这些特征点可以聚合成第一组特征点328。
可以从第一设备接收在第三设备拍摄标记的图像的时刻的第一设备的姿势(T1)332。姿势可以表示第一设备相对于第一设备的坐标系的位置和方向。在一些情况下,姿势332可以由旋转向量R1 n和平移向量t1 n来表示。旋转向量和平移向量可以在如图所示的变换矩阵内表示。可以使用在第一设备上执行的SLAM过程、对第一设备拍摄的图像进行的图像处理、设备几何信息(例如设备的尺寸)、摄像头信息(例如,缩放焦距、偏斜参数、主点、比例因子等)、内部传感器(例如,加速度计、陀螺仪、罗盘等)、以上组合等来确定姿势(T1)。
第一设备的姿势(T1)和关于第一设备的几何形状的信息可用于识别第一组特征点中的每个特征点相对于第一设备的坐标系的3D坐标336。例如,由于第一设备的姿势可以指示第一设备在第一坐标系中的3D坐标,因此可以使用设备的几何形状确定第一组特征点集合中的每个特征点在第一坐标系的3D坐标。
图3B示出了根据本公开至少一个方面的生成第二设备相对于第二设备的坐标系的3D坐标的过程。第二设备可以显示与第一设备相同的基准标记,或者显示不同的基准标记,例如但不限于基准标记340。基准标记340可以包括分布在预定义区域内的一组黑色形状。这些形状可以分布成使得基准标记的方向可以用于确定获得基准标记的图像的摄像头的方向。可以基于基准标记340的特性从基准标记340检测一个或多个特征点,例如但不限于黑色形状的数量、特定黑色形状之间的距离(例如344或356)、具有一个或多个公共顶点或特定数量的公共顶点的形状、基准标记的一个或多个角(例如348)、基准标记的大小(例如352)、基准标记的图案、颜色及其组合等。在一些情况下,包括至少三个特征点的任何基准标记都可以用作基准标记340。这些特征点可以聚合成第二组特征点360。
可以接收在第三设备拍摄标记340的图像的时刻的第二设备的姿势(T2)364。在一些情况下,姿势364可以由旋转向量R2 n和平移向量t2 n表示。旋转向量和平移向量可以在如图所示的变换矩阵内表示。姿势(T2)可以以与由第一设备确定并且如所描述的相似的方式来确定。第二设备的姿势(T2)和关于第二设备的几何形状的信息可用于识别指示第二组特征点中的每个特征点相对于第二设备的坐标系的3D坐标368的数据。可以以如上所述类似的方式识别指示3D坐标368的数据。
图3C示出了根据本公开至少一个方面的生成坐标系变换的过程。可以使用第一组特征点的3D坐标336和第二组特征点的3D坐标368来定义一个或多个刚性变换372,刚性变换372可以将第一坐标系中的坐标变到第二坐标系中的坐标。例如,第一特征点中的每个特征点n1在第二特征点中具有对应特征点n2。这种对应关系可以用于匹配第一坐标系中的每个3D坐标和第二坐标系中的对应坐标。例如,对于每个特征点n1,可以识别第一坐标系中的对应3D坐标[x1 n,y1 n,z1 n]和第二特征点中的对应特征点n2。然后,可以识别第二坐标系中与特征点n2关联的3D坐标[x2 n,y2 n,z2 n]。随即可以确定3D坐标[x1 n,y1 n,z1 n]和3D坐标[x2 n,y2 n,z2 n]之间的对应关系。可以对3D坐标[x1 n,y1 n,z1 n]进行一个或多个刚性变换,例如旋转、平移、反射等,从而将3D坐标[x1 n,y1 n,z1 n]改变为3D坐标[x2 n,y2 n,z2 n]。刚性变换可以包括一个或多个旋转、一个或多个平移、一个或多个反射、以上一种或多种组合等。在一些情况下,可以定义第二一个或多个刚性变换372,其可以将第二坐标系中的坐标改变为第一坐标系中的坐标。
取决于所选的坐标系,可以使用第一一个或多个刚性变换372或一个或多个第二刚性变换来生成坐标系变换376。例如,第三设备(或替代地,第一设备、第二设备、任何设备的用户、或服务器)可以选择虚拟物体的坐标所基于的参考坐标系(例如第一坐标系或第二坐标系)。选择之后,可以生成坐标系变换376,坐标系变换376将非选择的坐标系中的坐标变换到选择的坐标系中的对应坐标。例如,坐标系变换可以应用一个或多个刚性变换中的每一个,以从第一坐标系中的输入坐标(例如380)识别出第二坐标系中的对应输出坐标(例如376)。在一些情况下,坐标系变换可以包括第一一个或多个刚性变换以及第二一个或多个刚性变换,从而坐标系变换可以根据需要将第一坐标系中的坐标变换为第二坐标系中的对应坐标,并且将第二坐标系中的坐标变换为第一坐标系中的对应坐标。
图4是根据本公开至少一个方面的将一个坐标系映射到另一坐标系的过程的流程图。在框404,第三移动设备可以接收第一移动设备的第一姿势(T1)。第一移动设备可以执行位置追踪过程,例如SLAM过程,该过程持续地追踪与第一移动设备的坐标系关联的第一移动设备的姿势(T1)。第一姿势(T1)可以在特定时刻被接收,例如在拍摄第一设备的图像时。第三移动设备可以接收与第一移动设备关联的设备几何信息,例如设备尺寸、显示屏尺寸等。例如,第三移动设备可以从另一设备(例如服务器或第二移动设备等)接收设备几何信息以及第一姿势,以及显示在第一移动设备上的基准标记(例如如下所述的基准标记)的图像。在一些情况下,第三移动设备可以接收第一移动设备的型号标识符。然后,第三移动设备可以使用该型号标识符查询(例如查询内部存储表或询问服务器)以获得设备几何信息。第三移动设备还可以接收第一基准标记的标识符,该标识符指示第一移动设备显示的特定基准标记。
在框408,第三移动设备可以接收第二移动设备的第二姿势(T2)。类似于第一设备,第二移动设备可以执行位置追踪过程,例如SLAM过程,该过程持续地追踪与第二移动设备的坐标系关联的第二移动设备的姿势(T2)。可以在特定时刻接收第二姿势(T2),例如在拍摄第二设备的图像时。在一些情况下,可以几乎同时接收第一姿势和第二姿势(例如并行地接收)。在其他情况下,可以非同步地接收第一姿势和第二姿势,例如相继接收,接收一个姿势后再接收另一姿势。第三移动设备可以接收与第二移动设备关联的设备几何信息,例如设备尺寸,显示屏尺寸等。例如,第三移动设备可以从另一设备(例如服务器或第二移动设备等)接收设备几何信息以及第二姿势,以及显示在第二移动设备上的基准标记(例如如下所述的基准标记)的图像。在一些情况下,第三移动设备可以接收第二移动设备的型号标识符。然后,第三移动设备可以使用该型号标识符查询(例如查询内部存储表或询问服务器)以获得设备几何信息。第三移动设备还可以接收第二基准标记的标识符,该标识符指示第二移动设备显示的特定基准标记。
在框412,第三移动设备可以接收呈现在第一移动设备的显示屏上的第一基准标记以及呈现在第二移动设备的显示屏上的第二基准标记的图像。第三设备可以从第一设备和第二设备中的每一个接收指令以呈现给用户,引导用户操作第三设备的摄像头拍摄第一基准标记和第二基准标记的图像。例如,在第一移动设备和第二移动设备中的每一个在呈现第一基准标记和第二基准标记时,第三移动设备可以使用摄像头获得第一移动设备和第二移动设备的显示屏的图像。在另一示例中,第三移动设备可以通过网络接收图像。
可以从包括第一基准标记的图像的一部分检测第一组特征点,并且可以从包括第二基准标记的图像的一部分检测第二组特征点。由于基准标记具有已知的尺寸和几何形状,因此特征点可用于确定第三设备相对于基准的位置和/方向。结合呈现基准的设备的姿势,该组特征点可用于定义该组特征点在与该姿势相同的坐标系中的3D坐标。在某些情况下,该组特征点包括三个特征点。在其他情况下,该组特征点包括四个或更多个特征点。
在框416,第三设备可以定义第一组3D坐标。第一组3D坐标可以使用第一移动设备的第一姿势、第一移动设备的设备几何信息、以及第一组特征点来定义。例如,通过使用移动设备几何形状,可以利用基准标记的已知尺寸和几何形状来估计第一移动设备显示的每个特征点的物理位置(例如,与第一坐标系关联)。可以使用第一移动设备的姿势来确定每个特征点在第一坐标系中的3D坐标。
在框420,第三设备可以定义第二组3D坐标。第二组3D坐标可以使用第二移动设备的第二姿势、第二移动设备的设备几何信息、以及第二组特征点来定义。例如,通过使用移动设备几何形状,可以利用基准标记的已知尺寸和几何形状来估计第二移动设备显示的每个特征点的物理位置(例如,与第二坐标系关联)。可以使用第二移动设备的姿势来确定每个特征点在第二坐标系中的3D坐标。在一些情况下,可以并行地定义第一组3D坐标和第二组3D坐标。在其他情况下,可以非同步地(例如,重叠地或相继地,一组坐标在另一组坐标之前定义)定义第一组3D坐标和第二组3D坐标。
在框422,可以生成第一组3D坐标和第二组3D坐标之间的对应关系。如果第一移动设备和第二移动设备显示同一个基准图像,则第一特征点中的每个特征点将对应于第二特征点中形成对应特征点对的特征点。通过匹配与特征点对关联的第一组3D坐标和第二组3D坐标中的3D坐标,可以生成3D坐标之间的对应关系。如果显示了不同的基准图像,则第一移动设备和第二移动设备中的每一个可以将显示的基准标记的标识发送到第三移动设备。第三移动设备可以使用查找表确定形成对应特征点对的第一特征点和第二特征点之间的对应关系。然后,通过匹配与特征点对关联的第一组3D坐标和第二组3D坐标中的3D坐标,可以生成3D坐标之间的对应关系。对应关系可以表示关联第一组3D坐标的坐标(与第一坐标系关联)和第二组3D坐标的坐标(与第二坐标系关联)的映射。
在框424,可以使用第一组3D坐标和第二组3D坐标生成坐标系变换。例如,由于第一特征点中的每个特征点在第二特征点中具有对应特征点,所以与第一特征点中的特征点关联的3D坐标可以匹配到与第二特征点中的对应特征点关联的3D坐标。与第一设备关联的每个3D坐标可以匹配到第二设备的3D坐标。在匹配之后,可以对第一坐标系中的第一3D坐标应用一个或多个刚性变换,以将第一3D坐标改变为第二坐标系中其匹配的3D坐标。
在一些情况下,可以使用3D坐标的单个匹配对来定义将一个坐标系中的坐标映射到另一坐标系中的对应3D坐标所需的刚性变换。其余的3D坐标对可以用于验证一个或多个刚性变换的准确度。在其他情况下,可以使用3D坐标的两个或多个匹配对来定义将一个坐标系中的坐标映射到另一坐标系中的对应3D坐标所需的刚性变换。在其他情况下,可以使用3D坐标的每个匹配对来定义将一个坐标系中的坐标映射到另一坐标系中的对应3D坐标所需的刚性变换。
坐标系变换可以包括一个或多个刚性变换,其对第一坐标系中的坐标应用旋转、平移、或反射中的一个或多个,以确定第二坐标系中的对应坐标。在一些情况下,坐标系变换可以另外地(或替代地)包括一个或多个刚性变换,其对第二坐标系中的坐标应用旋转、平移、或反射中的一个或多个,以确定第一坐标系中的对应坐标。
坐标系变换可以将第一移动设备的第一坐标系中的点映射到第二移动设备的第二坐标系中的对应点。在一些情况下,第一移动设备的SLAM过程计算的位置可以被变换为第二移动设备的第二坐标系中的对应位置。在其他情况下,第二移动设备的SLAM过程计算的位置可以被变换为第一移动设备的第一坐标系中的对应位置。
在框428,可以将坐标系变换发送到第二移动设备,以使第二移动设备能够将接收到的第一坐标系中的坐标转换到第二坐标系中。在一些情况下,可以将坐标系变换发送到第一移动设备,以使第一移动设备能够将接收到的第二坐标系中的坐标转换到第一坐标系中。在其他情况下,可以将坐标系变换发送到第一移动设备和第二移动设备,以使坐标能够被转换到适当的坐标系中。这可以使相应的设备能够将接收到的坐标转换到该移动设备的本地坐标系中,并将相应移动设备的坐标编码到接收设备的坐标系中,然后将编码的坐标发送到接收设备。
例如,在AR应用中,第一移动设备可以拍摄环境的图像或视频。第一移动设备可以定义要在第一移动设备的显示屏上呈现的虚拟物体的第一实例,使得虚拟图像的第一实例看起来像物理地和自然地位于环境中。SLAM过程可以在第一移动设备在环境中移动时对其进行追踪,并且AR应用可以继续呈现虚拟物体的第一个实例,就好像自然地位于环境中一样(不管第一移动设备的位置或方向的变化)。
第二移动设备可以从第一移动设备(或从服务器)接收与虚拟物体相关联的信息,包括使第二移动设备能够在第二移动设备的显示屏上渲染虚拟物体的实例的特性和指示虚拟物体在环境中的位置和方向的姿势信息。第二设备可以使用坐标系变换将姿势信息的坐标从第一移动设备的第一坐标系转换到第二移动设备的坐标系。第二移动设备可以拍摄环境的图像或视频。然后,第二移动设备可以在拍摄的环境图像/视频内呈现虚拟物体的第二实例,使得虚拟物体的第二实例看起来好像物理地(并且自然地)位于环境内(不管第二移动设备的位置或方向的变化)。
图4的过程可以完全由第三移动设备执行,部分地由第一移动设备、第二移动设备、第三移动设备和/或服务器中的一个或多个执行,或者完全由服务器执行。例如,服务器可以指导第一移动设备和第二移动设备的坐标系之间的映射并执行全部或部分增强现实应用。服务器可以指示第三移动设备获得呈现在第一移动设备和第二移动设备上的基准标记的图像。第一姿势可以从第一移动设备发送到服务器,第二姿势可以从第二移动设备发送到服务器,图像可以从第三移动设备发送到服务器。然后,服务器可以使用第一姿势、第二姿势和图像来生成坐标系变换,并且将坐标系变换发送到第一移动设备和/或第二移动设备。
虽然图4中的框按照特定顺序呈现,但这些框可以按照任何特定顺序执行。在一些情况下,在进行到下一个框之前,图4的每个框可以执行一次或多次。虽然图4描述了与两个设备关联的坐标系之间的映射,但是图4的过程可以为扩展到映射任何数量的设备的坐标系,例如,通过使每个附加设备执行404-432的过程来实现。例如,第三移动设备可以用以获得呈现了基准图像的附加移动设备的图像,该图像具有第一移动设备、第二移动设备、或任何其他先前已经映射的移动设备显示的基准图像。
可以修改图4的过程,同时仍然将一个设备的坐标系映射到另一设备的坐标系。例如,第三设备可以接收每个设备的图像作为单独图像,使得第一图像可以包括第一移动设备的显示屏,第二图像可以包括第二移动设备的显示屏。在拍摄第一图像和拍摄第二图像之间,第一移动设备、第二移动设备、以及第三移动设备可以固定不动。在另一种情况下,第一基准标记可以是与第二基准标记相同的基准标记,或者是不同的基准标记。如果使用了不同的基准标记,第三设备可以包括指示基准标记中的公共特征点(例如,2D坐标位置相同)的特征点表。在一些情况下,特征点表可以随显示的基准标记的相应标识符一起从第一设备和/或第二设备被接收。
图5示出了根据本公开至少一个方面的执行AR应用的计算系统的组件的示例。计算系统504可以是图4描述的移动设备的示例。尽管这些组件被示为计算系统504的一部分,但是计算系统504也可以是分布式的,使得一些组件可以位于与其他组件不同的硬件平台内。
计算系统504至少包括处理器508、存储器512、存储设备516、输入/输出外围设备(input/output,I/O)520、通信外围设备524、一个或多个摄像头528和接口总线532。接口总线532可以用于在计算系统504的各种组件之间通信、发送和传输数据、控制和命令。存储器512和存储设备516可以包括计算机可读存储介质,例如RAM、ROM、电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、硬盘驱动器、CD-ROM、光存储设备、磁存储设备、电子非易失性计算机存储,例如存储器,以及其他有形存储介质。任何这样的计算机可读存储介质都可以用于存储实施本公开的各方面的指令或程序代码。存储器512和存储设备516还可以包括计算机可读信号介质。计算机可读信号介质包括传播的数据信号,其中包含计算机可读程序代码。这种传播的信号采用多种形式中的任何一种,包括但不限于电磁、光或其任何组合。计算机可读信号介质包括不是计算机可读存储介质并且可以通信、传播或传输用于与计算系统504结合使用的程序的任何计算机可读介质。
此外,存储器512可以包括操作系统、程序和应用。处理器508可以用于执行存储的指令并且包括例如逻辑处理单元、微处理器、数字信号处理器和其他处理器。存储器512和/或处理器508可以被虚拟化并且可以托管在例如云网络或数据中心的另一计算系统中。I/O外围设备520可以包括用户接口,例如键盘、屏幕(例如,触摸屏)、麦克风、扬声器、其他输入/输出设备,以及计算组件,例如图形处理单元、串行端口、并行端口、通用串行总线和其他输入/输出外围设备。I/O外围设备520通过耦合到接口总线532的任何端口连接到处理器508。通信外围设备524可以用于促进计算系统504和其他计算设备之间通过通信网络的通信,并且包括例如网络接口控制器、调制解调器、无线和有线接口卡、天线和其他通信外围设备。
尽管本主题已针对其特定实施例进行了详细描述,但应当理解,本领域技术人员在获得对前述内容的理解后,可以容易地产生对这些实施例的改变、变化和等价物。因此,应当理解,本公开是为了示例而不是限制的目的而呈现的,并且不排除包含对于普通技术人员来说是显而易见的对本主题的这种修改、变化和/或添加。实际上,本文描述的方法和系统可以以多种其他形式实施;此外,在不背离本公开的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等价物旨在覆盖落入本公开的范围和精神内的此类形式或修改。
除非另有明确说明,否则应了解,贯穿本说明书的讨论使用诸如“处理”、“计算”、“确定”和“识别”等术语是指计算设备(例如一个或多个计算机或类似的电子计算设备)的动作或过程,计算设备在计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备中操纵或转换表示为物理电子或磁量的数据。
这里讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括提供以一个或多个输入为条件的结果的任何合适的组件布置。合适的计算设备包括访问存储的软件的基于微处理器的多用途计算机系统,该软件将计算系统从通用计算装置编程或配置为实现本主题的一个或多个实施例的专用计算装置。任何合适的编程、脚本或其他类型的语言或语言的组合可用于在用于编程或配置计算设备的软件中实施本文中包含的教导。
本文公开的方法的实施例可以在这样的计算设备的操作中执行。以上示例中呈现的框的顺序可以改变——例如,框可以被重新排序、组合和/或分解成子框。某些框或过程可以并行执行。
本文使用的条件性语言,例如“可以”、“可能”、“例如”等,除非另有明确说明,或在所使用的上下文中以其他方式理解,通常旨在传达某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这种条件性语言通常并不意味着一个或多个示例以任何方式需要特征、元素和/或步骤,或者一个或多个示例必须包括用于在有或没有作者输入或提示的情况下决定是否包括或将在任何特定示例中执行这些特征、元素和/或步骤的逻辑。
术语“包括”、“有”、“具有”等是同义词,并且以开放式的方式包容性地使用,并且不排除其他元素、特征、动作、操作等。此外,术语“或”以其包容性(而不是排他性)使用,从而当例如用于连接元素列表时,术语“或”表示列表中的一个、一些或全部元素。此处使用的“适用于”或“用于”是指开放和包容性的语言,不排除适用于或用于执行附加任务或步骤的设备。此外,“基于”的使用意味着开放和包容,因为“基于”一个或多个列举的条件或值的过程、步骤、计算或其他动作实际上可能基于列举的之外的附加条件或值。类似地,“至少部分基于”的使用意味着开放和包容,因为“至少部分基于”一个或多个列举的条件或值的过程、步骤、计算或其他动作在实践中可以基于列举的之外的附加条件或值。本文包括的标题、列表和编号仅是为了便于解释,并不意味着限制。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合使用。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实施方式中可以省略某些方法或过程框。本文描述的方法和过程也不限于任何特定的顺序,并且与其相关的框或状态可以以其他适当的顺序来执行。例如,所描述的框或状态可以以不同于具体公开的顺序执行,或者多个框或状态可以组合在单个框或状态中。示例框或状态可以串行、并行或以某种其他方式执行。可以将框或状态添加到所公开的示例中或从所公开的示例中删除。类似地,本文描述的示例系统和组件可以被配置为与所描述的不同。例如,与所公开的示例相比,可以将添加、移除或重新排列元素。
尽管上面已经结合具体装置和方法描述了本公开的原理,但是应当清楚地理解,该描述仅作为示例而不是对本公开范围的限制。
Claims (20)
1.一种方法,包括:
第三移动设备接收指示第一移动设备的第一姿势的数据,其中,所述第一姿势相对于与所述第一移动设备关联的第一坐标系定义;
所述第三移动设备接收指示第二移动设备的第二姿势的数据,其中,所述第二姿势相对于与所述第二移动设备关联的第二坐标系定义;
所述第三移动设备接收图像,所述图像示出所述第一移动设备显示的第一基准标记和所述第二移动设备显示的第二基准标记;
所述第三移动设备识别与所述第一基准标记关联的第一组三维坐标,所述第一组三维坐标相对于所述第一坐标系被标识;
所述第三移动设备识别与所述第二基准标记关联的第二组三维坐标,所述第二组三维坐标相对于所述第二坐标系被标识;
所述第三移动设备基于所述第一组三维坐标和所述第二组三维坐标生成坐标系变换,所述坐标系变换在所述第一坐标系和所述第二坐标系之间映射坐标;以及
所述第三移动设备将所述坐标系变换发送至所述第二移动设备。
2.根据权利要求1的方法,其中,识别所述第一组三维坐标包括:
检测所述第一基准标记的一组特征点,其中,所述第一组三维坐标中的每个三维坐标对应于所述一组特征点中的一个特征点。
3.根据权利要求2所述的方法,其中,所述一组特征点包括三个或三个以上的特征点。
4.根据权利要求1所述的方法,其中,所述第一姿势由旋转向量和平移向量表示,其中,与所述第一基准标记关联的所述第一组三维坐标至少部分地使用所述第一姿势和所述第一移动设备的几何形状进行定义。
5.根据权利要求1所述的方法,其中,所述坐标系变换用于使待由所述第一移动设备呈现的第一虚拟物体在环境中显现在与由所述第二移动设备呈现的第二虚拟物体基本相同的位置和基本相同的方向。
6.根据权利要求1所述的方法,其中,所述坐标系变换包括矩阵,所述矩阵用于定义所述第一坐标系和所述第二坐标系之间的映射,以及
发送所述坐标系变换包括通过所述第三移动设备和所述第二移动设备之间的数据网络将所述矩阵发送至所述第二移动设备。
7.根据权利要求1所述的方法,其中,第二移动设备所在的环境内的物体基于所述第一坐标系和所述坐标系变换被追踪。
8.一种移动设备,包括:
一个或多个处理器;
摄像头;
非暂时性计算机可读介质,存储有指令,当由所述一个或多个处理器执行时,所述指令使所述一个或多个处理器执行包括以下的操作:
接收指示第一移动设备的第一姿势的数据,其中,所述第一姿势相对于与所述第一移动设备关联的第一坐标系定义;
接收指示第二移动设备的第二姿势的数据,其中,所述第二姿势相对于与所述第二移动设备关联的第二坐标系定义;
接收图像,所述图像包括所述第一移动设备的第一显示屏的一部分和所述第二移动设备的第二显示屏的一部分,其中,所述第一移动设备的所述第一显示屏包括第一基准标记,所述第二移动设备的所述第二显示屏包括第二基准标记;
识别与所述第一基准标记关联的第一组三维坐标,所述第一组三维坐标相对于所述第一坐标系被标识;
识别与所述第二基准标记关联的第二组三维坐标,所述第二组三维坐标相对于所述第二坐标系被标识;
使用所述第一组三维坐标和所述第二组三维坐标生成坐标系变换,其中,所述坐标系变换在所述第一坐标系和所述第二坐标系之间映射坐标;以及
将所述坐标系变换发送至所述第二移动设备。
9.根据权利要求8所述的移动设备,其中,识别所述第一组三维坐标包括:
检测所述第一基准标记的一组特征点,其中,所述第一组三维坐标中的每个三维坐标对应于所述一组特征点中的特征点。
10.根据权利要求9所述的移动设备,其中,所述一组特征点包括三个或三个以上的特征点。
11.根据权利要求8所述的移动设备,所述第一姿势由旋转向量和平移向量表示,其中,与所述第一基准标记关联的所述第一组三维坐标至少部分地使用所述第一姿势和所述第一移动设备的几何形状进行定义。
12.根据权利要求8所述的移动设备,其中,所述坐标系变换用于使待由所述第一移动设备呈现的第一虚拟物体在环境中显现在与由所述第二移动设备呈现的第二虚拟物体基本相同的位置和基本相同的方向。
13.根据权利要求8所述的移动设备,其中,所述坐标系变换包括矩阵,所述矩阵用于定义所述第一坐标系和所述第二坐标系之间的映射,以及
发送所述坐标系变换包括通过数据网络将所述矩阵发送至所述第二移动设备。
14.根据权利要求8所述的移动设备,其中,所述第二移动设备所在的环境内的物体基于所述第一坐标系和所述坐标系变换被追踪。
15.一种非暂时性计算机可读介质,存储有指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行包括以下的操作:
接收指示第一移动设备的第一姿势的数据,其中,所述第一姿势相对于与所述第一移动设备关联的第一坐标系定义;
接收指示第二移动设备的第二姿势的数据,其中,所述第二姿势相对于与所述第二移动设备关联的第二坐标系定义;
接收包括所述第一移动设备的第一显示屏的一部分和所述第二移动设备的第二显示屏的一部分的图像,其中,所述第一移动设备的所述第一显示屏包括第一基准标记,所述第二移动设备的所述第二显示屏包括第二基准标记;
标识与所述第一基准标记关联的第一组三维坐标,所述第一组三维坐标相对于所述第一坐标系被标识;
标识与所述第二基准标记关联的第二组三维坐标,所述第二组三维坐标相对于所述第二坐标系被标识;
使用所述第一组三维坐标和所述第二组三维坐标生成坐标系变换,其中,所述坐标系变换在所述第一坐标系和所述第二坐标系之间映射坐标;以及
将所述坐标系变换发送至所述第二移动设备。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,标识所述第一组三维坐标包括:
检测所述第一基准标记的一组特征点,其中,所述第一组三维坐标中的每个三维坐标对应于所述一组特征点中的特征点。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述一组特征点包括三个或三个以上的特征点。
18.根据权利要求15所述的非暂时性计算机可读介质,其中,所述第一姿势由旋转向量和平移向量表示,并且其中,与所述第一基准标记关联的所述第一组三维坐标至少部分地使用所述第一姿势和与所述第一移动设备的几何形状有关的信息进行定义。
19.根据权利要求15所述的非暂时性计算机可读介质,其中,所述坐标系变换用于使待由所述第一移动设备呈现的第一虚拟物体在环境中显现在与由所述第二移动设备呈现的第二虚拟物体基本相同的位置和基本相同的方向。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述第二移动设备所在的环境内的物体基于所述第一坐标系和所述坐标系变换被跟踪。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962941130P | 2019-11-27 | 2019-11-27 | |
US62/941,130 | 2019-11-27 | ||
PCT/CN2020/130874 WO2021104203A1 (en) | 2019-11-27 | 2020-11-23 | Associating device coordinate systems in a multi-person augmented reality system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730482A true CN114730482A (zh) | 2022-07-08 |
Family
ID=76129124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080078551.3A Pending CN114730482A (zh) | 2019-11-27 | 2020-11-23 | 关联多人增强现实系统中的设备坐标系 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220245851A1 (zh) |
CN (1) | CN114730482A (zh) |
WO (1) | WO2021104203A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113819B2 (en) * | 2019-01-15 | 2021-09-07 | Nvidia Corporation | Graphical fiducial marker identification suitable for augmented reality, virtual reality, and robotics |
WO2021110051A1 (en) * | 2019-12-05 | 2021-06-10 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method and system for associating device coordinate systems in a multi‐person ar system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100331041A1 (en) * | 2009-06-26 | 2010-12-30 | Fuji Xerox Co., Ltd. | System and method for language-independent manipulations of digital copies of documents through a camera phone |
CN106340056B (zh) * | 2016-09-07 | 2019-06-18 | 讯飞幻境(北京)科技有限公司 | 一种全景渲染方法和装置 |
US11043019B2 (en) * | 2017-07-13 | 2021-06-22 | Devar Entertainment Limited | Method of displaying a wide-format augmented reality object |
KR102494552B1 (ko) * | 2017-12-28 | 2023-02-03 | 광주과학기술원 | 실내 복원 방법 |
US11127193B2 (en) * | 2018-05-11 | 2021-09-21 | Resight Ltd. | System and method for determining an approximate transformation between coordinate systems |
US11202006B2 (en) * | 2018-05-18 | 2021-12-14 | Samsung Electronics Co., Ltd. | CMOS-assisted inside-out dynamic vision sensor tracking for low power mobile platforms |
CN110310325B (zh) * | 2019-06-28 | 2021-09-10 | Oppo广东移动通信有限公司 | 一种虚拟测量方法、电子设备及计算机可读存储介质 |
CN110276794B (zh) * | 2019-06-28 | 2022-03-01 | Oppo广东移动通信有限公司 | 信息处理方法、信息处理装置、终端设备及服务器 |
-
2020
- 2020-11-23 CN CN202080078551.3A patent/CN114730482A/zh active Pending
- 2020-11-23 WO PCT/CN2020/130874 patent/WO2021104203A1/en active Application Filing
-
2022
- 2022-04-18 US US17/723,227 patent/US20220245851A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021104203A1 (en) | 2021-06-03 |
US20220245851A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109003325B (zh) | 一种三维重建的方法、介质、装置和计算设备 | |
CN109671115B (zh) | 使用深度值估计的图像处理方法和装置 | |
CN108475433B (zh) | 用于大规模确定rgbd相机姿势的方法和系统 | |
CN106875444B (zh) | 一种目标物定位方法及装置 | |
US9542745B2 (en) | Apparatus and method for estimating orientation of camera | |
US10373380B2 (en) | 3-dimensional scene analysis for augmented reality operations | |
US20220292796A1 (en) | Method and system for associating device coordinate systems in a multi-person ar system | |
US20210112181A1 (en) | Image processing device, image processing method, and recording medium | |
CN106663334B (zh) | 通过计算装置执行的方法、移动通信装置和存储介质 | |
US10846844B1 (en) | Collaborative disparity decomposition | |
US20220245851A1 (en) | Associating device coordinate systems in a multi-person augmented reality system | |
CN106797458B (zh) | 真实对象的虚拟改变 | |
US9437034B1 (en) | Multiview texturing for three-dimensional models | |
CN111401266A (zh) | 绘本角点定位的方法、设备、计算机设备和可读存储介质 | |
CN107808388B (zh) | 包含运动目标的图像处理方法、装置及电子设备 | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
CN114450717A (zh) | 用于增强现实应用的遮挡和碰撞检测 | |
US11227407B2 (en) | Systems and methods for augmented reality applications | |
CN110673607A (zh) | 动态场景下的特征点提取方法、装置、及终端设备 | |
WO2024012463A1 (zh) | 一种定位方法及装置 | |
Malleson et al. | Single-view RGBD-based reconstruction of dynamic human geometry | |
JP7061092B2 (ja) | 画像処理装置及びプログラム | |
Chen et al. | Screen image segmentation and correction for a computer display | |
Ning et al. | MoiréVision: A Generalized Moiré-based Mechanism for 6-DoF Motion Sensing | |
US20230005172A1 (en) | Method and System for Implementing Adaptive Feature Detection for VSLAM Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |