CN115053519A - 使用骨骼追踪的增强现实会话创建 - Google Patents

使用骨骼追踪的增强现实会话创建 Download PDF

Info

Publication number
CN115053519A
CN115053519A CN202180012517.0A CN202180012517A CN115053519A CN 115053519 A CN115053519 A CN 115053519A CN 202180012517 A CN202180012517 A CN 202180012517A CN 115053519 A CN115053519 A CN 115053519A
Authority
CN
China
Prior art keywords
session
transformation
user
coordinate system
origin
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
Application number
CN202180012517.0A
Other languages
English (en)
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.)
Snap Inc
Original Assignee
Snap Inc
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
Application filed by Snap Inc filed Critical Snap Inc
Publication of CN115053519A publication Critical patent/CN115053519A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

公开了用于创建共享增强现实(AR)会话的方法和系统。所述方法和系统执行包括以下操作的操作:由第二设备接收(502)用于加入由第一设备初始化(501)的AR会话的请求;响应于接收到所述请求,在由第二设备的摄像机捕获的一个或更多个图像中检测(503)与第一设备的用户对应的身体;识别(504)所检测到的与第一设备的用户对应的身体的身体部位;由第二设备使用所识别到的身体部位来确定(505)第一设备与第二设备之间在AR会话中的变换;以及使(506)第二设备基于所确定的变换来显示AR会话。

Description

