CN116530078A - 用于显示从多个视角采集的经立体渲染的图像数据的3d视频会议系统和方法 - Google Patents
用于显示从多个视角采集的经立体渲染的图像数据的3d视频会议系统和方法 Download PDFInfo
- Publication number
- CN116530078A CN116530078A CN202180075744.8A CN202180075744A CN116530078A CN 116530078 A CN116530078 A CN 116530078A CN 202180075744 A CN202180075744 A CN 202180075744A CN 116530078 A CN116530078 A CN 116530078A
- Authority
- CN
- China
- Prior art keywords
- computing system
- image
- camera
- proxy
- planar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/133—Equalising the characteristics of different image components, e.g. their average brightness or colour balance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/15—Processing image signals for colour aspects of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/275—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
- H04N13/279—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/383—Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/157—Conference systems defining a virtual conference space and using avatars or agents
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种方法包括:由与人工现实设备相关联的计算系统通过网络接收第二计算系统的用户的视频数据,该视频数据包括该用户的第一图像和第二图像。第一图像和第二图像可以分别由第二计算系统的第一摄像头和第二摄像头同时采集。该计算系统生成用于显示该用户的平面代理,以及确定该平面代理在三维虚拟环境内的姿态。该计算系统分别基于具有所确定的姿态的平面代理和第一图像、以及具有所确定的姿态的平面代理和第二图像,渲染用于人工现实设备的左眼显示器的左图像和用于右眼显示器的右图像。该计算系统使用左眼显示器和右眼显示器分别显示所渲染的左图像和所渲染的右图像。
Description
技术领域
本公开总体上涉及计算机图形和显示经渲染的图像数据。
背景技术
人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全的生成内容、或与所采集的内容(例如,真实世界的照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中的任何一种可以在单个通道或多个通道中渲染(例如,给观看者带来三维效果的立体视频)。人工现实可以与应用、产品、附件、服务、或它们的某种组合相关联,这些应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
发明内容
本文所描述的实施例涵盖了这样的系统、方法和介质:所述系统、方法和介质在人工现实设备上显示从多个视角采集的图像数据。本文所公开的实施例通过渲染和显示从多个视角采集的用户或对象(subject)的图像数据,在虚拟环境中模拟对用户的三维再现,而无需传统上进行三维再现所需的复杂硬件设置、以及显著的功率要求和带宽要求。所公开的实施例用于各种应用,例如使用人工现实设备的视频通话体验。
在一个实施例中,计算系统可以接收包括对象或用户的多个视角的图像数据,并利用本文所描述的一项或多项技术来向人工现实系统(其模拟了三维体验)的第二用户渲染和显示多视角图像数据。在特定实施例中,计算系统还可以利用(例如但不限于)虚拟环境中的平面代理(planar proxy)或3D网格来渲染和显示多视角图像数据。本文所描述的技术通过提供沉浸式多视角体验来改进现有技术,其与二维再现相比提高了对象轮廓周围的图像质量和深度感知,同时与三维再现相比降低了功率要求和数据带宽要求。
本发明的实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全的生成内容、或与所采集的内容(例如,真实世界的照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中的任何一种可以在单个通道或多个通道(例如,给观看者带来三维效果的立体视频)中渲染。另外,在特定实施例中,人工现实可以与应用、产品、附件、服务、或它们的某种组合相关联,这些应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,该各种平台包括连接到主计算机系统的头戴式显示器(HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
根据本公开的第一方面,提供了一种方法,该方法包括由与人工现实设备相关联的第一计算系统:通过网络接收第二计算系统的用户的视频数据,该视频数据包括第二计算系统的用户的第一采集图像和该用户的第二采集图像,其中,第一采集图像和第二采集图像分别由第二计算系统的第一摄像头和第二摄像头同时采集;生成用于显示第二计算系统的用户的平面代理;确定该平面代理在三维虚拟环境内的姿态;基于具有所确定的姿态的平面代理和第一采集图像,渲染用于人工现实设备的左眼显示器的左显示图像;基于具有所确定的姿态的平面代理和第二采集图像,渲染用于人工现实设备的右眼显示器的右显示图像;以及使用左眼显示器和右眼显示器分别显示所渲染的左显示图像和所渲染的右显示图像。
在一些实施例中,平面代理是相对于人工现实设备的姿态而形成的。
在一些实施例中,平面代理可以形成在三维虚拟环境内的固定的位置和方位处。
在一些实施例中,该方法还可以包括:接收来自第二计算系统的配置数据,其中,来自第二计算系统的配置数据包括第二计算系统的第一摄像头和第二摄像头的一个或多个属性;接收来自第三计算系统的配置数据,其中,来自第三计算系统的配置数据包括第三计算系统的第一摄像头和第二摄像头的一个或多个属性;基于来自第二计算系统和第三计算系统的配置数据,对平面代理在三维环境内的姿态进行调整。
在一些实施例中,第一摄像头和第二摄像头可以在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位。
在一些实施例中,该方法还可以包括:第一计算系统或第二计算系统对第一摄像头或第二摄像头在纵平面上的位置进行调整。
在一些实施例中,该方法还可以包括:选择第一采集图像中包含用户的部分;选择第二采集图像中包含用户的部分;其中,左显示图像是基于第一采集图像的所选择的该部分来渲染的,以及右显示图像是基于第二采集图像的所选择的该部分来渲染的。
在一些实施例中,该方法还可以包括:确定第一图像中的一个或多个像素的红/绿/蓝(RGB)颜色值;确定第二图像中的一个或多个对应像素的红/绿/蓝(RGB)颜色值;以及对第一图像中的该一个或多个像素的RGB颜色值进行调整,以匹配第二图像中的该一个或多个对应像素的RGB颜色值。
在一些实施例中,该方法还可以包括:确定人工现实相对于平面代理的视角;确定该视角超过预定的最大阈值;以及基于确定了人工现实设备的该视角超过预定的最大阈值,终止在左眼显示器上对左显示图像的显示、以及终止在右眼显示器上对右显示图像的显示。
根据本公开的另一方面,提供了一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质包括软件,该软件在由与人工现实设备相关联的第一计算系统执行时能够操作以:通过网络接收第二计算系统的用户的视频数据,该视频数据包括该用户的第一采集图像和该用户的第二采集图像,其中,第一采集图像和第二采集图像分别由第二计算系统的第一摄像头和第二摄像头同时采集;生成用于显示该用户的平面代理;确定平面代理在三维虚拟环境内的姿态;基于具有所确定的姿态的平面代理和第一采集图像,渲染用于人工现实设备的左眼显示器的左显示图像;基于具有所确定的姿态的平面代理和第二采集的图像,渲染用于人工现实设备的右眼显示器的右显示图像;以及使用左眼显示器和右眼显示器分别显示所渲染的左显示图像和所渲染的右显示图像。
在一些实施例中,平面代理可以是相对于人工现实设备的姿态而形成的。
在一些实施例中,平面代理可以形成在三维虚拟环境内的固定的位置和方位处。
在一些实施例中,该软件在被执行时还能够操作以:接收来自第二计算系统的配置数据,其中,来自第二计算系统的配置数据包括第二计算系统的第一摄像头和第二摄像头的一个或多个属性;接收来自第三计算系统的配置数据,其中,来自第三计算系统的配置数据包括第三计算系统的第一摄像头和第二摄像头的一个或多个属性;基于来自第二计算系统和第三计算系统的配置数据,对平面代理在三维环境内的姿态进行调整。
在一些实施例中,第一摄像头和第二摄像头可以在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位。
在一些实施例中,该软件在由第一计算系统或第二计算系统执行时还能够操作以:对第一摄像头或第二摄像头在纵平面上的位置进行调整。
根据本公开的另一方面,提供了一种与人工现实设备相关联的第一计算系统,该第一计算系统包括:一个或多个处理器;以及一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质耦接到该一个或多个处理器,该一个或多个计算机可读非暂态存储介质包括指令,所述指令在由该一个或多个处理器执行时能够操作以使该系统:通过网络接收第二计算系统的用户的视频数据,该视频数据包括该用户的第一采集图像和该用户的第二采集图像,其中,第一采集图像和第二采集图像分别由第二计算系统的第一摄像头和第二摄像头同时采集;生成用于显示该用户的平面代理;确定该平面代理在三维虚拟环境内的姿态;基于具有所确定的姿态的平面代理和第一采集图像,渲染用于人工现实设备的左眼显示器的左显示图像;基于具有所确定的姿态的平面代理和第二采集图像,渲染用于人工现实设备的右眼显示器的右显示图像;以及使用左眼显示器和右眼显示器分别显示所渲染的左显示图像和所渲染的右显示图像。
在一些实施例中,平面代理可以是相对于人工现实设备的姿态而形成的。
在一些实施例中,平面代理可以形成在三维虚拟环境内的固定的位置和方位处。
在一些实施例中,该处理器在执行所述指令时还可以能够操作以:接收来自第二计算系统的配置数据,其中,来自第二计算系统的配置数据包括第二计算系统的第一摄像头和第二摄像头的一个或多个属性;接收来自第三计算系统的配置数据,其中,来自第三计算系统的配置数据包括第三计算系统的第一摄像头和第二摄像头的一个或多个属性;基于来自第二计算系统和第三计算系统的配置数据,对平面代理在三维环境中的姿态进行调整。
在一些实施例中,第一摄像头和第二摄像头可以在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位。
本文所公开的实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文所公开的实施例中的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括本文所公开的实施例中的部件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附的针对方法、存储介质、系统和计算机程序产品的权利要求中特别公开,其中,在一个权利要求类别(例如,方法)中所提到的任何特征也可以在另一个权利要求类别(例如,系统)中主张。所附权利要求书中的从属关系或回引仅出于形式原因而选择。然而,由于有意引用任何先前的权利要求(特别是多项从属关系)而产生的任何主题也可以被主张,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被主张。可主张的主题不仅包括所附权利要求书中所陈述的多个特征的多种组合,还包括权利要求书中的多个特征的任何其他组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其他特征或其他特征的组合进行组合。此外,本文所描述或所描绘的实施例和特征中的任何可以在单独的权利要求中被主张,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被主张。
附图说明
图1示出了示例人工现实系统。
图2示出了采集一环境中的用户的图像数据的多个摄像头。
图3示出了在虚拟环境中生成的平面代理。
图4示出了在虚拟环境中生成的3D网格。
图5示出了在人工现实设备上显示的用户的经渲染的图像数据。
图6示出了用于显示从多个视角采集的经立体渲染的图像数据的示例方法600。
图7示出了与社交网络系统相关联的示例网络环境。
图8示出了示例计算机系统。
具体实施方式
图1示出了示例人工现实系统100和用户102。在特定实施例中,人工现实系统100可以包括头戴式设备(headset)104、控制器106和计算系统108。用户102可以佩戴头戴式设备104,该头戴式设备可以经由左眼显示器和右眼显示器向用户102显示视觉人工现实内容。头戴式设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。头戴式设备104可以包括一个或多个摄像头110,该一个或多个摄像头可采集环境的图像和视频。头戴式设备104可以包括眼动追踪系统,该眼动追踪系统用于确定用户102的聚散度距离(vergence distance)。聚散度距离可以是从用户的眼睛到用户的眼睛所会聚的对象(例如,真实世界对象或虚拟空间中的虚拟对象)的距离。头戴式设备104可以称为头戴式显示器(HMD)。
一个或多个控制器106可以与人工现实系统100配对。在特定实施例中,一个或多个控制器106可以配备有至少一个惯性测量单元(inertial measurement unit,IMU)和至少一个红外(infrared,IR)发光二极管(light emitting diode,LED),以用于人工现实系统100对控制器的姿态进行估计和/或对控制器的位置进行追踪,使得用户102可以通过控制器106执行某些功能。在特定实施例中,一个或多个控制器106可以配备有一个或多个可追踪标记,该一个或多个可追踪标记被分配以由计算系统108追踪。一个或多个控制器106可以包括触控板(trackpad)和一个或多个按钮。一个或多个控制器106可以接收来自用户102的输入,并向计算系统108转发该输入。一个或多个控制器106还可以向用户102提供触觉反馈。计算系统108可以通过电缆或无线连接而连接到头戴式设备104和一个或多个控制器106。一个或多个控制器106可以包括硬件、软件和/或固件的组合,该组合未在本文明确示出,以免模糊本公开的其他方面。
计算系统108可以控制头戴式设备104和控制器106向用户102提供虚拟现实内容并接收来自该用户的输入。计算系统108可以是独立的主计算机系统、与头戴式设备104集成在一起的机载计算机系统、移动设备、或能够向用户102提供人工现实内容并接收来自该用户的输入的任何其他硬件平台。
在特定实施例中,计算系统108可以接收来自人工现实系统100的一个或多个部件的传感器数据。例如但不限于,头戴式设备104可以包括陀螺仪或惯性测量单元,该陀螺仪或惯性测量单元对用户的实时移动进行追踪,并输出用于表示或描述该移动的传感器数据。这种运动追踪传感器所提供的传感器数据可以被计算系统108用来确定用户的当前方位,并向渲染引擎提供该方位、以在3D空间中对虚拟摄像头进行定向/重定向。作为另一示例而非限制,一个或多个控制器106可以包括惯性测量单元(IMU)和红外(IR)发光二极管(LED),该惯性测量单元和红外发光二极管被配置为收集IMU传感器数据并向计算系统108发送该IMU传感器数据。在特定实施例中,计算系统108可以利用一个或多个追踪技术(例如但不限于,即时定位与地图构建(SLAM)追踪或基于IR的追踪)来使用一个或多个传感器数据,以确定人工现实系统100的一个或多个部件的姿态。
在特定实施例中,计算系统108可以接收来自人工现实系统100的一个或多个部件的一个或多个图像数据。在特定实施例中,该图像数据包括由与人工现实系统100相关联的一个或多个摄像头110采集的图像数据。例如,图1描绘了耦接在头戴式设备104内的一个或多个摄像头110。该一个或多个摄像头110可以被定位为采集与各种视角相关联的图像,该一个或多个摄像头例如但不限于,与头戴式设备104相关联的面向下方(例如,朝向用户102站着时的脚)的一个或多个摄像头。
在特定实施例中,计算系统108可以确定一个或多个摄像头110在三维空间中的姿态。计算系统可以利用传感器数据或图像数据中的一者或多者,来确定一个或多个摄像头110的姿态。在特定实施例中,计算系统108可以利用定位技术(例如,SLAM)来确定一个或多个摄像头110在三维坐标空间中的姿态。在特定实施例中,该姿态可以使用一个或多个坐标系来表示,例如但不限于,通过绝对全局坐标系(例如,x、y、z)或通过相对于人工现实系统100的一个或多个部件(例如但不限于,头戴式设备104、或一个或多个控制器106)的局部坐标系。
在特定实施例中,计算系统108可以确定与用户102相关联的头戴式设备104的姿态。可以通过利用由计算系统108接收到的传感器数据或图像数据中的任何来确定头戴式设备的姿态。与用户102相关联的头戴式设备姿态可以包括头戴式设备104的位置和方位。在特定实施例中,构成与用户102相关联的头戴式设备姿态的位置和方位可以使用一个或多个坐标系来表示,例如但不限于,通过绝对全局坐标系(例如,x、y、z)来表示,或者通过相对于人工现实系统100的一个或多个部件、或相对于用户102的一个或多个关节(例如但不限于,相对于一个或多个控制器106)的局部坐标系来表示。
在特定实施例中,计算系统108可以确定与用户102相关联的一个或多个控制器106的控制器姿态。可以通过利用由计算系统108接收到的传感器数据或图像数据中的任何来确定与用户102相关联的控制器姿态。在特定实施例中,计算系统108可以使用一种或多种计算机视觉技术(例如但不限于,图像分类或对象检测)来确定与用户102相关联的控制器106的姿态。与用户102相关联的控制器姿态可以包括控制器106的位置和方位。构成与用户102相关联的控制器姿态的位置和方位可以使用一个或多个坐标系来表示,例如但不限于,通过绝对全局坐标系(例如,x、y、z)来表示,或者通过相对于人工现实系统100的一个或多个部件、或相对于用户102的一个或多个关节(例如但不限于,相对于头戴式设备104)的局部坐标系来表示。本文所论述的用于确定控制器姿态的方法在如下文件中进行了进一步描述:于2020年1月3日提交的、申请号为16/734,172的、名称为“联合红外和可见光视觉惯性目标追踪”的美国申请。
人工现实系统被用于各种应用程序,这些应用程序包括允许两位或更多位用户在视频通话应用程序中彼此通信,该视频通话应用程序传送各个用户的音频和图像数据(例如,视频)。人工现实系统通常在视频通话应用程序中使用二维图像数据,这是计算高效和资源高效的,但并没有利用人工现实系统的全部功能来提供丰富的、沉浸式的视频通话体验。其他人工现实系统利用三维视频通话,在人工现实环境中渲染用户或场景的完整模型。然而,完全的三维视频通话不利于普通消费者,因为它需要复杂的硬件设置和显著的功率要求和带宽要求。
此外,人类双眼视觉的性质导致真实世界对象表现出视点依赖(view dependent)外观差异(例如,反射、折射),这些差异可被感知仅仅归因于人类双眼所感知的对象的双重视角。这些视点依赖外观差异在人脑对不同材料进行感知和识别的能力中发挥着重要作用。然而,二维视频通话应用程序和三维视频通话应用程序通常都使用单个输入RGB摄像头来采集图像数据,该图像数据在被显示给用户时,由于仅单个视角被采集和渲染以供显示而不能展现出这些视点依赖外观差异(例如,光滑的桌子上的光泽和镜面反射)。
本公开通过使用立体渲染技术来改进现有的人工现实视频通话技术,以用于使用人工现实系统的视频通话。在高层次上,计算系统可以接收包括对象或用户的多个视角的图像数据,并利用本文所描述的一项或多项技术,来向人工现实系统(其模拟了三维视频通话体验)的用户渲染和显示多视角图像数据。在特定实施例中,计算系统还可以利用(例如但不限于)虚拟环境中的平面代理或3D网格,来渲染和显示多视角图像数据。所公开的实施例使用本文所描述的技术,通过提供沉浸式的多视角视频通话体验来改进现有技术,其中,显著提高了对象轮廓周围的图像质量和深度感知,而同时与三维视频通话相比降低了功率要求和数据带宽要求。
在特定实施例中,与人工现实设备相关联的计算系统的用户可以接收一环境的图像数据,该环境的图像数据包括与第二人工现实设备相关联的第二计算系统的第二用户。图2示出了采集一环境中的用户的图像数据的多个摄像头。在特定实施例中,对象210可以是与人工现实设备相关联的计算系统的用户。在特定实施例中,图像数据可以是视频数据。在特定实施例中,可以使用左摄像头215和右摄像头225这两个摄像头来采集该环境中的对象210的图像数据。在特定实施例中,多个摄像头中的各个摄像头可以被包括在单个设备(例如,包括多个摄像头的移动计算设备)中(如图2所描绘的),或者多个摄像头中的一个或多个摄像头可以被包括在分开的设备中(例如,摄像头215可以是移动计算设备上的摄像头,而摄像头225可以是网络摄像头)并且与计算系统通信耦接或相关联。在特定实施例中,多个摄像头可以与计算机系统通信耦接或相关联,该计算机系统与对象210的人工现实设备相关联。
在特定实施例中,多个摄像头中的各个摄像头被定位为具有相同的到平坦房间中地板的垂直距离(即,各个摄像头共享图2中所描绘的x-y-z坐标空间中的竖轴(applicateaxis)或z轴上的公共坐标)。在特定实施例中,多个摄像头中的各个摄像头沿着如在图2所描绘的纵轴(ordinate axis)或y轴定位,使得任意两个相邻的摄像头在纵轴上彼此相距已知距离。在特定实施例中,可以由计算系统调整任意两个摄像头之间的在纵轴上的已知距离。作为示例而非限制,任意两个摄像头之间的距离可以处于人类瞳孔间距离的近似范围内(例如,在25毫米(mm)至80mm之间)、小于人类瞳孔间距离的近似范围(例如,客户端设备上的任意两个摄像头之间的距离的近似范围(例如,在5mm至25mm之间))、或者处于模拟较大动物的视觉的比人类瞳孔间距离更宽的范围内。
在特定实施例中,多个摄像头中的各个摄像头同时采集对象210的图像数据,每个摄像头从与该多个摄像头中的其他摄像头中的各个摄像头不同的视角处进行采集。如图2所描绘的,左摄像头215可以采集左摄像头图像235,而右摄像头225可以采集右摄像头图像245,其中,左摄像头图像235的视角在某种程度上不同于右摄像头图像245的视角,使得从摄像头215收集到的图像数据来自与摄像头225和多个摄像头中的所有其他摄像头不同的视角。在特定实施例中,该左图像235可以表示如从正在观察对象210的人的左眼观察的、场景的视角,而在特定实施例中,右图像245可以表示如从正在观察对象210的人的右眼观察的、场景的视角。在特定实施例中,这些不同的视角可以通过确保多个摄像头中的每个摄像头具有与其他摄像头中的各个摄像头不同的独特姿态(包括摄像头的位置和方位)来实现。在特定实施例中,不同的视角可以通过改变多个摄像头中的一个或多个摄像头的一个或多个属性(例如,左摄像头215具有广角镜头,而右摄像头225具有长焦镜头)来实现。尽管图2描绘了由两个不同的摄像头采集的两个视角的图像数据,但是本公开考虑了多个摄像头中的任何数量的摄像头,各个摄像头从不同的视角采集图像数据。在特定实施例中,可以向与第二用户的人工现实设备相关联的计算系统发送所采集到的图像数据,以用于在该人工现实设备上渲染和显示所采集到的图像数据。
在特定实施例中,计算系统可以对多个摄像头中的一个或多个摄像头的一个或多个参数进行调整。这些调整可以在采集图像数据之前进行或与采集图像数据同步进行。在特定实施例中,对一个或多个摄像头的这些调整中的一个或多个调整可以调整如在图像数据中观察到的、对象210的视角。作为示例,在特定实施例中,计算系统可以对纵轴上的多个摄像头中的一个或多个摄像头之间的基线距离进行调整。在特定实施例中,多个摄像头中的一个或多个摄像头之间的默认基线距离约等于平均人类瞳孔间距离(例如,在25mm到80mm之间)。在特定实施例中,该调整可以落入预定的范围内。在特定实施例中,摄像头之间的基线距离较小(例如,35mm)的配置将产生较大场景的图像,在该图像中,用户看起来尺寸较大、但距离较远(即,沿横轴或x轴与多个摄像头的距离较大),而摄像头之间的基线距离较大(例如,75mm)的配置将产生具有较小场景的图像,在该图像中,用户看起来尺寸较小、但距离摄像头较近(即,沿横轴或x轴与多个摄像头的距离较近)。
在特定实施例中,计算系统还可以对所渲染的立体图像的比例进行调整,从而改变视差、感知尺寸、图像数据中的用户与摄像头之间的感知距离。这些调整可以产生(例如但不限于)如下图像:在该图像中,对象被感知为更真实的尺寸,但更远离摄像头。
在特定实施例中,计算系统可以对立体会聚偏移量进行调整。在特定实施例中,该会聚偏移量可以落入预定的范围(例如但不限于,0.0到1.0之间)内。具有较小的会聚偏移量(例如,约为0.0)的显示配置将产生具有较大深度的图像,在该图像中,场景的背景被映射到无穷远(即,背景出现在沿横轴或x轴距多个摄像头的较大距离处),而具有较大会聚偏移量(例如,约为1.0)的配置将产生具有较小深度的图像,在该图像中,场景的背景将出现在与对象大致相同的深度处。(即,背景出现在沿横轴或x轴距多个摄像头的较小距离处)。
在特定实施例中,对一个或多个摄像头的一个或多个调整可以由与对象210相关联的计算系统来执行,或者该一个或多个调整可以由正接收来自对象210的图像数据的计算系统(例如但不限于,与正在观看对象210的图像的第二用户的人工现实设备相关联的计算系统)来执行。
本文所公开的特定实施例还允许计算系统对所采集的图像数据的一个或多个属性进行调整,以(例如但不限于)提高图像质量或减少在人工现实设备上渲染和显示图像数据所需的资源。在特定实施例中,对所采集的图像数据的一个或多个调整可以由与对象210相关联的计算系统在发送图像数据之前执行,或者对所采集的图像数据的一个或多个调整可以由正接收来自对象210的图像数据的计算系统(例如但不限于,与正在观看对象210的图像的用户的人工现实设备相关联的计算系统)执行。
在特定实施例中,计算系统可以确定并调整一个或多个所采集的图像的颜色。在特定实施例中,可以为所采集的图像中的每个像素分配红/绿/蓝(RGB)颜色值(例如,可以为白色像素分配(255,255,255)的RGB颜色值)和对应的位置坐标值(例如,x坐标、y坐标)。在特定实施例中,计算系统可以使用该数据来为用户增强图像。在特定实施例中,出于照明和颜色校正的目的,可以将RGB颜色值与典型环境下的RGB颜色值进行比较。例如,如果RGB颜色值指示当前在所采集的图像中存在蓝色色调,则计算系统可以对一个或多个所采集的图像中的一个或多个像素进行调整,以对该场景进行颜色校正。
在特定实施例中,计算系统可以使用所分配的像素RGB和位置坐标值,来对一幅或多幅图像中的一个或多个像素相对于彼此进行颜色校正。例如但不限于,由于各个摄像头的视角或设置不同,左图像235中的像素的RGB颜色可能不同于右图像245中的像素的RGB颜色。例如,左图像235中的全局位置坐标(0,40)处的像素可以具有(165,42,42)的RGB颜色值,而右图像245中的对应全局位置(0,40)处的像素可以具有(160,82,45)的RGB颜色值。在特定实施例中,计算系统可以对一个或多个像素的RGB颜色值进行调整,使得在特定位置处的像素的RGB颜色值在各个所采集的图像上是一致的。这样做可以在渲染和显示图像时为用户提供更一致、更有美感的体验。
在特定实施例中,计算系统可以在在人工现实设备上渲染和显示图像之前对图像进行分割。例如,计算系统可以从每幅图像中的背景环境(例如,椅子、桌子等)中识别并分割前景(例如,用户)。在特定实施例中,计算系统可以确定左图像235和右图像245中的、与对象210上的多个表面点相对应的一个或多个坐标点。在特定实施例中,这些坐标点中的每个坐标点可以与对象210的特定关节(例如,头关节、颈关节等)相对应。在特定实施例中,计算系统还可以利用如先前所描述的图像中的像素的所分配的RGB颜色值,来区分前景(例如,用户)和背景环境。在特定实施例中,计算系统可以为包含了点集中的一个或多个点的每幅图像生成边界框。边界框可以足够大,以包含该点集中的所有点。在特定实施例中,计算系统可以从前景图像数据中删除背景图像数据,使得只有包括边界框中的图像数据的前景数据可以由计算系统发送和渲染。计算系统可以通过仅渲染和显示图像的前景区域,来降低视频通话体验期间的带宽需求和延时。
在特定实施例中,计算系统可以在虚拟现实环境中生成平面代理,以用于显示所接收到的对象210的图像数据。图3示出了在虚拟环境中生成的平面代理。在特定实施例中,佩戴着与计算系统相关联的人工现实设备315的观看者310可能希望观看对象210的图像数据(例如,通过视频通话应用程序来观看该对象的图像数据)。对平面代理320进行渲染允许计算系统显示多视角图像数据325,在特定实施例中,这包括利用平面代理320同时在左眼显示器上显示左摄像头图像235并在右眼显示器上显示右摄像头图像245。利用平面代理来渲染和显示图像数据向观看者310提供了对象210的真实显示,其中,视觉伪影(visualartifact)相对减少,以及降低了计算要求、功率要求和数据带宽要求。
在特定实施例中,计算系统还可以确定平面代理320在三维虚拟环境内的姿态。平面代理320的姿态(例如但不限于)可以基于观看者310的虚拟环境、观看者310正与之交互的应用程序来确定,或者可以通过观看者310的选择来确定。在特定实施例中,平面代理320的姿态可以被锚定在虚拟环境中(即,形成在虚拟环境中的固定的位置和方位处)。在该实施例中,平面代理320在虚拟环境中看起来是固定的,从而当人工现实设备315的观看者310移动接近平面代理320时,使用平面代理320渲染的多视角图像数据325在尺寸上看起来更大。在特定实施例中,平面代理320的姿态可以基于虚拟环境中的绝对坐标而固定(例如,固定在特定的x坐标、y坐标、z坐标处),或者平面代理320的姿态可以相对于虚拟环境中的一个或多个固定对象或固定位置而固定(例如,形成在相对于虚拟环境中的墙或桌子的坐标处)。当观看者310在虚拟环境中移动时,固定(即,锚定的)姿态允许观看者310从不同的视角观看使用平面代理320渲染的多视角图像数据325,并且当观看者310在整个环境中移动时,该固定(即锚定的)姿态还允许观看者310对其与平面代理320的距离进行调整。
在特定实施例中,平面代理320的姿态可以相对于观看者310在虚拟环境中的位置来确定,或者相对于与观看者310相关联的人工现实设备315(例如,头戴式设备或控制器)的位置来确定。在特定实施例中,计算系统可以接收来自与观看者310相关联的人工现实设备315的传感器数据,以确定该人工现实设备的位置。在特定实施例中,计算系统还可以利用观看者310与人工现实设备315之间的已知关系(例如,人工现实设备315的姿态与观看者310的头部姿态之间的已知关系),来确定观看者310的姿势。在特定实施例中,计算系统例如可以相对于观看者310的头部姿态来形成平面代理320(例如头部锁定),使得平面代理320始终保持与观看者310的头部姿态的固定的距离和方位(即,在整个虚拟环境中与观看者310一起移动)。在该实施例中,对多视角图像数据325的渲染看起来在虚拟环境中、在距人工现实设备315的观看者310的预定距离处“浮动”,并因此看起来具有相同的大小且距观看者310的距离相同,即使当观看者310在整个虚拟环境中移动时也是如此。当观看者310在整个虚拟环境中移动时,这允许观看者310从相同的视角观看使用平面代理320所渲染的多视角图像数据325,这对于(例如但不限于)在穿过虚拟环境时与对象210进行视频会议是有用的。
在特定实施例中,计算系统可以在显示平面代理320的固定(即,锚定的)姿态和显示平面代理320的相对(即,浮动的)姿态之间进行切换。在特定实施例中,观看者310可以通过与一个或多个控制器106进行交互(例如,按下控制器按钮或以特定方式移动控制器)而在平面代理320的固定(即,锚定的)姿态和相对(即,浮动的)姿态之间进行切换。
在特定实施例中,代替平面代理320或除平面代理320之外,计算系统可以在虚拟环境中生成表示对象210的3D网格,以用于渲染对象210的所采集的图像数据。图4示出了在虚拟环境中生成的3D网格。在特定实施例中,佩戴着人工现实设备315的观看者310可能希望观看对象210的图像数据,例如通过视频通话应用程序来观看该对象的图像数据。可以使用已知技术(例如但不限于使用所采集的对象210的传感器数据或图像数据)来生成3D网格420。在特定实施例中,3D网格420可以在观看者310的虚拟环境中模拟对象210的至少一部分(例如,对象210的头部或上半身)的三维投影。对3D网格420进行渲染允许计算系统显示多视角图像数据325,在特定实施例中,这包括使用3D网格同时在左眼显示器上显示左摄像头图像235并在右眼显示器上显示右摄像头图像245。
在特定实施例中,计算系统还可以确定3D网格420在三维虚拟环境内的姿态。3D网格420的姿态可以例如但不限于基于观看者310的虚拟环境、观看者310正与之交互的应用程序来确定,或者通过观看者310的选择来确定。在特定实施例中,3D网格420的姿态可以被锚定在虚拟环境中(即,形成在虚拟环境中的固定的位置和方位处)。在该实施例中,3D网格420在虚拟环境中看起来是固定的,使得当人工现实设备315的观看者310移动接近3D网格420时,使用3D网格420渲染的多视角图像数据325在尺寸上看起来更大。在特定实施例中,3D网格420的姿态可以基于虚拟环境中的绝对坐标而固定(例如,固定在特定的x坐标、y坐标、z坐标处),或者3D网格420的姿态可以相对于虚拟环境中的一个或多个固定对象或固定位置而固定(例如,形成在相对于虚拟环境中的墙或桌子的坐标处)。当观看者310在虚拟环境中移动时,固定(即,锚定的)姿态允许观看者310从不同的视角观看使用3D网格420渲染的多视角图像数据325,并且当观看者310在整个环境中移动时,固定(即,锚定的)姿态还允许观看者310对其与3D网格420的距离进行调整。
在特定实施例中,3D网格420的姿态可以相对于观看者310在虚拟环境中的位置来确定,或者相对于与观看者310相关联的人工现实设备315(例如,头戴式设备或控制器)的位置来确定。在特定实施例中,计算系统可以接收来自与观看者310相关联的人工现实设备315的传感器数据,以确定该人工现实设备的位置。在特定实施例中,计算系统还可以利用观看者310与人工现实设备315之间的已知关系(例如,人工现实设备315的姿态与观看者310的头部姿态之间的已知关系),来确定观看者310的姿势。在特定实施例中,计算系统可以例如相对于观看者310的头部姿态来形成3D网格420(例如,头部锁定),使得3D网格420始终保持与观看者310的头部姿态的固定的距离和方位(即,在整个虚拟环境中与观看者310一起移动)。在该实施例中,对多视角图像数据325的渲染看起来在虚拟环境中在距人工现实设备315的观看者310的预定距离处“浮动”,并因此看起来具有相同的大小且距观看者310的距离相同,即使当观看者310在整个虚拟环境中移动时也是如此。当观看者310在整个虚拟环境中移动时,这允许观看者310从相同的视角观看使用3D网格420渲染的多视角图像数据325,这对于(例如但不限于)在穿过虚拟环境时与对象210进行视频会议是有用的。
在特定实施例中,计算系统可以在显示3D网格420的固定(即,锚定的)姿态和显示相对(即,浮动的)姿态之间进行切换。在特定实施例中,观看者310可以通过与一个或多个控制器106进行交互(例如,按下控制器按钮或以特定方式移动控制器)而在3D网格420的固定(即,锚定的)姿态和相对(即,浮动的)姿态之间进行切换。
在特定实施例中,计算系统可以对对象210的多视角图像数据325进行渲染,以用于在与观看者310相关联的人工现实设备上显示。例如,计算系统可以对左摄像头图像235和右摄像头图像245进行渲染,以用于在与观看者310相关联的人工现实设备的左眼显示器和右眼显示器上分别显示。在特定实施例中,所采集的图像可以是基于所确定的平面代理的姿态、或所确定的3D网格的姿态来渲染的,或者是使用由一个或多个摄像头采集的对应图像来渲染的。在特定实施例中,所渲染的图像中的一幅或多幅图像可以包括如本文所公开的对所采集的图像数据的属性的一个或多个调整。
在特定实施例中,所渲染的左摄像头图像235和所渲染的右摄像头图像245可以同时在观看者310的人工现实设备的左眼显示器和右眼显示器上分别显示,从而模拟对象210的3D视角。图5示出了在人工现实设备的显示器上显示的经渲染的、用户的图像数据。在特定实施例中,计算系统可以针对人工现实设备的每个显示器(例如,头戴式设备的左眼显示器510和右眼显示器520)渲染和显示一图像。在特定实施例中,由摄像头采集的表示左眼视角的图像(例如,由左摄像头215采集的左摄像头图像235)可以显示在左眼显示器510上。在特定实施例中,由摄像头采集的表示右眼视角的图像(例如,由右摄像头225采集的右摄像头图像245)可以显示在右眼显示器520上。
对于多种应用程序而言,显示多视角图像数据325(例如,包括左图像235和右图像245)产生了数个改进点,例如但不限于,对象210与观看者310之间的视频通话体验。例如,当多视角图像数据325是基于表示对象210的平面代理320来渲染的时,计算系统可以模拟与对象210的3D通话体验的视觉外观,而无需对210进行完整的3D重建(其可能会占用大量资源)。此外,在平面代理320上显示多视角图像数据325提供了视觉伪影的减少,以及计算要求、功率要求和数据带宽要求的降低。
作为另一示例,当多视角图像数据325是结合所生成的3D网格420而渲染的时,输出使用了立体纹理建模,来将所采集的图像映射到3D网格420,这可以表示对象210的三维模型。该立体纹理建模将如下多个特征渲染到3D网格420上:这些特征仅由于人类双目视觉的多个视角而可见(例如,深度重建、纹理、或仅在同时查看左眼视角和右眼视角时才可见的用户的其他固有特征)。例如,观看者310所感知的图像质量在对象轮廓周围得到了极大地改善,并且在与单视纹理相比时、由于折射和高光被适当地再现而改善了用户对光滑表面(例如,玻璃桌子或移动手机的屏幕)的感知。作为另一示例,可以通过转动3D网格420来模拟与对象210的眼神接触,并且3D网格420支持虚拟空间中的交互,例如但不限于,通话者之间的精确的指向手势或两个用户对虚拟对象的操纵。
另一些实施例使用本文所描述的方法,来允许观看者310同时观看两个或更多个对象(例如,群组视频通话应用程序)。另外,当观看者310与多位通话者交互时,计算系统可以利用配置数据(例如,非固有摄像头参数和固有摄像头参数、来自与对象相关联的计算系统的传感器数据或图像数据),来在该多位通话者之间创建更一致的体验。作为一示例,观看者310发起与第一对象和第二对象的三方体验,在该三方体验中,第一对象和第二对象被同时显示给观看者310。在特定实施例中,第一对象的配置数据可以不同于第二对象的配置数据(例如,第一对象的位置可以比第二对象的位置更远离摄像头,第二对象的摄像头的基线距离可以比第一对象的摄像头的基线距离更宽等)。在不进行调整的情况下,同时显示第一对象和第二对象可能会给观看者带来不愉快的体验(例如,第一对象可能比第二对象大得多,一个对象可能看起来比另一个对象更远等)。
为了解决这一点,计算系统可以接收关于对每个对象进行配置的配置数据(例如但不限于,摄像头的属性、或对象与摄像头之间的距离),并为观看者310调整所有对象的感知深度或位置。在特定实施例中,这些调整例如但不限于可以包括对平面代理的姿态或3D网格的姿态进行调整、或改变平面代理或3D网格的尺寸。通过这些调整,即使配置不同,第一对象和第二对象也都可以以大致相同的尺寸、和距观看者310大致相同的距离出现。
特定实施例还允许计算系统基于与观看者310相关联的人工现实设备的方位,来调整多视角图像数据325的方位。在特定实施例中,计算系统可以接收来自与观看者310相关联的人工现实设备的传感器数据,并基于该传感器数据确定与观看者310相关联的人工现实设备的方位。计算系统随后可以使用该方位,来调整所显示的多视角图像数据325的方位,以匹配与观看者310相关联的人工现实设备的方位。在特定实施例中,计算系统还可以确定人工现实设备的方位超过预定的最大阈值(例如,观看者310正在使用其观看多视角图像数据325的特定视角)。在特定实施例中,计算系统可以基于确定了人工现实设备的方位超过预定的最大阈值,终止在与观看者310相关联的人工现实设备上对多视角图像数据325的显示。
为简单起见,本文所公开的实施例描述了用于从多个视角采集对象210的图像数据、并向观看者310显示这些图像的方法。然而,应理解的是,在特定实施例中,可以采用这些方法来同时从多个视角采集观看者310的图像数据、并将这些图像显示给对象210。以这种方式,对象210和观看者310可以例如但不限于,通过人工现实视频通话体验来彼此交互,使得这两个用户可以同时观看对另一个用户的经模拟的3D图像数据的显示。
图6示出了用于显示从多个视角采集的经立体渲染的图像数据的示例方法600。该方法可以在步骤610处开始,在该步骤中,与人工现实设备相关联的计算系统通过网络接收第二计算系统的用户的视频数据,该视频数据包括该用户的第一采集图像和该用户的第二采集图像,其中,第一采集图像和第二采集图像分别由第二计算系统的第一摄像头和第二摄像头同时采集。在特定实施例中,可以使用两个摄像头(左摄像头和右摄像头)来采集该环境中的用户的图像数据。在特定实施例中,左摄像头和右摄像头被定位为具有相同的到平坦房间中的地板的垂直距离。在特定实施例中,左摄像头和右摄像头之间在纵轴上的已知距离约等于平均人类瞳孔间距离。在特定实施例中,计算系统可以对这些摄像头中的一个或多个摄像头的一个或多个参数进行调整。
在步骤620处,计算系统生成用于显示用户的平面代理。在步骤630处,计算系统确定平面代理在三维虚拟环境内的姿态。在特定实施例中,平面代理的姿态可以被锚定在虚拟环境中(即,形成于虚拟环境中的固定的位置和方位)。在特定实施例中,平面代理的姿态可以是相对于正在观看所显示的图像数据的用户的位置来确定的,或者是相对于与正在观看所显示的图像数据的用户相关联的人工现实设备(例如,头戴式设备或控制器)的位置来确定的。在特定实施例中,计算系统可以在显示平面代理的固定(即,锚定的)姿态和相对(即,浮动的)姿态之间进行切换。
在步骤640处,计算系统基于具有所确定的姿态的平面代理和第一采集图像,渲染用于人工现实设备的左眼显示器的左显示图像。在步骤650处,计算系统基于具有所确定的姿态的平面代理和第二采集图像,渲染用于人工现实设备的右眼显示器的右显示图像。在特定实施例中,所采集的图像可以是基于所确定的平面代理的姿态来渲染的。在步骤660处,计算系统使用左眼显示器和右眼显示器来分别显示所渲染的左显示图像和所渲染的右显示图像。
特定实施例可以在适当的情况下重复图6中的方法的一个或多个步骤。尽管本公开将图6中的方法的多个特定步骤描述并示出为以特定的顺序进行,但本公开考虑了以任何合适的顺序进行图6中的方法的任何合适的步骤。此外,尽管本公开描述并示出了用于显示从多个视角采集的经立体渲染的图像数据的、包括图6中的方法的特定步骤的示例方法,但本公开考虑了用于显示经渲染的图像数据的、包括任何合适的步骤的任何合适的方法,该方法在适当的情况下可以包括图6中的方法的全部步骤、一些步骤,或不包括图6中的方法的任何步骤。此外,尽管本公开描述并示出了执行图6中的方法的特定步骤的特定部件、特定设备或特定系统,但本公开考虑了执行图6中的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适组合。
图7示出了与社交网络系统相关联的示例网络环境700。网络环境700包括通过网络710彼此连接的客户端系统730、社交网络系统760和第三方系统770。尽管图7示出了客户端系统730、社交网络系统760、第三方系统770和网络710的特定布置,但本公开考虑了客户端系统730、社交网络系统760、第三方系统770和网络710的任何合适的布置。作为示例而非限制,客户端系统730、社交网络系统760和第三方系统770中的两者或更多者可以绕过网络710而彼此直接连接。作为另一示例,客户端系统730、社交网络系统760和第三方系统770中的两者或更多者可以在物理上或在逻辑上全部或部分地彼此位于同一位置。此外,尽管图7示出了特定数量的客户端系统730、特定数量的社交网络系统760、特定数量的第三方系统770和特定数量的网络710,但本公开考虑了任何合适数量的客户端系统730、任何合适数量的社交网络系统760、任何合适数量的第三方系统770和任何合适数量的网络710。作为示例而非限制,网络环境700可以包括多个客户端系统730、多个社交网络系统760、多个第三方系统770和多个网络710。
本公开考虑了任何合适的网络710。作为示例而非限制,网络710中的一个或多个部分可以包括自组网(ad hoc network)、内联网、外联网、虚拟专用网络(virtual privatenetwork,VPN)、局域网(local area network,LAN)、无线局域网(wireless LAN,WLAN)、广域网(wide area network,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitanarea network,MAN)、互联网的一部分、公共交换电话网(Public Switched TelephoneNetwork,PSTN)的一部分、蜂窝电话网络、或这些网络中的两者或更多者的组合。网络710可以包括一个或多个网络710。
链路750可以将客户端系统730、社交网络系统760和第三方系统770连接到通信网络710,或者将客户端系统730、社交网络系统760和第三方系统770彼此连接。本公开考虑了任何合适的链路750。在特定实施例中,一条或多条链路750包括一条或多条有线(例如,数字用户线路(Digital Subscriber Line,DSL)或有线电缆数据服务接口规范(Data OverCable Service Interface Specification,DOCSIS))链路、无线(例如,Wi-Fi或全球微波接入互操作性(Worldwide Interoperability for Microwave Access,WiMAX))链路、或光(例如,同步光纤网络(Synchronous Optical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在特定实施例中,一条或多条链路750各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路750、或两个或更多个这种链路750的组合。多条链路750在整个网络环境700中并不一定是相同的。在一个或多个方面,一条或多条第一链路750可以与一条或多条第二链路750不同。
在特定实施例中,客户端系统730可以是这样的电子设备:该电子设备包括硬件、软件、或嵌入式逻辑部件或两个或更多个这些部件的组合,并且能够执行由客户端系统730实现或支持的合适功能。作为示例而非限制,客户端系统730可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位系统(GPS)设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或它们的任何合适的组合。本公开考虑了任何合适的客户端系统730。客户端系统730可以使客户端系统730处的网络用户能够访问网络710。客户端系统730可以使其用户能够与其他客户端系统730处的其他用户进行通信。
在特定实施例中,客户端系统730可以包括网页浏览器(web browser)732,并且可以具有一个或多个附加组件(add-on)、插件或其他扩展。客户端系统730处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或将网页浏览器732定向到特定服务器(例如,服务器762、或与第三方系统770相关联的服务器)的其他地址,且网页浏览器732可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并向服务器传送该HTTP请求。服务器可以接受该HTTP请求,并响应于该HTTP请求向客户端系统730传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端系统730可以基于来自服务器的HTML文件来渲染网页,以用于呈现给用户。本公开考虑了任何合适的网页文件。作为示例而非限制,网页可以根据特定需求而从HTML文件、可扩展超文本标记语言(Extensible Hyper Text Markup Language,XHTML)文件、或可扩展标记语言(ExtensibleMarkup Language,XML)文件渲染。这种页面还可以执行脚本、和标记语言与脚本的组合等。在本文中,在合适的情况下,对网页的引用包括一个或多个对应的网页文件(浏览器可以使用该对应的网页文件来渲染网页),反之亦然。
在特定实施例中,社交网络系统760可以是可托管在线社交网络的网络可寻址计算系统。社交网络系统760可以生成、存储、接收和发送社交网络数据,例如用户资料数据、概念资料数据、社交图谱信息、或与在线社交网络有关的其他合适的数据。社交网络系统760可以由网络环境700的其他部件直接访问或经由网络710访问。作为示例而非限制,客户端系统730可以使用网页浏览器732或与社交网络系统760相关联的本地应用程序(例如,移动社交网络应用程序、消息收发应用程序、另一合适的应用程序、或它们的任何组合)来直接访问社交网络系统760,或者经由网络710访问社交网络系统760。在特定实施例中,社交网络系统760可以包括一个或多个服务器762。每个服务器762可以是单一服务器、或跨越多个计算机或多个数据中心的分布式服务器。服务器762可以是各种类型的,这些类型例如但不限于:网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文所描述的功能或过程的另一服务器、或它们的任何组合。在特定实施例中,每个服务器762可以包括用于执行由服务器762实现或支持的合适功能的硬件、软件、或嵌入式逻辑部件、或两个或更多个这些部件的组合。在特定实施例中,社交网络系统760可以包括一个或多个数据存储库764。数据存储库764可以用于存储各种类型的信息。在特定实施例中,存储在数据存储库764中的信息可以根据特定的数据结构来组织。在特定实施例中,每个数据存储库764可以是关系型数据库、列式数据库、关联型数据库、或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但本公开考虑了任何合适类型的数据库。特定实施例可以提供这种接口:该接口使客户端系统730、社交网络系统760或第三方系统770能够对存储在数据存储库764中的信息进行管理、检索、修改、添加或删除。
在特定实施例中,社交网络系统760可以将一个或多个社交图谱存储在一个或多个数据存储库764中。在特定实施例中,社交图谱可以包括多个节点——该多个节点可以包括多个用户节点(每个用户节点与特定用户相对应)或多个概念节点(每个概念节点与特定概念相对应)——以及连接该多个节点的多条边。社交网络系统760可以向在线社交网络的用户提供与其他用户进行通信和交互的能力。在特定实施例中,用户可以通过社交网络系统760加入在线社交网络,并且随后将连接(例如,关系)添加到社交网络系统760中其想要连接的多个其他用户。在本文中,术语“朋友”可以指社交网络系统760中的、用户通过社交网络系统760与其形成连接、关联或关系的任何其他用户。
在特定实施例中,社交网络系统760可以向用户提供对由社交网络系统760支持的各种类型的项目或对象采取行动的能力。作为示例而非限制,该项目和对象可以包括:社交网络系统760的用户可能属于的群组或社交网络、用户可能感兴趣的事件或日程表条目、用户可能使用的基于计算机的应用程序、允许用户经由服务购买或出售项目的交易、用户可能执行的与广告的交互、或其他合适的项目或对象。用户可以与如下的任何事物交互:该事物能够在社交网络系统760中表示、或由第三方系统770的外部系统表示,该外部系统与社交网络系统760分开且经由网络710耦接到社交网络系统760。
在特定实施例中,社交网络系统760可能能够链接各种实体。作为示例而非限制,社交网络系统760可以使多个用户能够彼此交互、以及接收来自第三方系统770或其他实体的内容,或者能够允许用户通过应用编程接口(application programming interface,API)或其他通信信道来与这些实体交互。
在特定实施例中,第三方系统770可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于,API)、一个或多个网页服务、一个或多个内容源、一个或多个网络、或任何其他合适的部件(例如,服务器可以与该部件进行通信)。第三方系统770可以由与运行社交网络系统760的实体不同的实体来运行。然而,在特定实施例中,社交网络系统760和第三方系统770可以相互结合运行,以向社交网络系统760或第三方系统770的用户提供社交网络服务。在这个意义上,社交网络系统760可以提供平台或主干网,其他系统(例如,第三方系统770)可以使用该平台或主干网,来通过互联网向用户提供社交网络服务和功能。
在特定实施例中,第三方系统770可以包括第三方内容对象提供商。第三方内容对象提供商可以包括一个或多个内容对象源,该一个或多个内容对象源可被传送到客户端系统730。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论、或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券、或其他合适的激励对象。
在特定实施例中,社交网络系统760还包括用户生成的内容对象,该用户生成的内容对象可以增强用户与社交网络系统760的交互。用户生成的内容可以包括用户可向社交网络系统760添加、上传、发送、或“发布”的任何内容。作为示例而非限制,用户从客户端系统730将帖子传送给社交网络系统760。帖子可以包括:诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒介等数据。还可以由第三方通过“通信信道”(例如,新闻馈送或流)将内容添加到社交网络系统760。
在特定实施例中,社交网络系统760可以包括各种服务器、子系统、程序、模块、日志、和数据存储库。在特定实施例中,社交网络系统760可以包括以下中的一者或多者:网页服务器、操作日志记录器、API请求服务器、相关度和排序引擎、内容对象分类器、通知控制器、操作日志、第三方内容对象公开日志、推理模块、授权/隐私服务器、搜索模块、广告定向模块、用户界面模块、用户资料存储库、连接存储库、第三方内容存储库、或位置存储库。社交网络系统760还可以包括合适的部件,例如网络接口、安全机制、负载均衡器、故障转移服务器(failover server)、管理和网络操作控制台、其他合适的部件、或它们的任何合适的组合。在特定实施例中,社交网络系统760可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料例如可以包括,生物信息、人口统计信息、行为信息、社会信息、或其他类型的描述性信息(例如,工作经验、教育历史、爱好或偏好、兴趣、亲密度或位置)。兴趣信息可以包括与一个或多个类别有关的兴趣。类别可以是通用的或具体的。作为示例而非限制,如果用户“喜欢”关于一鞋品牌的物品,则该类别可以是该品牌,或者可以是“鞋子”或“服装”的通用类别。连接存储库可以用于存储关于用户的连接信息。连接信息可以指示这些用户:所述用户具有相似或共同的工作经验、群组成员资格、爱好、教育历史,或者所述用户以任何方式与多种共同属性相关或共享这些共同属性。连接信息还可以包括不同的用户与内容之间的(内部和外部这两者)由用户定义的连接。网页服务器可以用于通过网络710将社交网络系统760链接到一个或多个客户端系统730或一个或多个第三方系统770。网页服务器可以包括邮件服务器、或用于接收并路由社交网络系统760与一个或多个客户端系统730之间的消息的其他消息收发功能。API请求服务器可以允许第三方系统770通过调用一个或多个API来访问来自社交网络系统760的信息。操作日志记录器可以用于接收来自网页服务器的关于用户启动或关闭社交网络系统760的动作的信息。结合操作日志,可以维护用户对第三方内容对象公开的第三方内容对象日志。通知控制器可以向客户端系统730提供关于内容对象的信息。可以将信息作为通知推送给客户端系统730,或者可以响应于从客户端系统730接收到的请求而从客户端系统730提取信息。授权服务器可以用于实施对社交网络系统760的用户的一个或多个隐私设置。用户的隐私设置确定可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置合适的隐私设置,来选择让或不让社交网络系统760对他们的动作进行记录、或将他们的动作与其他系统(例如,第三方系统770)进行共享。第三方内容对象存储库可以用于存储从第三方(例如,第三方系统770)接收到的内容对象。位置存储库可以用于存储从与用户相关联的客户端系统730接收到的位置信息。广告定价模块可以结合社交信息、当前时间、位置信息、或其他合适的信息,来以通知的形式向用户提供相关广告。
图8示出了示例计算机系统800。在特定实施例中,一个或多个计算机系统800执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统800提供本文所描述或所示出的功能。在特定实施例中,在一个或多个计算机系统800上运行的软件执行本文所描述或所示出的一个或多个方法的一个或多个步骤,或者提供本文所描述或所示出的功能。特定实施例包括一个或多个计算机系统800的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统800。本公开考虑采用任何合适的物理形式的计算机系统800。作为示例而非限制,计算机系统800可以是:嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或这些系统中的两这或更多者的组合。在适当的情况下,计算机系统800可以包括一个或多个计算机系统800;可以是单一的或分布式的;可以跨越多个位置;可以跨越多个机器;可以跨越多个数据中心;或可以位于云中,该计算机系统可以包括一个或多个网络中的一个或多个云部件。在适当的情况下,一个或多个计算机系统800可以在无实质性的空间限制或时间限制的情况下,执行本文所描述或所示出的一个或多个方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统800可以实时地或以分批处理模式执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统800可以在不同的时间或在不同的位置执行本文所描述或所示出的一个或多个方法的一个或多个步骤。
在特定实施例中,计算机系统800包括处理器802、内存804、存储器806、输入/输出(input/output,I/O)接口808、通信接口810和总线812。尽管本公开描述并示出了在特定布置中具有特定数量的特定部件的特定计算机系统,但本公开考虑了在任何合适布置中具有任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器802包括用于执行指令(例如,构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行指令,处理器802可以检索(或读取)来自内部寄存器、内部高速缓冲存储器、内存804、或存储器806的多个指令;解码并执行这些指令;并且随后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存804或存储器806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开内容考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器802。作为示例而非限制,处理器802可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个转译后备缓冲器(translation lookasidebuffer,TLB)。指令高速缓冲存储器中的指令可以是内存804或存储器806中的指令的副本,并且该指令高速缓冲存储器可以加速处理器802对这些指令的检索。数据高速缓冲存储器中的数据可以是内存804或存储器806中的数据的副本,以供在处理器802处执行的指令进行操作;可以是在处理器802处执行的先前指令的结果,以供在处理器802处执行的后续指令访问或用于写入内存804或存储器806;或者可以是其他合适的数据。数据高速缓冲存储器可以加速处理器802的读操作或写操作。TLB可以加速处理器802的虚拟地址转译。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器802。在适当的情况下,处理器802可以包括一个或多个算术逻辑单元(arithmetic logic unit,ALU);可以是多核处理器;或者可以包括一个或多个处理器802。尽管本公开描述和示出了特定的处理器,但本公开考虑了任何合适的处理器。
在特定实施例中,内存804包括主内存,该主内存用于存储供处理器802执行的指令或供处理器802操作的数据。作为示例而非限制,计算机系统800可以将指令从存储器806或另一源(例如,另一计算机系统800)加载到内存804。然后,处理器802可以将指令从内存804加载到内部寄存器或内部高速缓冲存储器。为了执行多个指令,处理器802可以从内部寄存器或内部高速缓冲存储器检索这些指令并对其进行解码。在对指令的执行期间或之后,处理器802可以将一个或多个结果(其可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器802可以将这些结果中的一个或多个结果写入内存804。在特定实施例中,处理器802仅执行一个或多个内部寄存器中或内部高速缓冲存储器中或内存804(而不是存储器806或其他地方)中的指令,且仅操作一个或多个内部寄存器中或内部高速缓冲存储器中或内存804(而不是存储器806或其他地方)中的数据。一个或多个内存总线(其可以各自包括地址总线和数据总线)可以将处理器802耦接到内存804。如下所述,总线812可以包括一个或多个内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,MMU)位于处理器802与内存804之间,并且促进由处理器802请求的对内存804的访问。在特定实施例中,内存804包括随机存取存储器(random accessmemory,RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存804可以包括一个或多个内存804。尽管本公开描述和示出了特定的内存,但本公开考虑任何合适的内存。
在特定实施例中,存储器806包括用于数据或指令的大容量存储器。作为示例而非限制,存储器806可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器(floppy diskdrive,FDD)、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些中的两者或更多者的组合。在适当的情况下,存储器806可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器806可以处于计算机系统800的内部或外部。在特定实施例中,存储器806是非易失性、固态存储器。在特定实施例中,存储器806包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩码编程的只读存储器、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电子可擦除PROM(electrically erasable PROM,EEPROM)、电改写ROM(electrically alterableROM,EAROM)、或闪存、或这些中的两者或更多者的组合。本公开考虑了采用任何合适物理形式的大容量存储器806。在适当的情况下,存储器806可以包括一个或多个存储控制单元,该一个或多个存储控制单元促进处理器802与存储器806之间的通信。在适当的情况下,存储器806可以包括一个或多个存储器806。尽管本公开描述和示出了特定的存储器,但是本公开考虑了任何合适的存储器。
在特定实施例中,I/O接口808包括这样的硬件、软件或这两者:该硬件、软件或这两者为计算机系统800与一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统800可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现人与计算机系统800之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物照相机(stillcamera)、手写笔、平板电脑、触摸屏、轨迹球、摄影机、另一合适的I/O设备、或这些中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于这些I/O设备的任何合适的I/O接口808。在适当的情况下,I/O接口808可以包括一个或多个设备或软件驱动程序,该一个或多个设备或软件驱动程序使处理器802能够驱动这些I/O设备中的一个或多个I/O设备。在适当的情况下,I/O接口808可以包括一个或多个I/O接口808。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口810包括这样的硬件、软件或这两者:该硬件、软件或这两者为计算机系统800与一个或多个其他计算机系统800或与一个或多个网络之间的通信(例如,基于包(packet-based)的通信)提供一个或多个接口。作为示例而非限制,通信接口810可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器,或者可以包括用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口810。作为示例而非限制,计算机系统800可以与如下的网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或这些中的两者或多者的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线或无线的。例如,计算机系统800可以与如下的网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN)、Wi-Fi网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for MobileCommunications,GSM)网络)、或其他合适的无线网络、或这些中的两者或更多者的组合。在适当的情况下,计算机系统800可以包括用于这些网络中的任何网络的任何合适的通信接口810。在适当情况下,通信接口810可以包括一个或多个通信接口810。尽管本公开描述和示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在特定实施例中,总线812包括将计算机系统800的多个部件耦接到彼此的硬件、软件或这两者。作为示例而非限制,总线812可以包括:加速图形端口(AcceleratedGraphics Port,AGP)或其他图形总线、增强型工业标准体系结构(Enhanced IndustryStandard Architecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准体系结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、内存总线、微通道体系结构(Micro Channel Architecture,MCA)总线、外围部件互连(PeripheralComponent Interconnect,PCI)总线、快速PCI(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、本地视频电子标准协会(VideoElectronics Standards Association local,VLB)总线、或另一合适的总线、或这些中的两者或更多者的组合。在适当的情况下,总线812可以包括一个或多个总线812。尽管本公开描述和示出了特定的总线,但本公开考虑了任何合适的总线或互连。
在本文中,在适当的情况下,计算机可读非暂态存储介质(medium)或介质(media)可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其他集成电路(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(hybrid harddrive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或易失性与非易失性的组合。
在本文中,除非另有明确指示或上下文另有指示,否则“或”是开放性的而非排他性的。因此,在本文中,除非另有明确指示或上下文另有指示,否则“A或B”指的是“A、B、或这两者”。此外,除非另有明确指示或上下文另有指示,否则“和”是共同的和单独的。因此,在本文中,除非另有明确指示或上下文另有指示,否则“A和B”指的是“A和B,共同地或单独地”。
本公开的范围包括对本文所描述或所示出的示例实施例的所有改变、替换、变化、变换和修改,本领域普通技术人员将理解这些改变、替换、变化、变换和修改。本公开的范围不限于本文所描述或所示出的示例实施例。此外,尽管本公开将本文的各个实施例描述和示出为包括特定的部件、元件、特征、功能、操作、或步骤,但这些实施例中的任何实施例都可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元件、特征、功能、操作、或步骤的任何组合或排列。此外,在所附权利要求书中对适用于、被安排为、能够、被配置为、使能够、可操作(operable to)、或可操作(operative to)以执行特定功能的装置或系统、或装置或系统的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件如此适用于、被安排为、能够、被配置为、使能够、可操作(operable to)、或可操作(operative to)。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但特定实施例可以不提供这些优点,或者可以提供这些优点的部分或全部。
Claims (15)
1.一种方法,包括:由与人工现实设备相关联的第一计算系统:
通过网络接收第二计算系统的用户的视频数据,所述视频数据包括所述第二计算系统的所述用户的第一采集图像和所述用户的第二采集图像,其中,所述第一采集图像和所述第二采集图像分别由所述第二计算系统的第一摄像头和第二摄像头同时采集;
生成用于显示所述第二计算系统的所述用户的平面代理;
确定所述平面代理在三维虚拟环境内的姿态;
基于具有所确定的所述姿态的所述平面代理和所述第一采集图像,渲染用于所述人工现实设备的左眼显示器的左显示图像;
基于具有所确定的所述姿态的所述平面代理和所述第二采集图像,渲染用于所述人工现实设备的右眼显示器的右显示图像;以及
使用所述左眼显示器和所述右眼显示器分别显示所渲染的所述左显示图像和所渲染的所述右显示图像。
2.根据权利要求1所述的方法,其中,所述平面代理是相对于所述人工现实设备的姿态而形成的;和/或优选地,其中,所述平面代理形成在所述三维虚拟环境内的固定的位置和方位处。
3.根据权利要求1或2所述的方法,还包括:
接收来自所述第二计算系统的配置数据,其中,来自所述第二计算系统的所述配置数据包括所述第二计算系统的所述第一摄像头和所述第二摄像头中的一个或多个属性;
接收来自第三计算系统的配置数据,其中,来自所述第三计算系统的所述配置数据包括所述第三计算系统的第一摄像头和第二摄像头中的一个或多个属性;
基于来自所述第二计算系统和所述第三计算系统的所述配置数据,对所述平面代理在所述三维环境内的所述姿态进行调整。
4.根据权利要求1、2或3所述的方法,其中,所述第一摄像头和所述第二摄像头在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位;并且优选地,所述方法还包括:所述第一计算系统或所述第二计算系统对所述第一摄像头或所述第二摄像头在所述纵平面上的位置进行调整。
5.根据权利要求1至4中任一项所述的方法,还包括:
选择所述第一采集图像中包含所述用户的部分;
选择所述第二采集图像中包含所述用户的部分;
其中,所述左显示图像是基于所述第一采集图像的所选择的所述部分来渲染的,并且所述右显示图像是基于所述第二采集图像的所选择的所述部分来渲染的。
6.根据前述权利要求中任一项所述的方法,还包括:
确定所述第一图像中的一个或多个像素的红/绿/蓝(RGB)颜色值;
确定所述第二图像中的一个或多个对应像素的红/绿/蓝(RGB)颜色值;以及
对所述第一图像中的所述一个或多个像素的RGB颜色值进行调整,以匹配所述第二图像中的所述一个或多个对应像素的RGB颜色值。
7.根据前述权利要求中任一项所述的方法,还包括:
确定所述人工现实相对于所述平面代理的视角;
确定所述视角超过预定的最大阈值;以及
基于确定了所述人工现实设备的所述视角超过所述预定的最大阈值,终止在所述左眼显示器上对所述左显示图像的显示、以及终止在所述右眼显示器上对所述右显示图像的显示。
8.一个或多个计算机可读非暂态存储介质,所述一个或多个计算机可读非暂态存储介质包括软件,所述软件在由与人工现实设备相关联的第一计算系统执行时能够操作以:
通过网络接收第二计算系统的用户的视频数据,所述视频数据包括所述用户的第一采集图像和所述用户的第二采集图像,其中,所述第一采集图像和所述第二采集图像分别由所述第二计算系统的第一摄像头和第二摄像头同时采集;
生成用于显示所述用户的平面代理;
确定所述平面代理在三维虚拟环境内的姿态;
基于具有所确定的所述姿态的所述平面代理和所述第一采集图像,渲染用于所述人工现实设备的左眼显示器的左显示图像;
基于具有所确定的所述姿态的所述平面代理和所述第二采集图像,渲染用于所述人工现实设备的右眼显示器的右显示图像;以及
使用所述左眼显示器和所述右眼显示器分别显示所渲染的所述左显示图像和所渲染的所述右显示图像。
9.根据权利要求8所述的介质,其中,所述平面代理是相对于所述人工现实设备的姿态而形成的;和/或优选地,其中,所述平面代理形成在所述三维虚拟环境内的固定的位置和方位处。
10.根据权利要求8或9所述的介质,其中,所述软件在执行时还能够操作以:
接收来自所述第二计算系统的配置数据,其中,来自所述第二计算系统的所述配置数据包括所述第二计算系统的所述第一摄像头和所述第二摄像头中的一个或多个属性;
接收来自第三计算系统的配置数据,其中,来自所述第三计算系统的所述配置数据包括所述第三计算系统的第一摄像头和第二摄像头中的一个或多个属性;
基于来自所述第二计算系统和所述第三计算系统的所述配置数据,对所述平面代理在所述三维环境内的所述姿态进行调整。
11.根据权利要求8、9或10所述的介质,其中,所述第一摄像头和所述第二摄像头在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位;并且优选地,其中,所述软件在由所述第一计算系统或所述第二计算系统执行时还能够操作以:对所述第一摄像头或所述第二摄像头在所述纵平面上的位置进行调整。
12.一种与人工现实设备相关联的第一计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读非暂态存储介质,所述一个或多个计算机可读非暂态存储介质耦接到所述一个或多个处理器,所述一个或多个计算机可读非暂态存储介质包括指令,所述指令在被所述一个或多个处理器执行时能够操作以使所述系统:
通过网络接收第二计算系统的用户的视频数据,所述视频数据包括所述用户的第一采集图像和所述用户的第二采集图像,其中,所述第一采集图像和所述第二采集图像分别由所述第二计算系统的第一摄像头和第二摄像头同时采集;
生成用于显示所述用户的平面代理;
确定所述平面代理在三维虚拟环境内的姿态;
基于具有所确定的所述姿态的所述平面代理和所述第一采集图像,渲染用于所述人工现实设备的左眼显示器的左显示图像;
基于具有所确定的所述姿态的所述平面代理和所述第二采集图像,渲染用于所述人工现实设备的右眼显示器的右显示图像;以及
使用所述左眼显示器和所述右眼显示器分别显示所渲染的所述左显示图像和所渲染的所述右显示图像。
13.根据权利要求12所述的系统,其中,所述平面代理是相对于所述人工现实设备的姿态而形成的;和/或优选地,其中,所述平面代理形成在所述三维虚拟环境内的固定的位置和方位处。
14.根据权利要求12或13所述的系统,其中,所述处理器在执行所述指令时还能够操作以:
接收来自所述第二计算系统的配置数据,其中,来自所述第二计算系统的所述配置数据包括所述第二计算系统的所述第一摄像头和所述第二摄像头的一个或多个属性;
接收来自第三计算系统的配置数据,其中,来自所述第三计算系统的所述配置数据包括所述第三计算系统的第一摄像头和第二摄像头的一个或多个属性;
基于来自所述第二计算系统和所述第三计算系统的所述配置数据,对所述平面代理在所述三维环境内的所述姿态进行调整。
15.根据权利要求12、13或14所述的系统,其中,所述第一摄像头和所述第二摄像头在纵平面上按彼此相距的距离小于人类瞳孔间距离而定位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/093,228 | 2020-11-09 | ||
US17/093,228 US11538214B2 (en) | 2020-11-09 | 2020-11-09 | Systems and methods for displaying stereoscopic rendered image data captured from multiple perspectives |
PCT/US2021/055693 WO2022098509A1 (en) | 2020-11-09 | 2021-10-19 | 3d video conference systems and methods for displaying stereoscopic rendered image data captured from multiple perspectives |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116530078A true CN116530078A (zh) | 2023-08-01 |
Family
ID=78650063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180075744.8A Pending CN116530078A (zh) | 2020-11-09 | 2021-10-19 | 用于显示从多个视角采集的经立体渲染的图像数据的3d视频会议系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11538214B2 (zh) |
EP (1) | EP4241444A1 (zh) |
JP (1) | JP2023549657A (zh) |
KR (1) | KR20230104662A (zh) |
CN (1) | CN116530078A (zh) |
WO (1) | WO2022098509A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201710646A (zh) * | 2015-09-02 | 2017-03-16 | 湯姆生特許公司 | 描繪大視場內容一部份時,決定導航資訊之方法和裝置,以及大視場內容描繪器 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120182403A1 (en) * | 2004-09-30 | 2012-07-19 | Eric Belk Lange | Stereoscopic imaging |
US8300086B2 (en) * | 2007-12-20 | 2012-10-30 | Nokia Corporation | Image processing for supporting a stereoscopic presentation |
WO2010061689A1 (ja) * | 2008-11-26 | 2010-06-03 | 日本電気株式会社 | 表示装置、端末装置および表示方法 |
US20120113235A1 (en) * | 2010-11-08 | 2012-05-10 | Sony Corporation | 3d glasses, systems, and methods for optimized viewing of 3d video content |
JP2012217591A (ja) * | 2011-04-07 | 2012-11-12 | Toshiba Corp | 画像処理システム、装置、方法及びプログラム |
US9626798B2 (en) * | 2011-12-05 | 2017-04-18 | At&T Intellectual Property I, L.P. | System and method to digitally replace objects in images or video |
US20130321564A1 (en) * | 2012-05-31 | 2013-12-05 | Microsoft Corporation | Perspective-correct communication window with motion parallax |
US9129436B2 (en) * | 2012-08-01 | 2015-09-08 | Dreamworks Animation Llc | Techniques for smoothing scripted stereo curves for stereoscopic computer animation |
US8787664B2 (en) * | 2012-09-24 | 2014-07-22 | Adobe Systems Incorporated | Automatically matching colors in stereoscopic image pairs |
US8994780B2 (en) * | 2012-10-04 | 2015-03-31 | Mcci Corporation | Video conferencing enhanced with 3-D perspective control |
US9094576B1 (en) * | 2013-03-12 | 2015-07-28 | Amazon Technologies, Inc. | Rendered audiovisual communication |
US10175483B2 (en) * | 2013-06-18 | 2019-01-08 | Microsoft Technology Licensing, Llc | Hybrid world/body locked HUD on an HMD |
US10579207B2 (en) | 2014-05-14 | 2020-03-03 | Purdue Research Foundation | Manipulating virtual environment using non-instrumented physical object |
EP3219098B1 (en) | 2014-11-14 | 2021-10-06 | PCMS Holdings, Inc. | System and method for 3d telepresence |
US10154239B2 (en) * | 2014-12-30 | 2018-12-11 | Onpoint Medical, Inc. | Image-guided surgery with surface reconstruction and augmented reality visualization |
US11164670B2 (en) * | 2015-03-18 | 2021-11-02 | Canfield Scientific, Incorporated | Methods and apparatus for identifying skin features of interest |
US9240069B1 (en) * | 2015-06-30 | 2016-01-19 | Ariadne's Thread (Usa), Inc. | Low-latency virtual reality display system |
US9785741B2 (en) * | 2015-12-30 | 2017-10-10 | International Business Machines Corporation | Immersive virtual telepresence in a smart environment |
CN105808015B (zh) * | 2016-05-27 | 2018-10-12 | 京东方科技集团股份有限公司 | 防窥用户交互装置及方法 |
US10762708B2 (en) * | 2016-06-23 | 2020-09-01 | Intel Corporation | Presentation of scenes for binocular rivalry perception |
EP3504873A1 (en) * | 2016-08-29 | 2019-07-03 | Koninklijke KPN N.V. | Communicating in a virtual reality environment |
US10269177B2 (en) * | 2016-10-06 | 2019-04-23 | Google Llc | Headset removal in virtual, augmented, and mixed reality using an eye gaze database |
US10699461B2 (en) * | 2016-12-20 | 2020-06-30 | Sony Interactive Entertainment LLC | Telepresence of multiple users in interactive virtual space |
WO2018116253A1 (en) | 2016-12-21 | 2018-06-28 | Interaptix Inc. | Telepresence system and method |
DE102017203721A1 (de) * | 2017-03-07 | 2018-09-13 | Bitmanagement Software GmbH | Vorrichtung und Verfahren zur Darstellung eines Raumbilds von einem Objekt in einer virtuellen Umgebung |
US10834361B2 (en) * | 2017-04-18 | 2020-11-10 | Sony Corporation | Information processing apparatus, information processing method, and recording medium |
US10523912B2 (en) * | 2018-02-01 | 2019-12-31 | Microsoft Technology Licensing, Llc | Displaying modified stereo visual content |
US10582181B2 (en) * | 2018-03-27 | 2020-03-03 | Honeywell International Inc. | Panoramic vision system with parallax mitigation |
US11074717B2 (en) * | 2018-05-17 | 2021-07-27 | Nvidia Corporation | Detecting and estimating the pose of an object using a neural network model |
-
2020
- 2020-11-09 US US17/093,228 patent/US11538214B2/en active Active
-
2021
- 2021-10-19 EP EP21810185.5A patent/EP4241444A1/en not_active Withdrawn
- 2021-10-19 CN CN202180075744.8A patent/CN116530078A/zh active Pending
- 2021-10-19 KR KR1020237018614A patent/KR20230104662A/ko unknown
- 2021-10-19 JP JP2023524549A patent/JP2023549657A/ja active Pending
- 2021-10-19 WO PCT/US2021/055693 patent/WO2022098509A1/en active Application Filing
-
2022
- 2022-12-22 US US18/145,603 patent/US11887249B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023549657A (ja) | 2023-11-29 |
US11538214B2 (en) | 2022-12-27 |
US20230125961A1 (en) | 2023-04-27 |
WO2022098509A1 (en) | 2022-05-12 |
KR20230104662A (ko) | 2023-07-10 |
US11887249B2 (en) | 2024-01-30 |
US20220148254A1 (en) | 2022-05-12 |
EP4241444A1 (en) | 2023-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113891B2 (en) | Systems, methods, and media for displaying real-time visualization of physical environment in artificial reality | |
CN116964542A (zh) | 用于在虚拟现实中提供空间感知的系统和方法 | |
US11451758B1 (en) | Systems, methods, and media for colorizing grayscale images | |
TW202238531A (zh) | 虛擬實境環境中的混合實境物件 | |
CN117425870A (zh) | 虚拟现实中的动态混合现实内容 | |
CN117063205A (zh) | 在人工现实环境中生成和修改动态对象的表示 | |
US11887249B2 (en) | Systems and methods for displaying stereoscopic rendered image data captured from multiple perspectives | |
US11481960B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
US11887267B2 (en) | Generating and modifying representations of hands in an artificial reality environment | |
CN116917844A (zh) | 跨应用虚拟现实场合中的可调整个人用户界面 | |
US20240078745A1 (en) | Generation of a virtual viewpoint image of a person from a single captured image | |
US12033270B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
US20240037886A1 (en) | Environment sharing | |
US11562529B2 (en) | Generating and modifying an artificial reality environment using occlusion surfaces at predetermined distances | |
US11818474B1 (en) | Sparse RGB cameras for image capture | |
US20240119568A1 (en) | View Synthesis Pipeline for Rendering Passthrough Images | |
US20240119672A1 (en) | Systems, methods, and media for generating visualization of physical environment in artificial reality | |
US20230289993A1 (en) | 3D Representation of Physical Environment Objects | |
US20240153223A1 (en) | Reliable Depth Measurements for Mixed Reality Rendering | |
US20230259194A1 (en) | Spatial Anchor Sharing for Multiple Virtual Reality Systems in Shared Real-World Environments | |
WO2024081260A1 (en) | Systems, methods, and media for generating visualization of physical environment in artificial reality | |
WO2024081288A1 (en) | View synthesis pipeline for rendering passthrough images |
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 |