CN114223195A - 用于使用虚拟相机进行视频通信的系统和方法 - Google Patents

用于使用虚拟相机进行视频通信的系统和方法 Download PDF

Info

Publication number
CN114223195A
CN114223195A CN202080057666.4A CN202080057666A CN114223195A CN 114223195 A CN114223195 A CN 114223195A CN 202080057666 A CN202080057666 A CN 202080057666A CN 114223195 A CN114223195 A CN 114223195A
Authority
CN
China
Prior art keywords
virtual camera
user
angle
gaze
image
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
CN202080057666.4A
Other languages
English (en)
Inventor
R·卡西斯
B·K·卡布拉尔
M·F·科恩
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
Facebook 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 Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of CN114223195A publication Critical patent/CN114223195A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1626Constructional details or arrangements for portable computers with a single-body enclosure integrating a flat display, e.g. Personal Digital Assistants [PDAs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • 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
    • 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/013Eye tracking input arrangements
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/19Sensors therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/567Multimedia conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • 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/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Ophthalmology & Optometry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Transforming Electric Information Into Light Information (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

一种用于使用虚拟相机位置向一个设备显示来自与多个相机相关联的另一设备的图像数据的方法。该方法包括从与第二用户设备相关联的多个相机接收图像数据,第二用户设备与第二用户相关联。该方法还包括建立与多个相机的位置不同的虚拟相机位置。该方法还包括至少基于虚拟相机位置的视点在第一用户设备的第一用户显示器上使用图像数据提供图像。

Description

用于使用虚拟相机进行视频通信的系统和方法
技术领域
本公开总体上涉及显示系统。更具体地,本公开涉及用于从虚拟相机的角度提供虚拟渲染图像的系统和方法。
背景技术
本公开总体上涉及视频通信系统。视频通信系统可以用于经由网络在用户之间传输和接收各种图像和音频数据。例如,第一用户可以使用第一视频通信设备与使用第二视频通信设备的第二用户实时交谈。在提供视频通信系统时的一个考虑因素可以是在第一用户与第二用户之间提供真实的通信体验。
发明内容
根据本发明,提供了一种用于使用虚拟相机位置从与多个相机相关联的另一设备向一个设备显示图像数据的方法,该方法包括:从与第二用户设备相关联的多个相机接收图像数据,第二用户设备与第二用户相关联的;建立与多个相机的位置不同的虚拟相机位置;至少基于虚拟相机位置的视点,在第一用户设备的第一用户显示器上使用图像数据提供图像。
优选地,该方法还包括:接收与第二用户的至少一个身体部位相关联的位置数据;以及建立相对于位置数据的虚拟相机位置的视点。
便利地,位置数据包括指示第二用户的注视方向的眼睛跟踪数据。
优选地,该方法还包括:基于眼睛跟踪数据确定第二用户的注视向量,该注视向量包括注视位置、第一注视角度和第二注视角度;并且其中虚拟相机位置通过将虚拟相机位置设置为对应于注视位置来确定,以及第一虚拟相机角度至少基于第一注视角度被设置,并且第二虚拟相机角度至少基于第二注视角度被设置。
便利地,虚拟相机位置通过以下方式中的一种来确定:连续地确定,或者响应于由多个相机捕获的图像的变化来确定。
优选地,视点使用虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来确定,第一轴垂直于第二轴。
便利地,该方法还包括:从第二用户接收请求虚拟相机位置,请求虚拟相机位置包括请求相机位置、第一请求相机角度和第二请求相机角度;并且其中虚拟相机位置设置为请求相机位置、第一虚拟相机角度设置为第一请求相机角度、并且第二虚拟相机角度设置为第二请求相机角度。
优选地,请求虚拟相机位置能够由第二用户选择性地移动。
便利地,虚拟相机位置的视点关于第二用户设备的第二用户显示器的表面处于非垂直角度。
根据本发明的另一方面,提供了一种系统,该系统包括:接收用户设备,其与接收用户相关联并且具有接收用户显示器;发送用户设备,其与发送用户相关联并且经由网络与接收用户设备通信,发送用户设备具有发送用户显示器、多个传感器和处理电路系统,处理电路系统被配置为:从多个传感器接收图像数据;建立与多个传感器的位置不同的虚拟相机的位置;至少基于图像数据和虚拟相机的位置渲染图像;以及经由网络向接收用户设备传输图像以在接收用户显示器上显示。
优选地,处理电路系统还被配置为组合从多个传感器接收的图像数据以从虚拟相机的视点渲染图像。
便利地,处理电路系统还被配置为通过设置虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来定位虚拟相机,其中第一轴垂直于第二轴。
优选地,处理电路系统还被配置为:从多个传感器中的至少一个传感器接收指示发送用户的注视方向的眼睛跟踪数据;并且其中定位虚拟相机至少部分基于眼睛跟踪数据。
便利地,处理电路系统还被配置为:基于眼睛跟踪数据确定发送用户的注视位置;基于眼睛跟踪数据确定发送用户的注视向量,注视向量包括第一注视角度和第二注视角度;以及通过以下来定位虚拟相机:将虚拟相机位置设置为在注视位置处或最接近注视位置、至少基于第一注视角度设置第一虚拟相机角度、以及至少基于第二注视角度设置第二虚拟相机角度。
优选地,处理电路系统还被配置为:从发送用户接收请求虚拟相机位置,请求虚拟相机位置包括请求相机位置、第一请求相机角度和第二请求相机角度;以及通过以下来定位虚拟相机:将虚拟相机位置设置为请求相机位置、将第一虚拟相机角度设置为第一请求相机角度以及将第二虚拟相机角度设置为第二请求相机角度。
根据本发明的另一方面,提供一种与用户相关联的视频通信设备,该视频通信设备包括:多个传感器;布置在多个传感器中的至少两个传感器之间的显示器;与网络通信的处理电路系统,处理电路系统被配置为:从多个传感器接收图像数据;建立与多个传感器的位置不同的虚拟相机的位置;以及基于图像数据和虚拟相机的位置渲染图像;以及被配置为经由网络向接收用户设备传输图像的通信电路系统。
优选地,处理电路系统还被配置为:通过组合从多个传感器接收的图像数据以从虚拟相机的视点产生图像来渲染图像。
便利地,处理电路系统还被配置为:通过设置虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来定位虚拟相机,其中第一轴垂直于第二轴。
优选地,处理电路系统还被配置为:从多个传感器中的至少一个传感器接收眼睛跟踪数据,眼睛跟踪数据指示用户的注视方向;基于眼睛跟踪数据确定用户的注视位置;基于眼睛跟踪数据确定用户的注视向量,注视向量包括关于第一轴的第一注视角度和关于第二轴的第二注视角度;以及通过以下来定位虚拟相机将显示器上的虚拟相机位置设置为在注视位置处或最接近注视位置、基于第一注视角度设置第一虚拟相机角度、以及基于第二注视角度设置第二虚拟相机角度。
便利地,处理电路系统还被配置为:从用户接收请求虚拟相机位置,请求虚拟相机位置包括请求相机位置、关于第一轴的第一请求相机角度和关于第二轴的第二请求相机角度;以及通过以下来定位虚拟相机:将虚拟相机位置设置为请求相机位置、将第一虚拟相机角度设置为第一请求相机角度、以及将第二虚拟相机角度设置为第二请求相机角度。
根据一些实施例,本公开的一种实现涉及一种用于使用虚拟相机位置从与多个相机相关联的另一设备向一个设备显示图像数据的方法。该方法包括从与第二用户设备相关联的多个相机接收图像数据,第二用户设备与第二用户相关联的。该方法还包括建立与多个相机的位置不同的虚拟相机位置。该方法还包括至少基于虚拟相机位置的视点在第一用户设备的第一用户显示器上使用图像数据提供图像。
根据一些实施例,本公开的另一实现涉及一种用于系统的方法。该系统包括接收用户设备和发送用户设备。接收用户设备与接收用户相关联并且具有接收用户显示器。发送用户设备与发送用户相关联并且经由网络与接收用户设备通信。发送用户设备具有发送用户显示器、多个传感器和处理电路系统。处理电路系统被配置为从多个传感器接收图像数据。处理电路系统还被配置为建立与多个传感器的位置不同的虚拟相机的位置。处理电路系统还被配置为至少基于图像数据和虚拟相机的位置渲染图像。处理电路系统还被配置为经由网络向接收用户设备传输图像以在接收用户显示器上显示。
根据一些实施例,本公开的另一实现涉及一种与用户相关联的视频通信设备。视频通信设备包括多个传感器、显示器、处理电路系统和通信电路系统。显示器布置在多个传感器中的至少两个传感器之间。处理电路系统与网络通信。处理电路系统被配置为从多个传感器接收图像数据。处理电路系统还被配置为建立与多个传感器的位置不同的虚拟相机的位置。处理电路系统还被配置为基于图像数据和虚拟相机的位置渲染图像。通信电路系统被配置为经由网络向接收用户设备传输图像。
这些和其他方面和实现在下面详细讨论。前述信息和以下详细描述包括各个方面和实现的说明性示例,并且提供用于理解所要求保护的方面和实现的性质和特征的概述或框架。附图提供对各个方面和实现的说明和进一步理解,并且被并入本说明书并且构成本说明书的一部分。
附图说明
附图并非旨在按比例绘制。各图中相同的附图标记和名称表示相同的元素。为清楚起见,并非每个组件都可以在每个图中标注。
在图中:
图1是根据一些实施例的显示系统的框图。
图2是根据一些实施例的视频通信系统的示意图。
图3是根据一些实施例的示出用户眼睛的注视向量的球坐标系。
图4是根据一些实施例的朝向显示屏的图3的注视向量的俯视图。
图5是根据一些实施例的朝向显示屏的图3的注视向量的侧视图。
图6是根据一些实施例的用于从虚拟相机的角度动态地创建要提供给显示屏的虚拟渲染图像的过程的流程图。
图7是根据一些实施例的可以在其中实现图1和图2的系统的计算环境的框图。
具体实施方式
概述
总体上参考附图,根据一些实施例,示出了用于定位虚拟相机并且从虚拟相机的角度提供渲染图像的系统和方法。在一些显示系统(例如,某些视频通信系统或双向呼叫系统)中,通常使用固定的相机位置,该位置必须远离用户的设备的显示表面侧。因此,当用户注视显示器时,由用户的设备捕获的图像看起来好像用户正在注视远离相机的位置。在一些实施例中,视频通信会话的相互观看体验可以通过使显示器成为其他用户的位置(例如,家或办公室)内的窗口而得到改善。这个结果可以通过将相机移动到显示器上的某个位置使得由用户的设备捕获的图像看起来好像用户正在看着相机来实现。然而,由于物理和金钱限制,将相机移动到显示器上的某个位置(无论是连续地还是固定地将相机放置在屏幕上或屏幕后面的某个位置)都可能成本高昂和/或在物理上难以实现。
在一些实施例中,本文中提供的系统和方法描述了使用利用多个传感器的多种不同计算成像方法,多个传感器布置在显示器周围、在显示器的相对侧或靠近显示器以产生虚拟渲染图像,该虚拟渲染图像看起来好像是从与多个传感器中的任何一个传感器的位置不同的位置处的虚拟相机获取的。对于给定应用,传感器或相机的数目可以低至两个或尽可能高。多个传感器中的每个传感器捕获各种图像数据,该图像数据使用各种图像变形、扭曲和合并技术来应用以产生渲染图像。例如,在一些实施例中,可以使用基于图像的方法以及基于深度和几何形状的方法,该方法是无模型或基于模型的。
因此,虚拟相机(以及因此渲染的图像)不受限于任何物理相机的位置或角度。在一些实施例中,虚拟相机被定位以跟随用户的注视。这种注视跟随运动可以基于用户发送视频通信或用户接收视频通信。通过跟随用户的注视,渲染图像看起来好像用户正在看着相机。在一些实施例中,虚拟相机基于用户的各种其他身体特征的运动来定位。例如,用户的面部或头部可以被跟踪以估计注视方向和注视位置。同样,通过将虚拟相机移动到估计注视位置并且将其指向用户的注视方向,渲染图像看起来好像用户正在看着相机。在一些实施例中,虚拟相机位于显示器的中心,或者基于由用户提供的请求位置被定位。在这些情况下,虽然虚拟相机不跟随用户,但是虚拟相机可以放置在多个传感器之间并且在显示器上的某个位置处,这可以提高视频对话的真实性。
视频通信系统
现在参考图1,系统100可以包括多个传感器104a……104n、处理电路系统110和显示器112。系统100可以使用下面参考图2更详细描述的视频通信系统200来实现。系统100可以使用参考图7描述的计算环境来实现。系统100可以结合视频通信系统和网络的特征,并且用于实现视频通信系统和网络的特征。处理电路系统110中的至少一些可以使用图形处理单元(GPU)来实现。处理电路系统110的功能可以使用多个处理单元以分布式方式执行。
传感器104a……104n(本文中统称为传感器104)可以包括任何类型的一个或多个相机。相机可以是可见光相机(例如,彩色或黑白)、红外相机、夜视相机或其组合。传感器104a……104n每个可以包括一个或多个透镜106a……106j(本文中统称为透镜106)。在一些情况下,透镜106可以具有单个焦距(例如,饼干(pancake)透镜)。在一些其他情况下,透镜106可以包括双焦、多焦或变焦(例如,液体透镜)透镜。在一些实施例中,传感器104可以针对每个透镜106包括相机。在一些实施例中,传感器104可以包括具有多个透镜106a……106j的单个相机。在一些实施例中,传感器104可以包括多个相机,每个相机具有多个透镜106。传感器104的一个或多个相机可以被选择或设计为具有预定分辨率和/或具有预定视场。在一些实施例中,一个或多个相机被选择和/或设计为具有用于检测和/或跟踪对象的分辨率和视场,诸如在用于视频通信的客户端计算系统的视场中。一个或多个相机可以用于多个目的,诸如跟踪由本文中描述的图像捕获设备捕获的场景或环境中的对象。
在一些实施例中,传感器104a……104n可以是图像捕获设备或相机,包括视频相机。传感器104a……104n可以是生成不同质量(例如,从低到高的清晰度、分辨率和/或动态范围)的图像的相机,并且可以被选择以实现系统100的期望尺寸、重量和功率要求。例如,传感器104a……104n可以生成分辨率约为数百像素×数百像素、数千像素×数千像素、数百万像素×数百万像素等的图像。因此,本文中描述的由系统100执行的过程可以用于生成呈现给用户的显示图像,该显示图像具有期望的质量特性,包括深度特性。
要由传感器104a……104n捕获的图像的光可以通过一个或多个透镜106a……106j来接收。传感器104a……104n可以包括传感器电路系统,包括但不限于电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)电路系统,该传感器电路系统可以检测经由一个或多个透镜106a……106j接收的光,并且基于所接收的光生成图像108a……108k。例如,传感器104a……104n可以使用传感器电路系统来生成与第一视图相对应的第一图像108a,以及与第二视图相对应的第二图像108b。一个或多个传感器104a……104n可以向处理电路系统110提供图像108a……108k。一个或多个传感器104a……104n可以提供具有对应时间戳的图像108a……108k,这可以在对图像108a……108k执行图像处理时促进图像108a……108k的同步,诸如以标识表示特定视图(例如,第一视图和第二视图)并且具有相同时间戳的特定图像(例如,第一图像108a和第二图像108b),该特定图像应当被彼此比较以计算注视信息。
多个相机可以形成一对或多对相机,以提供立体图像捕获。在一些实施例中,客户端计算系统可以具有一个或多个附加相机,诸如在第一相机与第二相机之间的第三相机,以在第一相机、第二相机和第三相机之间形成三角形。该第三相机可以用于在执行本解决方案的深度缓冲器生成技术时的三角测量技术,以及用于对象跟踪。
例如,系统100可以包括第一传感器(例如,图像捕获设备)104a和第二传感器104b,第一传感器104a包括第一透镜106a,第一传感器104a被布置为捕获第一视图的第一图像108a,第二传感器104b包括第二透镜106b,第二传感器104b被布置为捕获第二视图的第二图像108b。第一视图和第二视图可以对应于不同视角,以使得能够从第一图像108a和第二图像108b中提取深度信息。系统100还可以包括第三传感器104c和第四传感器104d,第三传感器104c包括第三透镜106c,第三传感器104c被布置为捕获第三视图的第三图像108c,第四传感器104d包括第四透镜106d,第四传感器104d被布置为捕获第四视图的第四图像108d。第三视图和第四视图可以对应于两个附加的不同视角,以允许从第三图像108c和第四图像108d中提取附加和/或改进的深度信息。
传感器104和透镜106的一个或多个相机可以安装、集成、合并或布置在客户端计算系统(例如,膝上型电脑、平板电脑、智能电话、智能手表或任何其他可穿戴计算设备)上,以捕获客户端计算系统的用户的一个或多个图像。例如,客户端计算系统可以包括围绕显示器(例如,显示器112)布置的多个相机。在一些实施例中,显示器(例如,显示器112)布置在多个相机(例如,传感器104)中的至少两个相机之间。
如参考图2所述,第一视图和第二视图可以分别对应于左侧视图和右侧视图。第三视图和第四视图可以分别对应于顶部视图和底部视图。因此,左侧和右侧(或顶部和底部)视图的组合可以使得系统100能够有效地处理深度信息,并且提供足够的图像数据来执行本文中描述的视图变形技术。左侧视图、右侧视图、顶部视图和底部视图的组合可以进一步使得系统100能够更有效地处理仅用第一传感器104a和第二传感器104b可能难以解决的深度信息,诸如基本上平行于第一透镜106a与第二透镜106b之间的轴的边缘(例如,桌子的边缘)。此外,由传感器104a……104n提供的视图的组合允许由处理电路系统110创建虚拟相机视图,如下面将进一步描述的。
应当理解,眼睛跟踪数据132(图1)、身体特征跟踪数据140、图像数据156和深度信息可以从少至两个传感器(或者,在一些情况下,甚至单个传感器)中提取,并且图2中提供的传感器104的数目和布置是示例性的。本领域普通技术人员将理解,在不脱离本公开的范围的情况下,可以使用多种传感器布置来实现本文中描述的过程和方法。
传感器104可以提供诸如客户端计算系统(例如,客户端用户设备202)的用户的眼睛或头部(或各种其他身体特征)的位置、取向或注视方向等信息。例如,传感器104可以是眼睛跟踪传感器104,眼睛跟踪传感器104提供眼睛跟踪数据132,诸如与用户的一只眼睛或两只眼睛的位置或取向中的至少一项相对应的数据。在一些实施例中,眼睛跟踪数据指示用户的注视方向。传感器104也可以是头部跟踪传感器104(或其他身体特征跟踪传感器),头部跟踪传感器104提供头部跟踪数据150(或其他身体特征跟踪数据),诸如与用户的头部(或其他身体特征)的位置或取向中的至少一项相对应的数据。因此,传感器104可以被定向在朝向用户的眼睛或头部(或其他身体特征)的方向上。例如,传感器104可以包括第五传感器104e(并且在一些情况下,包括第六至第八传感器104f……104h,如图2所示),第五传感器104e可以被定向为朝向用户的眼睛或头部,以检测有关用户的眼睛或头部的传感器数据。
在一些实施例中,传感器104输出用户的眼睛的图像,该图像可以被处理以检测眼睛的眼睛位置或注视方向(例如,第一注视方向)。在一些实施例中,传感器104处理关于用户的眼睛的图像数据,并且基于图像数据输出眼睛位置或注视方向。在一些实施例中,传感器104光学地测量眼睛运动,诸如通过朝向眼睛发射光(例如,红外光)并且检测所发射光的反射。
处理电路系统110可以包括一个或多个电路、处理器和/或硬件组件。处理电路系统110可以实现任何逻辑、功能或指令以执行本文中描述的任何操作。处理电路系统110可以包括由任何电路、处理器或硬件组件可执行的任何类型和形式的可执行指令。可执行指令可以是任何类型,包括应用、程序、服务、任务、脚本、库进程和/或固件。在一些实施例中,处理电路系统110包括眼睛跟踪器116、身体特征跟踪器120、虚拟相机定位器124和图像渲染器128。眼睛跟踪器116、身体特征跟踪器120、虚拟相机定位器124和图像渲染器128中的任何一个可以是电路系统和可执行指令的任何组合或布置,以执行其相应功能和操作。处理电路系统110的至少一些部分可以用于实现使用由传感器104获取的数据而执行的图像处理,如下面更详细描述的。
如本文中进一步讨论的,眼睛跟踪操作可以包括由系统100或其组件执行以在客户端计算系统的使用期间在用户的眼睛移动时跟踪关于用户的眼睛的数据(诸如用户的眼睛的位置或取向(例如,注视方向))的任何功能、操作、例程、逻辑或指令。例如,眼睛跟踪操作可以使用一个或多个传感器104和/或眼睛跟踪器116来执行。例如,眼睛跟踪操作可以处理来自(多个)传感器104的眼睛跟踪数据132,以确定各种注视信息,诸如眼睛位置、注视方向、注视向量、焦点、注视位置、视点等,该注视信息被示出为用户的(多个)眼睛的注视向量136和注视位置138。
在一些实施例中,眼睛跟踪操作可以使用眼睛跟踪器116来执行,该眼睛跟踪器116使用处理电路系统110的一部分来实现,该处理电路系统110的一部分与一个或多个传感器104耦合、安装到一个或多个传感器104、与一个或多个传感器104集成、使用与一个或多个传感器104相同的电路板来实现、或者以其他方式提供有一个或多个传感器104,该一个或多个传感器104检测关于用户的眼睛的传感器数据。在一些实施例中,眼睛跟踪器116通过有线或无线连接从一个或多个传感器104接收传感器数据,该一个或多个传感器104被配置为检测关于用户的眼睛的传感器数据(例如,用户的眼睛的图像)。例如,眼睛跟踪器116可以使用与身体特征跟踪器120和/或图像渲染器128中的至少一项相同的处理硬件来实现。传感器104的传感器硬件和/或处理电路系统110的处理硬件的各种这样的组合可以用于实现眼睛跟踪操作。
眼睛跟踪器116可以以各种方式生成或确定注视信息(例如,注视向量136和/或注视位置138)。例如,眼睛跟踪器116可以处理眼睛跟踪数据132,以标识表示用户的一只或多只眼睛的位置或取向中的至少一项的一个或多个像素。眼睛跟踪器116可以使用眼睛跟踪数据132基于与由用户的一只或更多只眼睛反射的光(例如,来自传感器104的光源/发光二极管/致动器的光,诸如来自传感器104的致动器的红外线或近红外光,诸如850nm光眼睛跟踪)相对应的像素,来标识注视向量136和/或注视位置138。眼睛跟踪器116可以通过确定用户的一只或更多只眼睛的瞳孔中心与对应反射(例如,角膜反射)之间的向量来确定注视向量136、注视位置138和/或眼睛位置。
注视向量136可以包括位置数据,诸如用户的一只或更多只眼睛中的每只眼睛的位置或取向中的至少一项。位置数据可以是三维空间,诸如笛卡尔坐标系、球坐标系或其他坐标系中的三维坐标。注视向量136可以包括位置数据,该位置数据包括用户的一只或更多只眼睛的注视方向。注视位置138可以包括位置数据,诸如显示器112上的焦点位置。在一些实施例中,眼睛跟踪器116包括机器学习模型。机器学习模型可以用于基于眼睛跟踪数据132生成眼睛位置、注视向量136和/或注视位置138。
类似地,身体特征跟踪操作可以包括由系统100或其组件执行以在客户端计算系统的使用期间在用户的身体特征移动时跟踪关于用户的任何身体特征(例如,头部)的数据(诸如用户的身体特征的位置或取向)的任何功能、操作、例程、逻辑或指令。例如,身体特征跟踪操作可以使用一个或多个传感器104和/或身体特征跟踪器120来执行。在一些情况下,身体特征跟踪操作可以是头部跟踪操作,该头部跟踪操作可以用于处理来自(多个)传感器104的身体特征跟踪数据140,以确定头部位置、头部倾斜方向(例如,偏航、俯仰和/或滚动)和/或头部轮廓位置,这些被示出为用户的身体特征信息144。
在一些实施例中,头部跟踪操作可以使用身体特征跟踪器120来执行,该身体特征跟踪器120使用处理电路系统110的一部分来实现,该电路系统110的一部分与一个或多个传感器104耦合、安装到一个或多个传感器104、与一个或多个传感器104集成、使用与一个或多个传感器104相同的电路板来实现、或者以其他方式提供有一个或多个传感器104,该一个或多个传感器104检测关于用户的头部的传感器数据。在一些实施例中,身体特征跟踪器120可以通过有线或无线连接从一个或多个传感器104接收传感器数据,该一个或多个传感器104被配置为检测关于用户的头部的传感器数据(例如,用户的头部的图像)。例如,身体特征跟踪器120可以使用与眼睛跟踪器116和/或图像渲染器128中的至少一项相同的处理硬件来实现。传感器104的传感器硬件和/或处理电路系统110的处理硬件的各种这样的组合可以用于实现头部跟踪操作。
身体特征跟踪器120可以以各种方式生成身体特征信息144。例如,身体特征跟踪器120可以处理身体特征跟踪数据140,以标识或定位图像内的头部的至少一部分,并且确定用户的头部的位置或取向(或头部的各种标识特征)。例如,身体特征跟踪器120可以使用身体特征跟踪数据140基于图像内的各种面部特征(例如,左眼、右眼、鼻子、左嘴角和右嘴角)来标识身体特征信息144。身体特征信息144可以包括指示图像内用户的头部的中心点的位置(或头部的各种标识特征)的位置数据。位置数据可以在三维空间中,诸如笛卡尔坐标系、球坐标系或其他坐标系中的三维坐标。
身体特征信息144还可以包括取向数据,该取向数据包括用户头部的头部倾斜方向和头部倾斜角度。在一些情况下,位置数据和取向数据可以组合或用于共同定义注视方向,注视方向可以与由眼睛跟踪器116确定的注视信息一起使用或代替其来使用。类似地,基于头部的中心点、所确定的注视方向和从传感器104接收的深度信息,在一些实施例中,身体特征跟踪器120可以确定估计的注视位置和估计的注视向量,类似于以上描述的注视位置138和注视向量136。在一些实施例中,身体特征跟踪器120包括机器学习模型。机器学习模型可以用于基于身体特征跟踪数据140生成身体特征信息144。
应当理解,上述“头部跟踪操作”可以类似地应用于跟踪用户身体的各种其他特征(例如,手部跟踪、身体或躯干跟踪、面部跟踪)。例如,在一些实施例中,头部跟踪操作可以由各种其他身体特征跟踪操作补充或替代。例如,身体特征跟踪操作可以利用与上述身体特征跟踪器120具有相似功能的身体跟踪器来处理各种身体特征跟踪数据,以标识或定位一个或多个不同身体特征。然后,身体跟踪器可以基于图像内的各种身体特征来标识类似于身体特征信息144的身体特征信息。身体特征信息可以类似地包括指示图像内用户身体的各种标识特征的位置的位置数据、以及包括用户的身体特征的身体特征倾斜方向和倾斜角度的取向数据。
此外,应当理解,上述“头部跟踪操作”可以类似地应用于跟踪一般人类运动、各种房间或场景特征、社交互动、或者针对给定应用被认为是必要的或期望的要由虚拟相机定位器124或图像渲染器128使用的任何其他期望特征。
根据一些实施例,处理电路系统110包括虚拟相机定位器124(图1)。根据一些实施例,虚拟相机定位器124被配置为从眼睛跟踪器116接收注视向量136,并且从身体特征跟踪器120接收身体特征信息144。在一些情况下,虚拟相机定位器124还被配置为通过与客户端计算机系统相关联的用户输入146(例如,经由键盘、鼠标、触摸屏)从用户接收输入。例如,在一些实施例中,用户可以提供请求虚拟相机位置,包括虚拟相机的请求相机位置和请求角度取向。关于虚拟相机的请求角度取向,用户可以提供关于显示器的第一轴的第一请求相机角度,和关于显示器112的第二轴的第二请求相机角度。在一些实施例中,第一轴和第二轴可以基本上彼此垂直。例如,在一些实施例中,第一轴和第二轴可以分别是显示器112的纵轴和横轴。在其他实施例中,根据给定应用的需要,第一轴和第二轴可以不同地定义。因此,在一些实施例中,用户可以通过输入请求相机位置和请求角度取向来选择性地移动虚拟相机。
在一些实施例中,虚拟相机定位器124被配置为执行虚拟相机定位操作。例如,虚拟相机定位器124被配置为设置、定义、确定和/或建立虚拟相机位置148。虚拟相机位置148包括关于(多个)显示器112上或(多个)显示器112附近的对应位置(例如,虚拟相机位置)的数据和关于(多个)显示器112的虚拟相机的角度取向的数据。在一些实施例中,虚拟相机位置148与多个传感器104的位置不同,从而允许从虚拟相机的角度来创建图像,该虚拟相机处于不存在物理相机的位置处,如本文中进一步描述的。此外,在一些情况下,虚拟相机位置148可以使得虚拟相机提供不垂直于显示器112的渲染图像。
在一些情况下,虚拟相机定位器124基于注视向量136建立虚拟相机位置148,如下面将讨论的。在一些情况下,虚拟相机定位器124基于由用户提供的请求虚拟相机位置来建立虚拟相机位置148。在这些情况下,虚拟相机定位器124将虚拟相机位置设置为请求相机位置,将第一虚拟相机角度(关于显示器112的第一轴)设置为第一请求相机角度,并且将第二虚拟相机角度(关于显示器112的第二轴)设置为第二请求相机角度。在一些实施例中,虚拟相机定位器124基于以下的任意组合来建立虚拟相机位置148:注视向量136、身体特征信息144、手动选择或请求的虚拟相机位置、参考或预设虚拟相机位置、或特定应用所需要的任何其他合适的基础。
根据一些实施例,虚拟相机定位器124向图像渲染器128提供虚拟相机位置148以用于生成渲染图像152。在一些实施例中,虚拟相机定位器124基于更新后的或新的注视向量136、更新后的或新的身体特征信息144、来自用户的输入、或各种其他接收的数据或输入来周期性地或动态地(例如,根据请求、自动地或连续地)重新定义虚拟相机位置148。
根据一些实施例,处理电路系统110还包括图像渲染器128。在一些实施例中,图像渲染器128被配置为执行图像渲染操作。例如,图像渲染器128被配置为从虚拟相机定位器124接收虚拟相机位置148,并且使用虚拟相机位置148基于图像数据156和图像108来生成渲染图像152。然后,渲染图像152可以被提供给一个或多个显示器112。例如,在一些实施例中,图像数据156包括各种图像108a……108k、以及每个图像108的相关信息(例如,查看信息、相关联的传感器104的位置),并且图像渲染器128被配置为合并图像108a……108k,以从位于虚拟相机位置148处的虚拟相机的角度创建虚拟图像(例如,渲染图像152),如本文中将进一步讨论的。
根据一些实施例,图像渲染器128是3D图像渲染器或2D图像渲染器。根据一些实施例,图像渲染器128使用图像相关输入数据来处理、生成和渲染显示或呈现图像,以在一个或多个显示设备上显示或呈现,诸如经由客户端计算设备的显示器。根据一些实施例,图像渲染器128生成或创建场景或视图的2D图像,以显示在显示器112上,并且从虚拟相机位置148的角度表示场景或视图。根据一些实施例,要渲染的显示或呈现数据(例如,图像数据156)包括来自从各种视图获取的图像的信息。因此,图像渲染器128接收图像108、眼睛跟踪数据132、虚拟相机位置148和头部跟踪数据150,并且使用图像108生成显示图像。
图像渲染器128可以渲染要提供给一个或多个显示器112的显示数据帧。图像渲染器128可以在时间上(诸如对应于传感器104捕获图像的时间)顺序地渲染图像数据帧。图像渲染器128可以基于用户关于传感器104(例如,客户端计算系统)的位置和/或取向的变化来渲染显示数据帧。图像渲染器128和/或处理电路系统110被配置为将渲染图像连续地传输到另一用户(或多个用户)的客户端计算系统的显示器(或多个显示器)以允许视频通信,如本文中将进一步描述的。例如,处理电路系统110可以可通信地耦合到通信电路系统(例如,下面参考图2描述的通信电路系统212),通信电路系统可以将渲染图像经由网络传输到另一用户(或多个用户)的客户端计算系统(例如,远程用户设备204,也在下面参考图2描述)以允许视频通信。尽管图像渲染器128被示出为处理电路系统110的一部分,但是图像渲染器可以形成为单独的设备或组件(诸如单独的服务器或主机计算系统)的其他处理电路系统的一部分。
在一些实施例中,图像渲染器128可以基于深度信息和/或头部(或身体)跟踪操作来执行注视点渲染。例如,在一些实施例中,处理电路系统110可以标识图像内的距对应显示器112的预定距离内的对象和图像内的距对应显示器112的预定距离之外的对象。处理电路系统110然后可以生成显示图像,与其中(多个)对象在距显示器112的预定距离内的图像区域的质量相比,在对象在距显示器112的预定距离之外的图像区域中,该显示图像具有较低质量(例如,分辨率、像素密度、帧速率)。
在一些实施例中,处理电路系统110可以标识用户的头部、面部和/或各种其他身体特征,并且可以生成显示图像,在用户的标识特征之外的图像的区域中,该显示图像具有较低质量。在一些实施例中,处理电路系统110可以基于距显示器112的预定距离和用户的标识特征两者来生成显示图像。例如,处理电路系统110可以基于用户的标识特征设置预定距离,从而允许所生成的图像在(多个)对象与用户相比在距显示器相似的距离处的区域中具有较高质量。通过提供注视点渲染,可以减少与任何客户端用户设备(例如,客户端用户设备202或远程用户设备204)的操作相关联的处理需求。具体地,因为本文中描述的过程包括合并多个图像和多个图像数据流,所以提供注视点渲染可以显著减少在从虚拟相机的角度创建图像时的处理需求。
如图所示,系统100可以包括一个或多个显示器112。一个或多个显示器112可以是任何类型和形式的电子视觉显示器。显示器可以具有或被选择为具有预定分辨率以及刷新速率和尺寸。一个或多个显示器可以是任何类型的技术,诸如基于LCD、LED、ELED或OLED的显示器。显示器112可以具有与处理电路系统110或图像渲染器128或传感器104的刷新速率或帧速率相同或不同的刷新速率。在一些情况下,显示器112每个可以与单独用户的一个或多个客户端计算系统相关联,如下面将进一步描述的。
现在参考图2,在一些实现中,视频通信系统200可以用于实现系统100。视频通信系统200包括客户端用户设备202、至少一个远程用户设备204、和服务器206。在一些情况下,客户端用户设备202、至少一个远程用户设备204和服务器206通过网络208彼此通信和连接。网络可以是局域网(LAN)、内联网、互联网、或任何其他合适的通信网络。
客户端用户设备202和至少一个远程用户设备204可以基本相似。在一些实施例中,客户端用户设备202和远程用户设备204可以是由经由网络208使用视频通信系统200彼此通信的两个用户使用的类似设备。例如,客户端用户设备202可以是与发送用户相关联的发送用户设备,并且至少一个远程用户设备204可以是与接收用户相关联的接收用户设备。因此,应当理解,对客户端用户设备202的以下描述也可以应用于至少一个远程用户设备204。
客户端用户设备202包括设备本体210、多个传感器104和显示器112。在一些实施例中,多个传感器104包括左侧传感器104a(例如,左侧图像捕获设备)、右侧传感器104b(例如,右侧图像捕获设备)、顶部传感器104c(例如,顶部图像捕获设备)、底部传感器104d(例如,底部图像捕获设备)、眼睛跟踪传感器104e、104f、和头部跟踪传感器104g、104h。
在一些实施例中,传感器104a……104f可以安装到设备本体210或集成在设备本体210中。在一些实施例中,传感器104a……104f可以是被配置为通过有线或无线连接与客户端用户设备202(或远程用户设备204)通信的单独或远程传感器。左侧传感器104a可以捕获与第一视图(例如,左侧视图)相对应的第一图像,并且右侧传感器104b可以捕获与第二视图(例如,右侧视图)相对应的图像。顶部传感器104c可以捕获与第三视图(例如,顶部视图)相对应的图像,并且底部传感器104d可以捕获与第四视图(例如,底部视图)相对应的图像。第三视图和第四视图可以不同于第一视图和第二视图。例如,顶部传感器104c和底部传感器104d可以分别定位在左侧传感器104a与右侧传感器104b之间,并且分别在左侧传感器104a与右侧传感器104b之间的中线上方和下方。这可以使得顶部传感器104c和底部传感器104d能够捕获具有深度信息的图像,该深度信息可能不容易从由左侧传感器104a和右侧传感器104b捕获的图像中提取。例如,在左侧传感器104a和右侧传感器104b捕获的边缘(例如,桌子的边缘)平行于左侧传感器104a与右侧传感器104b之间的中线的图像中,可能难以有效地提取深度信息。从中间隔开的顶部传感器104c和底部传感器104d可以捕获第三图像和第四图像以具有不同视角,并且从而使得能够从第三图像和第四图像中提取不同深度信息,而不是从容易获取的左侧传感器104a与右侧传感器104b。在一些实施例中,传感器104中的一个或多个还可以包括深度传感器。深度传感器可以利用结构光、飞行时间、或任何其他合适类型的深度感测技术。
应当理解,传感器104a……104f在设备本体210上的布置是作为示例提供的并且绝不表示限制。例如,如上所述,设备本体210可以采用多种形状因子中的任何一种,并且因此,传感器104a……104f可以以不同形状因子不同地布置,同时仍然能够进行本文中描述的方法和过程。此外,在设备本体210上示出的传感器104a……104f的数目也作为示例提供。在一些情况下,设备本体210可以包括少至两个传感器(例如,传感器104a和传感器104b)。在一些其他情况下,设备本体210可以包括对于给定预期用途认为必要或期望的尽可能多的传感器。例如,在一些情况下,设备本体210可以包括四个传感器、十个传感器、五十个传感器等。通常,随着给定设备本体上的传感器数目增加,所捕获的成像角度的数目也增加,从而改进图像处理能力。
此外,如上所述,在一些实施例中,传感器104a……104f可以与设备本体210分离或远离。例如,在一些实施例中,多个传感器可以布置在用户设备(例如,客户端用户设备202、远程用户设备204)周围的房间(例如,办公室、视频会议室)内,并且多个传感器可以与用户设备通信以执行本文中描述的功能和方法。因此,根据给定应用的需要,可以存在与客户端用户设备202(或远程用户设备204)集成或通信的任何数目的传感器。
客户端用户设备202可以包括处理电路系统110,处理电路系统110可以执行参考图1描述的功能中的至少一些功能,包括从传感器104a……104f接收传感器数据,传感器104a……104f可以是任何类型的成像设备(例如,相机、眼睛跟踪传感器、头部跟踪传感器),并且处理所接收的图像/数据,以校准和/或执行眼睛跟踪操作、头部跟踪操作、虚拟相机定位操作和图像渲染操作。
客户端用户设备202可以包括通信电路系统212。通信电路系统212可以用于向远程用户设备204(或多个远程用户设备)或服务器206中的至少一个传输电子通信信号,并且从其接收电子通信信号。通信电路系统212可以经由网络208、局域网(例如,建筑物LAN)、广域网(例如,互联网、蜂窝网络)进行通信,和/或进行直接通信(例如,NFC、蓝牙)。通信电路系统212可以包括用于与各种系统、设备或网络进行数据通信的有线或无线接口(例如,插孔、天线、传输器、接收器、收发器、有线终端)。例如,通信电路系统212可以包括用于经由基于以太网的通信网络发送和接收数据的以太网卡和端口。通信电路系统212可以包括一个或多个无线收发器(例如,Wi-Fi收发器、蓝牙收发器、NFC收发器、蜂窝收发器)。因此,通信电路系统212可以进行有线和/或无线通信。例如,通信电路系统212可以与远程用户设备204(或多个远程用户设备)或服务器206中的至少一个建立有线或无线连接。
客户端用户设备202可以使用不同架构来部署。在一些实施例中,客户端用户设备202(和/或一个或多个远程用户设备204中的每个)包括处理电路系统110,处理电路系统110被配置为独立地执行本文中描述的操作和/或过程中的每个。在一些实施例中,客户端用户设备202(和/或一个或多个远程用户设备中的每个)具有处理电路系统110的部分,该处理电路系统110的部分与服务器计算设备(例如,服务器206)的处理电路系统或其部分协作或结合工作,该服务器计算设备可以远程部署在数据中心或云计算环境中。因此,客户端用户设备202或与客户端用户设备202结合工作的任何计算设备可以与一个或多个服务器通信,以执行本文中描述的任何功能和操作。
客户端用户设备202和/或一个或多个远程用户设备204中的每个可以是任何形状因子的任何类型和形式的通用或专用计算设备。例如,虽然示出为平板电脑,但设备本体210可以具有各种形状因子,诸如移动或便携式设备(例如,电话、平板电脑、膝上型电脑、智能手表或其他可穿戴设备)、台式机或个人计算(PC)设备、或任何其他合适的计算设备。如上所述,客户端用户设备202和/或远程用户设备204可以用于执行结合图1和图2描述的图像和渲染处理操作的任何部分。客户端用户设备202还可以经由网络208与远程用户设备204传输和接收数据(例如,音频数据和视频数据)以允许视频通信。
服务器206可以是向客户端用户设备202、一个或多个远程用户设备204或充当客户端的任何其他设备提供应用、功能或服务的任何类型的形式的计算设备。服务器206可以部署在可以经由一个或多个网络(例如,网络208)访问的数据中心或云计算环境中。客户端用户设备202和/或远程用户设备204可以使用和利用服务器206的计算能力和资源。在一些情况下,客户端用户设备202和/或远程用户设备204可以实现结合图1和图2描述的图像和渲染处理操作的任何部分。在一些情况下,服务器206可以类似地包括被配置为实现图像和渲染处理操作的任何部分的处理电路系统110。在一些情况下,图像和渲染处理操作的部分可以由客户端用户设备202和/或远程用户设备204执行,而没有由客户端用户设备202或远程用户设备204执行的部分可以由服务器206执行。在一些实施例中,服务器206可以用于利用对客户端用户设备202和/或远程用户设备204上的应用、软件、可执行指令和/或数据的任何更新来更新客户端用户设备202和/或远程用户设备204。
注视向量、注视位置和虚拟相机定位
现在参考图3至图5,根据一些实施例,更详细地示出了注视向量136。根据一些实施例,由处理电路系统110使用的注视向量136在图3至图5中以图形方式表示为注视向量302。在一些实施例中,处理电路系统110的眼睛跟踪器116被配置为接收眼睛跟踪数据132,并且至少部分基于眼睛跟踪数据132确定注视向量136(或注视向量302)。应当理解,虽然注视向量136在球坐标系中表示,但注视向量136也可以在笛卡尔坐标系、极坐标系、柱坐标系等或任何其他坐标系中表示。根据一些实施例,注视向量302由处理电路系统110使用,以确定用户眼睛的焦点或注视位置402。在一些实施例中,处理电路系统110被配置为至少部分基于眼睛跟踪数据132(例如,由眼睛跟踪器116接收)和/或身体特征跟踪数据140(例如,由身体特征跟踪器120接收)来确定注视向量136(或注视向量302)和注视位置402。
例如,参考图3,球坐标系包括注视向量302和用户的眼睛(或多只眼睛)160。根据一些实施例,眼睛160被示出为球坐标系的中心点,并且注视向量302从眼睛160径向向外延伸。在一些实施例中,注视向量302的方向由一个或多个角度定义,该角度被示出为角度θ1(例如,第一注视角度)和角度θ2(例如,第二注视角度)。在一些实施例中,角度θ1表示注视向量302与纵轴304(例如,第一轴)之间的角度量。在一些实施例中,角度θ2表示注视向量302与横轴306(例如,第二轴)之间的角度量。在一些实施例中,纵轴304和横轴306基本上彼此垂直并且都延伸穿过眼睛160。
在一些实施例中,处理电路系统110的眼睛跟踪器116被配置为基于眼睛跟踪数据132来确定角度θ1和角度θ2的值。根据一些实施例,眼睛跟踪器116可以确定两只眼睛160的角度θ1和θ2的值。在一些实施例中,眼睛跟踪器116确定角度θ1和θ2的值,并且将该角度提供给虚拟相机定位器124作为注视向量136(或注视向量302)。
特别参考图4和5,注视向量302可以用于确定兴趣点、焦点、注视点、注视位置、点等的位置,如注视位置402(例如,注视位置138)所示。根据一些实施例,注视位置402在显示器112上具有位置。在一些实施例中,注视位置402在显示器112上具有x位置和y位置(例如,水平位置和竖直位置)。在一些实施例中,注视位置402在虚拟空间、真实空间等中具有位置。在一些实施例中,注视位置402具有二维位置。在一些实施例中,注视位置402具有三维位置。注视位置402可以相对于显示器112上的原点或参考点(例如,显示器112的中心、显示器112的角部等)在显示器112上具有位置。注视位置402和注视向量302可以使用任何坐标系或其坐标系组合来表示。例如,注视位置402和/或注视向量302可以使用笛卡尔坐标系、极坐标系、柱坐标系、球坐标系、齐次坐标系、曲线坐标系、正交坐标系、倾斜坐标系等来定义。
在一些实施例中,虚拟相机定位器124和/或眼睛跟踪器116被配置为使用用户眼睛160与显示器112之间的距离d。根据一些实施例,距离d可以是用户眼睛160与显示器112之间的已知或感测距离。例如,传感器104可以测量、检测、感测、标识用户眼睛160与显示器112之间的距离d。在一些实施例中,距离d是基于客户端用户设备202的类型或配置的已知距离。
距离d以及角度θ1和θ2可以由眼睛跟踪器116用来确定注视向量302/136。在一些实施例中,眼睛跟踪器116使用距离d以及角度θ1和θ2来确定注视位置402的位置。在一些实施例中,眼睛跟踪器116向虚拟相机定位器124提供距离d以及角度θ1和θ2。然后,虚拟相机定位器124使用距离d以及角度θ1和θ2确定注视位置402相对于显示器112上的参考点的位置。
图4是根据一些实施例的显示器112和用户眼睛160的俯视图。图4示出了根据一些实施例的关于第一轴(例如,纵轴304)的角度θ1。类似地,图5是根据一些实施例的显示器112和用户眼睛160的侧视图,并且示出了关于第二轴(例如,横轴)的角度θ2。根据一些实施例,虚拟相机定位器124和/或眼睛跟踪器116使用距离d以及角度θ1和θ2来确定注视位置402的位置/定位。在一些实施例中,虚拟相机定位器124使用注视位置402的位置/定位来定义虚拟相机位置148。应当理解,虽然显示器112被示出为大致平坦的显示屏,但在一些实施例中,显示器112是弯曲的、弧形等显示屏。矩形显示屏仅为了便于说明和描述而示出。因此,对显示器112的“局部位置”、“局部坐标”、“笛卡尔坐标”等的所有引用都可以指代角度θ1和θ2的相关联/对应的角度值。
在一些情况下,虚拟相机定位器124被配置为基于角度θ1和θ2以及注视位置402来设置虚拟相机位置148。例如,在一些实施例中,虚拟相机定位器124通过将虚拟相机位置设置在注视位置402处、将第一虚拟相机角度设置在角度θ1处(关于显示器112)以及将第二虚拟相机角度设置在角度θ2处(关于显示器112),来建立虚拟相机位置148。因此,虚拟相机位置148被建立以使得虚拟相机位于注视位置处,并且被定向成使得虚拟相机直接朝向或“指向”用户的眼睛160。在用户将目光从屏幕移开的情况下,虚拟相机定位器124可以将虚拟相机位置设置为显示器112上与注视位置402相对应或最接近注视位置402的位置。
图像处理
特别地参考图6,示出了根据一些实施例的用于处理由多个传感器捕获的图像数据以从虚拟相机的角度动态地创建虚拟渲染图像的过程600。根据一些实施例,过程600包括步骤602至614,并且由系统100、系统200等执行,以组合来自多个传感器104a……104j的图像数据以从虚拟相机的角度提供虚拟渲染的图像。在一些实施例中,过程600在视频通信会话期间使用。例如,过程600允许在视频通信会话期间放置和使用虚拟相机,以为用户提供更逼真的对话体验。
在一些实施例中,虚拟相机可以放置在视频通信会话期间使用的显示器的中心。即,从多个物理(或真实)传感器获取的图像数据可以组合并且一起变形为虚拟渲染图像,该虚拟渲染图像看起来是从在显示器的中心的虚拟相机的位置获取的,该位置可以不同于任何物理(或真实)传感器的位置。在一些实施例中,虚拟相机位置可以响应于来自用户的输入选择性地移动。例如,用户可以输入请求虚拟相机位置和请求虚拟相机角度取向(例如,关于显示器的第一虚拟相机角度和关于显示器的第二虚拟相机角度),并且虚拟相机可以基于请求虚拟相机位置和请求虚拟相机角度取向来定位。在这种情况下,从多个物理(或真实)传感器获取的图像数据可以类似地组合并且一起变形为虚拟渲染图像,该虚拟渲染图像看起来是从在虚拟相机位置和角度取向的虚拟相机获取的。
在一些实施例中,虚拟相机可以动态地移动以跟随用户的焦点和/或注视方向,使得虚拟相机连续地提供看起来是从直接指向用户眼睛的相机获取的图像。因此,本文中描述的过程和方法(例如,过程600)可以允许用户通过他们的相应显示器进行虚拟“眼睛接触”,从而提供更真实的通信体验。例如,在视频通信会话期间,第一用户可以在第一用户的显示器上(例如,不直接在任何物理传感器处)观看第二用户的眼睛的显示图像,并且提供给第二用户的图像将看起来好像第一用户正在直接看着相机。即,提供给第二用户的图像将看起来好像第一用户正在直接看着第二用户,类似于通过窗口看。
根据一些实施例,过程600包括获取传感器数据(步骤602)、确定注视向量(步骤604)、确定身体状态向量(步骤606)、从用户接收输入(步骤608)、建立虚拟相机位置(步骤610)、渲染虚拟图像(步骤612)、以及在显示器上向用户提供渲染虚拟图像(步骤614)。应当理解,过程600是示例性的。在不脱离本公开的范围的情况下,可以更改或改变所提供的步骤的特定顺序。此外,应当理解,所提供的步骤中的一些是可选的,具体取决于给定设备的预期用途和/或限制。这些可选步骤中的一些已经如下所示。
关于步骤602,在一些实施例中,传感器数据包括注视方向数据和/或图像数据156。在一些实施例中,注视方向数据指示用户的注视方向。在一些实施例中,注视方向数据包括眼睛跟踪数据132和/或身体特征跟踪数据140。在一些实施例中,眼睛跟踪数据132指示用户眼睛的位置、用户瞳孔的位置、用户眼睛的取向等。在一些实施例中,身体特征跟踪数据140包括头部位置、头部倾斜方向和/或头部轮廓位置。在一些实施例中,步骤602由传感器104中的一个或多个传感器执行。例如,步骤602可以由客户端用户设备202的一个或多个传感器104或者远程用户设备204的一个或多个传感器104执行。
在一些实施例中,过程600可选地包括确定用户的注视信息(例如,注视向量和/或注视位置)(步骤604)。在一些实施例中,步骤604可以由客户端用户设备202、远程用户设备204或服务器206的处理电路系统110(例如,眼睛跟踪器116)单独地执行。在一些实施例中,步骤604可以使用客户端用户设备202、远程用户设备204和服务器206的处理电路系统110的任何组合来执行,使得步骤604可以以分布式方式执行。例如,如上所述,处理电路系统110(例如,眼睛跟踪器116)可以被配置为从传感器104接收眼睛跟踪数据132。然后眼睛跟踪器116可以被配置为执行上面讨论的眼睛跟踪操作。例如,眼睛跟踪器116可以被配置为确定注视向量136(或注视向量302)和/或注视位置138(或注视位置402)。一旦眼睛跟踪器116已经确定注视向量136(或注视向量302)和注视位置138(或注视位置402),眼睛跟踪器116就可以将注视向量136(或注视向量302)和/或注视位置138(或注视位置402)提供给客户端用户设备202、远程用户设备204和/或服务器206的虚拟相机定位器124。
在一些实施例中,过程600可选地包括确定用户的身体特征信息144(步骤606)。在一些实施例中,步骤606可以由客户端用户设备202、远程用户设备204或服务器206的处理电路系统110(例如,身体特征跟踪器120)单独地执行。在一些实施例中,步骤604可以使用客户端用户设备202、远程用户设备204和服务器206的处理电路系统110的任何组合来执行,使得步骤604可以以分布式方式执行。例如,如上所述,在一些实施例中,处理电路系统110(例如,身体特征跟踪器120)可以被配置为从传感器104接收身体特征跟踪数据140。然后身体特征跟踪器120可以被配置为确定、生成和/或建立身体特征信息144。例如,身体特征跟踪器120可以执行上面讨论的头部跟踪操作以确定、生成和/或建立头部位置、头部倾斜方向和/或头部轮廓位置。在一些其他实施例中,身体特征跟踪器120可以执行各种其他身体特征跟踪操作,以确定或生成各种其他身体特征信息144。一旦身体特征跟踪器120确定身体特征信息144,身体特征跟踪器120就可以将身体特征信息144提供给客户端用户设备202、远程用户设备204和/或服务器206的虚拟相机定位器124。
在一些实施例中,过程600可选地包括从用户接收输入(步骤608)。在一些实施例中,步骤608可以由客户端用户设备202或远程用户设备204的处理电路系统110执行。在一些实施例中,步骤608可以由客户端用户设备202和远程用户设备204的处理电路系统110执行(例如,从客户端用户设备202的用户和远程用户设备204的用户两者接收输入)。例如,处理电路系统110可以通过用户输入146从用户接收输入。如上所述,用户可以提供请求虚拟相机位置,包括虚拟相机的请求相机位置和请求角度取向(例如,关于显示器112的第一轴的第一请求虚拟相机角度和关于显示器112的第二轴的第二请求虚拟相机角度)。一旦用户提供请求虚拟相机位置,处理电路系统110就可以将请求虚拟相机位置提供给客户端用户设备202、远程用户设备204和/或服务器206的虚拟相机定位器124。
过程600还包括建立虚拟相机位置148(步骤610)。在一些实施例中,步骤610可以由客户端用户设备202、远程用户设备204或服务器206的处理电路系统110(例如,虚拟相机定位器124)单独地执行。在一些实施例中,步骤610可以使用客户端用户设备202、远程用户设备204和服务器206的处理电路系统110的任何组合来执行,使得步骤610可以以分布式方式执行。虚拟相机定位器124被配置为接收来自眼睛跟踪器116的注视信息(包括注视向量136和注视位置138)、来自身体特征跟踪器120的身体特征信息144和/或来自用户的输入,并且使用各种接收的数据来执行上面讨论的虚拟相机定位器操作,以建立虚拟相机位置148。处理电路系统110(例如,虚拟相机定位器124)可以通过多种方式建立虚拟相机位置148。
例如,在一些实施例中,在虚拟相机定位器124从眼睛跟踪器116接收注视信息的情况下,虚拟相机定位器124可以基于注视信息建立虚拟相机位置148。具体地,虚拟相机定位器124可以将虚拟相机位置设置为注视位置138(或注视位置402),设置与第一注视角度θ1相对应的第一虚拟相机角度,以及设置与第二注视角度θ2相对应的第二虚拟相机角度。因此,虚拟相机定位器124可以定位虚拟相机,使得虚拟相机直接设置在用户正在注视的地方,并且指向、朝向或面向用户的眼睛(或眼睛之间的位置)。在一些情况下,当用户看起来将目光从相机屏幕移开时,虚拟相机定位器124可以移动虚拟相机位置以对应于显示器112的最近的屏幕上位置。
在一些实施例中,在虚拟相机定位器124从身体特征跟踪器120接收身体特征信息144的情况下,虚拟相机定位器124可以基于身体特征信息建立虚拟相机位置148。例如,如果身体特征跟踪器120使用身体特征跟踪数据140(例如,头部或面部跟踪数据)确定估计的注视位置和估计的注视向量,则虚拟相机定位器124可以在身体特征信息144中接收估计的注视位置和估计的注视向量,并且可以基于估计的注视向量将虚拟相机位置设置为估计的注视位置以及第一虚拟相机角度和第二虚拟相机角度。例如,可以建立虚拟相机位置148,使得用户面部平面与虚拟相机和用户面部平面之间的光轴形成垂直角,其中光轴以用户面部为中心。因此,在一些情况下,虚拟相机定位器124可以基于在图像中检测到的各种身体特征来定位虚拟相机。因此,在一些实施例中,虚拟相机位置148可以基于非眼睛相关身体特征信息来建立。在一些实施例中,虚拟相机定位器124可以基于注视信息和身体特征信息144的组合来建立虚拟相机的位置。
在一些实施例中,在虚拟相机定位器124经由用户输入146从用户接收输入的情况下,虚拟相机定位器124可以基于所接收的输入来建立虚拟相机位置148。例如,如果用户提供请求虚拟相机位置,包括虚拟相机的请求相机位置和请求角度取向(例如,第一请求相机角度和第二请求相机角度),则虚拟相机位置148可以通过将虚拟相机位置设置为请求虚拟相机位置、并且将第一虚拟相机角度和第二虚拟相机角度分别设置为第一请求相机角度和第二请求相机角度来建立。
在一些情况下,远程用户设备204的用户(例如,接收用户)可以为客户端用户设备202的虚拟相机提供请求虚拟相机位置。在这些情况下,客户端用户设备202的用户(例如,发送用户)可以在客户端用户设备202的显示器112上接收提示,该提示询问是否允许接收用户设置或建立虚拟相机位置148。发送用户然后可以经由用户输入146指示是否允许接收用户设置或建立虚拟相机位置148。因此,在一些实施例中,虚拟相机定位器124可以基于由远程用户设备204的用户提供的请求虚拟相机位置,来建立客户端用户设备202的虚拟相机的虚拟相机位置148。类似地,在一些实施例中,虚拟相机定位器124可以基于由客户端用户设备202的用户提供的请求虚拟相机位置,来建立远程用户设备204的虚拟相机的虚拟相机位置148。
在一些情况下,用户可以提供请求相机位置和请求角度取向作为默认相机位置。例如,虚拟相机定位器124可以被配置为基于注视信息和/或身体特征信息144来动态地移动虚拟相机位置148,如以上讨论的,并且当用户将视线从屏幕移开或移出视场时,虚拟相机定位器124将虚拟相机移动到默认相机位置。在其他实施例中,虚拟相机定位器124可以基于注视信息、身体特征信息144和/或所接收的用户输入的组合来建立虚拟相机的位置。
在一些实施例中,虚拟相机定位器124可以将虚拟相机定位在预设或默认位置和取向。例如,在一些情况下,虚拟相机定位器124可以被预设或具有默认设置,以将虚拟相机定位在显示器112的中心,从显示器直接面向外。因此,在一些实施例中,虚拟相机定位器124可以通过将虚拟相机位置设置为(例如,发送用户的)显示器112的中心,并且设置第一虚拟相机角度和第二虚拟相机角度,使得虚拟相机的光轴垂直于显示器112来建立虚拟相机位置148。在一些情况下,用户可以经由用户输入146周期性地改变虚拟相机的预设或默认位置。
在前述配置中的任何一个配置中,虚拟相机定位器124可以在与多个传感器104中的任何一个传感器的位置不同的位置处建立虚拟相机位置148。因此,在一些实施例中,虚拟相机可以放置在不存在物理传感器或相机的位置处。
应当理解,虚拟相机定位器124可以在发送用户的用户计算设备(例如,客户端用户设备202)和接收用户的用户计算设备(例如,远程用户设备204)中采用。因此,每个用户计算设备可以具有虚拟相机,该虚拟相机由对应的虚拟相机定位器124分别基于发送用户和/或接收用户的注视信息和/或身体特征信息144而定位。无论如何,一旦虚拟相机定位器124已经建立虚拟相机位置148,处理电路系统110(例如,虚拟相机定位器124)可以将虚拟相机位置148提供给客户端用户设备202、远程用户设备204和/或服务器206的图像渲染器128。
过程600还包括渲染虚拟图像(步骤612)。在一些实施例中,步骤612可以由客户端用户设备202、远程用户设备204或服务器206的处理电路系统110(例如,图像渲染器128)单独地执行。在一些实施例中,步骤612可以使用客户端用户设备202、远程用户设备204和服务器206的处理电路系统110的任何组合来执行,使得步骤612可以以分布式方式执行。图像渲染器128被配置为接收来自多个传感器104的图像数据156和来自虚拟相机定位器124的虚拟相机位置148,并且基于虚拟相机位置148变形、扭曲和/或合并图像数据156,以从在虚拟相机位置148处的虚拟相机的角度或视点创建渲染图像。
具体地,在虚拟相机位置148处的虚拟相机的角度或视点可以是将被位于虚拟相机位置处的虚拟相机“捕获”并且从虚拟相机位置指向或朝向期望角度(例如,第一虚拟相机角度和第二虚拟相机角度)的视场。如本文所述,在一些实施例中,虚拟相机位置148可以连续更新,使得虚拟相机位置被设置为用户的注视位置,并且虚拟相机指向或朝向用户的(多只)眼睛的方向。以这种方式,虚拟相机可以是虚拟相机万向节或类似于虚拟相机万向节,该虚拟相机万向节被配置为提供用户总是(或几乎总是)看向虚拟相机的外观。对图像数据156的处理可以使用多种方法来实现。
例如,各种计算成像方法可以用于将两个或更多个相机角度投影到新的单个虚拟相机位置。这可以使用纯粹基于图像的技术或使用几何形状和/或深度的估计来进行。在某些情况下,可以使用“无模型”技术。即,图像数据156可以被合并而不对由传感器104捕获的场景做出任何假定。在一些其他实例中,可以使用关于场景的假定(例如,“基于模型的”技术)。例如,可以利用(多个)相机(例如,传感器104)正在注视人脸的知识来帮助处理各种图像数据156。这可以提供渲染图像152的改进质量。
当创建渲染图像152时,可以考虑给定应用的延迟和计算复杂性。例如,在30Hz帧速率下,在延迟超过100毫秒之前,典型的延迟容限可以是大约3帧,这可以被认为是很多应用可接受的最大延迟。一般而言,高质量图像可能会导致更多计算需求,并且在一些情况下会增加延迟。然而,高质量图像可以在不同用户之间提供改进的或简化的压缩。因此,可以基于如针对给定应用而确定的客户端用户设备的计算能力、成本限制、技术难度和市场可行性来使用不同技术。此外,在一些实施例中,可以使用渐进压缩来考虑使用不同解决方案(例如,所采用的图像处理技术)的不同用户。
在一些实施例中,可以使用基于图像的方法或技术来处理图像数据156,以创建渲染图像152。例如,可以应用单应(homographic)计算机视觉技术来关联来自各种传感器104的图像数据156,以基于哪个传感器104捕获图像数据156来关联图像数据156,并且将图像数据156映射在一起以合成图像数据156来生成渲染图像152。例如,在一些情况下,这可以使用同时定位和映射(SLAM)技术或算法来实现。此外,由内而外或由外而内的跟踪可以通过固定或跟踪提供给图像渲染器128的图像108内的各种特征的位置,来帮助融合提供给图像渲染器128的多个数据流。图像108因此可以被扭曲、变形和/或以其他方式合并到由图像渲染器128生成的渲染图像152中。在一些实施例中,图像渲染器128可以生成二维且高度可压缩的渲染图像152。
在一些实施例中,可以使用基于几何形状和/或基于深度的方法或技术来处理图像数据156,以创建渲染图像152。例如,可以使用由多个传感器104提供的深度信息重构被成像的场景的虚拟几何形状。通过从多个角度重构场景的虚拟几何形状,可以将虚拟几何形状重构组合成组合几何形状重构。从多个传感器提供的RGB(红色、绿色和蓝色)数据然后可以应用于组合几何形状重构。应用了RGB数据的重构(例如,彩色几何形状重构)可以被虚拟定向,以匹配虚拟相机的角度或视点,并且二维图像可以被生成(例如,通过在设置的取向上压缩三维模型)以创建渲染图像152。
在一些情况下,可以使用基于模型的方法来帮助处理图像数据156,以创建渲染图像152。在这些情况下,可以做出关于用户的几何形状的假定以帮助渲染图像152的渲染。在一些实施例中,请求代理几何形状或通用几何模型可以最初被应用或提供给图像渲染器128。例如,图像渲染器128可以从通用几何模型开始,并且随后可以更改或改变通用几何模型,以关联或对应于由多个传感器104提供的所接收的深度信息。因此,图像渲染器128不需要完全重构被成像的场景的几何形状,这可以减少相关联的计算负担。类似地,在一些实施例中,面部跟踪可以用于为上述基于图像的方法构建初始变形网格。
另外,如上所述,注视点渲染可以另外用于降低置于客户端计算设备上的计算负担。例如,当渲染渲染图像152时,图像渲染器128可以被配置为标识图像108的不在传感器104的预定距离内和/或不包含用户的区域(例如,非必要区域)。图像渲染器128然后可以被配置为在渲染图像152的非必要区域中自动模糊或提供较低质量的成像。因此,与在渲染图像152的非必要区域中渲染高质量图像相关联的计算负担可以减少。此外,图像渲染器128可以标识从多个传感器104提供的初始图像108中的非必要区域,并且可以在图像108扭曲、合并和/或变形成渲染图像152期间较少强调这些区域。因此,可以减少与对非必要区域进行扭曲、合并和/或变形相关联的计算负担。
还应当理解,在一些实施例中,上述各种方法以及各种其他成像技术可以彼此互换或组合使用,以根据给定应用或给定用户计算设备的需要来提供改进的图像质量和/或进一步降低客户端计算设备上的计算负担。此外,本文中描述的各种技术可以被选择性地或自动地校准,以减少图像误差和/或提高图像质量。例如,在一些情况下,可以在生成渲染图像152之前、期间或之后对图像108应用像差校正。
过程600还包括在显示器112上向用户提供或传输渲染图像152(步骤614)。在一些实施例中,步骤614可以由客户端用户设备202、远程用户设备204或服务器206的处理电路系统110单独地执行。在一些实施例中,步骤614可以使用客户端用户设备202、远程用户设备204和服务器206的处理电路系统110的任何组合来执行,使得步骤614可以以分布式方式执行。如上所述,处理电路系统110可通信地耦合到通信电路系统212。因此,一旦图像渲染器128生成渲染图像152,处理电路系统110被配置为经由网络208将渲染图像152传输(例如,使用通信电路系统212)到客户端用户设备202和/或远程用户设备204的显示器。
一旦过程600结束(例如,渲染图像152已经被传输到客户端用户设备202和/或远程用户设备204),过程600以获取传感器数据重新开始(步骤602)。因此,在一些实施例中,步骤602至步骤614中的每个可以连续地执行。因此,虚拟相机位置148可以响应于由多个传感器104捕获的图像的变化或响应于从用户接收的输入而被连续地更新。
服务器系统
本文中描述的各种操作可以在计算机系统上实现。图7示出了可用于实现本公开的代表性服务器系统700和客户端计算机系统714的框图。服务器系统700或类似系统可以实现本文中描述的服务或服务器或其部分。客户端计算机系统714或类似系统可以实现本文中描述的客户端。系统100、200和本文中描述的其他方法和过程中的每个可以结合系统700、714的特征。
服务器系统700可以具有结合多个模块702(例如,刀片服务器中的刀片)的模块化设计。虽然示出了两个模块702,但是可以提供任何数目的模块。每个模块702可以包括(多个)处理单元704和本地存储706。
(多个)处理单元704可以包括单个处理器,该单个处理器可以具有一个或多个核,或者(多个)处理单元704可以包括多个处理器。(多个)处理单元704可以包括通用主处理器以及一个或多个专用协处理器,诸如图形处理器、数字信号处理器等。一些或所有处理单元704可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。这样的集成电路执行存储在电路本身上的指令。(多个)处理单元704可以执行存储在本地存储706中的指令。(多个)处理单元704中可以包括任何组合的任何类型的处理器。
本地存储706可以包括易失性存储介质(例如,常规DRAM、SRAM、SDRAM等)和/或非易失性存储介质(例如,磁盘或光盘、闪存等)。根据需要,结合在本地存储装置706中的存储介质可以是固定的、可移动的或可升级的。本地存储装置706可以物理地或逻辑地划分为各种子单元,诸如系统存储器、只读存储器(ROM)和永久存储设备。系统存储器可以是读写存储器设备或易失性读写存储器,诸如动态随机存取存储器。系统存储器可以存储(多个)处理单元704运行时需要的一些或全部指令和数据。ROM可以存储(多个)处理单元704所需要的静态数据和指令。永久存储设备可以是即使在模块702断电时也可以存储指令和数据的非易失性读写存储器设备。本文中使用的术语“存储介质”包括可以无限期地存储数据的任何介质(遭受覆盖、电干扰、功率损失等),并且不包括无线地或通过有线连接而传播的载波和暂态电子信号。
本地存储706可以存储将由(多个)处理单元704执行的一个或多个软件程序,诸如操作系统和/或实现各种服务器功能的程序,诸如系统100、系统200、或本文中描述的任何其他系统、方法或过程、或者与系统100、系统200或本文中描述的任何其他系统、方法或过程相关联的(多个)任何其他服务器的功能。
“软件”通常是指指令序列,该指令序列在由(多个)处理单元704执行时引起服务器系统700(或其部分)执行各种操作,从而定义进行和执行软件程序的操作的一个或多个特定机器实现。指令可以存储为驻留在只读存储器中的固件和/或存储在非易失性存储介质中的程序代码,该固件和/或程序代码可以被读入易失性工作存储器,以供(多个)处理单元704执行。软件可以实现为根据需要进行交互的单个程序或独立程序或程序模块的集合。从本地存储706(或以下描述的非本地存储),(多个)处理单元704可以检索要执行的程序指令和要处理的数据,以便执行上述各种操作。
在一些服务器系统700中,多个模块702可以经由总线或其他互连708被互连,以形成支持模块702与服务器系统700的其他组件之间的通信的局域网。互连708可以使用各种技术来实现,包括服务器机架、集线器、路由器等。
广域网(WAN)接口710可以提供局域网(互连708)与更大网络(诸如互联网)之间的数据通信能力。可以使用常规或其他活动技术,包括有线(例如,以太网、IEEE 802.3标准)和/或无线技术(例如,Wi-Fi、IEEE 802.11标准)。
本地存储706可以为(多个)处理单元704提供工作存储器,以提供对要处理的程序和/或数据的快速访问,同时减少互连708上的业务。可以通过可以连接到互连708的一个或多个大容量存储子系统712在本地区域上提供用于更大量数据的存储。大容量存储子系统712可以基于磁、光、半导体或其他数据存储介质。可以使用直接附加存储、存储区域网络、网络附加存储等。本文中描述为由服务或服务器产生、消费或维护的任何数据存储或其他数据集合可以存储在大容量存储子系统712中。附加数据存储资源可以经由WAN接口710来访问(延迟可能增加)。
服务器系统700可以响应于经由WAN接口710接收的请求而操作。例如,模块702中的一个可以实现监督功能,并且响应于接收到的请求而将离散任务分配给其他模块702。可以使用传统的工作分配技术。随着请求被处理,结果可以经由WAN接口710被返回给请求者。这样的操作通常可以被自动化。WAN接口710可以将多个服务器系统700彼此连接,以提供能够管理大量活动的可扩展系统。可以使用用于管理服务器系统和服务器群(协作的服务器系统的集合)的常规或其他技术,包括动态资源分配和重新分配。
服务器系统700可以经由诸如互联网等广域网与各种用户拥有或用户操作的设备交互。用户操作的设备的示例在图7中示出为客户端计算系统714。例如,客户端计算系统714可以经由WAN接口710进行通信。客户端计算系统714可以包括传统的计算机组件,诸如(多个)处理单元716、存储718、网络接口720、用户输入设备722和用户输出设备724。
客户端计算系统714可以以各种形状因子来实现,例如消费设备,诸如智能电话、其他移动电话、平板电脑、可穿戴计算设备(例如,智能手表、眼镜)、台式电脑、笔记本电脑等。在一些情况下,客户端用户设备202和/或远程用户设备204可以部分地或全部地包括客户端计算系统714。
处理器716和存储718可以类似于上述的(多个)处理单元704和本地存储706。合适的设备可以基于要放置在客户端计算系统714上的需求来选择。例如,客户端计算系统714可以被实现为具有有限处理能力的“瘦(thin)”客户端、或高性能计算设备。客户端计算系统714可以配备有(多个)处理单元716可执行的程序代码,以实现与消息管理服务的服务器系统700的各种交互,诸如访问消息、对消息执行动作以及上述其他交互。一些客户端计算系统714还可以独立于消息管理服务与消息服务交互。
网络接口720可以提供到广域网(例如,互联网)的连接,服务器系统700的WAN接口710也连接到该广域网。网络接口720可以包括有线接口(例如,以太网)和/或无线接口,该接口实现各种RF数据通信标准,诸如Wi-Fi、蓝牙或蜂窝数据网络标准(例如,3G、4G、LTE等)。
用户输入设备722可以包括用户可以经由其向客户端计算系统714提供信号的任何设备(或多个设备)。客户端计算系统714可以将信号解释为指示特定用户请求或信息。用户输入设备722可以包括键盘、触摸板、触摸屏、鼠标或其他定点设备、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等中的任何一个或全部。
用户输出设备724可以包括客户端计算系统714可以经由其向用户提供信息的任何设备。例如,用户输出设备724可以包括用于显示由客户端计算系统714生成或传送到客户端计算系统714的图像的显示器。显示器可以结合各种图像生成技术,例如液晶显示器(LCD)、发光二极管(LED)(包括有机发光二极管(OLED))、投影系统、阴极射线管(CRT)等、以及支持电子器件(例如,数模或模数转换器、信号处理器等)。可以使用同时用作输入和输出设备的设备,诸如触摸屏。除了或代替显示器,可以提供输出设备724。示例包括指示灯、扬声器、触觉“显示”设备、打印机等。
示例性实施例的配置
现在已经描述了一些说明性实现,很明显,前述内容是说明性的而非限制性的,已经通过示例的方式呈现。特别地,虽然本文中呈现的很多示例涉及方法动作或系统元素的特定组合,但是这些动作和这些元素可以以其他方式组合以实现相同目标。结合一种实现讨论的动作、元素和特征不旨在被排除在其他实现中的类似角色之外。
用于实现结合本文中公开的实施例而描述的各种过程、操作、说明性逻辑、逻辑块、模块和电路的硬件和数据处理组件可以利用被设计为执行本文中描述的功能的通用单芯片或多芯片处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,或者是任何传统的处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核结合、或者任何其他这样的配置。在一些实施例中,特定过程和方法可以由特定于给定功能的电路系统来执行。存储器(例如,存储器、存储器单元、存储设备等)可以包括用于存储用于完成或促进本公开中描述的各种过程、层和模块的数据和/或计算机代码的一个或多个设备(例如,RAM、ROM、闪存、硬盘存储等)。存储器可以是或包括易失性存储器或非易失性存储器,并且可以包括数据库组件、目标代码组件、脚本组件、或用于支持本公开中描述的各种活动和信息结构的任何其他类型的信息结构。根据示例性实施例,存储器经由处理电路可通信地连接到处理器,并且包括用于执行(例如,通过处理电路系统和/或处理器)本文中描述的一个或多个过程的计算机代码。
本公开考虑在任何机器可读介质上的用于完成各种操作的方法、系统和程序产品。本公开的实施例可以使用现有计算机处理器来实现,或者通过用于适当系统的专用计算机处理器(针对这个或另一目的而结合)来实现,或者通过硬连线系统来实现。在本公开的范围内的实施例包括程序产品,该程序产品包括用于承载或具有存储在其上的机器可执行指令或数据结构的机器可读介质。这样的机器可读介质可以是可以由通用或专用计算机或具有处理器的其他机器访问的任何可用介质。例如,这样的机器可读介质可以包括RAM、ROM、EPROM、EEPROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可以用于以机器可执行指令或数据结构的形式承载或存储期望程序代码、并且可以由通用或专用计算机或具有处理器的其他机器访问的任何其他介质。上述各项的组合也被包括在机器可读介质的范围内。机器可执行指令包括例如引起通用计算机、专用计算机或专用处理机器执行特定功能或功能组的指令和数据。
本文中使用的措辞和术语是出于描述的目的,而不应当被视为限制。本文中对“包括(including)”“包括(comprising)”“具有(having)”“包含(containing)”“涉及(involving)”“其特征在于(characterized by)”“其特征在于(characterized in that)”及其变体的使用意在包括其后列出的项目、其等价物和附加项目、以及由仅其后列出的项目组成的替代实现。在一种实现中,本文中描述的系统和方法由以上描述的元素、动作或组件中的一项、一项以上的每个组合或全部组成。
对本文中以单数形式提及的系统和方法的实现或元素或动作的任何引用也可以包含包括多个这些元素的实现,并且对本文中的任何实现或元素或动作的任何复数引用也可以包含只包括一个元素的实现。单数或复数形式的引用并不旨在将当前公开的系统或方法、其组件、动作或元素限制为单个或多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括动作或元素至少部分基于任何信息、动作或元素的实现。
本文中公开的任何实现可以与任何其他实现或实施例组合,并且对“实现”、“一些实现”、“一种实现”等的引用不一定是相互排斥的,并且旨在指示结合该实现描述的特定的特征、结构或特性可以被包括在至少一种实现或实施例中。本文中使用的这样的术语不一定都指代相同的实现。任何实现可以以与本文中公开的方面和实现一致的任何方式与任何其他实现结合(包括性或排他性地)。
在附图、具体实施方式或任何权利要求中的技术特征后跟随有附图标记的情况下,包括附图标记以增加附图、具体实施方式和权利要求的可理解性。因此,附图标记或不具有附图标记对任何权利要求元素的范围均没有任何限制作用。
本文中描述的系统和方法可以在不脱离其特性的情况下以其他特定形式体现。另外的相对平行、垂直、竖直或其他定位或定向描述包括在纯竖直、平行或垂直定位的+/-10%或+/-10度内的变化。除非另有明确说明,否则对“大约”、“约”、“基本上”或其他程度术语的引用包括与给定测量值、单位或范围的+/-10%内的变化。耦合元素可以彼此直接或通过中间元素电耦合、机械耦合或物理耦合。本文中描述的系统和方法的范围因此由所附权利要求而不是前述描述来指示,并且在权利要求的等效含义和范围内的变化被包含在其中。
术语“耦合”及其变体包括两个成员直接或间接地彼此连接。这样的接合可以是固定的(例如,永久的或固定的)或可移动的(例如,可移除的或可释放的)。这样的接合可以通过直接相互耦合的两个构件来实现、通过使用单独的中间构件和彼此耦合的任何附加中间构件而彼此耦合的两个构件来实现、或者通过使用与两个构件中的一个一体形成为单一整体的中间构件而彼此耦合的两个构件来实现。如果“耦合”或其变体被附加术语修饰(例如,直接耦合),则上面提供的“耦合”的一般定义由附加术语的明语含义修饰(例如,“直接耦合”表示两个构件接合而没有任何单独的中间构件),以得到比上面提供的“耦合”的一般定义更窄的定义。这样的耦合可以是机械的、电的或流体的。
对“或”的引用可以被解释为包括性的,因此使用“或”描述的任何术语都可以表示所描述的术语中的单个、多个和全部中的任何一种。对“‘A’和‘B’中的至少一个”的引用可以仅包括‘A’、仅‘B’、以及‘A’和‘B’。与“包括”或其他开放术语结合使用的这样的引用可以包括附加项目。
所描述的元件和动作的修改(诸如各种元件的大小、尺寸、结构、形状和比例、参数值、安装布置、材料的使用、颜色、取向的变化)可以发生,而不会实质上脱离本文中公开的主题的教导和优点。例如,示出为整体形成的元件可以由多个部分或元件构成,元件的位置可以颠倒或以其他方式改变,并且离散元件或位置的性质或数目可以改变或变化。在不脱离本公开的范围的情况下,还可以对所公开的元件和操作的设计、操作条件和布置进行其他替换、修改、改变和省略。
本文中对元素位置的引用(例如,“顶部”、“底部”、“上方”、“下方”)仅用于描述图中各种元素的取向。各种元件的取向可以根据其他示例性实施例而不同,并且这样的变化旨在被本公开所涵盖。

Claims (15)

1.一种用于使用虚拟相机位置向一个设备显示来自与多个相机相关联的另一设备的图像数据的方法,所述方法包括:
从与第二用户设备相关联的多个相机接收图像数据,所述第二用户设备与第二用户相关联;
建立与所述多个相机的位置不同的虚拟相机位置;
至少基于所述虚拟相机位置的视点,在第一用户设备的第一用户显示器上使用所述图像数据提供图像。
2.根据权利要求1所述的方法,还包括:
接收与所述第二用户的至少一个身体部位相关联的位置数据;以及
建立相对于所述位置数据的所述虚拟相机位置的所述视点。
3.根据权利要求2所述的方法,其中所述位置数据包括指示所述第二用户的注视方向的眼睛跟踪数据。
4.根据权利要求3所述的方法,还包括:
基于所述眼睛跟踪数据确定所述第二用户的注视向量,所述注视向量包括注视位置、第一注视角度和第二注视角度;并且
其中所述虚拟相机位置通过将所述虚拟相机位置设置为对应于所述注视位置来确定,以及
第一虚拟相机角度至少基于所述第一注视角度被设置,并且第二虚拟相机角度至少基于所述第二注视角度被设置;
在这种情况下,可选地,其中所述虚拟相机位置通过以下方式中的一种来确定:连续地确定,或者响应于由所述多个相机捕获的图像的变化来确定。
5.根据权利要求1所述的方法,其中所述视点使用所述虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来确定,所述第一轴垂直于所述第二轴;在这种情况下,可选地,所述方法还包括:
从所述第二用户接收请求虚拟相机位置,所述请求虚拟相机位置包括请求相机位置、第一请求相机角度和第二请求相机角度;并且
其中所述虚拟相机位置设置为所述请求相机位置、所述第一虚拟相机角度设置为所述第一请求相机角度、并且所述第二虚拟相机角度设置为所述第二请求相机角度。
6.根据权利要求5所述的方法,其中所述请求虚拟相机位置能够由所述第二用户选择性地移动。
7.根据权利要求1所述的方法,其中所述虚拟相机位置的所述视点关于所述第二用户设备的第二用户显示器的表面处于非垂直角度。
8.一种系统,包括:
接收用户设备,与接收用户相关联并且具有接收用户显示器;
发送用户设备,与发送用户相关联并且经由网络与所述接收用户设备通信,所述发送用户设备具有发送用户显示器、多个传感器和处理电路系统,所述处理电路系统被配置为:
从所述多个传感器接收图像数据;
建立与所述多个传感器的位置不同的虚拟相机的位置;
至少基于所述图像数据和所述虚拟相机的所述位置渲染图像;以及
经由所述网络向所述接收用户设备传输所述图像,以在所述接收用户显示器上显示。
9.根据权利要求8所述的系统,其中所述处理电路系统还被配置为:组合从所述多个传感器接收的所述图像数据,以从所述虚拟相机的视点渲染所述图像。
10.根据权利要求8所述的系统,其中所述处理电路系统还被配置为:通过设置虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来定位所述虚拟相机,其中所述第一轴垂直于所述第二轴。
11.根据权利要求10所述的系统,其中所述处理电路系统还被配置为:
从所述多个传感器中的至少一个传感器接收指示所述发送用户的注视方向的眼睛跟踪数据;并且
其中定位所述虚拟相机至少部分基于所述眼睛跟踪数据。
12.根据权利要求11所述的系统,其中所述处理电路系统还被配置为:
基于所述眼睛跟踪数据确定所述发送用户的注视位置;
基于所述眼睛跟踪数据确定所述发送用户的注视向量,所述注视向量包括第一注视角度和第二注视角度;以及
通过以下来定位所述虚拟相机:将所述虚拟相机位置设置为在所述注视位置处或最接近所述注视位置、至少基于所述第一注视角度设置所述第一虚拟相机角度、以及至少基于所述第二注视角度设置所述第二虚拟相机角度。
13.根据权利要求12所述的系统,其中所述处理电路系统还被配置为:
从所述发送用户接收请求虚拟相机位置,所述请求虚拟相机位置包括请求相机位置、第一请求相机角度和第二请求相机角度;以及
通过以下来定位所述虚拟相机:将所述虚拟相机位置设置为所述请求相机位置、将所述第一虚拟相机角度设置为所述第一请求相机角度、以及将所述第二虚拟相机角度设置为所述第二请求相机角度。
14.一种与用户相关联的视频通信设备,包括:
多个传感器;
显示器,布置在所述多个传感器中的至少两个传感器之间;
处理电路系统,与网络通信,所述处理电路系统被配置为:
从所述多个传感器接收图像数据;
建立与所述多个传感器的位置不同的虚拟相机的位置;以及
基于所述图像数据和所述虚拟相机的所述位置渲染图像;
通信电路系统,被配置为经由网络向接收用户设备传输所述图像。
15.根据权利要求14所述的视频通信设备,以及以下任一项:
a)其中所述处理电路系统还被配置为:通过组合从所述多个传感器接收的所述图像数据以从所述虚拟相机的视点产生所述图像来渲染所述图像;或者
b)其中所述处理电路系统还被配置为:通过设置虚拟相机位置、关于第一轴的第一虚拟相机角度和关于第二轴的第二虚拟相机角度来定位所述虚拟相机,其中所述第一轴垂直于所述第二轴;在这种情况下,可选地,以下任一项:
i)其中所述处理电路系统还被配置为:
从所述多个传感器中的至少一个传感器接收眼睛跟踪,所述眼睛跟踪数据指示所述用户的注视方向;
基于所述眼睛跟踪数据确定所述用户的注视位置;
基于所述眼睛跟踪数据确定所述用户的注视向量,所述注视向量包括关于所述第一轴的第一注视角度和关于所述第二轴的第二注视角度;以及
通过以下来定位所述虚拟相机:将所述显示器上的所述虚拟相机位置设置为在所述注视位置处或最接近所述注视位置、基于所述第一注视角度设置所述第一虚拟相机角度、以及基于所述第二注视角度设置所述第二虚拟相机角度;或者
ii)其中所述处理电路系统还被配置为:
从所述用户接收请求虚拟相机位置,所述请求虚拟相机位置包括请求相机位置、关于所述第一轴的第一请求相机角度和关于所述第二轴的第二请求相机角度;以及
通过以下来定位所述虚拟相机:将所述虚拟相机位置设置为所述请求相机位置、将所述第一虚拟相机角度设置为所述第一请求相机角度、以及将所述第二虚拟相机角度设置为所述第二请求相机角度。
CN202080057666.4A 2019-10-03 2020-09-18 用于使用虚拟相机进行视频通信的系统和方法 Pending CN114223195A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962910021P 2019-10-03 2019-10-03
US62/910,021 2019-10-03
US16/702,111 US11410331B2 (en) 2019-10-03 2019-12-03 Systems and methods for video communication using a virtual camera
US16/702,111 2019-12-03
PCT/US2020/051340 WO2021067044A1 (en) 2019-10-03 2020-09-18 Systems and methods for video communication using a virtual camera