使用骨骼追踪的增强现实会话创建
优先权要求
本申请要求于2020年2月5日提交的美国专利申请第16/782,874号的优先权,该美国专利申请通过引用整体并入本文。
背景技术
增强现实(AR)是对虚拟环境的修改。例如,在虚拟现实(VR)中,用户完全沉浸在虚拟世界中,而在AR中,用户沉浸在将虚拟对象与现实世界组合或将虚拟对象叠加在现实世界上的世界中。AR系统旨在生成并呈现与现实世界环境彼此真实地交互并且彼此之间进行交互的虚拟对象。AR应用的示例可以包括单人或多人视频游戏、即时消息传送系统等。
附图说明
在附图中,相同的附图标记可以在不同的视图中描述类似的部件,附图不一定按比例绘制。具有不同字母后缀的相同附图标记可以表示类似部件的不同实例。在附图中以示例而非限制的方式示出了一些实施方式,在附图中:
图1是根据一些示例实施方式的可以部署本公开内容的联网环境的图形表示。
图2是根据一些示例实施方式的消息传送客户端应用的图形表示。
图3是根据一些示例实施方式的如在数据库中维护的数据结构的图形表示。
图4是根据一些示例实施方式的消息的图形表示。
图5是根据一些示例实施方式的用于使用骨骼追踪来创建AR会话的过程的流程图。
图6是示出根据一些示例实施方式的可以在其中实现本公开内容的软件架构的框图。
图7是根据一些示例实施方式的呈计算机系统的形式的机器的图形表示,在该计算机系统内可以执行指令集合以使该机器执行所讨论的方法中的任何一种或更多种方法。
图8是根据一些示例实施方式的处理环境的图形表示。
具体实施方式
以下描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列及计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。通常,公知的指令实例、协议、结构和技术不必详细示出。
此外,本公开内容的实施方式通过基于骨骼位置和追踪来针对共享AR会话建立共同坐标系来改进AR创建软件和系统的功能。在一个实施方式中,系统托管共享AR会话,共享AR会话是多个用户可以经由客户端设备参与的会话。共享AR会话中的每个用户可以从每个用户自己的视角看到位于现实世界场景中的相同AR对象。共享AR会话可以是例如每个用户控制不同的汽车的AR赛车游戏。每个用户观看相同的共享AR场景,该共享AR场景包括同时显示在客户端设备上的现实世界对象。在共享AR场景中,在每个客户端设备上显示共同AR对象或AR对象的集合,所述AR对象例如AR汽车。以这种方式,用户能够从不同的取向、位置和视角观看AR场景,同时仍然能够看到共同AR对象或AR对象的集合。体验可以在所有用户之间同步和共享。在该示例中,共享AR会话中的一个用户的动作可以被同步并广播至所有其他用户。因此,共享AR会话是共享的虚拟空间,但处于AR中。作为另一示例,两个用户可以将他们的设备指向包含桌子的现实世界场景。这两个用户可以彼此相邻或彼此隔着桌子。AR对象例如虚拟纸可以被放置在现实世界桌子上并且每个用户在他们各自的设备上查看。当一个用户通过在虚拟纸上以虚拟墨水进行书写来修改该纸时,另一个用户可以同时看到正被修改的虚拟纸。
生成共享AR会话的一个挑战是建立共享AR场景的原点以及如何使共享AR场景相对于周围环境对准。例如,当用户在追踪共享AR场景时,客户端设备中的每一个可以检测其在空间中的位置以及其在共享AR场景内的移动。然而,客户端设备可能不会去检测或确定相同的原点位置或AR场景如何相对于共享AR场景中相应设备的周围环境对准。因此,虽然客户端设备中的每个客户端设备均呈现相同的虚拟内容(例如,汽车、赛道)等,但是该虚拟内容可能在每个设备上不会出现在共享AR场景内的相同位置处。例如,虚拟内容可能不会在各客户端设备的显示屏幕中的每个显示屏幕上进行旋转以便以相同的方式对准。
在一些情况下,可以使用预定义标记来同步共享AR场景。例如,一个设备可以显示条形码或其他合适的预定义图像以供另一设备扫描并确定针对AR场景的适当变换。即,第二设备可以使用第一设备的下述取向来确定关于第一设备的坐标系的信息:所述取向是第二设备扫描在第一设备上显示的标记时第一设备的取向。在2019年12月27日提交的共同拥有、共同转让的美国专利申请第16/729,078号中进一步详细地描述了这样的系统的示例,该美国专利申请通过引用整体并入本文。虽然这样的系统通常适合于同步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会话的会话标识符;第一设备与第二设备(例如,多个客户端设备102,包括第一设备和第二设备)之间的变换(transformation),该变换用于将共享AR会话对准至共同原点;共同坐标系;功能(例如,激活函数的命令)以及其他有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。在一些情况下,AR会话客户端控制器124基于在由两个设备中的一个设备捕获的一个或更多个图像中描绘的身体的身体部位的位置和取向来计算这两个设备之间的变换。例如,两个设备中的第一设备可以包括指向两个设备中的第二设备的用户的摄像机。第一设备可以将一个或更多个图像连同第一设备的位置和取向信息一起发送至AR会话服务器控制器126。作为示例,第一设备可以发送第一设备的原点和坐标系(coordinate system or frame)。AR会话服务器控制器126可以对一个或更多个图像进行处理以识别图像中所描绘的身体的骨骼关节位置。AR会话服务器控制器126可以识别身体部位,例如骨骼关节位置中的腕关节位置。
AR会话服务器控制器126可以基于所识别的身体部位来计算变换(例如,共同坐标系),该变换表示所识别的身体部位如何相对于第一设备的位置和取向而定位在AR场景中。即,该变换表示与第二设备的原点对应的身体部位(例如,手腕位置)如何相对于第一设备出现。作为示例,第二设备可以被握持在第二设备的用户的右手中,这意指右手腕位置是第二设备生成AR内容所依据的原点。通过确定该原点相对于第一设备的位置并以变换的形式将该信息提供至第二设备,第二设备可以确定要将第二设备呈现的AR内容移位的偏移量。AR会话服务器控制器126将变换发送至第二设备,使得第二设备可以基于该变换来调整AR坐标系。以这种方式,第一设备和第二设备将它们的坐标系(coordinate systems andframes)同步以显示AR会话中的内容。具体地,AR会话服务器控制器126计算第二设备在第一设备的坐标系中的原点。然后,AR会话服务器控制器126可以基于从第二设备的视角来看的所述原点在第二设备的坐标系中的位置来确定第二设备的坐标系中的偏移量。使用该偏移量生成变换,使得第二设备根据与第一设备共用的共同坐标系(coordinate system orframe)生成AR内容。
具体地,现在转至消息传送服务器系统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的多个实例接收的消息中包括的内容(例如,文本和多媒体内容)的汇集和其他处理有关的消息处理技术和功能。如将进一步详细地描述的,来自多个源的文本和媒体内容可以被汇集成内容的集合(例如,被称为故事(story)或图库(gallery))。然后消息传送服务器应用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处理的消息的媒体覆盖(media overlay)相关的功能。注释系统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中的其他注释数据是所谓的“镜头(LENS)”数据。“镜头”可以是可添加至图像或视频的实时特殊效果和声音。
如以上所提及的,视频表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中所描述的系统)或其任何部分(例如,包括在所述系统中的任一者中的处理器)执行。
在操作501处,(例如,作为第一设备发起AR会话的结果,由第一设备、由第二设备和/或在服务器上)初始化AR会话。例如,第一客户端设备(例如,客户端设备102)中的AR会话客户端控制器124可以对共享AR会话进行初始化。
在操作502处,第二设备接收用于加入第一设备的AR会话的请求。响应于接收到该请求,第二设备激活AR会话并在第二设备上对AR会话进行初始化。在一个实施方式中,在共享AR会话的初始化期间,第一设备和第二设备可以处于彼此独立的、活动的即时定位与地图构建(Simultaneous Localization And Mapping,SLAM)会话中,并且这些SLAM会话映射需要彼此对准以建立共享AR会话。在一个示例中,第二设备经由消息传送客户端应用104从第一设备接收带有AR会话标识符的消息。第二设备可以接收用于加入在所述消息中识别到的AR会话的(例如,屏幕上按钮或链接的)用户选择。响应于接收到屏幕上按钮的用户选择,第二设备使用AR会话标识符来加入与第一设备的共享AR会话,使得第一设备和第二设备同步并且相对于每个设备显示的现实世界场景显示相同的AR内容。
在一些实施方式中,对共享AR会话进行初始化包括由第一设备确定第一设备变换(例如,称为变换TA)。第一设备变换可以基于第一设备当前姿势和第一设备原点。第一设备当前姿势可以是第一设备相对于现实世界在x、y、z轴上的位置和取向。第一设备原点是由第一设备追踪的坐标系的原点。在一些情况下,变换TA可以表示从第一设备原点到用户的手的变换。类似地,对共享AR会话进行初始化还可以包括由第二设备确定第二设备变换(例如,称为变换TB)。第二设备变换可以基于第二设备当前姿势和第二设备原点。第二设备当前姿势可以是第二设备相对于现实世界在x、y、z轴上的位置和取向。第二设备原点是由第二设备追踪的坐标系的原点。由第一设备追踪的坐标系的原点可以不同于由第二设备追踪的坐标系的原点。这样,计算共同变换以同步第一设备的坐标系和第二设备的坐标系,使得AR内容一致地呈现在第一设备和第二设备上。
在操作503处,响应于接收到用于加入第一设备的AR会话的请求,在由第二设备的摄像机捕获的一个或更多个图像中检测与第一设备的用户对应的身体。例如,响应于接收到请求,第二设备向用户显示指示用户将第二设备的摄像机指向第一设备的用户的提示,其中,第一设备的用户是第二设备的用户希望与之加入AR会话的用户。当第二设备的用户将摄像机指向第一设备的用户时,第二设备捕获一个或更多个图像。第二设备在所述一个或更多个图像中检测身体(例如,人类姿势)。例如,第二设备通过执行图像处理并采用人体识别和分类处理(例如,使用机器学习,诸如经训练的神经网络)来在一个或更多个图像中检测身体。
在操作504处,第二设备识别所检测到的与第一设备的用户对应的身体的身体部位。例如,第二设备的第二用户可以将第二设备指向第一设备的第一用户,使得第一用户的身体在第二设备中所包括的摄像机的视场中。然后,第二设备可以找到与第一用户的握持第一设备的手对应的手腕位置或手腕骨骼关节位置。第二设备中的AR会话客户端控制器124通过对摄像机视场内的一个或更多个图像进行分析来检测手腕骨骼关节位置或变换。骨骼关节变换包括骨骼关节在3D空间中的定位以及骨骼关节位置的旋转信息。在一个实施方式中,AR会话客户端控制器124实施骨骼关节检测算法以检测手腕骨骼关节位置和变换。具体地,一旦在由第二设备捕获的一个或更多个图像中识别到身体,第二设备生成身体的骨骼关节表示。骨骼关节表示标识与身体的不同骨骼关节(例如,头关节、肩关节、臂关节、腕关节、腿关节、脚关节等)对应的一组点。
在一些实施方式中,第二设备对一个或更多个图像中描绘的身体进行分析以识别哪只手(左或右)在握持第一设备。第二设备选择与握持第一设备的手对应的手腕的骨骼关节。特别地,第一设备的坐标系的原点是该设备的3D空间中的恒定点。第一设备可以计算相对于该恒定点的变换,以表示第一设备相对于恒定原点随时间的移动。在一个实施方式中,变换表示握持第一设备的手相对于第一设备的原点的位置。因此,通过识别握持第一设备的手的腕部骨骼关节位置和变换,第二设备可以确定第一设备在第二设备的坐标系中的3D空间中的位置。在一些实施方式中,第一设备可以是头戴式设备。在这样的情况下,第二设备对在一个或更多个图像中描绘的身体进行分析以识别佩戴第一设备的头部。第二设备选择头部的骨骼关节。特别地,第一设备的变换基于佩戴第一设备的头部在3D空间中相对于第一设备原点的位置。因此,通过识别佩戴第一设备的头部的头部骨骼关节位置和变换,第二设备可以确定第一设备在第二设备的坐标系中的3D空间中的位置。
在操作505处,第二设备使用所识别的身体部位确定第一设备与第二设备之间在AR会话中的变换。例如,第二设备的AR会话客户端控制器124使用手腕骨骼关节位置或变换(例如,表示第一设备的坐标系中的原点并且包括旋转信息的骨骼关节变换)来确定第一设备的原点与第二设备的原点之间的变换(TC)。变换(TC)可以是描述第一设备的原点与第二设备的原点之间的变换的变换矩阵。具体地,第二设备计算从第一设备在第一设备的坐标系中的原点到该原点在第二设备的坐标系中的位置的偏移量或变换。作为示例,第一设备基于在第一设备坐标系中的3D空间中的第一位置处的第一设备的原点来确定变换。第二设备将第一设备的原点(例如,骨骼腕关节的位置和变换)标识为处于第二设备坐标系的3D空间中的第二位置处。第二设备接收由第一设备确定的第一设备坐标系或变换,并且将第二设备坐标系的3D空间中的第二位置的位置相对于第一设备坐标系中的第一位置进行比较。作为示例,第二设备确定第二位置相对于第一位置偏移5度3厘米。作为响应,第二设备计算表示两个设备的原点之间的该偏移量的变换,并且可以将该变换发送至第一设备。然后,第一设备基于该变换中指示的偏移量来移位第一设备显示的所有AR内容。
在一个实施方式中,第二设备从第一设备接收第一设备变换(TA),并且还使用该第一设备变换(TA)来确定第一设备的原点与第二设备的原点之间的变换(TC)。在该实施方式中,变换(TC)可以是描述第一设备变换(TA)(基于第一设备的原点确定)与第二设备变换(TB)(基于第二设备的原点确定)之间的变换的变换矩阵。第二设备的AR会话客户端控制器124还可以基于第一设备变换(TA)来确定第二偏移量。第二偏移量可以是第二设备当前姿势与第一设备原点的偏移量。在该实施方式中,第二偏移量与由共享AR会话中的其他设备计算的偏移量呈菊式链接,以确保共享AR会话中的设备可以在AR共享会话的相同原点(例如,共享AR世界原点)上彼此对准。
在一个实施方式中,第二设备的AR会话客户端控制器124通过使用一个或更多个图像中的手腕骨骼关节位置的位置或变换、一个或更多个图像中的手腕骨骼关节位置或变换的缩放(scale)、或一个或更多个图像中的手腕骨骼关节位置或变换的旋转或其任何组合来确定第一设备的原点与第二设备的原点之间的变换(TC)。例如,为了确定变换(TC),第二设备的AR会话客户端控制器124可以使用基本的计算机视觉、图像的操纵、几何学、平移、视觉表示、角度、距离等。
在一个实施方式中,第二设备的AR会话客户端控制器124将变换(TC)发送至第一设备的AR会话客户端控制器124和/或AR会话服务器控制器126。第二设备的AR会话客户端控制器124还可以例如经由消息传送客户端应用104在(组)通信会话中发送变换(TC)。在一些实施方式中,第二设备的AR会话客户端控制器124使用变换(TC)来确定共同坐标系。在一些实施方式中,第一设备的AR会话客户端控制器124使用从第二设备接收的变换(TC)来确定共同坐标系。
在操作506处,基于所确定的变换,第一设备中的AR会话客户端控制器124使得通过第一设备来显示共享AR会话,并且第二设备中的AR会话客户端控制器124使得通过第二设备来显示共享AR会话。在一个实施方式中,使得通过第一设备和第二设备来显示共享AR会话中所包括的共享AR场景。
在一个实施方式中,第二设备的AR会话客户端控制器124可以将导致与重力相反的变换(TC)的腕关节位置或变换的图像过滤掉。尽管所捕获的腕关节位置或变换的帧(frames)在沿地平面的位置中在旋转上偏移,但是第一设备和第二设备两者均可以关于地面所在的位置彼此对准(例如,哪个方向为向上,哪个方向为向下)。第二设备的AR会话客户端控制器124通过确定观察到的第一当前姿势(或捕获到的腕关节位置的图像)是否与重力相反来执行重力检查。
在该实施方式中,第二设备的AR会话客户端控制器124接收包括重力轴的角度的信息,并使用该信息与腕关节位置的追踪数据(例如,通过第二设备中的摄像机捕获的标记的帧)进行比较。然后,第二设备的AR会话客户端控制器124检查第一设备和第二设备在如何相对于重力位置定向第一设备的姿势方面是否匹配。然后,第二设备的AR会话客户端控制器124可以将在相对于重力位置的取向方面存在分歧的数据(或捕获的标记的帧)(例如,较低质量的数据)过滤掉。
作为示例,在变换被提供给第一设备之后,第一设备和第二设备同步AR内容的显示。具体地,第一设备和第二设备的相应摄像机可以从不同的角度指向现实世界的桌子。AR会话可以使AR纸对象(例如,虚拟纸)显示在现实世界桌子之上。在这样的情况下,第一设备在第一设备的屏幕上显示在现实世界桌子之上的AR纸对象,同时第二设备在第二设备的屏幕上显示在同一现实世界桌子之上的同一共同AR纸对象。为了同步AR纸的位置,第一设备基于从第二设备接收的变换来移位或改变AR纸对象相对于第一设备坐标系的原点的放置位置。
在一些实施方式中,当在由第二设备捕获的一个或更多个图像中检测到第一设备的用户的身体时,第二设备重算或重新计算第一设备的坐标系与第二设备的坐标系之间的变换。例如,第一设备和第二设备使用初始计算的变换来开始参与共享AR会话。该变换可以由第二设备使用由第一设备显示的标记和/或通过标识第一设备的用户的骨骼腕关节位置或变换来计算或确定。在第一设备和第二设备参与共享AR会话的稍后时间(例如,五分钟之后),第二设备可以再次在由第二设备捕获的现实世界图像中识别身体和对应的身体部位(例如,手腕骨骼关节位置)。响应于识别到身体,第二设备执行上述处理以使用所识别的身体部位来计算第一设备与第二设备之间在AR会话中的第二变换。在一些实施方式中,每次在由第二设备捕获的一个或更多个图像中识别到身体时计算第二变换。在一些实施方式中,以预定时间间隔(例如,进入共享AR会话后每五分钟)周期性地计算第二变换。在这样的情况下,在经过预定时间间隔之后,然后第二设备开始对由第二设备捕获的图像进行处理以识别第一设备的用户的身体。在一些实现方式中,第一设备的用户的身体可能在达到预定时间间隔几分钟或几小时之后才出现。但是,一旦在达到预定时间间隔几分钟或几小时之后识别到身体,则基于所识别的身体来计算第二变换。在一些情况下,在达到预定时间间隔之前捕获到第一设备的用户的身体的图像,但是将所述图像缓存并且在达到预定时间间隔之后对其进行处理以计算第二变换。
在一些实施方式中,第二设备将最近计算的第二变换与先前计算且确定的变换进行比较。第二设备基于将第二变换与先前计算并确定的变换进行比较来计算误差。第二设备基于误差的值相对于阈值来确定是否用第二变换来更新第一设备所使用的变换。具体地,如果第二设备确定误差小于阈值,则第二设备阻止用第二变换来更新第一设备所使用的变换。即,第一设备维持基于先前确定的变换而不是基于最近计算的第二变换来呈现共享AR会话内容。
在一些实现方式中,如果第二设备确定误差等于或大于阈值,则第二设备基于第二变换来使得AR会话被显示。具体地,第二设备将第二变换与用第二变换替换当前使用的变换的指令一起发送至第一设备。以上或以下对骨骼关节位置的引用应被理解为包括骨骼关节位置在3D空间中的位置以及关于骨骼关节位置的旋转信息。
在一些实施方式中,第二设备存储或访问多个阈值。基于内容在共享AR会话内的定位,从多个阈值中选择第二设备将两个变换之间的误差与之进行比较的阈值。作为示例,多个阈值中的第一阈值可以对应于相对于一个或更多个现实世界对象定位的AR内容。具体地,第一阈值可以对应于虚拟对象在现实世界对象之上、之下、侧面或相对于现实世界对象的某个其他位置处的显示。例如,第一阈值可以对应于放置在桌子上的虚拟纸对象。这样的阈值可能是非常小的值,因为虚拟对象的放置的精度可能需要为高。在这样的情况下,第一设备和第二设备可能需要相对于现实世界对象非常准确地放置虚拟对象。作为另一示例,大于第一阈值的第二阈值可以对应于独立于任何现实世界对象定位的AR内容。具体地,第二阈值可以对应于现实世界场景中任何地方的虚拟对象的显示,例如浮动的虚拟纸或虚拟图形。这样的虚拟对象的定位不依赖于现实世界对象的定位,因此,虚拟对象的放置的精度级别可以保持为低。作为另一示例,第三阈值可以对应于在AR会话中呈现的虚拟内容的类型。具体地,当虚拟内容对应于第一对象大小时,第三阈值可以是相对大的值,而当虚拟内容对应于小于第一对象大小的第二对象大小时,第三阈值可以是相对小的值。当虚拟内容对应于静态对象时,第三阈值可以是相对大的值,而当虚拟内容对应于动画对象时,第三阈值可以是相对小的值。
在一些实施方式中,第二设备确定在第一设备与第二设备之间的共享AR会话中显示的虚拟内容的类型,以及该虚拟内容是否相对于现实世界对象进行放置。第二设备基于虚拟内容的类型以及虚拟内容是否相对于现实世界对象被定位或放置来选择多个阈值之一以与变换之间的误差进行比较。在一些情况下,在共享AR会话中显示多个AR对象。在这样的情况下,第二设备检索对应于每个AR对象的多个阈值,并且选择具有多个阈值中的最小值的阈值。第二设备使用所选择的阈值来与在第二变换和先前计算的当前用于生成共享AR会话的变换之间计算的误差进行比较。
在一些实施方式中,第二设备可以通过调整由第二设备确定的变换来加入与第一设备的共享AR会话。在这样的情况下,加入AR会话的每个设备可以不需要发回共享的变换。例如,第二设备可以识别对应于第一设备(例如,握持第一设备的手或佩戴第一设备的头部)的骨骼关节位置。第二设备可以基于3D空间中与所识别的骨骼关节位置对应的点来计算第二设备基于第二设备的原点确定的坐标系的变换。第二设备可以基于该变换来调整第二设备的坐标系。这样,相对于第二设备的原点以及所识别的对应于第一设备的骨骼关节位置来调整由第二设备呈现的虚拟内容的放置和定位。虚拟内容放置和定位与基于由第二设备计算的变换在第一设备上呈现相同内容的方式同步。在该实现方式中,加入共享AR会话的设备(例如,第二设备)而不是发起AR会话的设备(例如,第一设备)对其用于呈现AR内容的自身坐标系进行调整。在这种情况下,第一设备基于第一设备的坐标系继续呈现AR会话中的内容,而无需基于所计算的变换来调整坐标系。第二设备基于所计算的变换来调整第二设备的坐标系,以使用与第一设备对应的骨骼关节位置、基于所确定的第一设备在3D空间中的位置来同步第二设备上的内容的显示。
图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可以包括显示驱动器、摄像机驱动器、
Figure BDA0003779522480000181
Figure BDA0003779522480000182
低功耗驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、
Figure BDA0003779522480000183
驱动器、音频驱动器、电源管理驱动器等。
库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)、web库(例如,提供网页浏览功能的WebKit)等。库610还可以包括多种其他库628,以向应用606提供许多其他API。
框架608提供由应用606使用的高级公共基础设施。例如,框架608提供各种图形用户界面(GUI)功能、高级资源管理和高级位置服务。框架608可以提供可由应用606使用的广泛的其他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
Figure BDA0003779522480000191
Phone或其他移动操作系统上运行的移动软件。在该示例中,第三方应用640可以激活操作系统612所提供的API调用650,以促进本文描述的功能。
图7是机器700的图形表示,在机器700中可以执行用于使机器700执行本文所讨论的方法中的任何一个或更多个方法的指令708(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令708可以使机器700执行本文所描述的方法中的任何一个或更多个方法。指令708将通用的未经编程的机器700转换成特定机器700,该特定机器700被编程为以所描述的方式执行所描述和所示出的功能。机器700可以作为独立设备操作或者可以耦接(例如,联网)到其他机器。在网络部署中,机器700可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器700可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web电器、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定要由机器700采取的动作的指令708的任何机器。此外,虽然仅示出了单个机器700,但是术语“机器”还应被视为包括单独或联合执行指令708以执行本文中讨论的任何一种或更多种方法的机器的集合。
机器700可以包括处理器702、存储器704和I/O部件742,它们可以被配置成经由总线744彼此通信。在示例实施方式中,处理器702(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、其他处理器或其任何合适的组合)可以包括例如执行指令708的处理器706和处理器710。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时称为“核”)。尽管图7示出了多个处理器702,但是机器700可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器704包括处理器702可以经由总线744访问的主存储器712、静态存储器714和存储单元716。主存储器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)部件、
Figure BDA0003779522480000211
部件(例如,
Figure BDA0003779522480000212
低功耗)、
Figure BDA0003779522480000213
部件以及经由其他形式提供通信的其他通信部件。设备722可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件740可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件740可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述各项的光学传感器:一维条形码,例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)代码、Aztec代码、数据矩阵、数据图示符(Dataglyph)、麦克斯码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码;以及其他光学代码)或者声学检测部件(例如,用于识别已标记的音频信号的麦克风)。另外,可以经由通信部件740得出各种信息,例如经由因特网协议(IP)地理定位的位置、经由
Figure BDA0003779522480000221
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,存储器704、主存储器712、静态存储器714和/或处理器702的存储器)和/或存储单元716可以存储一组或更多组指令和数据结构(例如,软件),这些指令和数据结构体现或由本文描述的方法或功能中的任何一个或更多个使用。当由处理器702执行时,这些指令(例如,指令708)引起各种操作来实现所公开的实施方式。
可以使用传输介质、经由网络接口设备(例如,包括在通信部件740中的网络接口部件)并使用多个公知传输协议中的任何一种传输协议(例如,超文本传输协议(HTTP))通过网络720来发送或接收指令708。类似地,可以使用传输介质经由到设备722的耦接726(例如,对等耦接)来发送或接收指令708。
现在转至图8,图8示出了处理环境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.根据权利要求1至2中任一项所述的方法,其中,所述第一设备通过下述方式来初始化所述AR会话:由所述第一设备基于第一设备当前姿势和第一设备原点来确定第一设备变换,其中所述第一设备原点是由所述第一设备追踪的第一坐标系的第一原点。
4.根据权利要求3所述的方法,还包括:由所述第二设备响应于接收到用于加入所述第一设备的AR会话的请求来确定第二设备变换,所述第二设备变换基于第二设备当前姿势和第二设备原点,其中所述第二设备原点是由所述第二设备追踪的第二坐标系的第二原点。
5.根据权利要求1至4中任一项所述的方法,还包括:
将表示所述第二设备上的AR内容相对于所述第一设备的位置而言的坐标的所述变换从所述第二设备发送至所述第一设备。
6.根据权利要求5所述的方法,其中,由所述第二设备确定所述第一设备与所述第二设备之间的变换包括:
由所述第二设备使用所述第二设备的当前姿势和所述第一设备的原点、基于所述第一设备变换来确定偏移量。
7.根据权利要求1至6中任一项所述的方法,其中,识别所述身体部位还包括:
对所述一个或更多个图像进行处理以识别所述身体的多个骨骼位置;以及
从所述多个骨骼位置中识别与所述身体部位对应的骨骼位置。
8.根据权利要求7所述的方法,其中,所述身体部位是手腕,并且与所述身体部位对应的骨骼位置包括腕关节。
9.根据权利要求8所述的方法,还包括:
在所述一个或更多个图像中搜索所述第一用户设备的图像;
确定所述第一用户设备被所述第一用户握持在所述第一用户的右手中;以及
基于确定所述第一用户设备被所述第一用户握持在所述第一用户的右手中,选择与所述右手对应的手腕作为所述身体部位。
10.根据权利要求1至9中任一项所述的方法,其中,所述第一设备使用第一坐标系来显示AR对象,其中,所述第二设备使用第二坐标系来显示AR对象,并且其中,使所述第一设备和所述第二设备显示所述AR会话包括:
基于所述第二坐标系在所述第二设备上显示所述AR会话中的共同AR对象;
使所述第一设备基于所述第一设备与所述第二设备之间在所述AR会话中的变换来调整所述第一设备的第一坐标系;以及
使所述第一设备基于对所述第一坐标系的调整在所述第一设备上显示所述AR会话中的共同AR对象。
11.根据权利要求1至10中任一项所述的方法,其中,所述变换是第一变换,并且所述方法还包括:
当在继所述一个或更多个图像之后捕获的附加图像中检测到所述身体的情况下,在所述AR会话期间计算第二变换。
12.根据权利要求11所述的方法,还包括:
每当在所述AR会话期间检测到所述身体时,计算所述第二变换。
13.根据权利要求1至12中任一项所述的方法,其中,以预定时间间隔计算所述第二变换。
14.根据权利要求1至13中任一项所述的方法,还包括:
将所述第一变换值与所述第二变换进行比较;
基于对所述第一变换与所述第二变换的比较来计算误差;
响应于确定所述误差小于阈值,维持基于所述第一变换进行的对所述AR会话的显示。
15.根据权利要求14所述的方法,还包括:
响应于确定所述误差等于或大于所述阈值,使所述第一设备和所述第二设备基于所述第二变换来显示所述AR会话。
16.根据权利要求1至15中任一项所述的方法,基于内容在所述AR会话内的定位来从多个阈值中选择所述阈值。
17.根据权利要求16所述的方法,其中,所述多个阈值中的第一阈值对应于相对于一个或更多个现实世界对象来定位的AR内容,所述多个阈值中的第二阈值对应于独立于任何现实世界对象来定位的AR内容,并且所述第一阈值小于所述第二阈值。
18.根据权利要求1至17中任一项所述的方法,还包括:
使用所述第一设备与所述第二设备之间的给定变换来初始化所述AR会话,所述给定变换是基于在所述第一设备上显示的标记计算的;以及
基于使用所识别到的身体部位确定的变换,使用所述AR会话更新所述给定变换。
19.一种系统,包括:
处理器;以及
存储器部件,其上存储有指令,所述指令在由所述处理器执行时使所述处理器执行包括以下操作的操作:
由第二设备接收用于加入由第一设备初始化的AR会话的请求;
响应于接收到所述请求,在由所述第二设备的摄像机捕获的一个或更多个图像中检测与所述第一设备的用户对应的身体;
识别所检测到的与所述第一设备的用户对应的身体的身体部位;
由所述第二设备使用所识别到的身体部位来确定所述第一设备与所述第二设备之间在所述AR会话中的变换;以及
使所述第二设备基于所确定的变换来显示所述AR会话。
20.一种非暂态计算机可读存储介质,其上存储有指令,所述指令在由处理器执行时使所述处理器执行包括以下操作的操作:
由第二设备接收用于加入由第一设备初始化的AR会话的请求;
响应于接收到所述请求,在由所述第二设备的摄像机捕获的一个或更多个图像中检测与所述第一设备的用户对应的身体;
识别所检测到的与所述第一设备的用户对应的身体的身体部位;
由所述第二设备使用所识别到的身体部位来确定所述第一设备与所述第二设备之间在所述AR会话中的变换;以及
使所述第二设备基于所确定的变换来显示所述AR会话。
CN202180012517.0A 2020-02-05 2021-02-04 使用骨骼追踪的增强现实会话创建 Pending CN115053519A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/782,874 US11488358B2 (en) 2020-02-05 2020-02-05 Augmented reality session creation using skeleton tracking
US16/782,874 2020-02-05
PCT/US2021/016579 WO2021158768A1 (en) 2020-02-05 2021-02-04 Augmented reality session creation using skeleton tracking

