CN114868101A - 基于标记的共享增强现实会话创建 - Google Patents
基于标记的共享增强现实会话创建 Download PDFInfo
- Publication number
- CN114868101A CN114868101A CN202080089397.XA CN202080089397A CN114868101A CN 114868101 A CN114868101 A CN 114868101A CN 202080089397 A CN202080089397 A CN 202080089397A CN 114868101 A CN114868101 A CN 114868101A
- Authority
- CN
- China
- Prior art keywords
- session
- image
- transformation
- marker
- determining
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- 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/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
Abstract
用于创建基于标记的共享增强现实(AR)会话的方法开始于通过第一设备和通过第二设备对共享AR会话进行初始化。第一设备在显示器上显示标记。第二设备使用包括在第二设备中的摄像装置来检测标记并且使用摄像装置来捕获标记的图像。第二设备使用标记的图像来确定第一设备与第二设备之间的变换。然后,使用变换来确定公共坐标系,使用公共坐标系来生成共享AR会话,并且使共享AR会话由第一设备和由第二设备显示。本文描述了其他实施方式。
Description
优先权声明
本申请要求于2019年12月27日提交的美国专利申请第16/729,078号的优先权,该美国专利申请整体通过引用并入本文。
背景技术
增强现实(Augmented-Reality,AR)是对虚拟环境的修改。例如,在虚拟现实(VR)中,用户完全沉浸在虚拟世界中,而在AR中,用户则沉浸在虚拟对象与现实世界组合或叠加的世界中。AR系统旨在生成和呈现以下虚拟对象:这些虚拟对象与现实世界环境真实交互以及彼此之间进行交互。AR应用的示例可以包括单人或多人视频游戏、即时消息传送系统等。
附图说明
在附图(不一定按比例绘制)中,相同的附图标记可以在不同的视图中描述类似的部件。具有不同字母后缀的相似的附图标记可以表示类似的部件的不同实例。在附图的图中,以示例而非限制的方式示出了一些实施方式,在附图中:
图1是根据一些示例实施方式的可以部署本公开内容的联网环境的图形表示。
图2是根据一些示例实施方式的消息传送客户端应用的图形表示。
图3是根据一些示例实施方式的如在数据库中维护的数据结构的图形表示。
图4是根据一些示例实施方式的消息的图形表示。
图5是根据一些示例实施方式的用于创建基于标记的共享AR会话(a marker-based shared AR session)的过程的流程图。
图6是示出根据一些示例实施方式的其中可以实现本公开内容的软件架构的框图。
图7是根据一些示例实施方式的呈计算机系统形式的机器的图形表示,在该机器内可以执行指令的集合以使该机器执行本文中讨论的方法中任何一种或更多种。
图8是根据一些示例实施方式的处理环境的图形表示。
具体实施方式
以下描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,为了解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域的技术人员来说将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。一般来说,公知的指令实例、协议、结构和技术不一定要详细地示出。
此外,本公开内容的实施方式通过为基于标记的共享AR会话(a shared ARsession)建立公共坐标系来改进增强现实(AR)创建软件和系统的功能。在一个实施方式中,系统托管共享AR会话,该共享AR会话是多个用户经由客户端设备可以参与的会话。例如,共享AR会话可以是AR赛车游戏,其中每个用户控制不同的汽车。用户中的每一个都在同时观看客户端设备上显示的相同共享AR场景。体验可以在所有用户之间同步和共享。在这种示例中,在共享AR会话中一个用户的动作可以同步并广播给所有其他用户。因此,共享AR会话是共享的虚拟空间,但在AR中。
生成共享AR会话的一个挑战是建立共享AR场景的原点以及共享AR场景如何相对于周围环境对齐。例如,当用户跟踪共享AR场景时,客户端设备中的每一个都知道它在共享AR场景内移动的位置。然而,客户端设备可能无法就共享AR场景的原点的位置或共享AR场景如何相对于周围环境对齐达成一致。因此,虽然客户端设备中的每一个都在呈现相同的虚拟内容(例如,汽车、赛道等),但虚拟内容可能不会在每个设备上的共享AR场景内出现在相同位置。例如,虚拟内容可能不会在每一个客户端设备的显示屏上以相同的方式旋转以对齐。
在一个实施方式中,系统实现了以下方法:该方法用于共享AR会话中的所有客户端设备就共享AR场景(或世界)的原点中心达成一致,并且就共享AR场景在特定方向上旋转达成一致。在一个实施方式中,系统使用标记创建共享AR会话以建立共享AR场景的原点中心。
图1是示出用于通过网络来交换数据(例如,消息和相关联的内容)的示例系统100的框图。系统100包括客户端设备102的多个实例,实例中的每一个托管包括消息传送客户端应用104和AR会话客户端控制器124的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接到消息传送客户端应用104的其他实例以及消息传送服务器系统108。每个AR会话客户端控制器124经由网络106通信地耦接到AR会话客户端控制器124的其他实例以及消息传送服务器系统108中的AR会话服务器控制器126。
消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104和消息传送服务器系统108进行通信和交换数据。在消息传送客户端应用104之间以及在消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息传送服务器系统108经由网络106向特定的消息传送客户端应用104提供服务器端功能。虽然系统100的某些功能在本文中被描述为由消息传送客户端应用104或由消息传送服务器系统108执行,但是将某些功能定位在消息传送客户端应用104内或消息传送服务器系统108内是设计选择。例如,在技术上可能优选的是最初在消息传送服务器系统108内部署某些技术和功能,但是稍后将该技术和功能迁移至其中客户端设备102具有足够处理能力的消息传送客户端应用104。
消息传送服务器系统108支持被提供给消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及处理由消息传送客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持续条件、社交网络信息和实况事件信息。通过经由消息传送客户端应用104的用户界面(UI)可用的功能来调用和控制消息传送系统100内的数据交换。
AR会话客户端控制器124能够经由网络106与另一AR会话客户端控制器124和AR会话服务器控制器126进行通信和交换数据。AR会话客户端控制器124之间以及AR会话客户端控制器124与AR会话服务器控制器126之间交换的数据可以包括:识别共享AR会话的会话标识符、第一设备和第二设备之间的变换(transformation)(例如,多个客户端设备102包括第一设备和第二设备)、公共坐标系、函数(例如,调用函数的命令)以及其他有效载荷数据(例如,文本、音频、视频或其他多媒体数据。
现在具体转到消息传送服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。
应用程序接口(API)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供接口(例如,例程和协议)的集合,所述接口可以由消息传送客户端应用104调用或查询,以便调用应用服务器112的功能。应用程序接口(API)服务器110展现由应用服务器112支持的各种功能,包括帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)以及针对另一消息传送客户端应用104的可能访问而进行的对媒体数据的集合(例如,故事)的设置、客户端设备102的用户的好友列表的检索、这样的集合的检索、消息和内容的检索、向社交图添加和删除好友、社交图内好友的位置以及打开应用事件(例如,涉及消息传送客户端应用104)。
应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116、社交网络系统122、以及AR会话服务器控制器126。消息传送服务器应用114实现许多消息处理技术和功能,尤其涉及包括在从消息传送客户端应用104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的汇集和其他处理。如将更详细地描述的,来自多个源的文本和媒体内容可以被汇集成内容的集合(例如,被称为故事或库)。然后消息传送服务器应用114使这些集合可用于消息传送客户端应用104。鉴于用于这样的处理的硬件要求,消息传送服务器应用114还可以在服务器侧执行其他处理器和存储器密集型的数据处理。
应用服务器112还包括专用于执行各种图像处理操作的图像处理系统116,所述图像处理操作通常是针对在消息传送服务器应用114处的消息的有效载荷内接收的图像或视频的。
社交网络系统122支持各种社交联网功能服务,并且使这些功能和服务可用于消息传送服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304(如图3所示)。社交网络系统122支持的功能和服务的示例包括特定用户与之有关系或“关注”其的消息传送系统100的其他用户的标识,以及其他实体和感兴趣的特定用户的标识。
应用服务器112还包括AR会话服务器控制器126,AR会话服务器控制器126可以与客户端设备102中的AR会话客户端控制器124通信以建立单独的或共享的AR会话。AR会话服务器控制器126还可以耦接到消息传送服务器应用114以在共享AR会话中为客户端设备建立电子组通信会话(例如,组聊天、即时消息传送)。电子组通信会话可以与由客户端设备102提供的会话标识符相关联,以获得对电子组通信会话和共享AR会话的访问。在一个实施方式中,客户端设备首先获得对电子组通信会话的访问,并且然后在电子组通信会话中获得使得客户端设备能够访问共享AR会话的会话标识符。在一些实施方式中,客户端设备102能够在没有应用服务器112中的AR会话服务器控制器126的帮助或没有与应用服务器112中的AR会话服务器控制器126通信的情况下访问共享AR会话。
应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。
图2是示出根据示例实施方式的关于系统100的另外的细节的框图。具体地,系统100被示为包括消息传送客户端应用104和应用服务器112,其又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
短暂定时器系统202负责实施对消息传送客户端应用104和消息传送服务器应用114所允许的内容的短暂访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息传送客户端应用104访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件库”或“事件故事”。可以使这样的集合在指定的时间段(例如内容所涉及的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续期间作为“故事”可用。集合管理系统204还可以负责发布向消息传送客户端应用104的用户界面提供特定集合的存在性的通知的图标。
集合管理系统204还包括允许集合管理器管理和策展内容的特定集合的策展接口208。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容的集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付费用以使用其内容。
注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与系统100处理的消息的媒体覆盖(mediaoverlay)的生成和发布相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104供应媒体覆盖或补充(例如,图像过滤器)。在另一示例中,注释系统206基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息传送客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本。在另一示例中,媒体覆盖包括位置标识(例如,威尼斯海滩)覆盖、实况事件的名称或商家名称(例如,海滩咖啡馆)覆盖。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括在客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
在一个示例实施方式中,注释系统206提供基于用户的发布平台,该发布平台使得用户能够选择地图上的地理位置,并且上传与所选择的地理位置相关联的内容。用户还可以指定特定媒体覆盖应当被提供给其他用户的环境。注释系统206生成包括所上传的内容的媒体覆盖并且将所上传的内容与所选择的地理位置相关联。
在另一示例实施方式中,注释系统206提供基于商家的发布平台,该发布平台使得商家能够经由竞价过程来选择与地理位置相关联的特定媒体覆盖。例如,注释系统206在预定义时间量内将最高出价商家的媒体覆盖与对应的地理位置相关联。
图3是示出根据某些示例实施方式的可以存储在消息传送服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示为包括多个表,但是应当理解,数据可以以其他类型的数据结构进行存储(例如,作为面向对象的数据库)。
数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。其记录被维护在实体表302内的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息传送服务器系统108存储了其数据的任何实体都可以是被识别的实体。每个实体设置有唯一标识符、以及实体类型标识符(未示出)。
实体图304还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于感兴趣的或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
数据库120还以过滤器的示例形式将注释数据存储在注释表312中。其数据存储在注释表312内的过滤器与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并且应用于视频和/或图像。在一个示例中,过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型,包括当发送用户正在编写消息时由消息传送客户端应用104向发送用户呈现的来自过滤器的库中的用户选择的过滤器。其他类型的过滤器包括地理定位过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的GPS单元确定的地理位置信息,消息传送客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置过滤器。另一类型的过滤器是数据过滤器,其可以由消息传送客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表308内的其他注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频中的实时特殊效果和声音。
如上面所提及的,视频表310存储视频数据,在一个实施方式中,视频数据与其记录被维护在消息表314中的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被汇编成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录被维护在实体表302中的每个用户)发起。用户可以创建已经由该用户创建和发送/广播的内容的集合的形式的“个人故事”。为此,消息传送客户端应用104的用户界面可以包括用户可选择以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
集合还可以构成“实况故事”,“实况故事”是被手动地、自动地或使用手动和自动技术的组合来创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件的用户可以例如经由消息传送客户端应用104的用户界面被呈现有选项以向特定实况故事贡献内容。可以由消息传送客户端应用104基于用户的位置向用户标识实况故事。最终结果是从社群角度讲述的“实况故事”。
另一类型的内容集合被称为“位置故事”,“位置故事”使得其客户端设备102位于特定地理位置(例如,在大学或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
数据库120还可以在AR会话表316中存储与单独的和共享的AR会话有关的数据。AR会话表316中的数据可以包括在AR会话客户端控制器124和另一AR会话客户端控制器124之间通信的数据,以及AR会话客户端控制器124和AR会话服务器控制器126之间通信的数据。数据可以包括用于建立共享AR场景的公共坐标系、设备之间的变换、会话标识符等的数据。
图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息传送客户端应用104生成以传送至另一消息传送客户端应用104或消息传送服务器应用114。特定消息400的内容用于填充存储在消息传送服务器应用114可访问的数据库120内的消息表314。类似地,消息400的内容作为客户端设备102或应用服务器112的“运输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下部件:
·消息标识符402:标识消息400的唯一标识符。
·消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且包括在消息400中的文本。
·消息图像有效载荷406:由客户端设备102的摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的图像数据。
·消息视频有效载荷408:由摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的视频数据。
·消息音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索并且包括在消息400中的音频数据。
·消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、贴纸或其他增强)。
·消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将被呈现或使得用户可经由消息传送客户端应用104访问的时间量的参数值。
·消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
·消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
·消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示包括在消息有效载荷中的内容的主题。例如,在包括在消息图像有效载荷406中的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
·消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符424:指示消息400寻址到的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
消息400的各个部件的内容(例如,值)可以是指向在其内存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
图5是根据一些示例实施方式的用于创建基于标记的共享AR会话的过程的流程图。虽然流程图可以将操作描述为顺序过程,但许多操作可以并行或同时执行。此外,可以重新安排操作的顺序。过程在其操作完成时终止。过程可以对应于方法、程序等。方法的步骤可以全部或部分执行、可以与其他方法中的部分或全部步骤结合执行,并且可以由任意数量的不同系统(诸如图1、图7和/或图8中描述的系统)或该系统的任何部分(诸如包括在任何系统中的处理器)执行。
在操作502处,第一设备和第二设备对共享增强现实(AR)会话进行初始化。第一客户端设备和第二客户端设备(例如,客户端设备102)中的每一个中的AR会话客户端控制器124可以独立地初始化共享AR会话。在一个实施方式中,在共享AR会话的初始化期间,第一设备和第二设备可以处于彼此独立的、活动的即时定位与地图构建(SimultaneousLocalization And Mapping,SLAM)会话中,并且这些SLAM会话映射需要彼此对齐以建立共享AR会话。
对共享AR会话进行初始化可以包括通过第一设备确定第一设备变换(例如,称为变换TA)。第一设备变换可以基于第一设备当前姿势和第一设备原点。第一设备当前姿势可以是第一设备相对于现实世界在x轴、y轴、z轴上的位置和方向。第一设备原点是由第一设备跟踪的坐标系的原点。类似地,对共享AR会话进行初始化还可以包括通过第二设备确定第二设备变换(例如,称为变换TB)。第二设备变换可以基于第二设备当前姿势和第二设备原点。第二设备当前姿势可以是第二设备相对于现实世界在x轴、y轴、z轴上的位置和方向。第二设备原点是由第二设备跟踪的坐标系的原点。由第一设备跟踪的坐标系的原点可以不同于由第二设备跟踪的坐标系的原点。
在操作504处,第一设备在第一设备的显示设备上显示标记(a marker)。第一设备中的AR会话客户端控制器124可以使第一设备显示标记。在一个实施方式中,标记可以被连续显示达多个帧或者可以周期性地显示一次(例如,每30帧一次)。标记可以是快速响应(Quick Response,QR)码、自然特征标记或显示在第一设备的显示器上的应用的用户界面。在一些实施方式中,标记可以包括与共享AR会话相关联的会话标识符。例如,标记可以对会话标识符进行编码。标记还可以是会话标识符的表示。会话标识符可以通过第一设备的AR会话客户端控制器124或通过AR会话服务器控制器126选择和生成。在一个实施方式中,标记(或标记中的特定像素)的外观是由想要加入AR共享会话的设备和/或AR会话服务器控制器126已知的。当标记是应用的用户界面时,该应用可以是与共享AR会话相关的应用。例如,应用可以是共享AR视频游戏,使得标记是共享AR视频游戏的用户界面。标记是应用的用户界面的一个好处是第一设备的用户不必停止使用应用来显示不同的标记诸如QR码。
在一个实施方式中,第一设备使用会话标识符来访问通信会话。第一设备可以使用会话标识符来建立与实时消息传送服务的通信连接或耦接。实时消息传送服务可以是由AR会话服务器控制器126建立的电子组通信会话。
在操作506处,第二设备使用包括在第二设备中的摄像装置来检测标记。例如,第二用户可以将第二设备指向显示在第一设备的显示器上的标记,使得标记在包括在第二设备中的摄像装置的视野中。第二设备中的AR会话客户端控制器124可以通过分析摄像装置视野内的图像来检测标记。在一个实施方式中,AR会话客户端控制器124可以实现标记检测算法来检测标记。
在操作508处,第二设备使用包括在第二设备中的摄像装置来捕获标记的图像。在一个实施方式中,当AR会话客户端控制器124检测到标记时,AR会话客户端控制器124使摄像装置捕获标记的图像。
在一个实施方式中,第二设备的AR会话客户端控制器124从标记的图像提取会话标识符并且使用提取的会话标识符来访问通信会话。例如,第二设备可以使用会话标识符来建立与实时消息传送服务的通信连接或耦接。实时消息传送服务可以是由AR会话服务器控制器126建立的电子组通信会话。
在操作510处,第二设备的AR会话客户端控制器124使用标记的图像来确定第一设备和第二设备之间的变换(TC)。变换(TC)可以是描述第一设备和第二设备之间的变换的变换矩阵。
在一个实施方式中,第二设备从第一设备接收第一设备变换(TA)并且还使用第一设备变换(TA)来确定第一设备和第二设备之间的变换(TC)。在本实施方式中,变换(TC)是描述第一设备变换(TA)和第二设备变换(TB)之间的变换的变换矩阵。
第二设备的AR会话客户端控制器124还可以基于第一设备变换(TA)来确定第二偏移量。第二偏移量可以是第二设备当前姿势和第一设备原点的偏移量。在本实施方式中,第二偏移量可以与共享AR会话中的其他设备计算的偏移量呈菊花链式连接,以确保共享AR会话中的设备可以就AR共享会话的原点(例如,共享AR世界原点)达成一致。
在一个实施方式中,第二设备的AR会话客户端控制器124通过使用标记在图像中的位置、标记在图像中的比例或标记在图像中的旋转或其任何组合来确定第一设备和第二设备之间的变换(TC)。例如,为了确定变换(TC),第二设备的AR会话客户端控制器124可以使用基本的计算机视觉、图像处理、几何、平移、视觉表示、角度、距离等。
在一个实施方式中,第二设备的AR会话客户端控制器124将变换(TC)发送到第一设备的AR会话客户端控制器124和/或AR会话服务器控制器126。第二设备的AR会话客户端控制器124还可以在(组)通信会话中发送变换(TC)。
在操作512处,第二设备的AR会话客户端控制器124使用变换(TC)来确定公共坐标系。在一个实施方式中,第一设备的AR会话客户端控制器124可以使用从第二设备接收的变换(TC)来确定公共坐标系。
在一个实施方式中,第二设备的AR会话客户端控制器124将公共坐标系发送到第一设备的AR会话客户端控制器124和/或AR会话服务器控制器126。第二设备的AR会话客户端控制器124还可以在(组)通信会话中发送公共坐标系。
在操作514处,第二设备的AR会话客户端控制器124使用公共坐标系来生成共享AR会话。在一个实施方式中,第一设备的AR会话客户端控制器124可以使用从第二设备接收的公共坐标系来生成共享AR会话。
在操作516处,第一设备中的AR会话客户端控制器124使共享AR会话由第一设备显示,并且第二设备中的AR会话客户端控制器124使共享AR会话由第二设备显示。在一个实施方式中,包括在共享AR会话中的共享AR场景通过第一设备和第二设备来显示。
在一个实施方式中,标记可以是第一设备本身,而不是第一设备在操作504处在第一设备的显示器上的显示标记。在本实施方式中,第一设备的三维(3-D)外观可以是标记,使得第二设备的AR会话客户端控制器124可以在第二设备的摄像装置的视野内检测处于任何角度或位置的第一设备作为标记,并使摄像装置捕获第一设备的图像。在本实施方式中,不是运用使用标记的一次性坐标设置,而是可以通过周期性地捕获第一设备的图像并相应地更新公共坐标来不断更新相对变换(例如,变换TC)。在本实施方式中,数据库120可以存储可以用作标记的在不同角度和位置的不同电子设备的图像的数据库。
在另一实施方式中,为了进一步细化公共坐标系的确定,需要解决第二设备确定变换(TC)的时刻与第一设备向第二设备发送第一变换(TA)的时刻之间的时间延迟。在扫描或跟踪发生的精确时刻,第二设备需要变换(TC)和第一变换(TA)。在本实施方式中,第一设备不是将第一变换(TA)作为单个数据点发送,而是随时间发送第一变换(TA)流。第二设备的AR会话客户端控制器124需要建立要执行对齐的全局时间。全局时间可以从应用服务器112获得,但是仍然引入了一些延迟。为了细化从应用服务器112提供的时间,第二设备可以捕获标记的视频或多个帧。例如,第一设备可以显示标记的视觉变换(例如,旋转、缩放、闪烁、在显示屏上沿不同方向移动、使用若干标记并跟踪标记相对于彼此的移动和方向)。然后,第二设备可以确定第一设备发送第一变换(TA)的时间(例如,以毫秒为单位)并且从第一变换(TA)的流中获得第一变换(TA)。
在一个示例中,第一设备可以显示由第二设备捕获的旋转标记。第二设备的AR会话客户端控制器124可以使用捕获的旋转标记的视频或多个帧来细化从AR会话服务器控制器126或应用服务器112接收的时间码。具体地,已知的标记的旋转速度可以用于解决关于哪个帧是公共坐标系应当基于的精确帧的不确定性。
在一个实施方式中,第二设备的AR会话客户端控制器124可以过滤掉导致与重力相反的变换(TC)的标记的图像。虽然捕获的标记的帧在沿地平面的位置在旋转上偏移,但第一设备和第二设备两者都可以就地面的位置达成一致(例如,哪个方向是向上还是向下)。第二设备的AR会话客户端控制器124通过确定观察到的第一当前姿势(或捕获的标记的图像)是否与重力相反来执行重力检查。
在本实施方式中,第二设备的AR会话客户端控制器124接收包括重力轴角度的信息,并使用这种信息与标记的跟踪数据进行比较(例如,通过第二设备中的摄像装置捕获的标记的帧)。然后,第二设备的AR会话客户端控制器124可以检查第一设备和第二设备是否就第一设备的姿势如何相对于重力位置定向达成一致。然后,第二设备的AR会话客户端控制器124可以过滤掉在相对于重力位置的方向上存在分歧的数据(或捕获的标记的帧)(例如,较低质量数据)。
在另一实施方式中,第二设备的AR会话客户端控制器124可以使用重新投影进一步细化公共坐标系。当第二设备的AR会话客户端控制器124检测到标记并使用摄像装置捕获标记的图像时,第二设备的AR会话客户端控制器124将标记的图像重新投影到显示屏空间上并分析检测到的标记的像素。基于对重新投影的像素的分析,第二设备的AR会话客户端控制器124可以使第二设备显示指示标记是否被充分捕获的通知(例如,“离标记太远”、“太快”等)。在另一示例中,第二设备的AR会话客户端控制器124捕获标记的多个图像以平均掉捕获中的潜在错误。
在一个实施方式中,第二设备的AR会话客户端控制器124可以在连接到AR会话服务器控制器126或应用服务器112之前捕获标记的图像或多个图像。第一设备可以保持第一设备在第一设备相对于由第一设备跟踪的坐标系的原点的位置(重力轴的角度)和方向方面已知的姿势的踪迹窗口。一旦在第二设备的摄像装置的视野内检测到标记,第二设备就可以开始记录或捕获标记的图像(例如,姿势历史)。一旦连接到应用服务器112,第一设备就可以将姿势的踪迹窗口发送到第二设备。第二设备可以使用视觉时间对齐的添加来及时匹配两个流(例如,来自第一设备的踪迹窗口和来自第二设备的姿势历史)。
在一个实施方式中,当使用显示在第一设备上的应用的用户界面作为标记,而不是通过第二设备捕获用户界面时,第一设备可以将用户界面的每个帧发送到第二设备。然后,第二设备可以使用接收到的帧的流来执行流对齐。
在另一实施方式中,标记还可以将第一设备的一个或更多个姿势编码成代码。第二设备可以从标记的图像中解码代码并获得第一设备的一个或更多个姿势。
图6是示出软件架构604的框图600,该软件架构604可以被安装在本文所描述的设备中的任何一个或更多个设备上。软件架构604由硬件支持,该硬件例如包括处理器620、存储器626和I/O部件638的机器602。在该示例中,软件架构604可以被概念化为层的堆叠,在该层的堆叠中,每个层提供特定的功能。软件架构604包括下述层,例如操作系统612、库610、框架608和应用606。在操作上,应用606通过软件栈激活API调用650并且响应于API调用650而接收消息652。
操作系统612管理硬件资源并且提供公共服务。操作系统612包括例如内核614、服务616和驱动器622。内核614用作硬件与其他软件层之间的抽象层。例如,内核614提供存储器管理、处理器管理(例如,调度)、部件管理、联网、以及安全设置等功能。服务616可以为其他软件层提供其他公共服务。驱动器622负责控制底层硬件或与底层硬件对接。例如,驱动器622可以包括显示器驱动器、摄像装置驱动器、或低功耗驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
库610提供由应用606使用的低级公共基础设施。库610可以包括系统库618(例如,C标准库),该系统库618提供以下功能例如存储器分配功能、串操纵功能、数学功能等。另外,库610可以包括API库624,例如媒体库(例如,用于支持各种媒体格式的呈现和操纵的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)渲染的OpenGL框架)、数据库库(例如,用于提供各种关系数据库功能的SQLite)、网络库(例如,用于提供网页浏览功能的WebKit)等。库610还可以包括各种其他库628,以向应用606提供许多其他API。
框架608提供由应用606使用的高级公共基础设施。例如,框架608提供各种图形用户界面(GUI)功能、高级资源管理和高级位置服务。框架608可以提供可以由应用606使用的广泛的其他API,所述其他API中的一些API可以特定于特定操作系统或平台。
在示例实施方式中,应用606可以包括家庭应用636、联系人应用630、浏览器应用632、书籍阅读器应用634、位置应用642、媒体应用644、消息传送应用646、游戏应用648、以及广泛分类的其他应用例如第三方应用640。应用606是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式构造的应用606中的一个或更多个应用,所述编程语言例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C语言或汇编语言)。在特定示例中,第三方应用640(例如,由除特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在移动操作系统例如IOSTM、ANDROIDTM、Phone或其他移动操作系统上运行的移动软件。在该示例中,第三方应用640可以激活由操作系统612提供的API调用650以有助于本文所描述的功能。
图7是机器700的图形表示,在该机器700内可以执行用于使机器700执行本文所讨论的方法中的任何一个或更多个方法的指令708(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令708可以使机器700执行本文所描述的方法中的任何一个或更多个方法。指令708将通用的未编程的机器700变换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器700。机器700可以作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器700可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器700可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器700采取的动作的指令708的任何机器。此外,虽然仅示出了单个机器700,但是术语“机器”还应被视为包括单独或联合执行指令708以执行本文所讨论的任何一个或更多个方法的机器的集合。
机器700可以包括处理器702、存储器704和I/O部件742,所述处理器702、存储器704和I/O部件742可以被配置成经由总线744彼此通信。在示例实施方式中,处理器702(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如执行指令708的处理器706和处理器710。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图7示出了多个处理器702,但是机器700可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器704包括主存储器712、静态存储器714和存储单元716,所述主存储器712、静态存储器714和存储单元716均可由处理器702经由总线744访问。主存储器704、静态存储器714和存储单元716存储体现本文所描述的方法或功能中的任何一种或更多种方法或功能的指令708。指令708还可以在其被机器700执行期间完全地或部分地驻留在主存储器712内、在静态存储器714内、在存储单元716内的机器可读介质718内、在处理器702中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或其任何合适的组合内。
I/O部件742可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定I/O部件742将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解,I/O部件742可以包括图7中未示出的许多其他部件。在各种示例实施方式中,I/O部件742可以包括输出部件728和输入部件730。输出部件728可以包括视觉部件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件730可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例实施方式中,I/O部件742可以包括生物识别部件732、运动部件734、环境部件736、或定位部件738以及各种其他部件。例如,生物识别部件732包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件734包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件736包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件738包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种技术来实现通信。I/O部件742还包括通信部件740,通信部件740可操作以经由耦接724和耦接726将机器700耦接至网络720或设备722。例如,通信部件740可以包括网络接口部件或另外的合适的设备以与网络720对接。在其他示例中,通信部件740可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,低功耗)、部件以及经由其他形式提供通信的其他通信部件。设备722可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件740可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件740可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码,例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)码、Aztec码、数据矩阵、数据图示符(Dataglyph)、最大编码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码和其他光学码)、或者听觉检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件740得到各种信息,例如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,存储器704、主存储器712、静态存储器714和/或处理器702的存储器)和/或存储单元716可以存储一个或更多个指令集合和数据结构(例如,软件),所述一个或更多个指令集合和数据结构体现本文所描述的方法或功能中的任何一种或更多种方法或功能或者由本文所描述的方法或功能中的任何一种或更多种方法或功能使用。这些指令(例如,指令708)在由处理器702执行时使各种操作实现所公开的实施方式。
可以使用传输介质、经由网络接口设备(例如,包括在通信部件740中的网络接口部件)并使用许多公知的传输协议中的任何一种传输协议(例如,超文本传输协议(HTTP))在网络720上发送或接收指令708。类似地,可以使用传输介质经由到设备722的耦接726(例如,对等耦接)来发送或接收指令708。
现在转向图8,示出了处理环境800的图形表示,该处理环境800包括处理器806、处理器808和处理器802(例如,GPU、CPU或其组合)。
处理器802被示出为耦接至电源804,并且包括(永久配置的或者临时实例化的)模块,即AR会话客户端控制器部件810。AR会话客户端部件810在操作上可以例如初始化共享AR会话、使得显示标记、使用摄像装置来捕获标记的图像、生成变换(TC)和公共坐标系,以及使得显示共享AR会话。虽然未示出,但处理器802可以替选地包括可以执行AR会话服务器控制器126的操作的AR会话服务器控制器部件。如图所示,处理器802通信地耦接到处理器806和处理器808两者。
在类似于“A、B或C中的至少一个”、“A、B和C中的至少一个”、“一个或更多个A、B或C”或“A、B和C中的一个或更多个”的短语被使用的情况下,旨在将该短语解释为意指A可以单独存在于实施方式中,B可以单独存在于实施方式中,C可以单独存在于实施方式中,或者元素A、B和C的任何组合可以存在于单个实施方式中;例如,A和B、A和C、B和C,或者A和B和C。
在不脱离本公开内容的范围的情况下,可以对所公开的实施方式进行改变和修改。这些和其他改变或修改旨在包括在所附权利要求中所表达的本公开内容的范围内。
Claims (20)
1.一种方法,包括:
通过第一设备和通过第二设备来对共享增强现实(AR)会话进行初始化;
在所述第一设备的显示器上显示标记;
通过所述第二设备使用摄像装置来检测所述标记,所述第二设备包括所述摄像装置;
通过所述第二设备使用所述摄像装置来捕获所述标记的图像;
通过所述第二设备使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换;
使用所述变换来确定公共坐标系;
使用所述公共坐标系来生成所述共享AR会话;以及
使所述共享AR会话由所述第一设备和由所述第二设备显示。
2.根据权利要求1所述的方法,其中,通过所述第一设备和通过所述第二设备对所述共享AR会话进行初始化包括:
通过所述第一设备确定第一设备变换,其中,所述第一设备变换基于第一设备当前姿势和第一设备原点,其中,所述第一设备原点是由所述第一设备跟踪的坐标系的原点;
通过所述第二设备确定第二设备变换,其中,所述第二设备变换基于第二设备当前姿势和第二设备原点,其中,所述第二设备原点是由所述第二设备跟踪的坐标系的原点。
3.根据权利要求2所述的方法,其中,通过所述第二设备使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换还包括:
通过所述第二设备接收来自所述第一设备的所述第一设备变换。
4.根据权利要求3所述的方法,其中,通过所述第二设备使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换还包括:
通过所述第二设备基于所述第一设备变换来确定第二偏移量,其中,所述第二偏移量是所述第二设备当前姿势和所述第一设备原点的偏移量。
5.根据权利要求4所述的方法,其中,通过所述第二设备使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换还包括:
使用所述标记在所述图像中的位置、所述标记在所述图像中的比例或所述标记在所述图像中的旋转来确定所述变换。
6.根据权利要求1所述的方法,其中,所述标记包括会话标识符。
7.根据权利要求6所述的方法,其中,所述标记是快速响应(QR)码、自然特征标记或显示在所述第一设备的显示器上的应用的用户界面。
8.根据权利要求7所述的方法,还包括:
通过所述第二设备从所述标记的图像提取所述会话标识符。
9.根据权利要求8所述的方法,还包括:
通过所述第一设备使用所述第一设备的显示器上显示的所述标记中包括的所述会话标识符来访问通信会话;以及
通过所述第二设备使用从所述标记的图像提取的所述会话标识符来访问所述通信会话。
10.根据权利要求5所述的方法,还包括:
通过所述第二设备执行重力检查,其中,执行所述重力检查包括:
确定基于所述第一设备变换的重力的方向是否与基于所述第一设备与所述第二设备之间的变换的重力的方向相对应。
11.根据权利要求1所述的方法,还包括:
通过所述第二设备将所述标记的图像重新投影到屏幕空间,以确定被捕获的所述标记的图像的质量。
12.一种系统,包括:
处理器;以及
存储器部件,所述存储器部件具有存储在其上的指令,当由所述处理器执行时,使所述处理器执行包括以下的操作:
使用包括在第二设备中的摄像装置来检测由第一设备显示的标记;
使用所述摄像装置来捕获所述标记的图像;
使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换;
使用所述变换来确定公共坐标系;
使用所述公共坐标系来生成所述共享AR会话;以及
使所述共享AR会话由所述第一设备和由所述第二设备显示。
13.根据权利要求12所述的系统,其中,所述操作还包括:
从所述第一设备接收第一设备变换,其中,所述第一设备变换基于第一设备当前姿势和第一设备原点,其中,所述第一设备原点是由所述第一设备跟踪的坐标系的原点。
14.根据权利要求13所述的系统,其中,使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换还包括:
基于所述第一设备变换来确定第二偏移量,其中,所述第二偏移量是所述第二设备当前姿势和所述第一设备原点的偏移量。
15.根据权利要求14所述的系统,其中,使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换还包括:
使用所述标记在所述图像中的位置、所述标记在所述图像中的比例或所述标记在所述图像中的旋转来确定所述变换。
16.根据权利要求12所述的系统,其中,所述标记包括会话标识符。
17.根据权利要求16所述的系统,其中,所述标记是快速响应(QR)码、自然特征标记或显示在所述第一设备的显示器上的应用的用户界面。
18.根据权利要求16所述的系统,其中,所述操作还包括:
从所述标记的图像提取所述会话标识符。
19.根据权利要求18所述的系统,其中,所述操作还包括:
基于所述第一设备的显示器上显示的所述标记中包括的所述会话标识符,向所述第一设备提供对通信会话的访问;以及
基于从所述标记的图像提取的所述会话标识符,向所述第二设备提供对所述通信会话的访问。
20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质具有存储在其上的指令,当由处理器执行时,使所述处理器执行包括以下的操作:
使用包括在第二设备中的摄像装置来检测由第一设备显示的标记;
使用所述摄像装置来捕获所述标记的图像;
使用所述标记的图像来确定所述第一设备与所述第二设备之间的变换;
使用所述变换来确定公共坐标系;
使用所述公共坐标系来生成所述共享AR会话;以及
使所述共享AR会话由所述第一设备和由所述第二设备显示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/729,078 | 2019-12-27 | ||
US16/729,078 US11663736B2 (en) | 2019-12-27 | 2019-12-27 | Marker-based shared augmented reality session creation |
PCT/US2020/066892 WO2021133942A1 (en) | 2019-12-27 | 2020-12-23 | Marker-based shared augmented reality session creation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114868101A true CN114868101A (zh) | 2022-08-05 |
Family
ID=74206177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080089397.XA Pending CN114868101A (zh) | 2019-12-27 | 2020-12-23 | 基于标记的共享增强现实会话创建 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11663736B2 (zh) |
EP (2) | EP4081884B1 (zh) |
KR (1) | KR20220114081A (zh) |
CN (1) | CN114868101A (zh) |
WO (1) | WO2021133942A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11663736B2 (en) | 2019-12-27 | 2023-05-30 | Snap Inc. | Marker-based shared augmented reality session creation |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
US11360733B2 (en) | 2020-09-10 | 2022-06-14 | Snap Inc. | Colocated shared augmented reality without shared backend |
US11539801B1 (en) * | 2021-08-04 | 2022-12-27 | Lemon Inc. | Shared augmented reality sessions for rendering video effects |
US11863596B2 (en) | 2021-12-07 | 2024-01-02 | Snap Inc. | Shared augmented reality session creation |
US11949527B2 (en) | 2022-04-25 | 2024-04-02 | Snap Inc. | Shared augmented reality experience in video chat |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002047031A2 (en) * | 2000-12-05 | 2002-06-13 | Yeda Research And Development Co. Ltd. | Apparatus and method for alignment of spatial or temporal non-overlapping image sequences |
JP3779308B2 (ja) * | 2004-07-21 | 2006-05-24 | 独立行政法人科学技術振興機構 | カメラ校正システム及び三次元計測システム |
US8839121B2 (en) * | 2009-05-06 | 2014-09-16 | Joseph Bertolami | Systems and methods for unifying coordinate systems in augmented reality applications |
US9013550B2 (en) * | 2010-09-09 | 2015-04-21 | Qualcomm Incorporated | Online reference generation and tracking for multi-user augmented reality |
JP5966510B2 (ja) * | 2012-03-29 | 2016-08-10 | ソニー株式会社 | 情報処理システム |
JP5912059B2 (ja) * | 2012-04-06 | 2016-04-27 | ソニー株式会社 | 情報処理装置、情報処理方法及び情報処理システム |
US20170243403A1 (en) | 2014-11-11 | 2017-08-24 | Bent Image Lab, Llc | Real-time shared augmented reality experience |
WO2017027338A1 (en) | 2015-08-07 | 2017-02-16 | Pcms Holdings, Inc. | Apparatus and method for supporting interactive augmented reality functionalities |
US20180130259A1 (en) * | 2016-06-15 | 2018-05-10 | Dotty Digital Pty Ltd | System, Device or Method for Collaborative Augmented Reality |
WO2019084726A1 (zh) * | 2017-10-30 | 2019-05-09 | 深圳市柔宇科技有限公司 | 基于标志物的摄像头图像处理方法、增强现实设备 |
US11132842B2 (en) * | 2017-12-22 | 2021-09-28 | Unity IPR ApS | Method and system for synchronizing a plurality of augmented reality devices to a virtual reality device |
US10773169B2 (en) * | 2018-01-22 | 2020-09-15 | Google Llc | Providing multiplayer augmented reality experiences |
US10771512B2 (en) | 2018-05-18 | 2020-09-08 | Microsoft Technology Licensing, Llc | Viewing a virtual reality environment on a user device by joining the user device to an augmented reality session |
US11321929B2 (en) * | 2018-05-18 | 2022-05-03 | Purdue Research Foundation | System and method for spatially registering multiple augmented reality devices |
US11010977B2 (en) * | 2018-05-31 | 2021-05-18 | Jido, Inc. | Method for establishing a common reference frame amongst devices for an augmented reality session |
WO2020078443A1 (zh) * | 2018-10-18 | 2020-04-23 | 广东虚拟现实科技有限公司 | 基于增强现实的虚拟内容显示方法、系统及终端设备 |
US20200274906A1 (en) * | 2019-02-27 | 2020-08-27 | Hoc Drop, LLC | Methods and systems for real-time media content sharing |
JP7248490B2 (ja) * | 2019-04-24 | 2023-03-29 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、デバイスの位置および姿勢の推定方法 |
DE102019116381A1 (de) * | 2019-06-17 | 2020-12-17 | Schölly Fiberoptic GmbH | Verfahren zur Bestimmung der Bildposition eines Markierungspunktes in einem Bild einer Bildsequenz |
US11663736B2 (en) | 2019-12-27 | 2023-05-30 | Snap Inc. | Marker-based shared augmented reality session creation |
-
2019
- 2019-12-27 US US16/729,078 patent/US11663736B2/en active Active
-
2020
- 2020-12-23 EP EP20845485.0A patent/EP4081884B1/en active Active
- 2020-12-23 WO PCT/US2020/066892 patent/WO2021133942A1/en unknown
- 2020-12-23 KR KR1020227025567A patent/KR20220114081A/ko unknown
- 2020-12-23 EP EP24167055.3A patent/EP4369305A2/en active Pending
- 2020-12-23 CN CN202080089397.XA patent/CN114868101A/zh active Pending
-
2023
- 2023-05-06 US US18/144,171 patent/US20230274461A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11663736B2 (en) | 2019-12-27 | 2023-05-30 | Snap Inc. | Marker-based shared augmented reality session creation |
Also Published As
Publication number | Publication date |
---|---|
WO2021133942A1 (en) | 2021-07-01 |
US20230274461A1 (en) | 2023-08-31 |
KR20220114081A (ko) | 2022-08-17 |
US11663736B2 (en) | 2023-05-30 |
EP4081884B1 (en) | 2024-04-03 |
EP4081884A1 (en) | 2022-11-02 |
EP4369305A2 (en) | 2024-05-15 |
US20210201530A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960651B2 (en) | Gesture-based shared AR session creation | |
US11488358B2 (en) | Augmented reality session creation using skeleton tracking | |
US11394676B2 (en) | Media content response in a messaging system | |
CN110168478B (zh) | 表面识别镜头 | |
EP4081884B1 (en) | Marker-based shared augmented reality session creation | |
CN115039401A (zh) | 用于按需渲染帧的视频生成系统 | |
CN115004714A (zh) | 选择要包括在按需生成的视频中的化身 | |
US11700225B2 (en) | Event overlay invite messaging system | |
US20220076492A1 (en) | Augmented reality messenger system | |
US20210409615A1 (en) | Skeletal tracking for real-time virtual effects | |
CN115516406B (zh) | 使用生物数据进行的深度估计 | |
US11128715B1 (en) | Physical friend proximity in chat |
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 |