CN117425870A - 虚拟现实中的动态混合现实内容 - Google Patents

虚拟现实中的动态混合现实内容 Download PDF

Info

Publication number
CN117425870A
CN117425870A CN202280039865.1A CN202280039865A CN117425870A CN 117425870 A CN117425870 A CN 117425870A CN 202280039865 A CN202280039865 A CN 202280039865A CN 117425870 A CN117425870 A CN 117425870A
Authority
CN
China
Prior art keywords
mobile computing
computing device
user
environment
rendering
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
CN202280039865.1A
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.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
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 Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of CN117425870A publication Critical patent/CN117425870A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • 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/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • 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/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • 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
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在一个实施例中,一种方法包括:使用移动计算设备的一个或多个摄像头来采集真实世界环境中佩戴着VR显示设备的第一用户的一个或多个图像。移动计算设备向VR***发送移动计算设备相对于VR显示设备的位姿。移动计算设备接收来自VR***的VR环境的VR渲染。该VR渲染是根据移动计算设备相对于VR显示设备的视角的。该方法包括:从一个或多个图像中分割第一用户,以及响应于采集到一个或多个图像,实时生成第一用户在VR环境中的MR渲染。第一用户的MR渲染是基于对所分割的第一用户的一个或多个图像与VR渲染的合成的。

Description