Publications (1)

Publication Number Publication Date
CN115053519A true CN115053519A (zh) 2022-09-13

Family

ID=74798078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180012517.0A Pending CN115053519A (zh) 2020-02-05 2021-02-04 使用骨骼追踪的增强现实会话创建

Country Status (5)

Country Link
US (1) US11488358B2 (zh)
EP (1) EP4101160A1 (zh)
KR (1) KR20220138398A (zh)
CN (1) CN115053519A (zh)
WO (1) WO2021158768A1 (zh)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509466B1 (en) 2011-05-11 2019-12-17 Snap Inc. Headwear with computer and optical element for use therewith and systems utilizing same
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10283162B2 (en) 2014-02-05 2019-05-07 Avatar Merger Sub II, LLC Method for triggering events in a video
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10775996B2 (en) 2014-11-26 2020-09-15 Snap Inc. Hybridization of voice notes and calling
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
KR102371138B1 (ko) 2015-03-18 2022-03-10 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US9668217B1 (en) 2015-05-14 2017-05-30 Snap Inc. Systems and methods for wearable initiated handshaking
US10503264B1 (en) 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US10055895B2 (en) 2016-01-29 2018-08-21 Snap Inc. Local augmented reality persistent sticker objects
US10474353B2 (en) 2016-05-31 2019-11-12 Snap Inc. Application control using a gesture based trigger
US11404056B1 (en) 2016-06-30 2022-08-02 Snap Inc. Remoteless control of drone behavior
US10102423B2 (en) 2016-06-30 2018-10-16 Snap Inc. Object modeling and replacement in a video stream
US10609036B1 (en) 2016-10-10 2020-03-31 Snap Inc. Social media post subscribe requests for buffer user accounts
US10579869B1 (en) 2017-07-18 2020-03-03 Snap Inc. Virtual object machine learning
US11323398B1 (en) 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US11204949B1 (en) 2017-07-31 2021-12-21 Snap Inc. Systems, devices, and methods for content selection
US10591730B2 (en) 2017-08-25 2020-03-17 II Jonathan M. Rodriguez Wristwatch based interface for augmented reality eyewear
US11531357B1 (en) 2017-10-05 2022-12-20 Snap Inc. Spatial vector-based drone control
US11847426B2 (en) 2017-11-08 2023-12-19 Snap Inc. Computer vision based sign language interpreter
US10217488B1 (en) 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US10523606B2 (en) 2018-01-02 2019-12-31 Snap Inc. Generating interactive messages with asynchronous media content
US10567321B2 (en) 2018-01-02 2020-02-18 Snap Inc. Generating interactive messages with asynchronous media content
US11063889B2 (en) 2018-06-08 2021-07-13 Snap Inc. Generating interactive messages with entity assets
US10796482B2 (en) 2018-12-05 2020-10-06 Snap Inc. 3D hand shape and pose estimation
US11012390B1 (en) 2019-03-28 2021-05-18 Snap Inc. Media content response in a messaging system
US11019011B1 (en) 2019-03-29 2021-05-25 Snap Inc. Messaging system with discard user interface
US11036368B1 (en) 2019-03-29 2021-06-15 Snap Inc. Messaging system with message transmission user interface
US11106342B1 (en) 2019-06-03 2021-08-31 Snap Inc. User interfaces to facilitate multiple modes of electronic communication
US11151794B1 (en) 2019-06-28 2021-10-19 Snap Inc. Messaging system with augmented reality messages
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
CN114391160A (zh) 2019-09-09 2022-04-22 斯纳普公司 根据立体相机的手部姿势估计
US11062498B1 (en) 2019-12-30 2021-07-13 Snap Inc. Animated pull-to-refresh
US11265274B1 (en) 2020-02-28 2022-03-01 Snap Inc. Access and routing of interactive messages
US11409368B2 (en) 2020-03-26 2022-08-09 Snap Inc. Navigating through augmented reality content
US11675494B2 (en) 2020-03-26 2023-06-13 Snap Inc. Combining first user interface content into second user interface
US11960651B2 (en) 2020-03-30 2024-04-16 Snap Inc. Gesture-based shared AR session creation
US11455078B1 (en) 2020-03-31 2022-09-27 Snap Inc. Spatial navigation and creation interface
US11991469B2 (en) 2020-06-30 2024-05-21 Snap Inc. Skeletal tracking for real-time virtual effects
KR20230047480A (ko) 2020-08-13 2023-04-07 스냅 인코포레이티드 포즈 구동형 가상 효과들을 위한 사용자 인터페이스
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11671559B2 (en) 2020-09-30 2023-06-06 Snap Inc. Real time video editing
US11797162B2 (en) 2020-12-22 2023-10-24 Snap Inc. 3D painting on an eyewear device
US11782577B2 (en) 2020-12-22 2023-10-10 Snap Inc. Media content player on an eyewear device
EP4272406A1 (en) 2020-12-29 2023-11-08 Snap Inc. Body ui for augmented reality components
CN116670635A (zh) 2020-12-31 2023-08-29 斯纳普公司 具有触觉反馈的实时视频通信界面
CN116648687A (zh) 2020-12-31 2023-08-25 斯纳普公司 具有触觉反馈响应的电子通信界面
CN116685941A (zh) 2020-12-31 2023-09-01 斯纳普公司 具有触觉反馈增强的媒体内容项
US11908243B2 (en) 2021-03-16 2024-02-20 Snap Inc. Menu hierarchy navigation on electronic mirroring devices
US11734959B2 (en) 2021-03-16 2023-08-22 Snap Inc. Activating hands-free mode on mirroring device
US11798201B2 (en) 2021-03-16 2023-10-24 Snap Inc. Mirroring device with whole-body outfits
US11978283B2 (en) 2021-03-16 2024-05-07 Snap Inc. Mirroring device with a hands-free mode
USD998637S1 (en) 2021-03-16 2023-09-12 Snap Inc. Display screen or portion thereof with a graphical user interface
US11809633B2 (en) 2021-03-16 2023-11-07 Snap Inc. Mirroring device with pointing based navigation
US11880542B2 (en) 2021-05-19 2024-01-23 Snap Inc. Touchpad input for augmented reality display device
US11928306B2 (en) 2021-05-19 2024-03-12 Snap Inc. Touchpad navigation for augmented reality display device
US11670059B2 (en) 2021-09-01 2023-06-06 Snap Inc. Controlling interactive fashion based on body gestures
US11863596B2 (en) 2021-12-07 2024-01-02 Snap Inc. Shared augmented reality session creation
US11960784B2 (en) 2021-12-07 2024-04-16 Snap Inc. Shared augmented reality unboxing experience
US11748958B2 (en) 2021-12-07 2023-09-05 Snap Inc. Augmented reality unboxing experience
US11861801B2 (en) 2021-12-30 2024-01-02 Snap Inc. Enhanced reading with AR glasses
US11579747B1 (en) 2022-03-14 2023-02-14 Snap Inc. 3D user interface depth forgiveness
US20230298247A1 (en) * 2022-03-15 2023-09-21 Yu Jiang Tham Sharing received objects with co-located users
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat
CN115100276B (zh) * 2022-05-10 2024-01-19 北京字跳网络技术有限公司 处理虚拟现实设备的画面图像的方法、装置及电子设备
US11960653B2 (en) 2022-05-10 2024-04-16 Snap Inc. Controlling augmented reality effects through multi-modal human interaction
CN114821006B (zh) * 2022-06-23 2022-09-20 盾钰(上海)互联网科技有限公司 交互式间接推理的孪生体态检测方法及系统
US11995780B2 (en) 2022-09-09 2024-05-28 Snap Inc. Shooting interaction using augmented reality content in a messaging system
US11948266B1 (en) 2022-09-09 2024-04-02 Snap Inc. Virtual object manipulation with gestures in a messaging system
US11797099B1 (en) 2022-09-19 2023-10-24 Snap Inc. Visual and audio wake commands
US11747912B1 (en) 2022-09-22 2023-09-05 Snap Inc. Steerable camera for AR hand tracking
CN117037221B (zh) * 2023-10-08 2023-12-29 腾讯科技(深圳)有限公司 活体检测方法、装置、计算机设备及存储介质

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971156B2 (en) 2007-01-12 2011-06-28 International Business Machines Corporation Controlling resource access based on user gesturing in a 3D captured image stream of the user
US9122707B2 (en) * 2010-05-28 2015-09-01 Nokia Technologies Oy Method and apparatus for providing a localized virtual reality environment
KR101818024B1 (ko) 2011-03-29 2018-01-12 퀄컴 인코포레이티드 각각의 사용자의 시점에 대해 공유된 디지털 인터페이스들의 렌더링을 위한 시스템
US10509466B1 (en) 2011-05-11 2019-12-17 Snap Inc. Headwear with computer and optical element for use therewith and systems utilizing same
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9144744B2 (en) * 2013-06-10 2015-09-29 Microsoft Corporation Locating and orienting device in space
US10283162B2 (en) 2014-02-05 2019-05-07 Avatar Merger Sub II, LLC Method for triggering events in a video
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10503264B1 (en) 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
US10055895B2 (en) 2016-01-29 2018-08-21 Snap Inc. Local augmented reality persistent sticker objects
US11404056B1 (en) 2016-06-30 2022-08-02 Snap Inc. Remoteless control of drone behavior
US10657701B2 (en) * 2016-06-30 2020-05-19 Sony Interactive Entertainment Inc. Dynamic entering and leaving of virtual-reality environments navigated by different HMD users
US10102423B2 (en) 2016-06-30 2018-10-16 Snap Inc. Object modeling and replacement in a video stream
US20180101989A1 (en) * 2016-10-06 2018-04-12 Google Inc. Headset removal in virtual, augmented, and mixed reality using an eye gaze database
US10579869B1 (en) 2017-07-18 2020-03-03 Snap Inc. Virtual object machine learning
US10591730B2 (en) 2017-08-25 2020-03-17 II Jonathan M. Rodriguez Wristwatch based interface for augmented reality eyewear
US10217488B1 (en) 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US10962809B1 (en) 2018-01-10 2021-03-30 Snap Inc. Eyewear device with finger activated touch sensor
US11092998B1 (en) 2018-01-12 2021-08-17 Snap Inc. Eyewear device with fingerprint sensor for user input
WO2019143572A1 (en) 2018-01-17 2019-07-25 Pcms Holdings, Inc. Method and system for ar and vr collaboration in shared spaces
WO2019216593A1 (en) * 2018-05-11 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus for pose processing
US11227626B1 (en) 2018-05-21 2022-01-18 Snap Inc. Audio response messages
WO2020068455A1 (en) 2018-09-28 2020-04-02 Snap Inc. Neural network system for gesture, wear, activity, or carry detection on a wearable or mobile device
US10796482B2 (en) 2018-12-05 2020-10-06 Snap Inc. 3D hand shape and pose estimation
US11012390B1 (en) 2019-03-28 2021-05-18 Snap Inc. Media content response in a messaging system
US11036368B1 (en) 2019-03-29 2021-06-15 Snap Inc. Messaging system with message transmission user interface
US11106342B1 (en) 2019-06-03 2021-08-31 Snap Inc. User interfaces to facilitate multiple modes of electronic communication
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11138804B2 (en) * 2019-08-02 2021-10-05 Fmr Llc Intelligent smoothing of 3D alternative reality applications for secondary 2D viewing
CN114391160A (zh) 2019-09-09 2022-04-22 斯纳普公司 根据立体相机的手部姿势估计
US11169600B1 (en) 2019-12-06 2021-11-09 Snap Inc. Virtual object display interface between a wearable device and a mobile device
US11087728B1 (en) 2019-12-21 2021-08-10 Snap Inc. Computer vision and mapping for audio applications
US11062498B1 (en) 2019-12-30 2021-07-13 Snap Inc. Animated pull-to-refresh
US11409368B2 (en) 2020-03-26 2022-08-09 Snap Inc. Navigating through augmented reality content
US11675494B2 (en) 2020-03-26 2023-06-13 Snap Inc. Combining first user interface content into second user interface
US11960651B2 (en) 2020-03-30 2024-04-16 Snap Inc. Gesture-based shared AR session creation

Also Published As

Publication number Publication date
WO2021158768A1 (en) 2021-08-12
EP4101160A1 (en) 2022-12-14
US11488358B2 (en) 2022-11-01
KR20220138398A (ko) 2022-10-12
US20210241529A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
US11488358B2 (en) Augmented reality session creation using skeleton tracking
US11960651B2 (en) Gesture-based shared AR session creation
CN115039401A (zh) 用于按需渲染帧的视频生成系统
EP4081884B1 (en) Marker-based shared augmented reality session creation
US11700225B2 (en) Event overlay invite messaging system
US11991469B2 (en) Skeletal tracking for real-time virtual effects
US20220076492A1 (en) Augmented reality messenger system
US11956304B2 (en) Dynamically assigning storage locations for messaging system data
CN115516406B (zh) 使用生物数据进行的深度估计

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