Publications (1)

Publication Number Publication Date
CN114223195A true CN114223195A (zh) 2022-03-22

Family

ID=75274261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080057666.4A Pending CN114223195A (zh) 2019-10-03 2020-09-18 用于使用虚拟相机进行视频通信的系统和方法

Country Status (6)

Country Link
US (2) US11410331B2 (zh)
EP (1) EP4038478A1 (zh)
JP (1) JP2022550501A (zh)
KR (1) KR20220080125A (zh)
CN (1) CN114223195A (zh)
WO (1) WO2021067044A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11410331B2 (en) * 2019-10-03 2022-08-09 Facebook Technologies, Llc Systems and methods for video communication using a virtual camera
US11783444B1 (en) * 2019-11-14 2023-10-10 Apple Inc. Warping an input image based on depth and offset information
JP7316664B2 (ja) * 2020-02-03 2023-07-28 マルコムホールディングス株式会社 対話ユーザの感情情報の提供装置
US11451746B1 (en) * 2020-03-26 2022-09-20 Amazon Technologies, Inc. Image and audio data processing to create mutual presence in a video conference
US11790535B2 (en) 2020-05-12 2023-10-17 True Meeting Inc. Foreground and background segmentation related to a virtual three-dimensional (3D) video conference
US20220053168A1 (en) 2020-05-12 2022-02-17 True Meeting Inc. Method and system for virtual 3d communications having multiple participants per camera
US11870939B2 (en) 2020-05-12 2024-01-09 True Meeting Inc. Audio quality improvement related to a participant of a virtual three dimensional (3D) video conference
US11805157B2 (en) 2020-05-12 2023-10-31 True Meeting Inc. Sharing content during a virtual 3D video conference
US20210358227A1 (en) 2020-05-12 2021-11-18 True Meeting Inc. Updating 3d models of persons
US11818373B1 (en) * 2020-09-08 2023-11-14 Block, Inc. Machine-learning based data compression for streaming media
US20220201271A1 (en) * 2020-12-23 2022-06-23 Facebook Technologies, Llc Temporal foveated rendering
US11765332B2 (en) 2021-03-02 2023-09-19 True Meeting Inc. Virtual 3D communications with participant viewpoint adjustment
WO2021207747A2 (en) * 2021-08-10 2021-10-14 Futurewei Technologies, Inc. System and method for 3d depth perception enhancement for interactive video conferencing
CN115834813A (zh) * 2021-09-15 2023-03-21 中兴通讯股份有限公司 终端设备、视频通话的方法
US20230254437A1 (en) * 2022-02-07 2023-08-10 Samsung Electronics Co., Ltd. Perspective de-skewing of electronic images
US11889178B2 (en) * 2022-02-28 2024-01-30 Motorola Mobility Llc Electronic device with automatic eye gaze tracking and camera adjustment
GB2619043A (en) * 2022-05-25 2023-11-29 Sony Interactive Entertainment Inc Wearable data processing apparatus, system and method
US12022182B2 (en) 2022-05-26 2024-06-25 Motorola Mobility Llc Visual feature based video effects

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014055058A1 (en) * 2012-02-15 2014-04-10 Thomson Licensing Video conference system and method for maintaining participant eye contact
US20140098179A1 (en) * 2012-10-04 2014-04-10 Mcci Corporation Video conferencing enhanced with 3-d perspective control
CN104025572A (zh) * 2011-09-23 2014-09-03 刁杰 在虚拟会议中传达注视信息
CN104685858A (zh) * 2012-09-28 2015-06-03 阿尔卡特朗讯 沉浸式视频会议方法和系统
WO2017030985A1 (en) * 2015-08-14 2017-02-23 Pcms Holdings, Inc. System and method for augmented reality multi-view telepresence
CN108604116A (zh) * 2015-09-24 2018-09-28 托比股份公司 能够进行眼睛追踪的可穿戴设备
US20190043245A1 (en) * 2016-02-17 2019-02-07 Sony Corporation Information processing apparatus, information processing system, information processing method, and program

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6753900B2 (en) * 2002-05-07 2004-06-22 Avaya Techology Corp. Method and apparatus for overcoming the limitations of camera angle in video conferencing applications
US8320623B2 (en) 2009-06-17 2012-11-27 Lc Technologies, Inc. Systems and methods for 3-D target location
WO2013079607A1 (en) * 2011-11-30 2013-06-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. View rendering for the provision of virtual eye contact using special geometric constraints in combination with eye-tracking
WO2016014233A1 (en) * 2014-07-25 2016-01-28 mindHIVE Inc. Real-time immersive mediated reality experiences
WO2016154123A2 (en) * 2015-03-21 2016-09-29 Mine One Gmbh Virtual 3d methods, systems and software
US20230122149A1 (en) * 2015-03-21 2023-04-20 Mine One Gmbh Asymmetric communication system with viewer position indications
GB201507210D0 (en) * 2015-04-28 2015-06-10 Microsoft Technology Licensing Llc Eye gaze correction
KR102625773B1 (ko) * 2017-01-04 2024-01-17 삼성전자주식회사 뷰 벡터별 다른 렌더링 품질을 갖는 영상을 생성하는 전자 장치
WO2018225518A1 (ja) * 2017-06-07 2018-12-13 ソニー株式会社 画像処理装置、画像処理方法、プログラム、およびテレコミュニケーションシステム
US10554921B1 (en) * 2018-08-06 2020-02-04 Microsoft Technology Licensing, Llc Gaze-correct video conferencing systems and methods
US11410331B2 (en) * 2019-10-03 2022-08-09 Facebook Technologies, Llc Systems and methods for video communication using a virtual camera

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025572A (zh) * 2011-09-23 2014-09-03 刁杰 在虚拟会议中传达注视信息
WO2014055058A1 (en) * 2012-02-15 2014-04-10 Thomson Licensing Video conference system and method for maintaining participant eye contact
CN104685858A (zh) * 2012-09-28 2015-06-03 阿尔卡特朗讯 沉浸式视频会议方法和系统
US20140098179A1 (en) * 2012-10-04 2014-04-10 Mcci Corporation Video conferencing enhanced with 3-d perspective control
WO2017030985A1 (en) * 2015-08-14 2017-02-23 Pcms Holdings, Inc. System and method for augmented reality multi-view telepresence
CN108604116A (zh) * 2015-09-24 2018-09-28 托比股份公司 能够进行眼睛追踪的可穿戴设备
US20190043245A1 (en) * 2016-02-17 2019-02-07 Sony Corporation Information processing apparatus, information processing system, information processing method, and program