虚拟现实中的动态混合现实内容
技术领域
本公开总体上涉及数据库和网络环境内的文件管理,并且尤其涉及混合现实(mixed reality,MR)渲染。
背景技术
共享虚拟现实(virtual reality,VR)体验的现有方式仅仅是允许其他用户从第一用户的视点(point of view,POV)观看VR体验的二维(two-dimensional,2D)渲染。这种将第一用户(佩戴着VR头戴式设备(headset))的VR体验转移到第二用户的2D显示器上的方法可能仅限于允许第二用户观看第一用户通过其头戴式设备观看到的内容。也就是说,第二用户可能被限制于观看在第一用户的视场角内的VR环境的直播(即,根据第一用户的视点的VR体验的2D渲染)。一些体验还可以允许第二用户改变其视点(POV)并独立地探索VR体验。
还存在将VR体验转换成混合现实(MR)体验的方法,其中,通过摄像头采集第一用户的真实世界图像并将该第一用户的真实世界图像***到VR体验的渲染中。例如,可以将摄像头设置为从静态位置观看第一用户。然后,***可以从该摄像头提取该用户的图像,并将这些图像***到根据第三人称视角(即,从该摄像头位置的视角)的VR体验的渲染中。通过这种方式,***可以向第二用户提供第一用户在VR环境中的静态视图(例如,从第一用户上方和后方的“过肩(over-the-shoulder)”视图)。然而,第二用户可能无法独立于第一用户四处移动,以从其他POV观看第一用户、以及观看VR环境的第一用户沉浸在其中的部分。此外,创建第一用户在VR环境中的MR渲染可能需要第二用户具有专业的高端装备、绿幕、制作摄像机(production camera)和运行专业软件的个人计算机(PC)。
发明内容
在特定实施例中,移动计算设备(例如,智能手机)的用户可能能够观看沉浸在虚拟现实(VR)环境中的第一用户的混合现实(MR)渲染。然而,移动计算设备的用户可能会在如下方面受到限制:他们可以观看的关于第一用户的MR渲染的内容,以及他们可以如何与VR环境交互。因此,一个技术挑战可以包括:当第一用户沉浸在VR环境中时,向移动计算设备的用户提供比静态观看体验更多的体验。本文所公开的实施例所提出的用于解决为移动计算设备的用户提供交互式体验的技术挑战的一个解决方案是:例如通过允许移动计算设备的用户独立于沉浸在VR环境中的用户正在做的事情来与MR和VR内容交互,而允许移动计算设备的用户与MR渲染和VR环境动态交互。作为示例而非限制,移动计算设备可以渲染第一用户在VR环境中的MR图像,并允许移动计算设备的用户将移动计算设备移动到其他位姿(位置、方位),并且VR***可以在无需附加的设置和重新定位过程的情况下、实时地动态更新MR渲染。尽管本公开描述了以特定方式在VR环境中生成动态MR内容的方法,但是本公开考虑了以任何合适的方式在VR环境中生成动态MR内容。
在特定实施例中,一个或多个计算机***可以使用移动计算设备的一个或多个摄像头来采集真实世界环境中佩戴着VR显示设备的第一用户的一个或多个图像。该一个或多个计算机***可以向VR显示设备的VR***发送来自移动计算设备的、该移动计算设备的位姿。该一个或多个计算机***可以在移动计算设备处接收来自VR***的VR环境的VR渲染。该VR渲染可以是根据移动计算设备相对于VR显示设备的视角的。该一个或多个计算机***可以从一个或多个图像中分割第一用户。该一个或多个计算机***可以响应于采集到一个或多个图像,在移动计算设备处实时地生成第一用户在VR环境中的MR渲染。第一用户的MR渲染可以基于对所分割的第一用户的一个或多个图像与VR渲染的合成。
根据本公开的第一方面,提供了一种方法,该方法包括:由移动计算设备:使用移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;向VR显示设备的VR***发送来自移动计算设备的、该移动计算设备相对于VR显示设备的位姿;在移动计算设备处接收来自VR***的VR环境的VR渲染,其中,该VR渲染是根据移动计算设备相对于VR显示设备的视角的;从一个或多个图像分割第一用户;以及响应于采集到一个或多个图像,在移动计算设备处实时地生成第一用户在VR环境中的混合现实(MR)渲染,其中,第一用户的MR渲染是基于对所分割的第一用户的一个或多个图像与VR渲染的合成的。
在一些实施例中,该方法还可以包括:在移动计算设备处接收来自VR***的、从一个或多个图像中识别出的真实世界环境中的一个或多个锚点。
在一些实施例中,该方法还可以包括:基于该一个或多个锚点中的一个或多个,确定移动计算设备相对于VR显示设备的位姿。
在一些实施例中,该方法还可以包括:检测移动计算设备已移动;基于该一个或多个锚点中的一个或多个,确定移动计算设备相对于VR显示设备的更新后的位姿;以及响应于检测到移动计算设备已移动,在移动计算设备处实时生成第一用户在VR环境中的更新后的MR渲染,其中,第一用户的更新后的MR渲染是基于移动计算设备相对于VR显示设备的更新后的位姿的。
在一些实施例中,移动计算设备相对于VR显示设备的位姿可以基于以下项之间的三角测量来确定:该一个或多个锚点中的一个或多个;移动计算设备的一个或多个摄像头;和VR显示设备。
在一些实施例中,该一个或多个锚点可以是真实世界环境中的固定对象。
在一些实施例中,该方法还可以包括:响应于在移动计算设备上的选择而在以下项之间转换:根据第一用户的视角的VR环境的VR渲染;以及根据移动计算设备相对于VR显示设备的视角的、第一用户在VR环境中的MR渲染。
在一些实施例中,该方法还可以包括:向在线社交网络实时地发送来自移动计算设备的、所生成的第一用户在VR环境中的MR渲染,以用于向一个或多个附加用户直播显示。
在一些实施例中,从一个或多个图像分割第一用户可以包括:使用分割算法,在一个或多个图像中每个图像内识别第一用户的身体。
在一些实施例中,该方法还可以包括:在移动计算设备处接收来自VR***的、对第一用户已经激活VR***上的特定VR应用的指示;以及响应于所接收到的该指示,在移动计算设备处呈现佩戴着VR显示设备的第一用户已经启动特定VR应用的通知。
在一些实施例中,移动计算设备能够用于通过MR渲染与VR环境交互。
在一些实施例中,与VR环境交互可以包括以下项中的一项或多项:在VR环境中修改VR对象、在VR环境中创建VR对象、在VR环境中修改MR对象、在VR环境中创建MR对象、修改VR环境的一个或多个属性、将VR环境从第一VR环境更改为第二VR环境、更改VR应用、记录MR渲染或流式传输MR渲染。
在一些实施例中,与VR环境交互可以包括以下项中的一项或多项:创建与移动计算设备的第二用户相对应的VR化身;或者与第三用户的VR化身交互。
根据本公开的另一个方面,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,该软件在被移动计算设备执行时能够操作以:使用移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;向VR显示设备的VR***发送来自移动计算设备的、该移动计算设备相对于VR显示设备的位姿;在移动计算设备处接收来自VR***的VR环境的VR渲染,其中,该VR渲染是从移动计算设备相对于VR显示设备的视角的;从一个或多个图像中分割第一用户;以及响应于采集到一个或多个图像,在移动计算设备处实时地生成第一用户在VR环境中的混合现实(MR)渲染,其中,第一用户的MR渲染是基于对所分割的第一用户的一个或多个图像与VR渲染的合成的。
在一些实施例中,该软件在被执行时还能够操作以:在移动计算设备处接收来自VR***的、从一个或多个图像中识别出的真实世界环境中的一个或多个锚点。
在一些实施例中,该软件在被执行时还能够操作以:基于该一个或多个锚点中的一个或多个,确定移动计算设备相对于VR显示设备的位姿。
在一些实施例中,该软件在被执行时还能够操作以:检测移动计算设备已移动;基于该一个或多个锚点中的一个或多个,确定移动计算设备相对于VR显示设备的更新后的位姿;以及响应于检测到移动计算设备已移动,在移动计算设备处实时地生成第一用户在VR环境中的更新后的MR渲染,其中,第一用户的更新后的MR渲染是基于移动计算设备相对于VR显示设备的更新后的位姿的。
在一些实施例中,移动计算设备相对于VR显示设备的位姿可以基于以下项之间的三角测量来确定:该一个或多个锚点中的一个或多个;移动计算设备的一个或多个摄像头;和VR显示设备。
在一些实施例中,该一个或多个锚点可以是真实世界环境中的固定对象。
根据本公开的另一个方面,提供了一种移动计算设备,该移动计算设备包括:一个或多个处理器;以及非暂态存储器,该非暂态存储器耦接到处理器,该非暂态存储器包括处理器能够执行的指令,处理器在执行这些指令时能够操作以:使用移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;向VR显示设备的VR***发送来自移动计算设备的、该移动计算设备相对于VR显示设备的位姿;在移动计算设备处接收来自VR***的VR环境的VR渲染,其中,该VR渲染是根据移动计算设备相对于VR显示设备的视角的;从一个或多个图像中分割第一用户;以及响应于采集到一个或多个图像,在移动计算设备处实时地生成第一用户在VR环境中的混合现实(MR)渲染,其中,第一用户的MR渲染是基于对所分割的第一用户的一个或多个图像与VR渲染的合成的。
对于在VR环境中生成动态MR内容,存在某些技术挑战。一个技术挑战可以包括:允许对移动计算设备的动态移动,同时将沉浸在VR环境中的用户的图像保持在移动计算设备上的图像的画面内。本文所公开的实施例所提出的用于解决该挑战的解决方案可以是:分割用户的轮廓或身体,并使用分割算法将沉浸在VR体验中的用户的MR渲染叠加或覆盖在VR环境之上。另一个技术挑战可以包括:在无需专业设备的情况下、与所生成的MR和VR内容交互。本文所公开的实施例所提出的用于解决该挑战的解决方案可以是:利用VR***的渲染和空间映射能力,从而允许移动计算设备的用户通过该移动计算设备与所生成的MR和VR内容交互。
本文所公开的某些实施例可以提供一个或多个技术优势。各实施例的技术优势可以包括:在不使用绿幕或其他专业设备的情况下渲染第一用户在VR环境中的MR图像。各实施例的另一个技术优势可以包括:允许移动计算设备的用户将移动计算设备移动到其他位姿(位置、方位),并且在初始定位过程(例如,自动校准过程)之后,VR***将在无需移动计算设备的附加的设置和重新定位过程的情况下、实时地动态更新MR渲染。考虑到本公开的附图、说明书和权利要求书,该一个或多个其它技术优势对于本领域技术人员来说可以是显而易见的。
本文中所公开的各实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文中所公开的各实施例的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括本文中所公开的各实施例的部件、元件、特征、功能、操作或步骤。在所附权利要求中针对方法、存储介质、***和计算机程序产品,特别公开了根据本发明的各实施例,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,***)中被要求保护。所附权利要求书中的从属关系或回引是仅出于形式原因而选择的。然而,从对任何先前的权利要求(特别是多个从属权利要求)的有意引用中产生的任何主题也可以被要求保护,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被要求保护。可以被要求保护的主题不仅包括所附权利要求书中所陈述的多个特征的组合,还包括权利要求书中的多个特征的任何其他组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其他特征或其他特征的组合进行组合。此外,本文所描述或所描绘的各实施例和特征中的任何可以在单独的权利要求中被要求保护,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被要求保护。
附图说明
图1示出了由用户佩戴的示例虚拟现实***。
图2示出了虚拟现实***的透传(passthrough)功能的示例。
图3示出了移动计算设备显示投射菜单屏幕的示例。
图4示出了移动计算设备显示投射模式菜单的示例。
图5示出了移动计算设备显示演示模式作为从图4中选择的模式的示例。
图6示出了移动计算设备显示应用库的示例。
图7示出了移动计算设备显示VR环境的示例。
图8示出了移动计算设备显示VR环境中的化身的示例。
图9示出了移动计算设备显示个人用户界面的示例。
图10示出了移动计算设备显示游戏应用的示例。
图11示出了移动计算设备显示在其中MR视图可用的游戏应用的示例。
图12示出了移动计算设备显示设置MR体验的通知的示例。
图13示出了移动计算设备显示所采集的、在真实世界环境中佩戴着VR显示设备的第一用户的图像的示例。
图14示出了移动计算设备显示第一用户在VR环境中的MR视图的示例。
图15示出了移动计算设备显示根据第一位姿的、第一用户在VR环境中的MR视图的示例。
图16示出了移动计算设备显示根据第二位姿的、第一用户在VR环境中的MR视图的示例。
图17示出了移动计算设备显示根据第三位姿的、第一用户在VR环境中的MR视图的示例。
图18示出了用于生成MR渲染的示例方法。
图19示出了与社交网络***相关联的示例网络环境。
图20示出了示例计算机***。
具体实施方式
在特定实施例中,移动计算设备(例如,智能手机)的用户可能能够观看沉浸在虚拟现实(VR)环境中的第一用户的混合现实(MR)渲染。然而,移动计算设备的用户可能会在以下方面受到限制:他们可以观看的关于第一用户的MR渲染的内容(例如,他们可能被限制在第一用户的视点),以及他们可以如何与VR环境交互(例如,他们可能只是被动观看者,其无法与第一用户或VR环境交互)。因此,一个技术挑战可以包括:当第一用户沉浸在VR环境中时,向移动计算设备的用户提供比静态观看体验更多的体验。本文所公开的实施例所提出的用于解决为移动计算设备的用户提供交互式体验的技术挑战的一个解决方案是:例如通过允许移动计算设备的用户独立于沉浸在VR环境中的用户正在做的事情来与MR和VR内容交互,而允许移动计算设备的用户与MR渲染(例如,沉浸在VR环境中的第一用户的MR渲染)和VR环境动态交互。作为示例而非限制,移动计算设备可以渲染第一用户在VR环境中的MR图像,并允许移动计算设备的用户将移动计算设备移动到其他位姿(例如,位置和方位),并且VR***可以在无需附加的设置和重新定位过程的情况下、实时地动态更新MR渲染。尽管本公开描述了以特定方式在VR环境中生成动态MR内容的方法,但是本公开考虑了以任何合适的方式在VR环境中生成动态MR内容。
图1示出了由用户102佩戴的虚拟现实***100的示例。在特定实施例中,虚拟现实***100可以包括头戴式VR显示设备135、控制器106、和一个或多个计算***110。VR显示设备135可以佩戴在用户的眼睛上,并通过内部显示器(未示出)向用户102提供可视内容。VR显示设备135可以具有两个单独的内部显示器,用户102的每只眼睛一个内部显示器(单个显示设备也是可以的)。如图1所示,VR显示设备135可以完全遮挡用户的视场角。通过成为用户102的视觉信息的唯一提供者,VR显示设备135实现了提供沉浸式人工现实体验的目标。然而,这样做的一个结果是,用户102可能无法看到用户102周围的物理(真实世界)环境,因为其视野被VR显示设备135遮挡了。因此,本文所描述的透传功能可以在技术上有利于向用户提供关于其物理环境的实时视觉信息。
图2示出了虚拟现实***100的透传功能的示例。用户102可能正佩戴着VR显示设备135,沉浸在虚拟现实环境中。真实世界对象145位于用户102周围的物理环境中。然而,由于VR显示设备135遮挡了用户102的视野,因此用户102无法直接看到真实世界对象145。为了帮助用户在佩戴着VR显示设备135时感知其物理环境,透传功能使用例如一个或多个摄像头105(例如,面向外的摄像头105A和105B)来采集关于物理环境的信息。然后,可以基于用户102的视点将所采集到的信息重投影给该用户102。在VR显示设备135具有用于用户右眼的右显示器136A和用于用户左眼的左显示器136B的特定实施例中,虚拟现实***100可以分别地(1)基于用户右眼的视点为右显示器135A渲染物理环境的重投影视图145A和(2)基于用户左眼的视点为左显示器135B渲染物理环境的重投影视图145B。
再次参考图1,VR显示设备135可以具有面向外的摄像头,例如图1所示的两个面向前的摄像头105A和105B。尽管仅示出了两个面向前的摄像头105A和105B,但是VR显示设备135可以具有面向任何方向的任意数量的摄像头(例如,用于采集天花板或房间灯光效果的面向上的摄像头、用于采集用户的面部和/或身体的一部分的面向下的摄像头、用于采集用户身后事物的一部分的面向后的摄像头、和/或用于采集用户的眼睛注视以用于眼动追踪目的的内部摄像头)。面向外的摄像头可以被配置为采集用户周围的物理环境,并且可以连续地进行这样的采集以生成一系列帧(例如,作为视频)。如先前所解释的,尽管由面向前的摄像头105A和105B采集的图像可以经由VR显示设备135直接显示给用户102,但是这样做可能无法为用户提供物理环境的精确视图,因为摄像头105A和105B在物理上不能位于与用户眼睛完全相同的位置。因此,本文所描述的透传功能可以使用重投影技术,该重投影技术生成物理环境的三维(3D)表示,并且随后基于该3D表示根据用户眼睛的视点来渲染图像。
可以基于通过摄像头105A和105B观察到的物理对象的深度测量结果来生成该3D表示。可以用多种方式来测量深度。在特定实施例中,可以基于立体图像来计算深度。例如,两个面向前的摄像头105A和105B可以共享重叠的视场角并且可以被配置为同时采集图像。因此,可以通过两个摄像头105A和105B同时采集同一物理对象。例如,在由摄像头105A采集的图像中,对象的特定特征可以出现在一个像素pA处,而在由摄像头105B采集的图像中,同一特征可以出现另一个像素pB处。只要深度测量***知晓这两个像素对应于同一特征,虚拟现实***100就可以使用三角测量技术来计算所观察到的特征的深度。例如,基于摄像头105A在3D空间内的位置、以及pA相对于摄像头105A的视场角的像素位置,可以从摄像头105A投影一条穿过像素pA的线。可以从另一个摄像头105B投影一条穿过像素pB的类似的线。由于假设两个像素对应于同一物理特征,因此这两条线应该相交。两条相交线、以及在两个摄像头105A和105B之间绘制的假想线形成三角形,该三角形可以用于计算所观察到的特征距摄像头105A或105B或观察到的特征所在的空间中的点的距离。
在特定实施例中,可能需要VR显示设备135在环境中的位姿(例如,x-y-z位置和r-p-y方位)。例如,为了在用户102在虚拟环境中四处移动时为其渲染合适的显示,虚拟现实***100可能需要确定其在任何时刻的位置和方位。虚拟现实***100还可以基于VR显示设备的位姿,确定摄像头105A和105B中任一摄像头的视点或用户的双眼中的任一眼睛的视点。在特定实施例中,VR显示设备135可以配备有惯性测量单元(inertial-measurementunit,“IMU”)。由IMU生成的数据、以及面向外的摄像头105A和105B所采集的立体图像允许虚拟现实***100使用例如同步定位与地图构建(simultaneous localization andmapping,SLAM)或其他合适的技术来计算VR显示设备135的位姿。
在特定实施例中,虚拟现实***100还可以具有一个或多个控制器106,该一个或多个控制器使用户102能够提供输入。控制器106可以通过无线连接或有线连接与VR显示设备135或单独的一个或多个计算***110通信。控制器106可以具有任意数量的按钮或其他机械输入机构。此外,控制器106可以具有IMU,使得可以追踪控制器106的位姿。还可以基于控制器106上的预定图案来追踪该控制器。例如,控制器106可以具有几个红外发光二极管(LED)或其他已知的可观察特征,这些红外LED或其他已知的可观察特征共同形成预定图案。虚拟现实***100可能能够使用传感器或摄像头,来采集控制器上的预定图案的图像。***可以基于观察到的这些图案的方位,计算控制器相对于传感器或摄像头的位置和方位。
虚拟现实***100还可以包括一个或多个计算***110。该一个或多个计算***110可以是在物理上与VR显示设备135分开的独立单元,或者该计算***110可以与VR显示设备135集成在一起。在该一个或多个计算***110是独立单元的实施例中,该一个或多个计算机***110可以经由无线链路或有线链路与VR显示设备135通信地耦接。该一个或多个计算***110可以是高性能设备(例如台式计算机或膝上型计算机)或资源受限设备(例如移动电话)。高性能设备可以具有专用的图像处理单元(graphics processing unit,GPU)和高容量或恒定的电源。另一方面,资源受限设备可能不具有GPU,并且可能具有有限的电池容量。因此,可由虚拟现实***100实际使用的算法取决于其一个或多个计算***110的能力。
在一个或多个计算机***110是高性能设备的实施例中,可以按照如下设计透传功能的实施例。通过VR显示设备135的面向外的摄像头105A和105B,可以采集一系列周围物理环境的图像。然而,由摄像头105A和105B采集的信息可能未与用户的眼睛可以捕获到的信息对齐,因为摄像头在空间上不能与用户的眼睛重合(例如,摄像头可能位于距离用户的眼睛一定距离的位置,并因此具有不同的视点)。因此,简单地向用户显示摄像头采集的内容可能不是用户应该感知到的内容的精确表示。
透传功能可以向用户重投影由面向外的摄像头105A和105B采集到的信息,而不是简单地显示所采集到的内容。每对同时采集到的立体图像可以用于估计所观察到的特征的深度。如上所解释的,为了使用三角测量来测量深度,一个或多个计算***110可以找到各立体图像之间的对应关系。例如,该一个或多个计算***110可以确定该对立体图像中的哪两个像素对应于同一所观察到的特征。高性能的一个或多个计算***110可以使用其GPU和光流技术来解决对应问题,这些光流技术针对这样的任务进行了优化。然后,对应关系信息可以用于使用三角测量技术来计算深度。基于所计算的所观察到的特征的深度,该一个或多个计算***110可以确定这些特征在3D空间内的位置(因为该一个或多个计算***110还知晓摄像头在该3D空间中的位置)。可以由密集的3D点云表示结果,其中每个点对应于一观察到的特征。然后,可以使用密集的点云来生成该环境中的对象的3D模型。当***渲染场景以供显示时,***可以根据用户眼睛的视角执行可见性测试。例如,该***可以根据对应于用户的每只眼睛的视点将光线投射到3D空间中。以这种方式,显示给用户的渲染后的场景可以根据用户眼睛的视角计算,而不是根据面向外的摄像头105A和105B的视角计算。
然而,上述过程对于资源受限的计算单元可能是不可行的(例如,移动电话可能是VR显示设备135的主要计算单元)。例如,与具有强大计算资源和充足能源的***不同,移动电话不能依赖GPU和计算成本高的算法(例如,光流)来执行深度测量并生成环境的精确3D模型。因此,为了在资源受限的设备上提供透传,需要优化的过程。
在特定实施例中,如下面进一步详细论述的,计算设备可以被配置为在运行时动态地确定其是否有能力或能够使用如下项来生成深度测量结果:(1)GPU和光流;或者(2)使用视频编码器和运动矢量的优化技术。例如,如果该设备具有GPU和足够的功率预算(例如,该设备被***电源、电池充满了电等),则该设备可以使用其GPU和光流来执行深度测量。然而,如果该设备不具有GPU或者具有紧缩的功率预算,则该设备可以选择经优化的方法来计算深度。
图3示出了移动计算设备200显示投射菜单屏幕210的示例。投射菜单屏幕210可以显示这样的信息:所述信息显示了哪个设备正在投射(例如,VR显示设备135a),以及哪个设备正在接收该投射(例如,移动计算设备200a)。投射菜单屏幕210可以显示开始投射的开始按钮215,以及用于对投射进行疑难解答的帮助菜单220。光标205可以用于导航移动计算设备200。例如,光标205可以用于导航投射菜单屏幕210。光标205可以指示移动计算设备200的用户触摸移动计算设备200的屏幕的位置。
图4示出了移动计算设备200显示投射模式菜单225的示例。投射模式菜单225可以显示这样的信息:所述信息显示了对不同模式的选择。例如,用户可以选择观看模式226,其中,移动计算设备200可以根据VR显示设备135的视角显示头戴式设备视图。也就是说,移动计算设备200的用户可以看到佩戴着VR显示设备135的用户102所观看的内容的第一人称视图。替代地,移动计算设备200的用户可以看到佩戴着VR显示设备135的用户102的过肩第三人称视图。作为另一示例,用户可以选择演示模式227,其中,移动计算设备200可以显示这样的演示模式:所述演示模式教导移动计算设备200的用户如何使用特征和功能。也就是说,演示模式227可以例如用于指导用户如何使用移动计算设备200在VR环境235中导航。作为另一示例,用户可以选择MR模式228,其中,用户可以观看VR环境235内的第一用户(例如,用户102)。也就是说,用户可以观看第一用户在VR环境235中的(下面将进一步详细论述的)分割视图。MR模式228可以允许用户102访问相关联的MR应用和功能的MR库231。作为另一示例,用户可以选择游戏模式229,其中,移动计算设备200的用户可以与佩戴着VR显示设备135的第一用户(例如,用户102)交互。移动计算设备200的用户可以与第一用户玩多人游戏,或者与VR角色和/或VR环境235交互。游戏模式229可以允许用户102访问相关联的多人或交互式VR应用和功能的游戏模式库232。
图5示出了移动计算设备200显示演示模式227作为从图4中选择的模式的示例。演示模式227可以包括(例如,可使用光标205选择的)多个功能,例如停止投射245、设置250、切换应用255、转换260和重新居中视图265。可以选择停止投射245功能来结束所选择的视图(这里是演示模式227)。设置250功能可以用于在移动计算设备200上调整用户设置和偏好。切换应用255功能可以用于在不同应用之间切换(例如,如果处于游戏模式229,则切换应用255功能可以用于从游戏模式库232中选择一不同的应用)。转换260功能可以用于在VR环境235与真实世界环境的透传视图之间转换。转换260可以是二元按钮(其中,显示VR环境235或显示真实世界环境),或者可以提供滑块以从VR环境235渐变或过渡到真实世界环境,反之亦然。重新居中265功能可以用于在移动计算设备200上重新居中VR环境235的视图。
图6示出了移动计算设备200显示应用库的示例。这里,应用库是显示一个或多个应用270的MR库231。例如,可以有动作游戏应用、太空征服应用、赛车游戏、体育赛事(例如,直播篮球比赛)、打击犯罪应用和视频流应用。
图7示出了移动计算设备200显示VR环境235的示例。当处于VR环境235中时,移动计算设备200的用户可以使用快照275功能来拍摄VR环境235的快照。作为另一示例,用户可以使用录制280特征来录制VR环境235。也就是说,移动计算设备200可以用于创建视频文件或用于流式传输VR环境235。作为另一示例,移动计算设备200的用户可以使用图像交换格式文件(gif)285功能来制作gif文件。VR显示设备135的用户可以远程操作快照275功能、录制280功能和gif 285功能(以及其他功能)。此外,VR显示设备135的用户可以具有查看“实时自拍”视图(例如,对佩戴着VR显示设备135的用户的广播)的选项,以看到一个或多个功能采集或录制的内容。VR显示设备135的用户和/或移动计算设备200的用户可以向移动计算设备、网页浏览器或其他终端用户的其他交互式设备广播所采集的特征,并且这些其他终端用户可以与VR显示设备135的用户和/或移动计算设备200的用户交互。
图8示出了移动计算设备200显示VR环境235中的化身290的示例。化身290可以是表示佩戴着VR显示设备135的第一用户(例如,用户102)的化身。移动计算设备235的用户可以使用缩放295功能放大和缩小VR环境235中的化身290。移动计算设备200的用户还可以通过以下方式来在VR环境235中移动:在移动计算设备200的显示器上拖动、点击、捏合或滑动,以在VR环境235中移动。
图9示出了移动计算设备200显示个人用户界面(user interface,UI)305的示例。个人UI 305可以具有第一形状要素和相对于用户(例如,移动计算设备的用户和/或第一用户)的第一位姿。个人UI 305可以是包括一个或多个2D虚拟显示器的虚拟对象。个人UI 305能够操作以执行多个应用。
图10示出了移动计算设备200显示游戏应用的示例。图11示出了移动计算设备200显示在其中MR视图可用的游戏应用的示例。例如,图11的应用270可以是图10的游戏应用。移动计算设备200可以使用模式切换通知315来指示MR视图是可用的。也就是说,移动计算设备200可以向移动计算设备200的用户指示该用户可以在VR应用中观看用户(例如,移动计算设备200的用户、第一用户、另一用户等)的MR视图。移动计算设备200的用户可以选择MR视图模式310功能,以看到VR应用的VR环境235中的第一用户。移动计算设备200的用户可以选择VR显示设备视图模式320功能,以从佩戴着VR显示设备135的用户的视角显示VR应用。图12示出了移动计算设备200显示设置MR体验的通知的示例。移动计算设备200可以显示设置MR通知325,以使移动计算设备200的用户能够观看MR内容。在用户选择图11中的MR视图模式310和/或模式切换通知315之后,可以将MR设置通知325呈现给移动计算设备200的用户。
图13示出了移动计算设备200显示真实世界环境150中佩戴着VR显示设备的第一用户(例如,用户102)的图像采集的示例。真实世界环境可以包括用户102、以及一个或多个真实世界对象145(例如,家具、窗户、墙壁、门框等)。移动计算设备200可以显示一个或多个空间映射图形330,该一个或多个空间映射图形可以在VR***100生成真实世界环境150的特征映射(例如,空间映射)时显示。在所生成的真实世界环境150的特征映射内,可以存在与真实世界环境150中的一个或多个特征相对应的一个或多个锚点。多个锚点与VR显示设备135和移动计算设备200的一个或多个摄像头的视场角可以用于确定各设备相对于彼此的相对位置。作为示例而非限制,VR显示设备135和移动计算设备200这两者的视场角内的真实世界对象145(例如,书架的角或沙发的端部)的特征或固定的、静止的或永久的固定物(例如,窗户的角落或墙壁的角落)的特征可以用作锚点。
在特定实施例中,移动计算设备200的一个或多个摄像头可以采集真实世界环境150中佩戴着VR显示设备135的第一用户(例如,用户102)的一个或多个图像。VR***100可以指示移动计算设备200的摄像头,采集真实世界环境的包括佩戴着VR显示设备135的第一用户的一个或多个图像。在具有多个像素传感器(或其他合适的光学传感器)的移动计算设备200上可以有一个或多个摄像头,该一个或多个摄像头用于采集真实世界环境的图像(包括多个像素),其中,该多个像素可以由该一个或多个摄像头中的任何一个摄像头采集。该图像采集可以是第一用户和真实世界环境150中的一个或多个真实世界对象的全分辨率图像采集。作为示例而非限制,移动计算设备200可以采集真实世界环境150中佩戴着VR显示设备135的用户102的图像。在特定实施例中,移动计算设备200的摄像头可以采集第一用户和一个或多个其他用户的特征。例如,移动计算设备200可以确定第一用户和/或VR显示设备135相对于移动计算设备200的位姿(例如,x-y-z位置和r-p-y方位)。尽管本公开描述了以特定方式采集一个或多个图像,但本公开考虑了以任何合适的方式采集一个或多个图像。
在特定实施例中,移动计算设备200可以接收来自VR***100的、从一个或多个图像中识别出的真实世界环境150中的一个或多个锚点。这些锚点可以对应于真实世界环境150的任何真实世界对象145或区分特征。例如,锚点可以对应于真实世界环境150中的静止的或永久的固定物(例如,固定对象),例如出入口、窗户、一件家具等。在特定实施例中,这些锚点可用于确定移动计算设备200相对于VR显示设备135的位姿。锚点可以用于通过相对于所识别的锚点对移动计算设备200和VR显示设备135进行定位,来校准移动计算设备200和/或VR显示设备135的位姿。VR***100可以自动执行初始定位过程(例如,校准过程),以相对于真实世界环境和/或相对于彼此对移动计算设备200和VR显示设备135进行定位。
在特定实施例中,确定移动计算设备200的位姿可以包括:(例如,使用诸如加速度计等位置传感器或者使用基于对各图像的比较来确定移动计算设备200的位置的变化的图像处理算法)检测移动计算设备200已移动。然后,可以基于一个或多个锚点来确定移动计算设备200相对于VR显示设备135的更新后的位姿。也就是说,移动计算设备200可以基于对移动计算设备200相对于一个或多个锚点的位置的确定来重新定位其位姿。VR***可以响应于检测到移动计算设备200已移动,实时地生成第一用户(例如,用户102)在VR环境235中的更新后的MR渲染。第一用户的更新后的MR渲染可以基于移动计算设备200相对于VR显示设备135的更新后的位姿。也就是说,移动计算设备200相对于VR显示设备135的位姿可以基于以下项之间的三角测量来确定:该一个或多个锚点中的一个或多个;移动计算设备200(例如,移动计算设备200的一个或多个摄像头);和VR显示设备135。因此,基于移动后的移动计算设备200的更新后的位姿,VR***100可以生成第一用户在VR环境235中的更新后的MR渲染,并且移动计算设备200可以显示该第一用户在VR环境235中的更新后的MR渲染。例如,如果移动计算设备200已移动到佩戴着VR显示设备135的用户102的左侧,则MR渲染将相应地显示移动计算设备200已移动到佩戴着VR显示设备135的用户102的左侧。因此,移动计算设备200和VR显示设备的位姿可以相对于彼此、以及相对于真实世界环境150来确定。锚点可以用于通过追踪移动计算设备200与VR显示设备135的相对位置(例如,通过使用同步定位和地图构建技术来追踪移动计算设备200与VR显示设备135的相对位置),来持续地或周期性地更新移动计算设备200和VR显示设备135的各自位姿。由VR***100生成的真实世界环境150的特征映射可以用于确定与该特征映射内的特征相对应的一个或多个锚点。特征映射和锚点可以由VR显示设备135的VR***100产生并持续更新。各实施例的技术优势可以包括允许移动计算设备200的用户将移动计算设备200移动到其他位姿(例如,位置和方位),而VR***100可以在无需移动计算设备200的附加的设置和重新定位过程的情况下、实时地动态更新MR渲染。也就是说,VR***100可以只需要参考特征映射来对移动计算设备200进行重新定位,而不是相对于VR显示设备135来进行重新定位。因此,这可以具有降低移动计算设备200所需的计算和处理能力的优势。也就是说,VR显示设备135可以追踪其相对于特征映射中的锚点的位姿,并且移动计算设备200也可以追踪其相对于特征映射中的相同锚点的位姿。尽管本公开描述了以特定方式对设备进行定位,但本公开考虑了以任何合适的方式对设备进行定位。
在特定实施例中,移动计算设备200可以将移动计算设备200的位姿发送到VR显示设备135的VR***100。也就是说,移动计算设备200可以向VR***100发送诸如移动计算设备200的位姿等信息。移动计算设备200还可以向VR***100发送诸如佩戴着VR显示设备135的第一用户的一个或多个图像等信息。作为示例而不是限制,并且参考图13,移动计算设备200可以将用户102在真实世界环境150中的图像发送到VR显示设备135上的VR***100。尽管本公开描述了以特定方式发送位姿信息,但本公开考虑了以任何合适的方式发送位姿信息。
图14示出了移动计算设备200显示用户102在VR环境235中的MR视图的示例。佩戴着VR显示设备135的用户102可能正在玩在VR环境235中设置的VR游戏应用。移动计算设备200的用户可以使用光标205来观看VR环境235中的用户102、以及探索VR环境235。移动计算设备200的用户可以使用快照275功能来拍摄用户102在VR环境235中的照片,使用录制280功能来录制VR环境235中的用户102,或者使用gif 285功能来制作用户102在VR环境235中的gif文件。
在特定实施例中,移动计算设备200可以接收来自VR***100的、对VR环境235的VR渲染。该VR渲染可以根据移动计算设备200相对于VR显示设备135的视角。可以根据移动计算设备200相对于VR显示设备135的位姿来确定移动计算设备200的视角。作为示例而非限制,并且参考图14,移动计算设备200可以基于移动计算设备200具有相对于VR显示设备135的位姿,从移动计算设备200的视角显示VR环境235的VR渲染。移动计算设备200和VR显示设备135可以是时间同步的,因此在VR显示设备135上显示的VR环境235的渲染是在与移动计算设备200上显示的VR环境的渲染的相同时间戳接收的。通过该同步,移动计算设备200和VR显示设备135可以无缝地观看相同的VR环境235。尽管本公开描述了以特定方式接收VR渲染,但本公开考虑了以任何合适的方式接收VR渲染。
在特定实施例中,移动计算设备200可以接收来自VR***的、对第一用户(例如,用户102)已经在VR***100上激活特定VR应用的指示。作为示例而非限制,佩戴着VR显示设备135的第一用户可以选择VR游戏应用。移动计算设备200可以响应于接收到第一用户已经在VR***100上激活特定VR应用的指示,而呈现佩戴着VR显示设备135的第一用户已经启动该特定VR应用的通知。作为示例而非限制,移动计算设备200可以(例如,通过移动计算设备200的显示器上弹出的横幅或提示)通知移动计算设备200的用户:第一用户已经选择了VR游戏应用。然后,移动计算设备200的用户可以(例如,通过图11中的模式切换通知315)选择观看第一用户在VR游戏应用的VR环境235中的MR视图的选项。尽管本公开描述了以特定方式促进VR体验,但本公开考虑了以任何合适的方式促进VR体验。
图15、图16和图17示出了移动计算设备200显示根据第一位姿、第二位姿和第三位姿的、第一用户102在VR环境235中的MR视图的示例。移动计算设备200显示从一个或多个图像分割出来并在VR环境235中进行了渲染的第一用户。移动计算设备200的用户(例如,附加用户103)可能正在使用移动计算设备200来观看在真实世界环境150中佩戴着VR显示设备135的用户(例如,用户102)。移动计算设备200可以显示覆盖在VR环境235(例如,其中用户102处于VR游戏应用中)上的用户102的“剪影(cutout)”。移动计算设备200上显示的VR环境235可以对应于用户102所佩戴的VR显示设备135上显示的VR环境235。随着附加用户103和/或移动计算设备200移动、以及随着用户102和VR显示设备135移动,移动计算设备200的显示器更新用户102的位置、以及移动计算设备200在VR环境235“内”的位姿。因此,随着移动计算设备200在真实世界环境150中四处移动(例如,移动计算设备200从第一位姿移动到更新后的位姿),第一用户102在VR环境235中的MR渲染被自动实时地更新,以相对于MR计算设备200的更新后的位姿并根据MR计算设备200的更新后的位姿显示VR环境235中的第一用户102。
在特定实施例中,可以从一个或多个图像中分割第一用户(例如,用户102)。也就是说,可以将第一用户的轮廓、身体或“剪影”从背景真实世界环境150中分割出来,以覆盖或叠加到在移动计算设备200上显示的VR环境235上。作为示例而非限制,可以使用分割算法或图像处理算法识别和确定真实世界环境150中的用户102的轮廓或身体,并且可以从包含真实世界环境150中的用户102的图像中提取或分割出用户102的轮廓或身体。此外,在特定实施例中,可以从一个或多个图像中只分割出第一用户。也就是说,VR***100可以从一个或多个图像中仅分割出第一用户,并忽略(例如,不分割出)其他用户。在特定实施例中,VR***100可以分割出佩戴着VR显示设备135的用户(例如,VR***100使用深度估计在显示设备135周围创建包围体,以确定要分割哪个用户)。分割第一用户解决了如下技术挑战:允许对移动计算设备200的动态移动并将沉浸在VR环境235中的第一用户的图像保持在移动计算设备200上的图像画面内。因此,移动计算设备200的用户可以在无需固定在第一用户上的静态摄像头的情况下、保持第一用户在VR环境235中的MR渲染。可以将对第一用户的分割存储为分割数据。这些分割数据可以保留在VR***100处或在VR***100处维护。对分割数据的保留可以允许将MR或增强现实(augmented reality,AR)效果应用于对第一用户的分割。例如,如果第一个用户处于VR体育游戏环境中,则可以将MR或AR效果应用于所分割的第一用户所穿着的服装,使得第一用户看起来穿着运动队球衣。尽管本公开描述了以特定方式从一个或多个图像分割用户,但是本公开考虑了以任何合适的方式从一个或多个图像分割用户。
在特定实施例中,VR***100可以响应于采集到包含第一用户(例如,用户102)的一个或多个图像,在移动计算设备200处实时地生成第一用户(例如,用户102)在VR环境235中的MR渲染。第一用户的MR渲染可以基于对所分割的第一用户的一个或多个图像与VR渲染的合成。也就是说,MR渲染可以包括第一用户(例如,用户102),该第一用户从位于移动计算设备200的视场角(FOV)内的、真实世界环境235中的用户102的一个或多个图像中分割出来、并被渲染(例如,被叠加或被覆盖)到在移动计算设备200上显示的VR环境235上。在用户102移动和/或与在VR显示设备135上显示的VR环境235交互时,移动计算设备200的用户(例如,附加用户103)可以观看叠加到VR环境235上的用户102的2D渲染。在特定实施例中,移动计算设备200可以用于通过在移动计算设备200上显示的、用户102在VR环境235中的MR渲染来与VR环境235交互。也就是说,当用户102在VR环境235内移动或与VR环境235交互时,移动计算设备200的用户(例如,附加用户103)可能能够观看用户102并与用户102交互。移动计算设备200的附加用户103可以独立于佩戴着VR显示设备135的用户102而在VR环境235中移动并与VR环境235交互。例如,用户102可以玩VR游戏应用,而移动计算设备200的附加用户103可以观看用户102身后的VR环境235。VR***可以合成一个或多个图像,这可以在移动计算设备200处或者在VR显示设备135处执行。本实施例的技术优势可以包括:在不使用绿幕或其他专业设备的情况下,在单独的显示器(例如移动计算设备200)上生成第一用户(例如用户102)在VR环境235中的MR渲染。
技术挑战可以包括:在无需专业设备的情况下,与所生成的MR和VR内容进行交互,例如不要求移动计算设备200的用户使用专业的VR游戏设备来在VR游戏应用中与第一用户交互。本文所公开的实施例所提出的解决这一挑战的解决方案可以是:利用VR***的渲染和空间映射能力,允许移动计算设备200的用户通过移动计算设备200与所生成的MR和VR内容交互。也就是说,移动计算设备200的用户可以仅使用其移动计算设备200(例如,其智能手机)与VR环境235中的第一用户交互。例如,移动计算设备200的用户可以点击移动计算设备200的显示器上的图标或按钮来为第一用户设置障碍,以在VR游戏应用中交互。与VR环境235交互可以包括以下项中的一项或多项:在VR环境235中修改VR对象;在VR环境235中创建VR对象;在VR环境235中修改MR对象;在VR环境235中创建MR对象;修改VR环境235的一个或多个属性;将VR环境235从第一VR环境更改为第二VR环境;更改VR应用;记录MR渲染;或者流式传输MR渲染。在特定实施例中,移动计算设备200可以向在线社交网络实时地发送所生成的第一用户在VR环境235中的MR渲染,以用于向一个或多个附加用户直播显示。也就是说,移动计算设备200可以在在线社交网络或其他流式传输服务上(例如,使用录制280功能按钮)直播所生成的MR渲染。另外,移动计算设备200的用户可以通过创建与移动计算设备200的用户相对应的第二用户或附加用户(例如,附加用户103)的VR化身来与VR环境交互。因此,移动计算设备200的用户可以在同一VR环境235中与第一用户交互(例如,VR显示设备135的用户和移动计算设备200的用户可以“坐在”同一VR沙发上并一起看电影)。移动计算设备200的用户还可以与(不同于VR显示设备125的用户和移动计算设备200的用户的)另一用户的VR化身交互。在特定实施例中,并且参考图11,移动计算设备200可以用于响应于在移动计算设备200上的选择(例如,通过光标205的选择),而在VR渲染与MR渲染之间转换。移动计算设备200可以用于在以下项之间进行选择:根据第一用户的视角的VR环境234的VR渲染(例如,通过选择VR显示设备视图模式320);以及根据移动计算设备200相对于VR显示设备135的视角的、第一用户在VR环境235中的MR渲染(例如,通过选择MR视图模式310)。尽管本公开描述了生成MR渲染,但是本公开考虑了以任何合适的方式生成MR渲染。
图18示出了用于生成MR渲染的示例方法1800。该方法可以在步骤1810处开始,在该步骤中,移动计算设备的一个或多个摄像头可以采集真实世界环境中佩戴着VR显示设备135的第一用户的一个或多个图像。在步骤1820处,移动计算设备可以向VR显示设备135的VR***发送移动计算设备的位姿。在步骤1830处,移动计算设备可以接收来自VR***的VR环境的VR渲染。该VR渲染可以根据移动计算设备相对于VR显示设备135的视角。在步骤1840处,可以从一个或多个图像中分割第一用户。在步骤1850处,移动计算设备可以响应于采集到一个或多个图像而实时地生成第一用户在VR环境中的MR渲染。第一用户的MR渲染可以基于对所分割后的第一用户的一个或多个图像与VR渲染的合成。在适当的情况下,特定实施例可以重复图18的方法中的一个或多个步骤。尽管本公开将图18的方法的特定步骤描述和示出为以特定顺序进行,但本公开考虑了以任何合适的顺序进行的图18的方法的任何合适的步骤。此外,尽管本公开描述和示出了用于生成MR渲染的、包括图18的方法的特定步骤的示例方法,但本公开考虑了用于生成MR渲染的、包括任何合适的步骤的任何合适的方法,在适当情况下,该方法可以包括图18的方法的全部步骤、一些步骤或不包括图18的方法的任何步骤。此外,尽管本公开描述和示出了执行图18的方法的特定步骤的特定部件、设备或***,但是本公开考虑了执行图18的方法的任何合适的步骤的任何合适的部件、设备或***的任何合适的组合。
图19示出了与社交网络***相关联的示例网络环境1900。网络环境1900包括通过网络1910彼此连接的客户端***1930、社交网络***1960和第三方***1970。尽管图19示出了客户端***1930、社交网络***1960、第三方***1970和网络1910的特定布置,但是本公开考虑了客户端***1930、社交网络***1960、第三方***1970和网络1910的任何合适的布置。作为示例而非限制,客户端***1930、社交网络***1960和第三方***1970中的两者或更多者可以绕过网络1910而彼此直接连接。作为另一示例,客户端***1930、社交网络***1960和第三方***1970中的两者或更多者可以彼此整体地或部分地在物理上或逻辑上位于同一位置。此外,尽管图19示出了特定数量的客户端***1930、社交网络***1960、第三方***1970和网络1910,但本公开考虑了任何合适数量的客户端***1930、社交网络***1960、第三方***1970和网络1910。作为示例而非限制,网络环境1900可以包括多个客户端***1930、多个社交网络***1960、多个第三方***1970和多个网络1910。
本公开考虑了任何合适的网络1910。作为示例而非限制,网络1910的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线LAN(wireless LAN,WLAN)、广域网(wide areanetwork,WAN)、无线WAN(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、互联网的一部分、公共交换电话网络(Public Switched Telephone Network,PSTN)的一部分、蜂窝电话网络、或这些网络中的两者或更多者的组合。网络1910可以包括一个或多个网络1910。
链路1950可以将客户端***1930、社交网络***1960和第三方***1970连接到通信网络1910或彼此连接。本公开考虑了任何合适的链路1950。在特定实施例中,一条或多条链路1950包括一条或多条有线(例如,数字用户线(Digital Subscriber Line,DSL)或有线数据服务接口规范(Data Over Cable Service Interface Specification,DOCSIS))链路、无线(例如,Wi-Fi或全球互联的微波访问(Worldwide Interoperability forMicrowave Access,WiMAX))链路、或光学(例如,同步光纤网络(Synchronous OpticalNetwork,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在特定实施例中,一条或多条链路1950各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路1950、或两种或更多种这样的链路1950的组合。各链路1950在整个网络环境1900中不必是相同的。在一个或多个方面,一条或多条第一链路1950可以不同于一条或多条第二链路1950。
在特定实施例中,客户端***1930可以是这样的电子设备:所述电子设备包括硬件、软件、或嵌入式逻辑部件或两者或更多者这样的部件的组合,并且能够执行由客户端***1930实现或支持的合适功能。作为示例而非限制,客户端***1930可以包括计算机***,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位***(GPS)设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持式电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或它们的任何合适的组合。本公开考虑了任何合适的客户端***1930。客户端***1930可以使客户端***1930处的网络用户能够访问网络1910。客户端***1930可以使其用户能够与其他客户端***1930处的其他用户进行通信。
在特定实施例中,客户端***1930可以包括网页浏览器1932,并且可以具有一个或多个附加组件、插件或其他扩展。客户端***1930处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或将网页浏览器1932定向到特定服务器(例如,服务器1962、或与第三方***1970相关联的服务器)的其他地址,并且网页浏览器1932可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并向服务器传送该HTTP请求。服务器可以接收该HTTP请求,并响应于该HTTP请求而向客户端***1930传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端***1930可以基于来自服务器的HTML文件来渲染网页以呈现给用户。本公开考虑了任何合适的网页文件。作为示例而非限制,网页可以根据特定需求从以下文件中进行渲染:HTML文件、可扩展超文本标记语言(Extensible Hyper Text Markup Language,XHTML)文件、或可扩展标记语言(Extensible Markup Language,XML)。这样的页面还可以执行脚本、以及标记语言和脚本的组合等。在本文中,在适当的情况下,对网页的引用涵盖一个或多个对应的网页文件(浏览器可以使用这些网页文件来渲染网页),反之亦然。
在特定实施例中,社交网络***1960可以是可托管在线社交网络的网络可寻址计算***。社交网络***1960可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为用户资料数据、概念资料数据、社交图谱信息或与在线社交网络相关的其他合适的数据。社交网络***1960可以由网络环境1900中的其他部件直接地访问或经由网络1910访问。作为示例而非限制,客户端***1930可以使用网页浏览器1932或与社交网络***1960相关联的本地应用(例如,移动社交网络应用序、消息传递应用、另一合适的应用或它们的任何组合),来直接地或经由网络1910访问社交网络***1960。在特定实施例中,社交网络***1960可以包括一个或多个服务器1962。每个服务器1962可以是单一服务器、或跨越多个计算机或多个数据中心的分布式服务器。服务器1962可以具有各种类型,这些类型例如但不限于:网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文所描述的功能或过程的另一服务器、或它们的任何组合。在特定实施例中,每个服务器1962可以包括用于执行由服务器1962实现或支持的合适功能的硬件、软件、或嵌入式逻辑部件、或两者或更多者这些部件的组合。在特定实施例中,社交网络***1960可以包括一个或多个数据存储库1964。数据存储库1964可以用于存储各种类型的信息。在特定实施例中,可以根据特定数据结构来组织存储在数据存储库1964中的信息。在特定实施例中,每个数据存储库1964可以是关系型数据库、列式数据库、关联数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但本公开考虑了任何合适的类型的数据库。特定实施例可以提供这样的接口:所述接口使客户端***1930、社交网络***1960或第三方***1970能够对存储在数据存储库1964中的信息进行管理、检索、修改、添加或删除。
在特定实施例中,社交网络***1960可以将一个或多个社交图谱存储在一个或多个数据存储库1964中。在特定实施例中,社交图谱可以包括多个节点——该多个节点可以包括多个用户节点(每个用户节点与特定用户相对应)或多个概念节点(每个概念节点与特定概念相对应)——以及连接该多个节点的多条边。社交网络***1960可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以通过社交网络***1960加入在线社交网络,并且随后将连接(例如,关系)添加到社交网络***1960中他们想要连接到的多个其他用户。在本文中,术语“朋友”可以指社交网络***1960中的、用户已经通过社交网络***1960与之形成连接、关联或关系的任何其他用户。
在特定实施例中,社交网络***1960可以向用户提供对由社交网络***1960支持的各种类型的项或对象采取动作的能力。作为示例而非限制,这些项和对象可以包括社交网络***1960的用户可能所属的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可使用的基于计算机的应用、允许用户通过服务购买或出售项的交易、用户可执行的与广告的交互、或其他合适的项或对象。用户可以与以下的任何事物交互:所述事物能够在社交网络***1960中表示、或由第三方***1970的外部***表示,该第三方***与社交网络***1960分开并经由网络1910耦接到社交网络***1960。
在特定实施例中,社交网络***1960可能能够链接各种实体。作为示例而非限制,社交网络***1960可以使各用户能够彼此交互、以及接收来自第三方***1970或其他实体的内容,或者允许用户通过应用编程接口(application programming interface,API)或其他通信信道与这些实体交互。
在特定实施例中,第三方***1970可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个网页服务、一个或多个内容源、一个或多个网络、或(例如,服务器可与之通信的)任何其他合适的部件。第三方***1970可以由与操作社交网络***1960的实体不同的实体来操作。然而,在特定实施例中,社交网络***1960和第三方***1970可以彼此协同运行,以向社交网络***1960或第三方***1970的用户提供社交网络服务。在这个意义上,社交网络***1960可以提供平台或主干网,其他***(例如,第三方***1970)可以使用该平台或主干网,来通过互联网向用户提供社交网络服务和功能。
在特定实施例中,第三方***1970可以包括第三方内容对象提供者。第三方内容对象提供者可以包括内容对象的一个或多个源,这些内容对象可以被传送到客户端***1930。作为示例而非限制,内容对象可以包括与用户感兴趣的事物或活动有关的信息,例如,电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券或其他合适的激励对象。
在特定实施例中,社交网络***1960还包括用户生成的内容对象,该用户生成的内容对象可以增强用户与社交网络***1960的交互。用户生成的内容可以包括用户可添加、上传、发送或“发布”到社交网络***1960的任何事物。作为示例而非限制,用户从客户端***1930向社交网络***1960传送帖子。帖子可以包括诸如状态更新或其他文本数据等数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容也可以由第三方通过“通信通道”(例如,新闻馈送或流)添加到社交网络***1960。
在特定实施例中,社交网络***1960可以包括各种服务器、子***、程序、模块、日志和数据存储库。在特定实施例中,社交网络***1960可以包括以下项中的一项或多项:网页服务器、操作日志记录器、API请求服务器、相关性和排序引擎、内容对象分类器、通知控制器、操作日志、第三方内容对象公开日志、推理模块、授权/隐私服务器、搜索模块、广告定向模块、用户界面模块、用户资料存储库、连接存储库、第三方内容存储库或位置存储库。社交网络***1960还可以包括合适的部件,例如网络接口、安全机制、负载均衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或他们的任何合适的组合。在特定实施例中,社交网络***1960可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料可以包括例如生物信息、人口统计信息、行为信息、社会信息或其他类型的描述性信息(例如,工作经历、教育历史、爱好或偏好、兴趣、亲密关系或位置)。兴趣信息可以包括与一个或多个类别相关的兴趣。类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋子的品牌的物品,则该类别可以是该品牌,或者可以是“鞋子”或“服装”的通用类别。连接存储库可以用于存储关于用户的连接信息。连接信息可以指示这样的用户:所述用户具有相似或共同的工作经历、群组成员资格、爱好、教育历史,或者以任何方式相关或共享共同的属性。连接信息还可以包括不同用户和内容(内部和外部这两者)之间的用户定义的连接。网页服务器可以用于经由网络1910将社交网络***1960链接到一个或多个客户端***1930或一个或多个第三方***1970。网页服务器可以包括邮件服务器、或用于接收并在社交网络***1960与一个或多个客户端***1930之间路由消息的其他消息收发功能。API请求服务器可以允许第三方***1970通过调用一个或多个API来访问来自社交网络***1960的信息。操作日志记录器可以用于接收来自网页服务器的关于用户启动或关闭社交网络***的动作的信息。结合操作日志,可以维护用户对第三方内容对象公开的第三方内容对象日志。通知控制器可以向客户端***1930提供关于内容对象的信息。可以将信息作为通知推送给客户端***1930,或者可以响应于从客户端***1930接收到的请求而从客户端***1930提取信息。授权服务器可以用于实施对社交网络***1960的用户的一个或多个隐私设置。用户的隐私设置决定了可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置合适的隐私设置,来选择让或不让社交网络***1960对其动作进行记录、或将其动作与其他***(例如,第三方***1970)共享。第三方内容对象存储库可以用于存储从第三方(例如,第三方***1970)接收到的内容对象。位置存储库可以用于存储从与用户相关联的客户端***1930接收到的位置信息。广告定价模块可以结合社交信息、当前时间、位置信息或其他合适的信息,来以通知的形式向用户提供相关广告。
图20示出了示例计算机***2000。在特定实施例中,一个或多个计算机***2000执行本文所描述或所示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机***2000提供本文所描述或所示出的功能。在特定实施例中,在一个或多个计算机***2000上运行的软件执行本文所描述或所示出的一种或多种方法的一个或多个步骤,或者提供本文所描述或所示出的功能。特定实施例包括一个或多个计算机***2000的一个或多个部分。此处,在适当的情况下,对计算机***的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机***的引用可以涵盖一个或多个计算机***。
本公开考虑了任意合适的数量的计算机***2000。本公开考虑了采用任何合适的物理形式的计算机***2000。作为示例而非限制,计算机***2000可以是嵌入式计算机***、片上***(system-on-chip,SOC)、单板计算机***(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上***(system-on-module,SOM))、台式计算机***、膝上型或笔记本计算机***、交互式自助服务终端(interactivekiosk)、大型机、计算机***网格、移动电话、个人数字助理(PDA)、服务器、平板计算机***、增强/虚拟现实设备或这些中的两种或更多种的组合。在适当的情况下,计算机***2000可以包括一个或多个计算机***2000;可以是单一的或分布式的;可以跨越多个位置;可以跨越多台机器;可以跨越多个数据中心;或者可以驻留在云中,所述云可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机***2000可以在没有实质上的空间或时间限制的情况下、执行本文所描述或所示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机***2000可以实时地或以批处理模式执行本文所描述或所示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机***2000可以在不同的时间或在不同的位置执行本文所描述或所示出的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机***2000包括处理器2002、内存2004、存储器2006、输入/输出(input/output,I/O)接口2008、通信接口2010和总线2012。尽管本公开描述并示出了具有以特定布置的特定数量的特定部件的特定计算机***,但本公开考虑了具有以任何合适的布置的、任何合适的数量的任何合适的部件的任何合适的计算机***。
在特定实施例中,处理器2002包括用于执行指令(例如,构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行指令,处理器2002可以检索(或读取)来自内部寄存器、内部高速缓冲存储器、内存2004、或存储器2006的多个指令;解码并执行这些指令;并且随后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存2004或存储器2006。在特定实施例中,处理器2002可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适的数量的任何合适的内部高速缓冲存储器的处理器2002。作为示例而非限制,处理器2002可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、以及一个或多个页表缓存(translationlookaside buffer,TLB)。指令高速缓冲存储器中的指令可以是内存2004或存储器2006中的指令的副本,并且指令高速缓冲存储器可以加速处理器2002对那些指令的检索。数据高速缓冲存储器中的数据可以是:内存2004或存储器2006中的供在处理器2002处执行的指令进行操作的数据的副本;在处理器2002处执行的供由在处理器2002处执行的后续指令进行访问或用于写入内存2004或存储器2006的先前指令的结果;或其他合适的数据。数据高速缓冲存储器可以加速处理器2002的读操作或写操作。TLB可以加速处理器2002的虚拟地址转译。在特定实施例中,处理器2002可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器2002。在适当的情况下,处理器2002可以包括一个或多个算术逻辑单元(arithmetic logicunit,ALU);可以是多核处理器;或者可以包括一个或多个处理器2002。尽管本公开描述和示出了特定处理器,但本公开考虑了任何合适的处理器。
在特定实施例中,内存2004包括主内存,该主内存用于存储由处理器2002执行的指令或供处理器2002操作的数据。作为示例而非限制,计算机***2000可以将指令从存储器2006或另一源(例如,另一计算机***2000)加载到内存2004。然后,处理器2002可以将这些指令从内存2004加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器2002可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对其进行解码。在对这些指令的执行期间或之后,处理器2002可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器2002可以将这些结果中的一个或多个结果写入内存2004。在特定实施例中,处理器2002仅执行一个或多个内部寄存器或内部高速缓冲存储器或内存2004(与存储器2006或其它地方相对)中的指令,并且仅对一个或多个内部寄存器或内部高速缓冲存储器中或内存2004(于存储器2006或其它处相对)中的数据进行操作。一个或多个内存总线(其可以各自包括地址总线和数据总线)可以将处理器2002耦接到内存2004。如下所述,总线2012可以包括一个或多个内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,MMU)位于处理器2002与内存2004之间,并且促进由处理器2002请求的对内存2004的访问。在特定实施例中,内存2004包括随机存取存储器(random access memory,RAM)。在适当的情况下,RAM可以是易失性存储器。在适当的情况下,RAM可以是动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存2004可以包括一个或多个内存2004。尽管本公开描述和示出了特定的内存,但本公开考虑了任何合适的内存。
在特定实施例中,存储器2006包括用于数据或指令的大容量存储器。作为示例而非限制,存储器2006可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(universal serial bus,USB)驱动器、或这些中的两者或更多者的组合。在适当的情况下,存储器2006可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器2006可以处于计算机***2000的内部或外部。在特定实施例中,存储器2006是非易失性固态存储器。在特定实施例中,存储器2006包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电子可擦除PROM(electrically erasable PROM,EEPROM)、电改写ROM(electrically alterable ROM,EAROM)、或闪存、或这些中的两者或更多者的组合。本公开考虑了采用任何合适的物理形式的大容量存储器2006。在适当的情况下,存储器2006可以包括促进处理器2002与存储器2006之间的通信的一个或多个存储器控制单元。在适当的情况下,存储器2006可以包括一个或多个存储器2006。尽管本公开描述并示出了特定存储器,但本公开考虑了任何合适的存储器。
在特定实施例中,I/O接口2008包括为计算机***2000与一个或多个I/O设备之间的通信提供一个或多个接口的硬件、软件或这两者。在适当的情况下,计算机***2000可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现人和计算机***2000之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物摄像机、手写笔、平板电脑、触摸屏、轨迹球、视频摄像机、另一合适的I/O设备、或这些I/O设备中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于这些I/O设备的任何合适的I/O接口2008。在适当的情况下,I/O接口2008可以包括一个或多个设备或软件驱动程序,该一个或多个设备或软件驱动程序使处理器2002能够驱动这些I/O设备中的一个或多个。在适当的情况下,I/O接口2008可以包括一个或多个I/O接口2008。尽管本公开描述和示出了特定I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口2010包括为计算机***2000与一个或多个其他计算机***2000或与一个或多个网络之间的通信(例如,基于包的通信)提供的一个或多个接口的硬件、软件或这两者。作为示例而非限制,通信接口2010可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(network interface controller,NIC)或网络适配器,或者可以包括用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wirelessNIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口2010。作为示例而非限制,计算机***2000可以与以下网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或这些网络中的两者或更多者的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线的或无线的。例如,计算机***2000可以与以下网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN)、Wi-Fi网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信***(global system for mobile communications,GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合。在适当的情况下,计算机***2000可以包括用于这些网络中的任何网络的任何合适的通信接口2010。在适当的情况下,通信接口2010可以包括一个或多个通信接口2010。尽管本公开描述和示出了特定通信接口,但本公开考虑了任何合适的通信接口。
在特定实施例中,总线2012包括将计算机***2000的各部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线2012可以包括加速图形端口(Accelerated GraphicsPort,AGP)或其它图形总线、增强型工业标准体系结构(Enhanced Industry StandardArchitecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准体系结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、内存总线、微通道体系结构(Micro Channel Architecture,MCA)总线、***部件互连(Peripheral ComponentInterconnect,PCI)总线、快速PCI(PCI-Express,PCIe)总线、串行高级技术附件(serialadvanced technology attachment,SATA)总线、视频电子标准协会局部(videoelectronics standards association local,VLB)总线、或另一合适的总线、或者这些中的两者或更多者的组合。在适当的情况下,总线2012可以包括一条或多条总线2012。尽管本公开描述并示出了特定的总线,但本公开考虑了任何合适的总线或互连。
在本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括一个或多个基于半导体的电路或其他集成电路(integrated circuit,IC)(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(floppy disk drive,FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或者易失性和非易失性的组合。
在本文中,除非另有明确指示或上下文另有指示,否则“或”是开放性的而不是排他性的。因此,本文中,除非另有明确指示或上下文另有指示,否则“A或B”是指“A、B、或这两者”。此外,除非另有明确指示或上下文另有指示,否则“和”是共同的和单独的。因此,本文中,除非另有明确指示或上下文另有指示,否则“A和B”是指“A和B,共同地或单独地”。
本公开的范围涵盖本领域技术人员将理解的、对本文中所描述或所示出的示例实施例的所有改变、替代、变型、更改和修改。本公开的范围不限于本文所描述或示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述和示出为包括特定的部件、元件、特征、功能、操作、或步骤,但这些实施例中的任何实施例都可以包括本领域技术人员将理解的、本文中任何地方所描述或示出的部件、元件、特征、功能、操作、或步骤中的任何的的任何组合或排列。此外,在所附权利要求中对适于、被布置为、能够、被配置为、被实现为、可操作地或可使用以执行特定功能的装置或***、或装置或***的部件的引用涵盖了该装置、***、部件(无论该装置、***、部件或该特定功能是否被激活、开启或解锁),只要该装置、***或部件是如此适于、被布置为、能够、被配置为、被实现为、可操作地或可使用。此外,虽然本公开将特定实施例描述或示出为提供特定优势,但特定实施例可以不提供这些优势,或者可以提供这些优势中的一些或全部优势。

Claims (15)

1.一种方法,包括:由移动计算设备:
使用所述移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;
向所述VR显示设备的VR***发送来自所述移动计算设备的、所述移动计算设备相对于所述VR显示设备的位姿;
在所述移动计算设备处接收来自所述VR***的VR环境的VR渲染,其中,所述VR渲染是根据所述移动计算设备相对于所述VR显示设备的视角的;
从所述一个或多个图像中分割所述第一用户;以及
响应于采集到所述一个或多个图像,在所述移动计算设备处实时地生成所述第一用户在所述VR环境中的混合现实(MR)渲染,其中,所述第一用户的所述MR渲染是基于对所分割的所述第一用户的一个或多个图像与所述VR渲染的合成的。
2.根据权利要求1所述的方法,还包括:
在所述移动计算设备处接收来自所述VR***的、从所述一个或多个图像中识别出的所述真实世界环境中的一个或多个锚点。
3.根据权利要求2所述的方法,还包括:
基于所述一个或多个锚点中的一个或多个,确定所述移动计算设备相对于所述VR显示设备的位姿。
4.根据权利要求3所述的方法,还包括:
检测所述移动计算设备已移动;
基于所述一个或多个锚点中的一个或多个,确定所述移动计算设备相对于所述VR显示设备的更新后的位姿;以及
响应于检测到所述移动计算设备已移动,在所述移动计算设备处实时地生成所述第一用户在所述VR环境中的更新后的MR渲染,其中,所述第一用户的所述更新后的MR渲染是基于所述移动计算设备相对于所述VR显示设备的所述更新后的位姿的;和/或优选地
其中,所述移动计算设备相对于所述VR显示设备的所述位姿是基于以下项之间的三角测量来确定的:所述一个或多个锚点中的一个或多个;所述移动计算设备的所述一个或多个摄像头;和所述VR显示设备。
5.根据权利要求2至4中任一项所述的方法,其中,所述一个或多个锚点是所述真实世界环境中的固定对象。
6.根据前述权利要求中任一项所述方法,还包括:
响应于在所述移动计算设备上的选择,在以下项之间转换:
根据所述第一用户的视角的所述VR环境的VR渲染;以及
根据所述移动计算设备相对于所述VR显示设备的视角的、所述第一用户在所述VR环境中的所述MR渲染。
7.根据前述权利要求中任一项所述方法,还包括:
向在线社交网络实时地发送来自所述移动计算设备的、所生成的所述第一用户在所述VR环境中的所述MR渲染,以用于向一个或多个附加用户直播显示。
8.根据前述权利要求中任一项所述方法,其中,从所述一个或多个图像中分割所述第一用户包括:
使用分割算法,在所述一个或多个图像中每个图像内识别所述第一用户的身体。
9.根据前述权利要求中任一项所述方法,还包括:
在所述移动计算设备处接收来自所述VR***的、对所述第一用户已经激活所述VR***上的特定VR应用的指示;以及
响应于所接收到的所述指示,在所述移动计算设备处呈现佩戴着所述VR显示设备的所述第一用户已经启动所述特定VR应用的通知。
10.根据前述权利要求中任一项所述方法,其中,所述移动计算设备能够用于通过所述MR渲染与所述VR环境交互;并且优选地
其中,与所述VR环境交互包括以下项中的一项或多项:
在所述VR环境中修改VR对象;
在所述VR环境中创建VR对象;
在所述VR环境中修改MR对象;
在所述VR环境中创建MR对象;
修改VR环境的一个或多个属性;
将所述VR环境从第一VR环境更改为第二VR环境;
更改所述VR应用;
记录所述MR渲染;
流式传输所述MR渲染;
创建与所述移动计算设备的第二用户相对应的VR化身;或者
与第三用户的VR化身交互。
11.一种或多种计算机可读非暂态存储介质,所述一种或多种计算机可读非暂态存储介质包含软件,所述软件在被移动计算设备执行时能够操作以:
使用所述移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;
向所述VR显示设备的VR***发送来自所述移动计算设备的、所述移动计算设备相对于所述VR显示设备的位姿;
在所述移动计算设备处接收来自所述VR***的VR环境的VR渲染,其中,所述VR渲染是根据所述移动计算设备相对于所述VR显示设备的视角的;
从所述一个或多个图像中分割所述第一用户;以及
响应于采集到所述一个或多个图像,在所述移动计算设备处实时地生成所述第一用户在所述VR环境中的混合现实(MR)渲染,其中,所述第一用户的所述MR渲染是基于对所分割的所述第一用户的一个或多个图像与所述VR渲染的合成的。
12.根据权利要求11所述的介质,其中,所述软件在被执行时还能够操作以:
在所述移动计算设备处接收来自所述VR***的、从所述一个或多个图像中识别出的所述真实世界环境中的一个或多个锚点。
13.根据权利要求12所述的介质,其中,所述软件在被执行时还能够操作以:
基于所述一个或多个锚点中的一个或多个,确定所述移动计算设备相对于所述VR显示设备的位姿;并且优选地
i.其中,所述软件在被执行时还能够操作以:
检测所述移动计算设备已移动;
基于所述一个或多个锚点中的一个或多个,确定所述移动计算设备相对于所述VR显示设备的更新后的位姿;以及
响应于检测到所述移动计算设备已移动,在所述移动计算设备处实时地生成所述第一用户在所述VR环境中的更新后的MR渲染,其中,所述第一用户的所述更新后的MR渲染是基于所述移动计算设备相对于所述VR显示设备的所述更新后的位姿的;和/或优选地
ii.其中,所述移动计算设备相对于所述VR显示设备的所述位姿是基于以下项之间的三角测量来确定的:所述一个或多个锚点中的一个或多个锚点;所述移动计算设备的所述一个或多个摄像头;和所述VR显示设备。
14.根据权利要求12或13所述的介质,其中,所述一个或多个锚点是所述真实世界环境中的固定对象。
15.一种移动计算设备,包括:一个或多个处理器;以及非暂态存储器,所述非暂态存储器耦接到所述处理器,所述非暂态存储器包括所述处理器能够执行的指令,所述处理器在执行所述指令时能够操作以:
使用所述移动计算设备的一个或多个摄像头,采集真实世界环境中佩戴着虚拟现实(VR)显示设备的第一用户的一个或多个图像;
向所述VR显示设备的VR***发送来自所述移动计算设备的、所述移动计算设备相对于所述VR显示设备的位姿;
在所述移动计算设备处接收来自所述VR***的VR环境的VR渲染,其中,所述VR渲染是根据所述移动计算设备相对于所述VR显示设备的视角的;
从所述一个或多个图像中分割所述第一用户;以及
响应于采集到所述一个或多个图像,在所述移动计算设备处实时地生成所述第一用户在所述VR环境中的混合现实(MR)渲染,其中,所述第一用户的所述MR渲染是基于对所分割的所述第一用户的一个或多个图像与所述VR渲染的合成的。
CN202280039865.1A 2021-06-02 2022-06-01 虚拟现实中的动态混合现实内容 Pending CN117425870A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/336,776 US11676348B2 (en) 2021-06-02 2021-06-02 Dynamic mixed reality content in virtual reality
US17/336,776 2021-06-02
PCT/US2022/031840 WO2022256453A1 (en) 2021-06-02 2022-06-01 Dynamic mixed reality content in virtual reality

Publications (1)

Publication Number Publication Date
CN117425870A true CN117425870A (zh) 2024-01-19

Family

ID=82321479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280039865.1A Pending CN117425870A (zh) 2021-06-02 2022-06-01 虚拟现实中的动态混合现实内容

Country Status (5)

Country Link
US (2) US11676348B2 (zh)
EP (1) EP4348402A1 (zh)
CN (1) CN117425870A (zh)
TW (1) TW202249484A (zh)
WO (1) WO2022256453A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117115400A (zh) * 2023-09-15 2023-11-24 深圳市红箭头科技有限公司 实时显示全身人体动作的方法、装置、计算机设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941184B2 (en) * 2021-05-18 2024-03-26 Snap Inc. Dynamic initialization of 3DOF AR tracking system
US11676348B2 (en) * 2021-06-02 2023-06-13 Meta Platforms Technologies, Llc Dynamic mixed reality content in virtual reality

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999083B2 (en) 2001-08-22 2006-02-14 Microsoft Corporation System and method to provide a spectator experience for networked gaming
US8730156B2 (en) * 2010-03-05 2014-05-20 Sony Computer Entertainment America Llc Maintaining multiple views on a shared stable virtual space
EP3654146A1 (en) 2011-03-29 2020-05-20 QUALCOMM Incorporated Anchoring virtual images to real world surfaces in augmented reality systems
US9122321B2 (en) * 2012-05-04 2015-09-01 Microsoft Technology Licensing, Llc Collaboration environment using see through displays
US9996975B2 (en) 2014-03-18 2018-06-12 Dreamworks Animation L.L.C. Interactive multi-rider virtual reality ride system
WO2016073986A1 (en) * 2014-11-07 2016-05-12 Eye Labs, LLC Visual stabilization system for head-mounted displays
US9861446B2 (en) * 2016-03-12 2018-01-09 Philipp K. Lang Devices and methods for surgery
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
WO2018052966A1 (en) * 2016-09-16 2018-03-22 Zimmer, Inc. Augmented reality surgical technique guidance
US10445925B2 (en) 2016-09-30 2019-10-15 Sony Interactive Entertainment Inc. Using a portable device and a head-mounted display to view a shared virtual reality space
US11782669B2 (en) 2017-04-28 2023-10-10 Microsoft Technology Licensing, Llc Intuitive augmented reality collaboration on visual data
EP3667625A4 (en) * 2017-08-09 2020-08-12 Sony Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS AND PROGRAM
US11099392B2 (en) 2017-10-18 2021-08-24 Hewlett-Packard Development Company, L.P. Stabilized and tracked enhanced reality images
US20190130788A1 (en) * 2017-10-26 2019-05-02 Aquinas Learning, Inc. Virtual Reality Microsimulation Platform
US20190130656A1 (en) * 2017-11-01 2019-05-02 Tsunami VR, Inc. Systems and methods for adding notations to virtual objects in a virtual environment
US10319154B1 (en) * 2018-07-20 2019-06-11 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for dynamic vision correction for in-focus viewing of real and virtual objects
US11633659B2 (en) * 2018-09-14 2023-04-25 Mirrorar Llc Systems and methods for assessing balance and form during body movement
US20200111256A1 (en) 2018-10-08 2020-04-09 Microsoft Technology Licensing, Llc Real-world anchor in a virtual-reality environment
US10996915B2 (en) * 2018-10-31 2021-05-04 Doubleme, Inc. Surrogate visitor mixed-reality live environment sharing system with remote visitors
US11058950B2 (en) 2019-03-15 2021-07-13 Sony Interactive Entertainment Inc. Methods and systems for spectating characters in virtual reality views
US11361513B2 (en) * 2019-04-23 2022-06-14 Valve Corporation Head-mounted display with pass-through imaging
AU2020282774A1 (en) * 2019-05-29 2021-12-23 Murphy, Stephen B Systems and methods for utilizing augmented reality in surgery
US11468605B2 (en) * 2019-12-12 2022-10-11 Sony Interactive Entertainment Inc. VR real player capture for in-game interaction view
US10715851B1 (en) * 2019-12-16 2020-07-14 BigScreen, Inc. Digital rights managed virtual reality content sharing
US11875013B2 (en) * 2019-12-23 2024-01-16 Apple Inc. Devices, methods, and graphical user interfaces for displaying applications in three-dimensional environments
US10950034B1 (en) 2020-01-27 2021-03-16 Facebook Technologies, Llc Systems, methods, and media for generating visualization of physical environment in artificial reality
EP4104002A4 (en) * 2020-02-14 2023-08-09 Magic Leap, Inc. 3D OBJECT ANNOTATION
CN112454333B (zh) * 2020-11-26 2022-02-11 青岛理工大学 基于图像分割及表面肌电信号的机器人示教***及方法
US11676348B2 (en) * 2021-06-02 2023-06-13 Meta Platforms Technologies, Llc Dynamic mixed reality content in virtual reality

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117115400A (zh) * 2023-09-15 2023-11-24 深圳市红箭头科技有限公司 实时显示全身人体动作的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2022256453A1 (en) 2022-12-08
TW202249484A (zh) 2022-12-16
US20230290089A1 (en) 2023-09-14
US20220392169A1 (en) 2022-12-08
EP4348402A1 (en) 2024-04-10
US11676348B2 (en) 2023-06-13

Similar Documents

Publication Publication Date Title
US11676348B2 (en) Dynamic mixed reality content in virtual reality
EP4246963A1 (en) Providing shared augmented reality environments within video calls
CN114761910A (zh) 用于在人工现实中显示物理环境的实时可视化的***、方法和介质
US11842442B2 (en) Camera reprojection for faces
US11914836B2 (en) Hand presence over keyboard inclusiveness
US12033270B2 (en) Systems and methods for generating stabilized images of a real environment in artificial reality
US11887249B2 (en) Systems and methods for displaying stereoscopic rendered image data captured from multiple perspectives
CN116917844A (zh) 跨应用虚拟现实场合中的可调整个人用户界面
US20230221797A1 (en) Ephemeral Artificial Reality Experiences
US20230259194A1 (en) Spatial Anchor Sharing for Multiple Virtual Reality Systems in Shared Real-World Environments
US20240078745A1 (en) Generation of a virtual viewpoint image of a person from a single captured image
US11818474B1 (en) Sparse RGB cameras for image capture
US20240119672A1 (en) Systems, methods, and media for generating visualization of physical environment in artificial reality
WO2024081260A1 (en) Systems, methods, and media for generating visualization of physical environment in artificial reality

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