CN112154486B - 用于多用户增强现实购物的系统和方法 - Google Patents

用于多用户增强现实购物的系统和方法 Download PDF

Info

Publication number
CN112154486B
CN112154486B CN201980031578.4A CN201980031578A CN112154486B CN 112154486 B CN112154486 B CN 112154486B CN 201980031578 A CN201980031578 A CN 201980031578A CN 112154486 B CN112154486 B CN 112154486B
Authority
CN
China
Prior art keywords
map
computing device
auxiliary
primary
main
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.)
Active
Application number
CN201980031578.4A
Other languages
English (en)
Other versions
CN112154486A (zh
Inventor
徐毅
吴宇章
周辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Shangke Information Technology Co Ltd
JD com American Technologies Corp
Original Assignee
Beijing Jingdong Shangke Information Technology Co Ltd
JD com American Technologies Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/020,920 external-priority patent/US10482674B1/en
Application filed by Beijing Jingdong Shangke Information Technology Co Ltd, JD com American Technologies Corp filed Critical Beijing Jingdong Shangke Information Technology Co Ltd
Publication of CN112154486A publication Critical patent/CN112154486A/zh
Application granted granted Critical
Publication of CN112154486B publication Critical patent/CN112154486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • G06Q30/0643Graphical representation of items or shoppers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • G06Q30/0627Directed, with specific intent or strategy using item specifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Abstract

一种用于实现多用户增强现实的系统和方法。该系统包括彼此通信的第一计算设备和第二计算设备,并且分别在不同的视角和位置构建相同环境的第一和第二三维(3D)地图。第一计算设备和第二计算设备被配置为将3D地图之一指派为参考地图,并且将3D地图中的另一个与参考地图对齐,使得3D地图具有相同的坐标系。产品的3D模型也被放置并渲染在这两个3D地图中,并且在一个计算设备中的3D模型的操作会实时反映在另一计算设备中。

Description

用于多用户增强现实购物的系统和方法
相关申请的交叉引用
本申请要求于2018年6月27日提交的Yuzhang Wu、Yi Xu、Dan Miao和Hui Zhou的题为“SYSTEM AND METHOD FOR MOBILE AUGMENTED REALITY”的美国申请序列号No.16/020,920的优先权、以及于2018年6月27日提交的Yi Xu、Yuzhang Wu和Hui Zhou的题为“SYSTEM AND METHOD FOR MULTI-USER AUGMENTED REALITY SHOPPING”的美国申请序列号No.16/020,945(No.16/020,920的部分连续申请),其全部通过引用合并于此。
在本发明的描述中引用和讨论了一些参考文献,其可以包括专利、专利申请和各种出版物。提供这样的参考文献的引用和/或讨论仅为了阐明本发明的描述,而不是承认任何这样的参考文献是本文所描述的发明的“现有技术”。在本说明书中引用和时论的所有参考文献均以引用的方式整体并入本文,并且在一定程度上如同每篇参考文献通过引用被单独地并入。
技术领域
本发明总体上涉及增强现实,并且更具体地涉及用于多用户的增强现实购物。
背景技术
出于总体上呈现本发明的上下文的目的而在本文提供背景描述。既不明确地承认也不暗示地承认当前列名的发明人的在背景技术部分中描述的范围内的工作、以及在提交时可能不是作为现有技术的描述的各方面为与本发明相对的现有技术。
增强现实(AR)是物理的真实世界环境的直接或间接实时视图,其元素通过理想地跨多种感觉形态(包括视觉、听觉、触觉、体觉和嗅觉)的计算机生成的感知信息“增强”。用户可以使用AR来将虚拟对象与现实环境组合,并且产生虚拟对象是现实世界的一部分的感觉。随着移动设备和可穿戴设备的广泛采用,消费者可以轻松地访问AR以进行游戏、购物、教育、观光等。然而,多个用户使用一个设备进行AR购物是不方便的。
因此,本领域存在未解决的需求,需要解决上述缺陷和不足。
发明内容
在某些方面,本发明涉及一种用于实现多用户增强现实的系统。在某些实施例中,所述系统包括计算设备。计算设备具有辅助视觉传感器、处理器和存储计算机可执行代码的存储设备。所述计算机可执行代码在所述处理器处被执行时被配置为:从主计算设备接收产品的信息以获得产品的三维(3D)模型;从主计算设备直接或间接接收环境的主3D地图;获得由所述辅助视觉传感器捕获的辅助图像;基于所获得的辅助图像,构建环境的辅助3D地图;将辅助3D地图与主3D地图对齐,以形成对齐的辅助3D地图;以及在接收到主3D地图中的3D模型的位置和朝向后,以对应的位置和朝向将产品的3D模型放置并渲染在更新的辅助3D地图中。在某些实施例中,计算设备不直接从主计算设备接收3D地图和3D模型(或产品ID)中的至少一个。作为替代,主计算设备将3D地图和3D模型(或产品ID)中的至少一个上载到服务器计算设备,并且计算设备从服务器计算设备接收或获取3D地图和/或3D模型(或产品ID)。
在某些实施例中,主计算设备具有主视觉传感器,并且主计算设备被配置为基于由主视觉传感器捕获的主图像来构建主3D地图。
在某些实施例中,主计算设备还具有主处理器和存储主计算机可执行代码的主存储设备。主计算机可执行代码在主处理器处执行时被配置为:基于对主计算设备的主用户的选择来获取所述产品的3D模型;向计算设备发送产品的3D模型和环境的主3D地图;以及与所述计算设备建立主辅关系。在某些实施例中,主计算设备向计算设备发送产品ID而不是3D模型,并且所述计算设备可以使用该ID从服务器获取3D模型。在某些实施例中,主计算设备将3D地图上载到服务器,并且计算设备从服务器下载3D地图。
在某些实施例中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与主3D地图对齐:将辅助3D地图中的辅助特征点与主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及基于所述匹配的特征点,将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些实施例中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与主3D地图对齐:将辅助模型拟合到辅助3D地图中的点,将主模型拟合到主3D地图中的点,基于拟合的模型将辅助3D地图的坐标系变换为主3D地图的主坐标系。在某些实施例中,模型可以是多边形网格或样条曲面。
在某些实施例中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与主3D地图对齐:将辅助3D地图的至少一个关键帧中的特征点与主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及基于所述匹配的特征点,将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些实施例中,用于将辅助3D地图与主3D地图对齐的变换是3D空间中的刚性变换,其包括旋转和平移;以及旋转具有三个自由度,以及平移具有三个自由度。在某些实施例中,重力方向是使用智能电话上的运动感测硬件来估计的;以及辅助3D地图的坐标系的Y轴和主3D地图的坐标系的Y轴指向重力的相反方向;以及刚性变换的旋转部分只有一个自由度;以及更易于将辅助3D地图与主3D地图对齐。在某些实施例中,基于来自主3D地图和辅助3D地图的关键帧来执行变换。
在某些实施例中,通过最小化误差项来计算对齐。在某些实施例中,误差项可以被计算为对应特征点之间的距离的平方的平均值。在另一实施例中,误差项可以被定义为采样点与主3D地图和辅助3D地图的参数表面模型之间的距离的平方的平均值。
在某些实施例中,当计算两个3D地图之间的变换时,可以使用计算出的变换来对齐两个3D地图。
在某些实施例中,主3D地图和辅助3D地图是实时更新的,并且计算机可执行代码还被配置为通过以下操作评估辅助3D地图和主3D地图之间的对齐:计算主3D地图和对齐的辅助3D地图之间的匹配的特征点之间的距离的平方;将距离的平方的平均值与预定阈值进行比较;以及当距离的平方的平均值大于预定阈值时,在预定时间段之后再次执行将辅助3D地图与主3D地图对齐的步骤。在某些实施例中,当距离的平方的平均值大于预定阈值时,主计算设备和计算设备被配置为指导用户在环境的公共区域捕获主图像和辅助图像。
在某些实施例中,主计算设备还包括用于收集主惯性信息的主惯性测量单元(IMU),计算设备还包括用于收集辅助惯性信息的辅助IMU,主计算设备被配置为基于所捕获的主图像和所收集的主惯性信息来构建主3D地图并确定所述主计算设备的姿态,并且计算设备被配置为基于所捕获的辅助图像和所收集的辅助惯性信息来构建辅助3D地图并确定所述计算设备的姿态。
在某些实施例中,系统还包括与主计算设备通信的至少一个辅助计算设备,其中所述至少一个辅助计算设备被配置为将它的3D地图与主3D地图对齐。
在某些实施例中,计算机可执行代码被配置为通过以下操作来获得产品的3D模型:接收产品的标识;以及从电子商务服务器获取产品的3D模型。
在某些方面,本发明涉及一种用于实现多用户增强现实的系统。在某些实施例中,所述方法包括:由计算设备从主计算设备接收产品的产品信息,以获得产品的三维3D模型;由计算设备从主计算设备接收环境的主3D地图;由计算设备获得由计算设备的辅助视觉传感器捕获的辅助图像;由计算设备基于获得的辅助图像构建环境的辅助3D地图;由计算设备将辅助3D地图与主3D地图对齐以形成对齐的辅助3D地图;以及当接收到主3D地图中的3D模型的位置和朝向时,由计算设备以对应的位置和朝向将产品的3D模型放置并渲染在更新的辅助3D地图中。
在某些实施例中,主3D地图是基于由主计算设备的主视觉传感器捕获的主图像而构建的。
在某些实施例中,所述方法还包括:由主计算设备基于对主计算设备的主用户的选择来获取产品的3D模型;从主计算设备向计算设备发送产品的3D模型和环境的主3D地图;以及在主计算设备和计算设备之间建立主辅关系。
在某些实施例中,将辅助3D地图与主3D地图对齐的步骤通过以下操作来执行:将辅助3D地图中的特征点与主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及基于匹配的特征点将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些实施例中,将辅助3D地图与主3D地图对齐的方法包括:将辅助模型拟合到辅助3D地图中的点,将主模型拟合到主3D地图中的点,基于拟合的模型将辅助3D地图的坐标系变换为主3D地图的主坐标系。在某些实施例中,模型可以是多边形网格或样条曲面。
在某些实施例中,将辅助3D地图与主3D地图对齐的步骤通过以下操作来执行:将辅助3D地图的至少一个关键帧中的特征点与主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及基于匹配的特征点,将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些实施例中,主3D地图和辅助3D地图是实时更新的,并且所述方法还包括:在对齐步骤之后,计算主3D地图和对齐的辅助3D地图之间的匹配的特征点之间的距离的平方;将距离的平方的平均值与预定阈值进行比较;当距离的平方的平均值大于预定阈值时:在环境的公共区域捕获另外的主图像和辅助图像,更新所述主3D地图和所述辅助3D地图,并再次执行将所述辅助3D地图与所述主3D地图对齐的步骤。
在某些实施例中,所述方法还包括:从主计算设备向至少一个辅助计算设备发送3D地图;由辅助计算设备构建对应的3D地图;以及由辅助计算设备将对应的3D地图与主3D地图对齐。
在某些方面,本发明涉及一种存储计算机可执行代码的非暂时性计算机可读介质。所述计算机可执行代码在被计算设备的处理器执行时被配置为:从主计算设备接收产品的信息以获得产品的三维(3D)模型;从主计算设备接收环境的主3D地图;获得由计算设备的辅助视觉传感器捕获的辅助图像;基于所获得的辅助图像,构建环境的辅助3D地图;将辅助3D地图与主3D地图对齐,以形成对齐的辅助3D地图;以及在接收到主3D地图中的3D模型的位置和朝向后,以对应的位置和朝向将产品的3D模型放置并渲染在更新的辅助3D地图中。在某些实施例中,计算设备不直接从主计算设备接收3D地图和3D模型(或产品ID)中的至少一个。作为替代,主计算设备将3D地图和3D模型(或产品ID)中的至少一个上载到服务器计算设备,并且计算设备从服务器计算设备接收或获取3D地图和/或3D模型(或产品ID)。
在某些实施例中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与主3D地图对齐:将辅助3D地图中的特征点与主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及基于匹配的特征点将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些实施例中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与主3D地图对齐:将辅助3D地图的至少一个关键帧中的特征点与主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及基于匹配的特征点,将辅助3D地图的坐标系变换为主3D地图的主坐标系。
在某些方面,以上方法、系统和非暂时性计算机可读介质被配置为在电子商务平台中使用。具体地,本发明的某些实施例在用于AR购物时是有利的。
根据以下结合附图及其题注对优选实施例的详细描述,本发明的这些和其他方面将变得更加清楚,尽管可以在不脱离本发明新颖构思的精神和范围的情况下对本文进行多种改变和修改。
附图说明
附图示出了本发明的一个或多个实施例,并且与书面描述一起用于解释本发明的原理。在可能的情况下,在整个附图中使用相同的附图标记来指代实施例的相同或相似的元件。
图1示意性地描绘了根据本发明某些实施例的多用户增强现实(AR)购物系统。
图2描绘了根据本发明某些实施例的执行多用户AR购物的流程图。
图3示意性地描绘了根据本发明某些实施例的计算设备。
具体实施方式
在以下示例中更具体地描述了本发明,因为本文中的许多修改和变化对于本领域技术人员而言是显而易见的,这些示例仅用于说明。现在详细描述本发明的各种实施例。参考附图,在所有附图中相同的附图标记表示相同的组件。如在本文的说明中和整个所附权利要求书中所使用的,除非上下文另有明确说明,否则“一”、“一个”和“所述”包括复数指示物。此外,如在本文的说明中和整个所附权利要求书中所使用的,除非上下文另有明确说明,否则“在……中”的含义包括“在……中”和“在……上”。此外,为了方便读者,可以在说明书中使用标题或副标题,这不会影响本发明的范围。另外,本说明书中使用的一些术语在下面更具体地定义。
本说明书中使用的术语在本发明的上下文内以及在使用每个术语的特定上下文中通常具有其在本领域中的通常含义。在下文或在说明书中的其他地方讨论了被用来描述本发明的某些术语,以向实施者提供关于本发明的描述的额外指导。应当理解,可以用不止一种方式来陈述同样的事物。因此,可以针对本文所讨论的术语中的任何一个或多个来使用替代语言和同义词,并且对术语是否在本文中被详细阐述或讨论也不施加任何特殊意义。提供了某些术语的同义词。一个或多个同义词的叙述并不排除其他同义词的使用。本说明书中任何地方的示例(包括本文所讨论的任何术语的示例)的使用仅是说明性的,并且决不限制本发明或任何示例性术语的范围和含义。同样,本发明不限于在本说明书中给出的各种实施例。
将理解,当提及一个元件在另一元件“上”时,该元件可以直接在该另一元件上,或者可以存在介于其间的中间元件。相比之下,当一个元件被称作在另一个元件的“直接上面”时,不存在中间元件。如本文中所使用的术语“和/或”包括相关联的列出项目中的一个或多个的任何和所有组合。
将理解,虽然本文中可以使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分分开。因此,以下讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分,而不脱离本方面的教导。
此外,在本文中可以使用诸如“下”或“底”和“上”或“顶”的相对术语来描述一个元件与图示另一元件的关系。将理解,除了附图中所示的朝向之外,相对术语旨在涵盖设备的不同朝向。例如,如果一幅图中的设备被翻转,则被描述为位于其它元件的“下”侧的元件将朝向为在该其它元件的“上”侧。因此,示例性术语“下”可以包含“下”和“上”的朝向,这取决于图的特定朝向。类似地,如果一幅图中的设备被翻转,则被描述为位于其它元件的“下方”或“下侧”的元件将取向为在该其它元件的“上方”。因此,示例性术语“下方”或“下侧”可以涵盖上下朝向两者。
除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有本发明所属领域的普通技术人员通常所理解的相同意义。还将理解的是,诸如在常用词典中定义的术语应被解释为其含义与在相关技术和本公开的上下文中的含义相同,而不应将其解释为理想的或过于正式的含义,除非本文明确如此定义。
如本文所用,“大约”、“约”、“基本上”或“近似”通常表示在给定值或范围的20%、优选10%、更优选5%之内。本文给出的数值是近似的,意味着如果没有明确说明,可以推断出术语“大约”、“约”、“基本上”或“近似”。
如本文所用,“多个”意指两个或更多个。
如本文所用,术语“包含”、“包括”、“携带”、“具有”、“含有”、“涉及”等应理解为开放式的,即意味着包括但不仅限于。
如本文所用,短语“A、B和C中的至少一个”应该被解释为使用非排他逻辑“或”来表示逻辑(A或B或C)。应当理解,方法中的一个或多个步骤可以以不同的顺序(或同时)执行而不改变本发明的原理。
如本文所用,术语“模块”可以指代、属于或包括专用集成电路(ASIC)、电子电路、组合逻辑电路、现场可编程门阵列(FPGA)、执行代码的处理器(共享的、专用的或组)、提供所述功能的其他合适的硬件组件或者上述中的一些或全部的组合,例如以芯片上系统的形式。术语模块可以包括存储由处理器执行的代码的存储器(共享、专用或组)。
本文使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类和/或对象。如上所使用的术语“共享”意味着可以使用单个(共享)处理器来执行来自多个模块的一些或所有代码。另外,来自多个模块的一些或所有代码可以由单个(共享)存储器存储。如上所使用的术语“分组”意味着可以使用一组处理器来执行来自单个模块的一些或所有代码。另外,可以使用一组存储器来存储来自单个模块的一些或所有代码。
本文使用的术语“接口”通常是指用于在组件之间执行数据通信的、位于组件之间的交互点处的通信工具或部件。通常,接口可以适用于硬件和软件两者的级别,并且可以是单向或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、终端和其他I/O设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备。
本发明涉及计算机系统。如附图中所示,计算机组件可以包括物理硬件组件(其被示为实线框)以及虚拟软件组件(其被示为虚线框)。除非另有说明,否则本领域普通技术人员将理解,这些计算机组件可以以软件、固件或硬件组件或其组合的形式来实现,但不限于上述形式。
这里描述的装置、系统和方法可以由一个或多个处理器执行的一个或多个计算机程序实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储器和光存储器。
根据本发明的目的,如在本文中所体现和广泛描述的,在某些方面,本发明涉及一种用于多个用户在AR购物会话中浏览产品甚至一起操作对象的解决方案。典型的使用场景如下:家庭成员或同事想为他们的家庭或办公室购买物品。用户之一从购物APP中找到产品。他/她可以经由“ad-hoc”服务将产品“传送”到其他用户在其移动设备上的购物APP。然后,AR购物会话从所有移动设备启动。每个相机都从用户角度提供了真实物理环境的视图。同时,通过在视图顶部渲染的虚拟产品增强了相机视图。使用本发明,所有移动设备共享相同的世界坐标系。可以在公共坐标系中渲染虚拟产品。从而提供一种假象,即所有用户从不同角度看完全相同的产品。此外,每个用户可以操作(例如,移动、旋转)虚拟产品。所有其他用户将立即在自己的屏幕上看到物理上正确的移动。
一旦使用同时定位和映射(SLAM)在多个移动设备上重建了相同的环境,根据本公开的某些实施例的方法就使用几种众所周知的点集配准算法(例如,迭代最近点(ICP)或鲁棒点匹配(RPM))之一将这些重建(点集)一起对齐。点集配准算法的结果是点集之间的3D变换,其可以将任何移动设备的世界坐标系中的任何点变换为其他设备的点。在某些实施例中,该方法将一个移动设备指定为全局参考,并将来自所有其他设备的点集登记到该全局参考系中。一旦所有移动设备都使用公共坐标系,该方法就会使用SLAM方法实时跟踪相机相对于该参考坐标系的位置和朝向。这允许在全局坐标系中渲染的虚拟对象被多个用户视为“相同”。虚拟对象与物理世界之间的位置关系跨所有移动设备是一致的。任何用户对虚拟对象的任何操作都可以转换为应用于全局坐标系中虚拟对象的3D变换;因此虚拟对象的移动在所有移动设备之间也将是一致的。
在某些实施例中,该方法针对SLAM使用视觉测距(VO)系统。该方法只可以将环境重建到任意比例(即,点之间的所有形状和关系都是正确的,但是比例是任意的)。在这个意义上,传统的点集配准算法不足以恢复点集之间的变换。该方法可以使用优化方法来估计不同设备之间的比例关系。在某些实施例中,该方法还可以将比例作为自由参数包括在点集配准算法中。
在某些实施例中,本公开的一个关键构思是允许多个用户通过对齐下层重建的3D结构来同时浏览产品和/或操作虚拟产品。在某些实施例中,一种方法还可以使用相同的技术,通过将第一重建存储在设备的存储器上来允许一个用户或不同的用户在不同的AR会话中的不同时间浏览产品的相同3D模型,其中可能需要AR系统具有长期存储器。
在某些实施例中,一种方法收集从多个移动设备同时拍摄的照片。照片可以传送到服务器或设备之一。然后,该方法可以执行多视角立体以重建3D结构并一起恢复所有设备的姿态。
在某些实施例中,一种多用户AR的方法包括以下步骤:
1、一个用户浏览购物APP并发现感兴趣的产品。他/她与其他用户共享产品。在某些实施例中,该方法使用ad-hoc服务来经由无线网络和/或蓝牙来传送包括3D模型的下载的产品信息,而不使用邮件或大容量存储设备。在某些实施例中,该方法从一个用户向其他用户发送统一资源定位符(URL)或产品信息的标识号。然后,所有设备都可以从对应的电子商务服务器下载包括3D模型的产品信息。
2、每个用户使用APP,然后依次使用下层视觉惯性测距(VIO)系统(例如ARKit)来扫描环境。这通常需要几秒钟。
3、一旦在所有设备上成功恢复了环境的结构,该方法就会使用多个移动设备之一作为全局参考来对齐从多个移动设备计算出的点集。全局参考可以驻留在设备之一上或中央服务器上。
4、该方法检查对齐误差,并将其与预定义的阈值进行比较。在某些实施例中,该误差项被定义为来自两个点集的对应点对的距离的平方的平均值。
5、如果误差太大,则该方法指导用户在附近移动移动设备以获得更好的环境重建。
6、如果误差低于阈值,则该方法指导用户之一将虚拟产品放置在物理世界中,或者基于所有用户的观点自动将产品放置在环境中。
7、在所有用户的移动设备上运行的APP使用下层的VIO系统连续跟踪所有相机的位置和朝向。APP还可以根据用户的操作来跟踪虚拟产品相对于全局坐标系的平移和旋转。
8、在所有用户的移动设备上运行的APP在所有设备上渲染虚拟产品。
现在将在下文中参考附图更全面地描述本发明,在附图中,示出了本发明的实施例。然而,本发明可以按多种不同形式来实现,并且不应当被解释为受到本文阐述的实施例的限制;更确切地说,提供这些实施例使得本发明将全面和完整,并且将本发明的范围充分传达给本领域技术人员。
图1示意性地描绘了根据本发明某些实施例的多用户增强现实购物系统。如图1所示,系统100包括第一计算设备110、第二计算设备160,并且第一和第二计算设备经由网络150彼此通信。第一计算设备110和第二计算设备160中的每一个可以是提供增强现实服务的移动设备、平板电脑、通用计算机、无头计算机、可穿戴设备、专用计算机、服务器计算机、集群或云计算机。在某些实施例中,计算设备中的每一个优选地是一个或多个移动设备,诸如智能电话、可穿戴设备或平板电脑。在某些实施例中,第一计算设备110和第二计算设备160也可以分别命名为主计算设备和辅助计算设备。系统100还可以包括与第一计算设备110或/和第二计算设备160通信的其他计算设备。系统100中的计算设备可以在配置方面是相同的或不同的,但是它们都具有对应的购物应用并且能够彼此通信并使用购物应用共享数据。在某些实施例中,网络150可以是有线网络或无线网络,并且可以具有各种形式。网络150的示例可以包括但不限于局域网(LAN)、包括互联网的广域网(WAN)或任何其他类型的网络。最著名的计算机网络是互联网。
如图1所示,第一计算设备110可以包括但不限于第一处理器112、第一存储器114、第一存储设备116、一个或多个第一视觉传感器140、以及可选地,一个或多个惯性测量单元(IMU)145。在某些实施例中,第一计算设备110可以包括用于执行其对应任务的其他硬件组件和软件组件(未示出)。这些硬件和软件组件的示例可以包括但不限于:其他所需的存储器、接口、总线、输入/输出(I/O)模块或设备、网络接口和外围设备。
第一处理器112可以是中央处理单元(CPU),其被配置为控制第一计算设备110的操作。第一处理器112可以执行第一计算设备110的操作系统(OS)或其他应用。在一些实施例中,第一计算设备110可以具有一个以上的CPU(例如两个CPU、四个CPU、八个CPU或任何适合数量的CPU)作为处理器。
第一存储器114可以是易失性存储器,例如随机存取存储器(RAM),用于在第一计算设备110的操作期间存储数据和信息。在某些实施例中,第一存储器114可以是易失性存储器阵列。在某些实施例中,计算设备110可以在一个以上的第一存储器114上运行。
第一存储设备116是用于存储第一计算设备110的OS(未示出)和其他应用的非易失性数据存储介质。第一存储设备116的示例可以包括非易失性存储器,诸如闪存、存储卡、USB驱动器、硬盘驱动器、软盘、光盘驱动器或任何其他类型的数据存储设备。在某些实施例中,第一计算设备110可以具有多个第一存储设备116,其可以是相同的存储设备或不同类型的存储设备,并且第一计算设备110的应用可以被存储在第一计算设备110的一个或多个第一存储设备116中。如图1所示,第一存储设备116包括第一购物应用118。在某些实施例中,第一购物应用118提供用于在线购物的增强现实(AR)功能。备选地,第一购物应用118也可以离线执行。
其中第一购物应用118包括第一产品选择模块120和第一AR模块122。第一AR模块122包括第一同步模块124、第一3D地图模块126、第一坐标对齐模块128和第一渲染模块130。在某些实施例中,第一购物应用118可以包括模块120-130的操作所需的其他应用或模块。应当注意,模块均由计算机可执行代码或指令,或者数据表或数据库来实现,其中计算机可执行代码或指令,或者数据表或数据库共同形成一个应用。在某些实施例中,每个模块还可以包括子模块。备选地,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以实现为电路而不是可执行代码。在某些实施例中,第一购物应用118的一些模块(例如,第一3D地图模块126、第一坐标对齐模块128和第一渲染模块130)可以位于远程计算设备(例如,服务器计算机)处,并且第一购物应用118的其他模块经由有线网络或无线网络与远程模块进行通信。
第一产品选择模块120被配置为向第一用户提供界面,以浏览电子商务服务器上的产品,选择他感兴趣的一个或多个产品,并将选择发送给第一同步模块124。
第一同步模块124被配置为当从第一产品选择模块120接收到选择时,从电子商务网站获取或下载产品信息,并将产品信息发送到第二同步模块174。下载的产品信息可以包括产品的标识、产品的类别和名称/标题以及产品的3D模型。在某些实施例中,如上所述,第一产品选择模块120还被配置为将产品信息或产品信息的一部分发送到第二计算设备160。产品信息的发送可以是推送通知的形式。响应于接收到具有产品信息的推送通知,第二计算设备160启动第二购物应用168。在第二购物应用168运行之后,第二同步模块170被配置为从该通知中提取产品信息。在某些实施例中,第一同步模块124可以仅将产品的标识或URL发送到第二计算设备160,并且第二同步模块174在从通知中提取出标识或URL时,从电子商务服务器下载所有产品信息。进一步地,第二同步模块174被配置为向第一同步模块124发送请求,并与第一同步模块124通信以在第一计算设备110与第二计算设备160之间建立主辅关系,其中第一计算110被确定为主设备,且第二计算设备160被确定为辅助设备。在某些实施例中,第一购物应用118和第二购物应用168还可以为用户提供任意确定主辅关系的选项。一旦建立了主辅关系,第一同步模块124和第二同步模块174被配置为使两个计算设备的时钟同步。在某些实施例中,如果第一视觉传感器140和第二视觉传感器190以不同的帧速率捕获环境图像,则时钟的同步使得两个设备之间的通信处于同一速度并且基于第一图像和第二图像的捕获时间而对应第一图像和第二图像。
在某些实施例中,当第一购物应用118将3D模型放置在第一3D地图中时,第一同步模块124被配置为与第二同步模块174通信该3D模型在第一3D地图中的位置和朝向,并且第二同步模块174被配置为基于3D模型在第一3D地图中的位置和朝向以及第二3D地图与第一3D地图之间的变换将3D模型放置到第二3D地图中。第一同步模块124和第二同步模块174之间的通信是双向通信。一旦一个用户在其计算设备上移动或旋转3D模型,3D模型的变换就被实时传送到另一计算设备,使得另一设备在对应的3D地图中同步该3D模型的相同移动或旋转。
第一3D地图模块126被配置为,当建立了第一计算设备110和第二计算设备160之间的主辅关系时,指示第一视觉传感器140和第一IMU 145收集环境的第一图像和第一计算设备110的IMU信息,并且基于收集的第一图像和(可选地)收集的IMU信息来构建环境的第一3D地图。在某些实施例中,第一3D环境地图模块126被配置为使用同时定位和映射(SLAM)来构建第一3D地图,其中获得环境的第一3D地图和第一视觉传感器140的姿态(或者第一计算设备110的姿态)两者。类似地,第二3D地图模块176被配置为,当建立了第一计算设备110和第二计算设备160之间的主辅关系时,指示第二视觉传感器190和第二IMU 195收集环境的图像和第二计算设备160的IMU信息,并构建环境的第二3D地图。在某些实施例中,第二3D地图模块176被配置为使用SLAM构建第二3D地图,其中获得环境的第二3D地图和第二计算设备160的姿态两者。在第一视觉传感器140和第二视觉传感器190持续捕获新图像的情况下,第一3D地图模块126和第二3D地图模块176被配置为更新第一3D地图和第二3D地图。第一3D地图可以使用第一相机设备110的起始位置和朝向来建立第一3D地图的坐标系,并且第二3D地图可以使用第二相机设备160的起始位置和朝向来建立第二3D地图的坐标系。因此,第一3D地图和第二3D地图具有不同的坐标系。第一3D地图模块126和第二3D地图模块176还被配置为实时更新第一3D地图和第二3D地图。在某些实施例中,当确定第一计算设备和第二计算设备具有主辅关系时,第一3D地图也可以被命名为主3D地图,并且第二3D地图也可以被命名为辅助3D地图。
第一坐标对齐模块128被配置为将构建的第一3D地图发送给第二坐标对齐模块178。当接收到第一3D地图时,第二坐标对齐模块178被配置为将第二3D地图与第一3D地图对齐,并将第二3D地图的坐标系变换为第一3D地图的坐标系。在某些实施例中,第二坐标对齐模块178被配置为将第二3D地图中的特征点与第一3D地图中的特征点相匹配,并且基于匹配的特征点将第二3D地图中的坐标变换为第一3D地图中的坐标。在某些实施例中,在构建第一3D地图期间存在第一关键帧,并且在构建第二3D地图期间存在第二关键帧。第一坐标对齐模块128被配置为将第一关键帧或来自第一关键帧的特征点发送至第二对齐模块178,该第二坐标对齐模块178被配置为将第二关键帧中的特征点与来自第一关键帧的特征点进行匹配。基于第一3D地图与第一关键帧之间的对应关系和第二3D地图与第二关键帧之间的对应关系,第二坐标对齐模块178被配置为将第一3D地图的坐标系变换为第二3D地图的坐标系。在某些实施例中,第一3D地图和第二3D地图中的特征点之间的匹配或两个图像(或关键帧)中的特征点与第一3D地图之间的匹配也称为图像登记。
第一渲染模块130被配置为在执行第一3D地图和第二3D地图之间的对齐之后,将3D模型放置并渲染到第一3D地图。
在某些实施例中,第一购物应用118和第二购物应用168还可以包括设备通信功能,其为用户之间的通信提供接口。
第一视觉传感器140或第二视觉传感器190中的每一个可以是用于捕获环境图像的一个或多个相机。视觉传感器包括灰度相机、红绿蓝(RGB)相机或RGB深度(RGBD)相机和深度相机中的至少一个。相机的姿态可以表示为三自由度平移和三自由度旋转,并且3D地图可以是被形成为特征点的点云的点图。每个特征点具有根据2D图像中的对应特征点计算出的特定特征描述符。
在某些实施例中,系统100还可以包括一个或多个第一IMU 145和第二IMU 195,用于在第一计算设备110和第二计算设备160的移动期间收集惯性数据。IMU可以包括加速度计、陀螺仪和磁力计。第一购物应用118和第二购物应用168将指示IMU 170实时收集特定的力、角速率和可选的磁场。
在某些实施例中,第一渲染模块130和第二渲染模块180中的每一个被配置为,当3D地图和产品的3D模型可用时,将3D模型放置并渲染在3D地图上,并为用户提供用于在3D地图中操作3D模型的界面。在某些实施例中,渲染模块包括:纹理功能,用于定义3D模型上的高频细节、表面纹理或颜色信息;光功能,用于在3D模型上定义光;以及碰撞功能,用于在3D地图中移动3D模型时检测并避免碰撞;以及粒子功能,用于使用大量非常小的子画面、3D模型或其他图形对象来模拟某些类型的“模糊”现象,例如火、爆炸、烟、流水、火花、云、雾或诸如发光的轨迹、魔法咒语等效果的抽象视觉。
在某些实施例中,第一购物应用118和第二购物应用168还可以包括人机交互模块,其被配置为在从用户接收到姿势或语言后控制3D模型在3D地图中移动。
图2描绘了根据本发明某些实施例的多用户购物的流程图。在某些实施例中,该方法200由图1中所示的系统来实现。应特别注意,除非在本发明中另有说明,否则该方法的步骤可以以不同的顺序来布置,并且因此不限于如图2所示的顺序。
如图2所示,在过程202,第一用户使用第一计算设备110来启动第一购物应用118。第一产品选择模块120在操作时提供界面,使得第一用户可以浏览与购物应用118相对应的一个或多个电子商务平台,并通过该界面选择一个或多个感兴趣的产品。响应于对产品的选择,产品选择模块120将选择发送到第一AR模块122的第一同步模块124。在某些实施例中,产品选择120可以不是购物应用118的一部分。例如,第一用户可以使用网络浏览器来浏览电子商务平台的网站,通过网络浏览器选择产品,并将选择的产品发送到购物应用118,以便触发对购物应用118的初始化。
在选择感兴趣的产品之后,在过程204,第一同步模块124从电子商务平台下载产品信息,并将产品信息或产品信息的一部分发送到第二计算设备160。可以以推送通知的形式发送产品信息。推送通知可以包括产品的登记信息的完整条目或者仅包括产品的标识或URL。由卖方和/或电子商务平台提供的登记信息可以包括产品的标识、类别、名称、描述和3D模型。在某些实施例中,推送通知可以包括其他功能,诸如触发被安装在第二计算设备160上的AR购物应用的初始化。
在过程206,响应于从第一计算设备110接收到通知,第二计算设备160启动第二购物应用168。在初始化第二购物应用168之后,第二同步模块174从通知中提取产品信息。如果提取的信息是产品信息的一部分,例如仅是产品的标识或URL,则第二同步模块174还从电子商务服务器下载其他必要的产品信息。必要的信息可以包括产品的类别、名称、3D模型和材料。
在过程208,当第二购物应用168被初始化并且下载了产品信息时,第二同步模块174向同步模块124发送请求,以建立第一计算设备110和第二计算设备160之间的主辅关系,其中第一计算设备110被确定为主设备,且第二计算设备160被确定为辅助设备。在某些实施例中,当两个以上的计算设备被连接时,那些计算设备的同步模块可以将一个计算设备定义为主设备而将所有其他计算设备定义为辅助设备。在某些实施例中,还可以使用由用户生成的指令来切换主辅关系。第一同步模块124和第二同步模块174分别将主辅关系发送到第一3D地图模块126和第二3D地图模块176。在某些实施例中,过程208还可以包括两个计算设备之间的时钟同步。
然后在过程210,响应于从第一同步模块124接收到主辅关系,第一3D地图模块126指示第一视觉传感器140捕获环境的图像,指示第一IMU 145收集第一计算设备110的IMU信息,并基于捕获的图像和收集的IMU信息构建环境的第一3D地图和获得第一计算设备110的姿态。在某些实施例中,第一3D地图模块126使用SLAM构建第一3D地图。类似地,响应于从第二同步模块174接收到主辅关系,第二3D地图模块176指示第二视觉传感器190捕获环境的图像,指示第二IMU 195收集第二计算设备160的IMU信息,并基于捕获的图像和收集的IMU信息构建环境的第二3D地图和获得第二计算设备160的姿态。在某些实施例中,第二3D地图模块176使用SLAM构建第二3D地图。第一3D地图可以使用第一相机设备110的起始位置和朝向来建立第一3D地图的坐标系,以及第二3D地图可以使用第二相机设备160的起始位置和朝向来建立第二3D地图的坐标系。因此,第一3D地图和第二3D地图具有不同的坐标系。在某些实施例中,视觉传感器140和190具有重叠的视场。换言之,第一视觉传感器140和第二视觉传感器190至少捕获环境的一些公共区域的图像。相应地,第一3D地图和第二3D地图包括与环境的公共区域对应的特征点。在构建第一3D地图和第二3D地图之后,第一3D地图模块126和第二3D地图模块176分别通知第一坐标对齐模块128和第二坐标对齐模块178。
响应于接收到构建了第一3D地图和第二3D地图的通知,在过程212,第一坐标对齐模块128和第二坐标对齐模块178将第一3D地图和第二3D地图对齐。在某些实施例中,第一坐标对齐模块128将第一3D地图发送到第二坐标对齐模块178,并且在接收到第一3D地图后,坐标对齐模块178将第一3D地图和第二3D地图中的特征点进行比较,以定位匹配的特征点,然后通过将第二3D地图的坐标变换为第一3D地图中的坐标来将第二3D地图与第一3D地图对齐。在某些实施例中,在构建第一3D地图期间存在第一关键帧,以及在构建第二3D地图期间存在第二关键帧。第一坐标对齐模块128将第一关键帧或来自关键帧的特征点发送至第二对齐模块178,该第二坐标对齐模块178将第二关键帧中的特征点与来自第一关键帧的特征点进行匹配。基于第一3D地图与第一关键帧之间的对应关系和第二3D地图与第二关键帧之间的对应关系,第二坐标对齐模块178将第一3D地图的坐标系变换为第二3D地图的坐标系。
在某些实施例中,第一3D地图和第二3D地图之间的对齐包括确定刚性变换,使用特征点作出表面表示并匹配表面表示,以及对匹配的点和(可选地)不匹配的点进行优化。
在某些实施例中,用于将第二(辅助)3D地图与第一(主)3D地图对齐的变换是3D空间中的刚性变换,其包括旋转和平移。旋转具有三个自由度(DOF),并且平移具有三个DOF。在某些实施例中,应用视觉惯性测距(VIO)方法,其可以使用IMU估计地平面。第二3D地图的坐标系的Y轴和第一3D地图的坐标系的Y轴指向重力的相反方向,并且刚性变换的旋转部分仅具有一个DOF。因此,更易于将第二3D地图与第一3D地图对齐。在某些实施例中,通过最小化误差项来计算对齐。在某些实施例中,误差项可以被计算为对应特征点之间的距离的平方的平均值。在另一实施例中,误差项可以被定义为采样点与第一3D地图和第二3D地图的参数表面模型之间的距离的平方的平均值。
在某些实施例中,结构表示和相似性度量主要包括基于特征的表面表示、基于点的表面表示和基于模型的表面表示。在某些实施例中,对于基于特征的方法,特征是指表面形状的紧凑描述。当通过比较标量值来匹配特征时,可以容易地直接计算变换,例如通过计算最小二乘方。在某些实施方案中,应用了D.W.Eggert和A Lorusso,R.B.Fisher的“Estimating 3-D rigid body transformations:a comparison of four majoralgorithms”中描述的不同变换方法,其通过引用整体并入本文。
在某些实施例中,对于基于点的方法,使用全部点或点的子集。相似性标准是在表面点对之间要最小化的平均距离。在某些实施例中,对应关系是预先不知道的,但是可以在处理期间通过算法恢复。在一个示例中,应用迭代最近点(ICP)以最小化两个3D地图中包含的两个点云之间的差异。
在某些实施例中,结构表示和相似性度量还可以包括基于全局相似性的方法。在某些实施例中,该方法基于全局表面几何法来登记表面,全局表面几何法不依赖于变换的粗略先验估计并且能够处理相对无特征的区块。
关于自动3D表面登记的进一步讨论,请参考Michel Audette等人的“Analgorithmic overview of surface registration techniques for medical imaging”,其通过引用整体并入本文。
不同表示的选择导致不同的匹配和优化方法。对于基于特征的方法,特征匹配和直接计算就足够了。对于基于点的方法,匹配和优化可以涉及迭代地找到最近点和使表面之间的距离最小化的优化。对于基于模型的方法,可以使用表面演化模型,或者可以应用有限元建模来对表面进行建模。
在一轮对齐之后,第二坐标对齐模块178计算对齐误差并确定误差是否大于预定阈值。在某些实施例中,对齐误差被定义为来自两个点集的对应点对的距离的平方的平均值。如果误差大于阈值,则第二坐标对齐模块178向第二用户发送通知,并经由坐标对齐模块128向第一用户发送通知,使得第一用户和第二用户可以捕获的更多环境图像,优选地,公共区域的图像。基于新添加的图像,第一3D地图模块126更新第一3D地图,第二3D地图模块176更新第二3D地图。在某些实施例中,坐标对齐模块128和178可以基于对齐结果提供捕获图像的指导。在某些实施例中,坐标对齐模块128和178通过将第一用户和第二用户引导到环境中的公共区域来提供指导。
当对齐误差小于预定阈值时,在过程214,坐标对齐模块178经由坐标对齐模块128向第一用户发送通知或直接向第二用户发送通知,并请求第一用户将感兴趣的产品的3D模型放置到第一3D地图。在某些实施例中,第二坐标对齐模块178可以允许第二用户而非第一用户将3D模型放置在第二3D地图中。在某些实施例中,购物应用118还可以基于第一3D地图和第二3D地图中的至少一个将3D模型自动地放置在环境中。第一同步模块124和第二同步模块174彼此通信,使得当3D模型被放置在第一3D地图和第二3D地图之一中并且定义了3D模型的位置和朝向时,位置和朝向可以用于将3D模型放置在第一3D地图和第二3D地图中的另一地图中。因为第一3D地图和第二3D地图在对齐之后共享相同的坐标系,所以将3D模型放置在两个3D地图中是直截了当的。
然后,用户可以在环境中移动第一计算设备110和第二计算设备160,第一视觉传感器140和第二视觉传感器190继续捕获新图像,并且用户可以在环境中操作3D模型。现在在过程216,第一3D地图模块126和第二3D地图模块176跟踪相对于全局坐标系的位置/朝向和用户操作。
此外,在过程218,第一渲染模块130和第二渲染模块180还在3D地图中渲染3D模型。
图3示意性地描绘了根据本发明某些实施例的计算设备。在某些实施例中,计算设备300可以是提供增强现实服务的移动设备、平板电脑、通用计算机、无头计算机、可穿戴设备、专用计算机、服务器计算机、集群或云计算机。在某些实施例中,计算设备300优选地是一个或多个移动设备,诸如智能电话、可穿戴设备或平板电脑。如图3所示,计算设备300可以包括但不限于处理器312、存储器314、存储设备316、一个或多个视觉传感器350以及可选地一个或多个惯性测量单元(IMU)370。在某些实施例中,计算设备300可以与图1所示的第一计算设备110和第二计算设备160中的任何一个相同或类似。
其中AR应用318包括主控制器320、同时定位和映射(SLAM)模块322、图像/点处理模块324、场景理解模块326、渲染模块328、人机交互模块330以及用户通信模块332。在某些实施例中,AR应用318可以包括模块320-332的操作所需的其他应用或模块。应当注意,模块均由计算机可执行代码或指令,或者数据表或数据库来实现,其中计算机可执行代码或指令,或者数据表或数据库共同形成一个应用。在某些实施例中,每个模块还可以包括子模块。备选地,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以实现为电路而不是可执行代码。在某些实施例中,AR应用318的一些模块(例如,场景理解模块326)可以位于远程计算设备(例如,服务器计算机)处,并且AR应用118的其他模块经由有线网络或无线网络与场景理解模块326进行通信。
主控制器320被配置为与视觉传感器350、IMU 370和AR应用程序318的其他模块进行通信。SLAM模块322被配置为基于由视觉传感器350捕获的图像来计算视觉传感器350(或计算设备300)的姿态并构建环境的3D地图。图像/点处理模块324被配置为从2D图像提取特征,并从点云中检测并拟合平面。场景理解模块326被配置为基于2D图像的特征和分割来检测和识别2D图像中的对象,并将识别出的2D图像中的对象投影到3D地图。渲染模块328被配置为将产品的3D模型放置并渲染在3D地图上。人机交互模块330被配置为在从用户接收到姿势或语言时控制3D模型在3D地图中移动。用户通信模块332被配置为在不同用户之间,或者换句话说,在不同计算设备之间构建实时通信,以执行同步不同计算设备、在来自不同计算设备的3D地图之间对齐坐标的功能,如以上关于图1和图2所述。
对本发明的示例性实施例的前述描述是为了说明和描述的目的而给出的,而非意在穷举或将本发明限制于所公开的具体形式。鉴于上述教导,许多修改和变化都是可能的。
选择和描述实施例以便解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够利用具有适合于预期特定用途的各种修改的本发明和各种实施例。在不脱离本发明的精神和范围的情况下,备选实施例对于本发明所属领域的技术人员来说将变得显而易见。因此,本发明的范围由所附的权利要求限定,而不是前面的描述和其中描述的示例性实施例。

Claims (20)

1.一种用于实现多用户增强现实的系统,包括:
计算设备,包括辅助视觉传感器、处理器和存储计算机可执行代码的存储设备,并且所述计算机可执行代码在所述处理器处执行时被配置为:
从主计算设备接收产品的信息以获得所述产品的3D模型;
从所述主计算设备接收环境的主3D地图;
获得由所述辅助视觉传感器捕获的辅助图像;
基于所获得的辅助图像,构建所述环境的辅助3D地图;
将所述辅助3D地图与所述主3D地图对齐,以形成对齐的辅助3D地图;以及
在接收到所述主3D地图中的所述3D模型的位置和朝向后,以对应的位置和朝向将所述产品的3D模型放置并渲染在更新的辅助3D地图中。
2.根据权利要求1所述的系统,其中,所述主计算设备包括主视觉传感器,并且被配置为基于由所述主视觉传感器捕获的主图像来构建所述主3D地图。
3.根据权利要求2所述的系统,其中,所述主计算设备还包括主处理器和存储主计算机可执行代码的主存储设备,并且所述主计算机可执行代码在所述主处理器处被执行时被配置为:
基于对所述主计算设备的主用户的选择来获取所述产品的3D模型;
向所述计算设备发送所述产品的3D模型和所述环境的主3D地图;以及
与所述计算设备建立主辅关系。
4.根据权利要求1所述的系统,其中,所述计算机可执行代码被配置为通过以下操作将所述辅助3D地图与所述主3D地图对齐:
将所述辅助3D地图中的辅助特征点与所述主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
5.根据权利要求1所述的系统,其中,所述计算机可执行代码被配置为通过以下操作将所述辅助3D地图与所述主3D地图对齐:
将所述辅助3D地图的至少一个关键帧中的特征点与所述主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
6.根据权利要求1所述的系统,其中,所述主3D地图和所述辅助3D地图是实时更新的,并且所述计算机可执行代码还被配置为通过以下操作评估所述辅助3D地图和所述主3D地图之间的对齐:
计算所述主3D地图和所述对齐的辅助3D地图之间的匹配的特征点之间的距离的平方;
将所述距离的平方的平均值与预定阈值进行比较;以及
当所述距离的平方的平均值大于所述预定阈值时,在预定时间段之后再次执行将所述辅助3D地图与所述主3D地图对齐的步骤。
7.根据权利要求6所述的系统,其中,当所述距离的平方的平均值大于所述预定阈值时,所述主计算设备和所述计算设备被配置为指导用户在所述环境的公共区域捕获主图像和辅助图像。
8.根据权利要求1所述的系统,其中,所述主计算设备还包括用于收集主惯性信息的主惯性测量单元IMU,所述计算设备还包括用于收集辅助惯性信息的辅助IMU,所述主计算设备被配置为基于所捕获的主图像和所收集的主惯性信息来构建所述主3D地图并确定所述主计算设备的姿态,并且所述计算设备被配置为基于所捕获的辅助图像和所收集的辅助惯性信息来构建所述辅助3D地图并确定所述计算设备的姿态。
9.根据权利要求1所述的系统,还包括与所述主计算设备通信的至少一个辅助计算设备,其中,所述至少一个辅助计算设备被配置为将所述至少一个辅助计算设备的3D地图与所述主3D地图对齐。
10.根据权利要求1所述的系统,其中,所述计算机可执行代码被配置为通过以下操作来获得所述产品的3D模型:
接收所述产品的标识;以及
从电子商务服务器获取所述产品的3D模型。
11.一种用于实现多用户增强现实的方法,所述方法包括:
由计算设备从主计算设备接收产品的产品信息,以获得所述产品的3D模型;
由所述计算设备从所述主计算设备接收环境的主3D地图;
由所述计算设备获得由所述计算设备的辅助视觉传感器捕获的辅助图像;
由所述计算设备基于获得的辅助图像构建所述环境的辅助3D地图;
由所述计算设备将所述辅助3D地图与所述主3D地图对齐以形成对齐的辅助3D地图;以及
在接收到所述主3D地图中的3D模型的位置和朝向后,由所述计算设备以对应的位置和朝向将所述产品的3D模型放置并渲染在更新的辅助3D地图中。
12.根据权利要求11所述的方法,其中,所述主3D地图是基于由所述主计算设备的主视觉传感器捕获的主图像而构建的。
13.根据权利要求12所述的方法,还包括:
由所述主计算设备基于对所述主计算设备的主用户的选择来获取所述产品的3D模型;
从所述主计算设备向所述计算设备发送所述产品的3D模型和所述环境的主3D地图;以及
在所述主计算设备和所述计算设备之间建立主辅关系。
14.根据权利要求11所述的方法,其中,将所述辅助3D地图与所述主3D地图对齐的步骤通过以下操作来执行:
将所述辅助3D地图中的特征点与所述主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
15.根据权利要求11所述的方法,其中,将所述辅助3D地图与所述主3D地图对齐的步骤通过以下操作来执行:
将所述辅助3D地图的至少一个关键帧中的特征点与所述主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
16.根据权利要求11所述的方法,其中,所述主3D地图和所述辅助3D地图是实时更新的,并且所述方法还包括:在对齐的步骤之后,
计算所述主3D地图和所述对齐的辅助3D地图之间的匹配的特征点之间的距离的平方;
将所述距离的平方的平均值与预定阈值进行比较;
当所述距离的平方的平均值大于所述预定阈值时:在所述环境的公共区域捕获另外的主图像和辅助图像,更新所述主3D地图和所述辅助3D地图,并再次执行将所述辅助3D地图与所述主3D地图对齐的步骤。
17.根据权利要求11所述的方法,还包括:
从所述主计算设备向至少一个辅助计算设备发送所述3D地图;
由所述辅助计算设备构建对应的3D地图;以及
由所述辅助计算设备将所述对应的3D地图与所述主3D地图对齐。
18.一种存储计算机可执行代码的非暂时性计算机可读介质,其中,所述计算机可执行代码在计算设备的处理器处被执行时被配置为:
从主计算设备接收产品的信息以获得所述产品的3D模型;
从所述主计算设备接收环境的主3D地图;
获得由所述计算设备的辅助视觉传感器捕获的辅助图像;
基于所获得的辅助图像,构建所述环境的辅助3D地图;
将所述辅助3D地图与所述主3D地图对齐,以形成对齐的辅助3D地图;以及
在接收到所述主3D地图中的所述3D模型的位置和朝向后,以对应的位置和朝向将所述产品的3D模型放置并渲染在更新的辅助3D地图中。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与所述主3D地图对齐:
将所述辅助3D地图中的特征点与所述主3D地图中的主特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
20.根据权利要求18所述的非暂时性计算机可读介质,其中,所述计算机可执行代码被配置为通过以下操作将辅助3D地图与所述主3D地图对齐:
将所述辅助3D地图的至少一个关键帧中的特征点与所述主3D地图的至少一个主关键帧中的特征点进行匹配,以获得匹配的特征点;以及
基于所述匹配的特征点,将所述辅助3D地图的坐标系变换为所述主3D地图的主坐标系。
CN201980031578.4A 2018-06-27 2019-02-15 用于多用户增强现实购物的系统和方法 Active CN112154486B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/020,920 US10482674B1 (en) 2018-06-27 2018-06-27 System and method for mobile augmented reality
US16/020,945 US10290049B1 (en) 2018-06-27 2018-06-27 System and method for multi-user augmented reality shopping
US16/020,945 2018-06-27
US16/020,920 2018-06-27
PCT/CN2019/075214 WO2020001039A1 (en) 2018-06-27 2019-02-15 System and method for multi-user augmented reality shopping

Publications (2)

Publication Number Publication Date
CN112154486A CN112154486A (zh) 2020-12-29
CN112154486B true CN112154486B (zh) 2024-04-16

Family

ID=66439672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980031578.4A Active CN112154486B (zh) 2018-06-27 2019-02-15 用于多用户增强现实购物的系统和方法

Country Status (4)

Country Link
US (1) US10290049B1 (zh)
EP (1) EP3815051B1 (zh)
CN (1) CN112154486B (zh)
WO (1) WO2020001039A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102468897B1 (ko) * 2017-10-16 2022-11-21 삼성전자주식회사 깊이 값을 추정하는 방법 및 장치
US10782137B2 (en) * 2019-01-28 2020-09-22 Qfeeltech (Beijing) Co., Ltd. Methods, apparatus, and systems for localization and mapping
EP3712638A1 (en) * 2019-03-22 2020-09-23 HERE Global B.V. Hybrid radio maps
US10748302B1 (en) * 2019-05-02 2020-08-18 Apple Inc. Multiple user simultaneous localization and mapping (SLAM)
JP2023515796A (ja) * 2020-02-20 2023-04-14 マジック リープ, インコーポレイテッド Wifi/gpsベースのマップマージを伴うクロスリアリティシステム
US11340707B2 (en) * 2020-05-29 2022-05-24 Microsoft Technology Licensing, Llc Hand gesture-based emojis
CN113377205B (zh) * 2021-07-06 2022-11-11 浙江商汤科技开发有限公司 场景显示方法及装置、设备、车辆、计算机可读存储介质
US20230177789A1 (en) * 2021-12-06 2023-06-08 Snap Inc. Computer vision tools for creating augmented reality (ar) models

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355647A (zh) * 2016-08-25 2017-01-25 北京暴风魔镜科技有限公司 增强现实系统和方法
CN107818592A (zh) * 2017-11-24 2018-03-20 北京华捷艾米科技有限公司 协作式同步定位与地图构建的方法、系统及交互系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9478067B1 (en) * 2011-04-08 2016-10-25 Amazon Technologies, Inc. Augmented reality environment with secondary sensory feedback
US9293118B2 (en) * 2012-03-30 2016-03-22 Sony Corporation Client device
US20150193982A1 (en) * 2014-01-03 2015-07-09 Google Inc. Augmented reality overlays using position and orientation to facilitate interactions between electronic devices
US10726560B2 (en) * 2014-10-31 2020-07-28 Fyusion, Inc. Real-time mobile device capture and generation of art-styled AR/VR content
US9928656B2 (en) 2015-09-11 2018-03-27 Futurewei Technologies, Inc. Markerless multi-user, multi-object augmented reality on mobile devices
CN107977834B (zh) * 2016-10-21 2022-03-18 阿里巴巴集团控股有限公司 一种虚拟现实/增强现实空间环境中的数据对象交互方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355647A (zh) * 2016-08-25 2017-01-25 北京暴风魔镜科技有限公司 增强现实系统和方法
CN107818592A (zh) * 2017-11-24 2018-03-20 北京华捷艾米科技有限公司 协作式同步定位与地图构建的方法、系统及交互系统

Also Published As

Publication number Publication date
WO2020001039A1 (en) 2020-01-02
EP3815051B1 (en) 2024-01-31
EP3815051A1 (en) 2021-05-05
US10290049B1 (en) 2019-05-14
CN112154486A (zh) 2020-12-29
EP3815051A4 (en) 2022-03-23

Similar Documents

Publication Publication Date Title
CN112154486B (zh) 用于多用户增强现实购物的系统和方法
US10482674B1 (en) System and method for mobile augmented reality
US11721067B2 (en) System and method for virtual modeling of indoor scenes from imagery
CN108028871B (zh) 移动设备上的无标记的多用户多对象增强现实
US11308347B2 (en) Method of determining a similarity transformation between first and second coordinates of 3D features
KR20220009393A (ko) 이미지 기반 로컬화
US9530235B2 (en) Aligning panoramic imagery and aerial imagery
JP6255085B2 (ja) 位置特定システムおよび位置特定方法
US9177381B2 (en) Depth estimate determination, systems and methods
Chen et al. Rise of the indoor crowd: Reconstruction of building interior view via mobile crowdsourcing
CN112889091A (zh) 使用模糊特征的相机位姿估计
JP2019075082A (ja) 深度値推定を用いた映像処理方法及び装置
EP3274964B1 (en) Automatic connection of images using visual features
KR20180082170A (ko) 3차원 얼굴 모델 획득 방법 및 시스템
WO2016065063A1 (en) Photogrammetric methods and devices related thereto
CN111161336A (zh) 三维重建方法、三维重建装置和计算机可读存储介质
Krasić et al. Comparative analysis of terrestrial semi-automatic and automatic photogrammetry in 3D modeling process
JP2023056466A (ja) グローバル測位装置及び方法
US20210385428A1 (en) System and method for identifying a relative position and direction of a camera relative to an object
Oviedo et al. Colour Hue and Texture Evaluation for 3D Symbolization of Indoor Environments Using RGB-D Data
Ventura Wide-Area Visual Modeling and Tracking for Mobile Augmented Reality
EP3210165A1 (en) Photogrammetric methods and devices related thereto

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
GR01 Patent grant
GR01 Patent grant