Also Published As

Publication number Publication date
US11410331B2 (en) 2022-08-09
EP4038478A1 (en) 2022-08-10
KR20220080125A (ko) 2022-06-14
JP2022550501A (ja) 2022-12-02
US20210104063A1 (en) 2021-04-08
WO2021067044A1 (en) 2021-04-08
US20220375124A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
US11410331B2 (en) Systems and methods for video communication using a virtual camera
US11838518B2 (en) Reprojecting holographic video to enhance streaming bandwidth/quality
US11315328B2 (en) Systems and methods of rendering real world objects using depth information
US11842434B2 (en) Dynamic tiling for foveated rendering
KR102358932B1 (ko) 시선 위치에 기초한 안정 평면 결정
US11809617B2 (en) Systems and methods for generating dynamic obstacle collision warnings based on detecting poses of users
US11663689B2 (en) Foveated rendering using eye motion
JP7101269B2 (ja) ポーズ補正
IL288336B1 (en) Techniques for setting a camera focus in a mixed reality environment with hand pose interaction
US11431955B1 (en) Systems and methods for temporal anti-aliasing
US10482671B2 (en) System and method of providing a virtual environment
JP2023549657A (ja) 複数の視点から撮像された立体レンダリング画像データを表示するための3dビデオ会議システムおよび方法
CN114581514A (zh) 一种双眼注视点的确定方法和电子设备
US10572761B1 (en) Virtual reality system using super-resolution

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC