CN116897375B - 扩展现实环境中的图像捕获 - Google Patents
扩展现实环境中的图像捕获 Download PDFInfo
- Publication number
- CN116897375B CN116897375B CN202280013597.6A CN202280013597A CN116897375B CN 116897375 B CN116897375 B CN 116897375B CN 202280013597 A CN202280013597 A CN 202280013597A CN 116897375 B CN116897375 B CN 116897375B
- Authority
- CN
- China
- Prior art keywords
- user
- frames
- real
- world environment
- digital avatar
- 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.)
- Active
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 claims abstract description 197
- 238000010801 machine learning Methods 0.000 claims description 106
- 230000015654 memory Effects 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 15
- 230000014509 gene expression Effects 0.000 claims description 13
- 230000033001 locomotion Effects 0.000 claims description 8
- 230000003068 static effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 79
- 238000013528 artificial neural network Methods 0.000 description 34
- 238000011176 pooling Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 27
- 239000000203 mixture Substances 0.000 description 26
- 230000004913 activation Effects 0.000 description 22
- 238000001994 activation Methods 0.000 description 22
- 230000000977 initiatory effect Effects 0.000 description 20
- 238000009877 rendering Methods 0.000 description 19
- 230000011664 signaling Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 13
- 239000013598 vector Substances 0.000 description 11
- 239000011521 glass Substances 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 238000005259 measurement Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 10
- 230000005291 magnetic effect Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 210000003128 head Anatomy 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008921 facial expression Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000004873 anchoring Methods 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000289581 Macropus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/64—Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2621—Cameras specially adapted for the electronic generation of special effects during image pickup, e.g. digital cameras, camcorders, video cameras having integrated special effects capability
Abstract
提供了用于在扩展现实环境中捕获自我图像的技术和系统。在某些示例中,系统捕获扩展现实系统的用户的姿势。用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置。系统还生成用户的数字表示。用户的数字表示反映了用户的姿势。系统还捕获现实世界环境的一个或多个帧,并且将用户的数字表示叠加到现实世界环境的一个或多个帧上。
Description
技术领域
本公开总体上涉及用于在扩展现实环境中捕获图像(诸如自我图像或“自拍”)的技术和系统。
背景技术
扩展现实技术可用于向用户呈现虚拟内容,和/或可将来自物理世界的现实环境和虚拟环境结合起来,为用户提供扩展现实体验。术语扩展现实可以涵盖虚拟现实、增强现实、混合现实等。扩展现实系统可以允许用户通过将虚拟内容叠加到现实世界环境的图像上来体验扩展现实环境,用户可以通过扩展现实设备(例如,头戴式显示器、扩展现实眼镜或其他设备)观看扩展现实环境。现实世界环境可以包括物理对象、人物或其他现实世界对象。XR技术可以在各种应用和领域中实施,包括娱乐(例如游戏)、电话会议和教育等应用和领域。目前,正在开发XR系统,以使用户能够捕获自己的照片或视频(例如,“自拍”)。
某些类型的设备(诸如手机和平板电脑)配备了让用户捕获自己图像的机制。然而,对于XR系统而言,自我图像捕获可能具有挑战性。例如,戴在头上的XR设备(例如,头戴式显示器、XR眼镜和其他设备)通常包括被配置为捕获现实世界环境的场景的摄像头。这些摄像头定位在面向外部的方向(例如,远离用户),因此,摄像头无法捕获用户的图像。此外,位于XR设备内部的摄像头(例如,内置摄像头)可能无法捕获到超出用户面部或头部的一小部分。已经开发了一些XR系统来促进自我图像捕获。这些XR系统可以将用户的化身(avatar)叠加到现实世界环境的图像和/或视频上。然而,这些化身可能具有有限的姿势和/或表情。此外,可能需要用户在图像和/或视频中手动定位化身。因此,需要用于自我图像捕获的改进的XR系统。
发明内容
本文描述的系统和技术可以被实施以在扩展现实环境中捕获自我图像。根据至少一个示例,提供了用于在扩展现实环境中捕获自我图像的装置。示例装置可以包括存储器(或多个存储器)和耦合到存储器(或多个存储器)的一个处理器或多个处理器(例如,在电路中实施)。处理器(或多个处理器)被配置为:捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;生成用户的数字表示,用户的数字表示反应用户的姿势;捕获现实世界环境的一个或多个帧;以及将用户的数字表示叠加到现实世界环境的一个或多个帧上。
另一个示例装置可以包括:用于捕获扩展现实系统的用户的姿势的部件,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;用于生成用户的数字表示的部件,用户的数字表示反应用户的姿势;用于捕获现实世界环境的一个或多个帧的部件;以及用于将用户的数字表示叠加到现实世界环境的一个或多个帧上的部件。
在另一个示例中,提供了用于在扩展现实环境中捕获自我图像的方法。示例方法可以包括捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置。方法也可以包括生成用户的数字表示,用户的数字表示反映了用户的姿势。方法可以包括捕获现实世界环境的一个或多个帧。方法还可以包括将用户的数字表示叠加到现实世界环境的一个或多个帧上。
在某些方面,方法可以由扩展现实系统执行。在类似的方面,方法可以包括:由扩展现实系统捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;由扩展现实系统生成用户的数字表示,用户的数字表示反应用户的姿势;由扩展现实系统捕获现实世界环境的一个或多个帧;以及由扩展现实系统将用户的数字表示叠加到现实世界环境的一个或多个帧上并且使用扩展现实系统向用户呈现。
在另一个示例中,提供了用于在扩展现实环境中捕获自我图像的非暂时性计算机可读介质。一种示例非暂时性计算机可读存储介质可以存储指令,在由一个或多个处理器执行时,指令使一个或多个处理器:捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;生成用户的数字表示,用户的数字表示反应用户的姿势;捕获现实世界环境的一个或多个帧;以及将用户的数字表示叠加到现实世界环境的一个或多个帧上。
在某些方面,将用户的数字表示叠加到现实世界环境的一个或多个帧上可以包括将用户的数字表示叠加在对应于用户在现实世界环境内的位置的帧位置中。
在某些方面,生成用户的数字表示可以在捕获现实世界环境的一个或多个帧之前执行。在某些示例中,如上所述的方法、装置和计算机可读介质可以包括在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中通过显示器,现实世界环境是可见的。在一个示例中,如上所述的方法、装置和计算机可读介质可以包括:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获现实世界环境的一个或多个帧的指令的用户输入;以及基于用户输入捕获现实世界环境的一个或多个帧。
在某些方面,捕获现实世界环境的一个或多个帧可以在捕获用户的姿势之前执行。在某些示例中,如上所述的方法、装置和计算机可读介质可以包括在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中现实世界环境的一个或多个帧在显示器上显示。在一个示例中,如上所述的方法、装置和计算机可读介质可以包括基于检测到用户在现实世界环境内的位置的变化来更新用户的数字表示的显示位置。在另一个示例中,如上所述的方法、装置和计算机可读介质可以包括:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获用户的姿势的指令的用户输入;以及基于用户输入捕获用户的姿势。
在某些方面,第一数字表示基于第一机器学习算法,并且用户的第二数字表示基于第二机器学习算法。例如,生成用户的数字表示可以包括:基于第一机器学习算法生成用户的第一数字表示;以及基于第二机器学习算法获得用户的第二数字表示。在某些方面,与用户的第一数字表示相比,用户的第二数字表示可以是用户的更高保真度的数字表示。例如,在某些示例中,如上所述的方法、装置和计算机可读介质可以包括:生成用户的、具有第一保真度的第一数字表示;以及获得用户的、具有第二保真度的第二数字表示,其中第二保真度高于第一保真度。在某些示例中,如上所述的方法、装置和计算机可读介质可以包括:在捕获用户的姿势之前,在扩展现实系统的显示器内(例如,使用用户的当前姿势)显示用户的第一数字表示;基于正被捕获的用户的姿势生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。在其他的示例中,如上所述的方法、装置和计算机可读介质可以包括:在捕获现实世界环境的一个或多个帧之前,在扩展现实系统的显示器内(例如,使用用户的捕获的姿势)显示用户的第一数字表示;基于正被捕获的现实世界环境的一个或多个帧生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。在某些方面中,生成用户的第一数字表示可以包括在扩展现实系统上实施第一机器学习算法。在某些示例中,获得用户的第二数字表示可以包括使被配置为生成用户的数字表示的服务器基于实施第二机器学习算法来生成用户的第二数字表示。
在某些方面,如上所述的方法、装置和计算机可读介质可以包括:在现实世界环境中捕获人物的姿势;生成人物的数字表示,人物的数字表示反映了人物的姿势;以及将用户的数字表示和人物的数字表示叠加到现实世界环境的一个或多个帧上。在某些示例中,可以至少部分地基于与人物的数字表示相关联的信息来生成人物的数字表示,其中人物的数字表示是从人物的扩展现实系统接收到的。在某些方面,与人物的数字表示相关联的信息可以包括被训练以生成人物的数字表示的机器学习模型。
在某些方面,如上所述的方法、装置和计算机可读介质可以包括:捕获用户的、与多个帧相关联的多个姿势;生成用户的、对应于多个帧的多个数字表示;以及将用户的多个数字表示叠加到现实世界环境的一个或多个帧上,现实世界环境的一个或多个帧包括现实世界环境的多个帧。
在某些方面,如上所述的方法、装置和计算机可读介质可以包括:使用第一机器学习算法生成用户的数字表示;以及使用第二机器学习算法将用户的数字表示叠加到现实世界环境的一个或多个帧上。
在某些方面,捕获用户的姿势可以包括使用扩展现实系统的内置摄像头系统捕获图像数据。在某些示例中,捕获用户的姿势可以包括确定用户的表情。在其他示例中,捕获用户的姿势可以包括确定用户的手势。
在某些方面,如上所述的方法、装置和计算机可读介质可以包括:至少部分地基于生成现实世界环境的三维地图来确定用户在现实世界环境内的位置。
在某些方面,捕获现实世界环境的一个或多个帧可以包括使用扩展现实系统的外置摄像头系统捕获图像数据。
在某些方面,上述每个装置是或包括摄像头、移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、智能可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机、车辆(例如,自动驾驶车辆)或其他设备。在某些方面,装置包括用于捕获一个或多个视频和/或图像的一个或多个摄像头。在某些方面,装置还包括用于显示一个或多个视频和/或图像的显示器。在某些方面,上述装置可以包括一个或多个传感器。
本概述不旨在识别所要求保护的主题的关键或基本特征,也不旨在孤立地用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解主题。
在参考以下说明书、权利要求和附图时,前述内容以及其他特征和示例将变得更加明显。
附图说明
下面结合以下附图对本申请的示例性示例进行详细描述:
图1A、图1B、图1C和图1D是根据一些示例由扩展现实系统生成的示例化身的图示;
图2是示出根据某些示例的扩展现实系统的示例架构的框图;
图3A和图3B是根据某些示例的用于在扩展现实环境中进行自我图像捕获的示例系统的框图;
图4A、图4B、图4C、图4D、图4E和图4F是根据某些示例的由用于在扩展现实环境中进行自我图像捕获的系统生成的示例自我图像的图示;
图5A和图5B是示出在扩展现实环境中进行自我视频捕获的过程的示例的流程图;
图6A和图6B是示出在扩展现实环境中进行多用户自我图像捕获的过程的示例的流程图;
图6C是根据某些示例的用于在扩展现实环境中进行多用户自我图像捕获的系统的示例的框图;
图7是根据某些示例的用于在扩展现实环境中进行自我图像捕获的过程的流程图;
图8是示出根据某些示例的深度学习神经网络的示例的图;
图9是示出根据某些示例的卷积神经网络的示例的图;
图10是示出用于实施本文描述的某些方面的系统的示例的图。
具体实施方式
下面提供了本公开的某些方面和示例。这些方面和示例中的一些可以独立应用,并且它们中的一些可以组合应用,这对于本领域技术人员来说是显而易见的。在以下描述中,出于说明的目的,阐述了具体细节以便提供对本申请主题的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践各种示例。附图和描述并非旨在限制。
随后的描述仅提供说明性示例,并不旨在限制本公开的范围、适用性或配置。相反,随后的描述将为本领域技术人员提供用于实施说明性示例的有效描述。应当理解,在不脱离所附权利要求中所阐述的本申请的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
如上所述,扩展现实(XR)技术可用于向用户呈现虚拟内容,和/或可将来自物理世界的现实环境和虚拟环境结合起来,为用户提供扩展现实体验。术语扩展现实可以涵盖虚拟现实(VR)、增强现实(AR)、混合现实(MR)等。XR系统可以允许用户通过将虚拟内容叠加到现实世界环境的图像上来体验扩展现实环境,用户可以通过扩展现实设备(例如,头戴式显示器、扩展现实眼镜或其他设备)观看扩展现实环境。现实世界环境可以包括物理对象、人物或其他现实世界对象。XR技术可以在各种应用和领域中实施,包括娱乐(例如游戏)、房间设计和/或虚拟购物、食品/健康监测、视频通话、电话会议和教育等应用和领域。
某些类型的设备(诸如手机和平板电脑)配备了让用户捕获自己图像(例如,“自我图像”或“自拍”)的机制。然而,对于XR系统而言,自我图像捕获可能具有挑战性。例如,戴在用户头上的XR设备(例如,头戴式显示器、XR眼镜和其他设备)通常包括配置为捕获现实世界环境的场景的摄像头。这些摄像头定位在面向外部的方向(例如,远离用户),因此,摄像头无法捕获用户的图像。此外,位于XR设备内部的摄像头(例如,内置摄像头)可能无法捕获到超出用户面部或头部的一小部分。已经开发了一些XR系统来促进自我图像捕获。这些XR系统可以将用户的化身叠加到现实世界环境的图像和/或视频上。然而,化身可能具有有限的姿势和/或表情。此外,可能需要用户在图像和/或视频内手动定位化身,从而导致相对于背景的化身的不自然(例如,不真实)图像和/或不精确构图。
本公开描述了用于在XR环境中执行图像捕获的系统、装置、方法和计算机可读介质(统称为“系统和技术”)。在某些方面,这些技术和系统为头戴式XR系统提供了捕获佩戴头戴式XR系统的用户的一个或多个自我图像(例如,照片和/或视频)的能力。例如,XR系统可以将用户的数字表示(例如,化身或其他类型的数字表示)叠加在由XR系统的前置摄像头捕获的一个或多个帧上。用户的数字表示可以反映用户的姿势(例如,用户的手势、肢体方位、面部表情等)。XR系统可以在帧内叠加用户的数字表示,使得数字表示的位置对应于用户在现实世界环境中的实际位置(例如,当用户的姿势被捕获时用户的位置)。一旦数字表示被叠加在帧内,在捕获帧时,帧可能看起来好像用户(例如,用户的数字表示)正面对XR系统的摄像头。这样,帧对应于用户的自我图像(或“自拍”)。
在某些情况下,生成用户的自我图像的过程可以涉及至少两个操作。一个操作包括捕获将用作自我图像的背景的一个或多个帧。另一个操作涉及捕获用户的姿势以并入用户的数字表示(例如,化身或其他数字表示)。在某些情况下,XR系统可以经由XR系统的一种或多种跟踪能力来捕获用户的姿势。XR系统的跟踪能力可以包括用于眼球跟踪、6自由度(6DOF)方位跟踪、手部跟踪、身体跟踪、面部表情跟踪、其任意组合和/或其他类型的跟踪的机制和/或技术。在某些示例中,捕获用户的姿势并将用户的姿势并入数字表示(例如,化身)中可以称为用户的数字表示的“木偶操纵”。用于生成自我图像的两个操作可以连续执行(例如,一个操作在另一个操作之后)。此外,可以以任何顺序执行操作。例如,可以在捕获用户的姿势之前捕获背景帧,或者可以在捕获背景帧之前捕获用户的姿势。实施操作的具体过程可以根据操作的顺序变化。在某些情况下,XR系统在检测到与启动自我图像捕获模式对应的用户输入后,可以指导用户按照一定的顺序进行操作。在其他情况下,XR系统可以检测与首选顺序相对应的用户输入。
在第一用例场景中,数字表示(例如,化身)在捕获背景帧之前被木偶操纵。在这种场景中,XR系统可以捕获用户的姿势,并生成反映捕获到的用户姿势的用户的数字表示。在某些情况下,XR系统可以在XR系统的显示器内渲染数字表示。例如,XR系统可以在显示器内定位数字表示,使得当捕获用户的状态时,数字表示看起来与用户位于现实世界环境中的相同位置。当用户在现实世界环境中移动时,通过XR系统的显示器可见的现实世界环境部分(例如,情景)发生变化,但数字表示似乎保持在同一位置。通过这种方式,用户的数字表示是“世界锁定的”。为了在捕获用户的状态时确定用户的位置,XR系统可以使用一种或多种映射和/或定位技术来映射环境,映射和/或定位技术包括基于计算机视觉的跟踪、基于模型的跟踪、同时定位和映射(SLAM)技术、其任意组合和/或其他映射和/或定位技术。在XR系统生成用户的化身或其他数字表示之后(上述的第二操作),XR系统可以捕获作为自我图像背景的一帧(上述的第一操作)。例如,用户可以在环境中移动,同时在XR系统的显示器上渲染数字表示(例如,化身)。当用户确定通过显示器的视图是适合和/或期望的自我图像背景时,用户可以指导XR系统捕获环境的帧。然后,XR系统可以生成合成帧,其中用户的数字表示被叠加到捕获的环境帧上。
在第二用例场景中,在用户的数字表示被木偶操纵之前捕获背景帧。在这种场景中,XR系统可以在用户的方向上捕获现实世界环境的一帧。在某些情况下,背景帧会在XR系统的显示器的一部分内(例如,在预览窗口内)渲染。在预览窗口中捕获和/或渲染背景帧之后(上述第一操作),XR系统可以基于用户的姿势木偶操纵用户的化身或其他数字表示(上述第二操作)。例如,XR系统可以在预览窗口内(例如,在预定位置)渲染化身。当用户在环境中移动时,XR系统可以将化身移动到预览窗口内的相应位置。这样,化身就“头部锁定”了。当用户对他们的位置和/或姿势感到满意时,用户可以指导XR系统捕获用户的姿势。然后,XR系统可以生成合成帧,其中用户的数字表示(例如,化身)被叠加到捕获的环境帧上。
在第三用例场景中,XR系统可以生成具有多帧的自我图像(例如,视频)。在此场景的一个示例中,XR系统可以通过在捕获背景帧之前对用户的数字表示(例如,代表用户的化身)进行木偶操纵来生成视频。例如,XR系统可以在一段时间内捕获用户的姿势并生成用户的数字表示(例如,化身),以反映用户在时间段内姿势的任何变化。时间段可以对应于预定时间段、预定帧数或用户指定的时间段。然后,XR系统可以在同一时间段内记录现实世界环境的帧。现实世界环境的情景可以在整个时间段内保持不变,或者情景可以改变(例如,用户可以在捕获帧的同时在环境中移动)。在某些情况下,XR系统可以在XR系统的显示器内渲染用户的数字表示,同时XR系统记录环境的帧。例如,XR系统可以渲染用户的数字表示,使得当用户的姿势被捕获时,数字表示看起来与用户处于相同的位置(例如,用户的数字表示是世界锁定的)。在此用例场景的另一个示例中,XR系统可以通过在对用户的数字表示进行木偶操纵之前捕获背景帧来生成视频。例如,XR系统可以捕获环境中的一帧作为视频的静态背景。然后,XR系统可以在一段时间内捕获用户的姿势并生成用户的数字表示(例如,化身),以反映在时间段内的用户的姿势的任何变化。当用户在一段时间内在环境中移动时,XR系统可以在包括帧的预览窗口内显示用户的数字表示以及相应的移动和/或姿势。在示例中,用户的数字表示(例如,代表用户的化身)是头部锁定的。
在第四用例场景中,XR系统可以生成包括多个人物的自我图像。在场景的一个示例中,XR系统可以在用户与一个或多个人物合影时捕获用户的姿势。然后,XR系统可以捕获包括一个或多个人物的背景帧。例如,用户可以在环境中移动以面对一个或多个人物,而一个或多个人物保持其原始姿势。然后,XR系统可以将反映用户的状态的数字表示(例如,化身)插入到背景帧中。在用例场景的另一个示例中,待包括在自我图像中的每个人物正在佩戴头戴式XR系统。在示例中,每个XR系统都可以捕获相应人物的姿势并生成反映人物的姿势的数字表示(例如,化身)。此外,其中XR系统中的一个可以捕获背景帧。捕获背景帧的XR系统可以向其他XR系统发送请求,以获取其他XR系统生成的数字表示(例如,化身)。然后,XR系统可以结合背景帧和数字表示。在示例中,可以在生成数字表示之前捕获背景帧,或者可以在捕获背景帧之前生成数字表示。
XR系统可以以各种方式生成用户的化身或其他数字表示。在某些示例中,XR系统可以捕获用户的一个或多个帧(例如,用户的一个或多个全身图像)。可以将帧输入到模型,模型基于在帧内检测到的物理特征生成数字表示。在某些情况下,可以训练模型以基于捕获的用户姿势来适应用户的数字表示。例如,如果XR系统确定用户正在挥手,则模型可以生成类似于用户挥手的数字表示,即使模型没有用户挥手的实际图像。在一个示例中,模型可以是机器学习模型,诸如神经网络。在非限制性示例中,模型可以是生成对抗网络(GAN)。在以下情况下,XR系统可以生成用户的初始数字表示(例如,化身)。例如,XR系统正在捕获用户的背景帧和/或姿势时,用户的初始数字表示可以在XR系统的显示器内渲染。一旦确认了用户的姿势和/或数字表示在背景帧内的布置,XR系统可以用用户的数字表示(例如,用户的最终化身)替换初始数字表示。在某些情况下,最终数字表示可能比初始数字表示质量更高(例如,更逼真)。例如,初始化身可能看起来卡通化,并且最终化身可以是照片级真实感的(或近似照片级真实感的)。因为生成照片级真实感的数字表示可能需要大量时间和/或处理能力,所以使用质量相对较低的初始数字表示可以减少XR系统在生成自我图像过程中的等待时间和/或工作量。
将参照附图描述本申请的各个方面。图1A、图1B和图1C提供了可以由一些现有XR系统生成的示例化身的图示。例如,图1A示出了包括叠加在背景帧106上的化身108的自我图像帧102。在一个示例中,XR系统可以通过将用户的一幅或多幅图像输入到模型(例如,基于机器学习的模型)中来生成化身108,模型被训练以生成其物理外观对应用户的物理外观的化身。如图所示,化身108可以是用户的卡通化表示或其他抽象表示(而不是用户的照片级真实感的或近似照片级真实感的表示)。在某些情况下,XR系统可以要求和/或指导用户将化身108定位在背景帧106内的选定位置。例如,XR系统可以提供图1A所示的定位工具110,定位工具110使用户能够通过在背景帧106内拖动定位工具110来改变化身108的定位。图1B中所示的自我图像帧104示出了在化身108已经使用定位工具110定位之后的化身108。在某些情况下,自我图像捕获系统可以使用户能够通过为化身108选择姿势(例如,手势、情绪、表情、移动等)来定制自我图像帧104。例如,自我图像捕获系统可以提供预定和/或预配置姿势的菜单或列表,并检测与选择所相对应的用户输入。此外,在某些情况下,自我图像捕获系统可以使用户能够在背景帧106内对化身108进行动画处理。例如,如图1C所示,自我图像捕获系统可以使用户能够使用定位工具110为化身108绘制路径。基于对应于路径的用户输入,自我图像捕获系统可以生成显示化身108沿着路径移动的视频。图1D是可以由一些现有XR系统生成的其他示例化身的图示。例如,图1D示出了包括两个化身(例如,化身118和120)的帧116。在示例中,对应于化身118和120的用户可以在用户佩戴的XR设备(例如,HMD)的显示器内查看这两个化身。
在以下情况下,被配置为生成图1A-1D所示出的化身的XR系统可能具有各种限制,使XR系统不适合和/或不需要生成佩戴HMD或其他类型XR设备的用户的自我图像。例如,XR系统可能涉及(例如,需要)手动用户输入以将化身定位在帧内。因此,包含渲染化身的帧可能看起来并不是自然或逼真的“自拍”。此外,所渲染的化身可能无法准确地反映用户的当前(例如,实际)姿势。此外,由于渲染化身中涉及大量计算资源,这些XR系统生成的化身可能质量较低(例如,低保真度)。
图2是示出根据本公开的某些方面的示例扩展现实系统200的图。扩展现实系统200可以是单个计算设备或多个计算设备的一部分或由其实施。在某些情况下,扩展现实系统200可以是XR系统或设备的一部分或由其实施。例如,扩展现实系统200可以运行(或执行)XR应用程序并实施XR操作。包括和/或实施扩展现实系统200的XR系统或设备可以是XR头戴式显示器(HMD)设备(例如,虚拟现实(VR)耳机、增强现实(AR)耳机或混合现实(MR)耳机)、XR眼镜(例如,AR眼镜)以及其他XR系统或设备。在某些示例中,扩展现实系统200可以是任何其他设备或系统的一部分或由其实施,诸如摄像头系统(例如,数码摄像头、IP摄像头、摄像头、安全摄像头等)、电话系统(例如,智能手机、蜂窝电话、会议系统等)、台式电脑、膝上型电脑或笔记本电脑、平板电脑、机顶盒、联网电视(或所谓的“智能”电视)、显示设备、游戏控制台、视频流设备、物联网(IoT)设备、车辆(或车辆的计算设备)和/或任何其他合适的电子设备。
在某些示例中,扩展现实系统200可以执行跟踪和定位、物理世界(例如,情景)的映射,以及虚拟内容在显示器(例如,屏幕、可见平面/区域和/或其他显示器)上的定位和渲染作为XR体验的一部分。例如,扩展现实系统200可以生成物理世界中情景的地图(例如,3D地图),跟踪扩展现实系统200相对于情景(例如,相对于到情景的3D地图)的姿势(例如,位置和方位),在情景的地图上的特定位置定位和/或锚定虚拟内容,并在显示器上渲染虚拟内容。扩展现实系统200可以在显示器上渲染虚拟内容,使得虚拟内容在情景中的位置看起来与虚拟内容在情景的地图中被定位和/或锚定的特定位置对应。在某些示例中,显示器可以包括眼镜、屏幕、镜头和/或允许用户看到现实世界环境并且还允许在其上显示XR内容的其他显示机构。
如图2所示,扩展现实系统200可以包括一个或多个图像传感器202、加速度计204、陀螺仪206、存储208、计算组件210、XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226。应注意的是,图2中所示的组件202-226是为了说明和解释目的而提供的非限制性示例,并且其他示例可以包括比图2中所示的更多、更少或不同的组件。例如,在某些情况下,扩展现实系统200可以包括图2中未示出的一个或多个其他传感器(例如,一个或多个惯性测量单元(IMU)、雷达、光检测和测距(LIDAR)传感器、音频传感器等)、一个或多个显示设备、一个或多个其他处理引擎、一个或多个其他硬件组件和/或一个或多个其他软件和/或硬件组件。下面关于图10进一步描述可由扩展现实系统200实施的示例架构和示例硬件组件。
为了简单和说明的目的,一个或多个图像传感器202在本文中将被称为图像传感器202(例如,以单数形式)。然而,本领域的普通技术人员将认识到扩展现实系统200可以包括单个图像传感器或多个图像传感器。此外,以单数或复数形式对扩展现实系统200的任何组件(例如,202-226)的引用不应被解释为将由扩展现实系统200实施的此类组件的数量限制为一个或多于一个。例如,对单数形式的加速度计204的引用不应被解释为将由扩展现实系统200实施的加速度计的数量限制为一个。本领域的普通技术人员将认识到,对于图2中所示的任何组件202-226,扩展现实系统200可以仅包括此类组件中的一个或此类组件中的多于一个。
扩展现实系统200可以包括输入设备或与输入设备通信(有线或无线)。输入设备可以包括任何合适的输入设备,诸如触摸屏、笔或其他指针设备、键盘、鼠标、按钮或键、用于接收语音命令的麦克风、用于接收手势命令的手势输入设备、其任何组合和/或其他输入设备。在某些情况下,图像传感器202可以捕获可以被处理以解释手势命令的图像。
扩展现实系统200可以是单个计算设备或多个计算设备的一部分或由其实施。在某些示例中,扩展现实系统200可以是电子设备(或多个电子设备)的一部分,诸如扩展现实头戴式显示器(HMD)设备、扩展现实眼镜(例如,增强现实或AR眼镜)、摄像头系统(例如,数码摄像头、IP摄像头、摄像头、安全摄像头等)、电话系统(例如,智能手机、蜂窝电话、会议系统等)、台式电脑、膝上型电脑或笔记本电脑、平板电脑、机顶盒、智能电视、显示设备、游戏控制台、视频流设备、物联网(IoT)设备和/或任何其他合适的电子设备。
在一些实施方式中,一个或多个图像传感器202、加速度计204、陀螺仪206、存储208、计算组件210、XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226都可以是同一计算设备的一部分。例如,在某些情况下,一个或多个图像传感器202、加速度计204、陀螺仪206、存储208、计算组件210、XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226都可以集成到HMD、扩展现实眼镜、智能手机、膝上型电脑、平板电脑、游戏系统和/或任何其他计算设备。然而,在一些实施方式中,一个或多个图像传感器202、加速度计204、陀螺仪206、存储208、计算组件210、XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226都可以是两个或多个独立计算设备的一部分。例如,在某些情况下,组件202-226中的一些可以是一个计算设备的一部分或由其实施,而其余组件可以是一个或多个其他计算设备的一部分或由其实施。
存储208可以是用于存储数据的任何存储设备。此外,存储208可以存储来自扩展现实系统200的任何组件的数据。例如,存储208可以存储来自图像传感器202的数据(例如,图像或视频数据)、来自加速度计204的数据(例如,测量值)、来自陀螺仪206的数据(例如,测量值)、来自计算组件210的数据(例如,处理参数、偏好、虚拟内容、渲染内容、情景地图、跟踪和定位数据、对象检测数据、隐私数据、XR应用数据、人脸识别数据、遮挡数据等)、来自XR引擎220的数据、来自自我图像引擎222的数据、来自图像处理引擎224的数据和/或来自渲染引擎226的数据(例如,输出帧)。在某些示例中,存储208可以包括用于存储供计算组件210处理的帧的缓冲器。
一个或多个计算组件210可以包括中央处理器(CPU)212、图形处理器(GPU)214、数字信号处理器(DSP)216和/或图像信号处理器(ISP)218。计算组件210可以执行各种操作,诸如图像增强、计算机视觉、图形渲染、扩展现实(例如,跟踪、定位、姿势估计、映射、内容锚定、内容渲染等)、图像/视频处理、传感器处理、识别(例如,文本识别、面部识别、对象识别、特征识别、跟踪或模式识别、情景识别、遮挡检测等)、机器学习、过滤以及本文描述的任何各种操作。在示例中,计算组件210实施XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226。在其他示例中,计算组件210还可以实施一个或多个其他处理引擎。
图像传感器202可以包括任何图像和/或视频传感器或捕获设备。在某些示例中,图像传感器202可以是多摄像头配件的一部分,诸如双摄像头配件。图像传感器202可以捕获图像和/或视频内容(例如,原始图像和/或视频数据),然后图像和/或视频内容可以由如本文所述的计算组件210、XR引擎220、自我图像引擎222、图像处理引擎224和/或渲染引擎226处理。
在某些示例中,图像传感器202可以捕获图像数据并且可以基于图像数据生成帧和/或可以将图像数据或帧提供给XR引擎220、自我图像引擎222、图像处理引擎224和/或渲染引擎226用于处理。帧可以包括视频序列的视频帧或静止图像。帧可以包括表示情景的像素阵列。例如,帧可以是每个像素具有红色、绿色和蓝色分量的红-绿-蓝(RGB)帧;每个像素具有一个亮度分量和两个色度(颜色)分量(红色色度和蓝色色度)的亮度、红色色度、蓝色色度(YCbCr)帧;或任何其他合适类型的彩色或单色图片。
在某些情况下,图像传感器202(和/或扩展现实系统200的其他图像传感器或摄像头)可以也被配置为捕获深度信息。例如,在一些实施方式中,图像传感器202(和/或其他摄像头)可以包括RGB-深度(RGB-D)摄像头。在某些情况下,扩展现实系统200可以包括一个或多个深度传感器(未示出),深度传感器与图像传感器202(和/或其他摄像头)分离并且可以捕获深度信息。例如,此类深度传感器可以独立于图像传感器202获得深度信息。在某些示例中,深度传感器可以物理地安装在与图像传感器202的大概相同位置,但可以以与图像传感器202不同的频率或帧速率运行。在某些示例中,深度传感器可以采用光源的形式,光源可以将结构化或纹理化的光图案投影到情景中的一个或多个对象上,结构化或纹理化的光图案可以包括一个或多个窄带光带。然后可以通过利用由对象的表面形状形成的投影图案的几何失真来获得深度信息。在一个示例中,可以从立体传感器获得深度信息,诸如红外线结构光投影仪和注册到摄像头(例如RGB摄像头)的红外线摄像头的组合。
如上所述,在某些情况下,扩展现实系统200还可以包括除了图像传感器202之外的一个或多个传感器(未示出)。例如,一个或多个传感器可以包括一个或多个加速度计(例如,加速度计204)、一个或多个陀螺仪(例如,陀螺仪206)和/或其他传感器。一个或多个传感器可以向计算组件210提供速度、朝向和/或其他定位相关信息。例如,加速度计204可以通过扩展现实系统200检测加速度并且可以基于检测到的加速度生成加速度测量值。在某些情况下,加速度计204可以提供一个或多个平移向量(例如,上/下、左/右、前/后),其可以用于确定扩展现实系统200的定位或姿势。陀螺仪206可以检测和测量扩展现实系统200的朝向和角速度。例如,陀螺仪206可用于测量扩展现实系统200的俯仰、滚动和偏航。在某些情况下,陀螺仪206可以提供一个或多个旋转向量(例如,俯仰、偏航、滚动)。在某些示例中,图像传感器202和/或XR引擎220可以使用由加速度计204(例如,一个或多个平移向量)和/或陀螺仪206(例如,一个或多个旋转向量)获得的测量值来计算扩展现实系统200的姿势。如前所述,在其他示例中,扩展现实系统200还可以包括其他传感器,诸如惯性测量单元(IMU)、磁力计、机器视觉传感器、智能情景传感器、语音识别传感器、冲击传感器、震动传感器、方位传感器、倾斜传感器等。
在某些情况下,一个或多个传感器可以包括至少一个IMU。IMU是使用一个或多个加速度计、一个或多个陀螺仪和/或一个或多个磁力计的组合来测量扩展现实系统200的特定力、角速率和/或朝向的电子设备。在某些示例中,一个或多个传感器可以输出与由图像传感器202(和/或扩展现实系统200的其他摄像头)捕获的图像的捕获相关联的测量信息,和/或使用扩展现实系统200的一个或多个深度传感器获得的深度信息。
扩展现实引擎220可以使用一个或多个传感器(例如,加速度计204、陀螺仪206、一个或多个IMU和/或其他传感器)的输出来确定扩展现实系统200的姿势(也被称为头部姿势)和/或图像传感器202(或扩展现实系统200的其他摄像头)的姿势。在某些情况下,扩展现实系统200的姿势和图像传感器202(或其他摄像头)的姿势可以相同。图像传感器202的姿势是指图像传感器202相对于参考系的方位和朝向。在某些实施方式中,可以针对6自由度(6DOF)确定摄像头姿态,其指的是三个平移分量(例如,可以相对于参考系由X(水平)、Y(垂直)和Z(深度)坐标给出,诸如图像平面)和三个角度分量(例如,相对于同一参考系的滚动、俯仰和偏航)。
在某些情况下,设备跟踪器(未示出)可以使用来自一个或多个传感器的测量值和来自图像传感器202的图像数据来跟踪扩展现实系统200的姿势(例如,6DOF姿势)。例如,设备跟踪器可以将来自捕获的图像数据的视觉数据(例如,使用视觉跟踪解决方案)与惯性测量数据融合以确定扩展现实系统200相对于物理世界(例如,情景)以及物理世界的地图的方位和运动。如下所述,在某些示例中,当跟踪扩展现实系统200的姿势时,设备跟踪器可以生成情景(例如,现实世界)的三维(3D)地图和/或生成情景的3D地图更新。3D地图更新可以包括,例如但不限于与情景和/或情景的3D地图相关联的新的或更新的特征和/或特征或地标点、标识或更新情景和情景的3D地图内扩展现实系统200的方位的定位更新等。3D地图可以提供现实/物理世界中的情景的数字表示。在某些示例中,3D地图可以将基于位置的对象和/或内容锚定到现实世界坐标和/或对象。扩展现实系统200可以使用映射情景(例如,由3D地图表示和/或与3D地图相关联的物理世界中的情景)来合并物理世界和虚拟世界和/或将虚拟内容或对象与物理环境合并。
在某些方面,作为一个整体,图像传感器202和/或扩展现实系统200的姿势可以由计算组件210使用视觉跟踪解决方案基于由图像传感器202(和/或扩展现实系统200的其他摄像头)捕获的图像来确定和/或跟踪。例如,在某些示例中,计算组件210可以使用基于计算机视觉的跟踪、基于模型的跟踪和/或同时定位和映射(SLAM)技术来执行跟踪。例如,计算组件210可以执行SLAM或者可以与SLAM引擎(未示出)进行(有线或无线)通信。SLAM指的是一类技术,其中创建环境地图(例如,由扩展现实系统200建模的环境地图),同时跟踪摄像头(例如,图像传感器202)和/或扩展现实系统200相对于地图的姿势。地图可以称为SLAM地图,并且可以是3D的。SLAM技术可以通过由图像传感器202(和/或扩展现实系统200的其他摄像头)捕获的彩色或灰度图像数据来执行,并且可以用于生成图像传感器202和/或扩展现实系统200的6DOF姿势测量值的估计。此类配置为执行6DOF跟踪的SLAM技术可以称为6DOF SLAM。在某些情况下,一个或多个传感器(例如,加速度计204、陀螺仪206、一个或多个IMU和/或其他传感器)的输出可用于估计、校正和/或以其他方式调整估计的姿势。
在某些情况下,6DOF SLAM(例如,6DOF跟踪)可以将从来自图像传感器202(和/或其他摄像头)的某些输入图像中观察到的特征与SLAM地图相关联。例如,6DOF SLAM可以使用来自输入图像的特征点关联来确定图像传感器202和/或扩展现实系统200的姿势(方位和朝向)用于输入图像。也可以执行6DOF映射来更新SLAM地图。在某些情况下,使用6DOFSLAM维护的SLAM地图可以包含从两个或多个图像三角剖分的3D特征点。例如,可以从输入图像或视频流中选择关键帧来表示观察到的情景。对于每个关键帧,可以确定与图像相关联的相应6DOF摄像头姿势。图像传感器202和/或扩展现实系统200的姿势可以通过将来自3D SLAM地图的特征投影到图像或视频帧中并根据验证的2D-3D对应性更新摄像头姿势来确定。
在一个说明性示例中,计算组件210可以从每个输入图像或每个关键帧中提取特征点。如此处所用,特征点(也称为配准点)是图像的独特或可识别部分,诸如手的一部分、桌子的边缘等。从捕获的图像中提取的特征可以表示沿三维空间(例如,X、Y和Z轴上的坐标)的不同特征点,并且每个特征点都可以具有关联的特征位置。关键帧中的特征点要么与先前捕获的输入图像或关键帧的特征点匹配(相同或对应),要么不匹配。特征检测可用于检测特征点。特征检测可以包括用于检查图像的一个或多个像素以确定特征是否存在于特定像素处的图像处理操作。特征检测可用于处理整个捕获的图像或图像的某些部分。对于每个图像或关键帧,一旦检测到特征,就可以提取特征周围的局部图像块。可以使用任何合适的技术提取特征,诸如尺度不变特征转换(SIFT)(定位特征并生成它们的描述)、加速鲁棒特征(SURF)、梯度定位-朝向直方图(GLOH)、归一化互相关(NCC)、或其他合适的技术。
在某些情况下,扩展现实系统200还可以跟踪用户的手和/或手指以允许用户在虚拟环境中与虚拟内容交互和/或控制虚拟内容。例如,扩展现实系统200可以跟踪用户的手和/或指尖的姿势和/或移动,以标识或平移用户与虚拟环境的交互。用户交互可以包括,例如但不限于移动虚拟内容项、调整虚拟内容项的大小和/或虚拟私人空间的位置、选择虚拟用户界面中的输入界面元素(例如,移动电话、虚拟键盘和/或其他虚拟界面的虚拟表示)、通过虚拟用户界面提供输入等。
XR引擎220、自我图像引擎222、图像处理引擎224和渲染引擎226的操作可以由任何计算组件210来实施。在一个说明性示例中,渲染引擎226的操作可以由GPU 214实施,并且XR引擎220、自我图像引擎222和图像处理引擎224的操作可以由CPU 212、DSP 216和/或ISP 218实施。在某些情况下,计算组件210可以包括其他电子电路或硬件、计算机软件、固件或其任何组合,以执行在此描述的各种操作中的任何一个。
在某些示例中,XR引擎220可以执行XR操作以基于来自图像传感器202、加速度计204、陀螺仪206和/或扩展现实系统200上的一个或多个传感器的数据生成XR体验,诸如一个或多个IMU、雷达等。在某些示例中,XR引擎220可以执行跟踪、定位、姿势估计、映射、内容锚定操作和/或任何其他XR操作/功能。XR体验可以包括使用扩展现实系统200在虚拟会话期间向用户呈现XR内容(例如,虚拟现实内容、增强现实内容、混合现实内容等)。在某些示例中,扩展现实系统200可以通过XR应用(例如,由XR引擎220执行或实施)来提供XR内容和体验,其中XR应用提供特定XR体验,诸如XR游戏体验、XR课堂体验、XR购物体验、XR娱乐体验、XR活动(例如,操作、故障排除活动等)等等。在XR体验期间,用户可以使用扩展现实系统200查看和/或与虚拟内容交互。在某些情况下,用户可以查看和/或与虚拟内容交互,同时还能够查看和/或与用户周围的物理环境进行交互,从而用户能在物理环境和与虚拟内容混合或结合的物理环境之间获得身临其境的体验。
自我图像引擎222可以执行与捕获自我图像相关联的各种操作。在某些情况下,自我图像引擎222可以通过组合用户的化身(或用户的另一种类型的数字表示)和一个或多个背景帧来生成自我图像。例如,自我图像引擎222(结合扩展现实系统200的一个或多个其他组件)可以执行多操作自我图像捕获过程。自我图像捕获过程的一个操作可以涉及捕获扩展现实系统200所在的现实世界环境的一个或多个帧。自我图像捕获过程的另一操作可以涉及生成反映用户的捕获姿势(例如,表情、手势、体态、位置等)的化身。自我图像捕获过程的进一步操作可以涉及组合化身和现实世界环境的一个或多个帧。如将在下文更详细解释的,自我图像引擎222可以以各种顺序和/或方式执行多操作自我图像捕获过程的操作。
图3A和图3B是分别示出自我图像捕获系统300(A)和自我图像捕获系统300(B)的示例的框图。在某些情况下,自我图像捕获系统300(A)和300(B)可以表示单个系统或设备(例如,单个扩展现实系统或设备)的不同示例实施方式或操作,以及在此描述的自我图像捕获技术的不同示例实施方式。例如,自我图像捕获系统300(A)和300(B)可以对应于扩展现实系统200的自我图像引擎222的不同实施方式或操作。如图所示,自我图像捕获系统300(A)和300(B)可以包括相同组件中的一个或多个。例如,自我图像捕获系统300(A)和300(B)可以包括一个或多个引擎,包括自我图像启动引擎302、化身引擎304、背景帧引擎306和合成引擎308。自我图像捕获系统300(A)和300(B)的引擎可以被配置为生成自我图像帧316。自我图像帧316可以包括一个或多个背景帧(例如,背景帧314),其中至少一个用户的数字表示(例如,化身318)被叠加在背景帧上。例如,自我图像帧316可以对应于“自拍”图片或“自拍”视频。
在某些情况下,自我图像捕获系统300(A)和300(B)可以被分别配置为执行用于自我图像捕获的多操作过程。以下描述将提供由自我图像捕获系统300(A)和300(B)执行的自我图像捕获过程的各种操作的一般说明。下面将具体参考各个附图来提供对应于自我图像捕获系统300(A)和自我图像捕获系统300(B)的具体实施方式的更详细的解释。
在某些情况下,自我图像启动引擎302可以检测与自我图像捕获过程的启动相对应的用户输入(例如,用户输入310)。例如,自我图像启动引擎302可以在XR设备(或其他类型的设备)内检测与“自拍模式”的启动相对应的用户输入,其中XR设备实施自我图像捕获系统300(A)和/或300(B)。用户输入310可以包括各种类型的用户输入,诸如语音命令、触摸输入、手势输入以及其他类型的输入。在某些情况下,当用户在现实世界环境中佩戴和/或使用XR设备时,自我图像启动引擎302可以检测用户输入310。例如,当XR设备在使用中时,自我图像启动引擎302可以针对用户输入310监控XR设备的一个或多个用户界面。
基于检测到用户输入310,自我图像捕获系统300(A)和/或300(B)可以启动自我图像捕获过程中的下一个操作。在一个示例中,化身引擎304可以确定用户姿势312。用户姿势312可以包括和/或对应于用户的身体素质和/或特征。例如,用户姿势312可以包括用户的当前表情、情绪、手势(例如,手势(hand gestures))、肢体方位等中的一项或多项。此外,用户姿势312可以包括和/或对应于用户在现实世界环境中的物理位置(例如,3D位置)。化身引擎304可以使用各种跟踪和/或扫描技术和/或算法来确定用户姿势312。例如,化身引擎304可以使用一种或多种眼睛跟踪技术、SLAM技术、6DOF定位技术、身体跟踪技术、面部表情跟踪技术、计算机视觉技术、其任何组合,或其他跟踪和/或扫描技术来确定用户姿势312。在一个示例中,化身引擎304可以通过将一种或多种此类跟踪和/或扫描技术应用到由XR设备(例如,HMD)的内置摄像头捕获的图像数据来确定用户姿势312。在某些情况下,XR设备的内置摄像头可能能够捕获用户面部和/或身体的一部分。例如,内置摄像头的视场(FOV)可以对应于小于用户的整个面部和/或身体的部分(例如,由于摄像头和/或XR设备的放置,在视觉上挡住用户的脸)。因此,在某些情况下,化身引擎304可以基于对应于用户的一部分的图像数据来确定(例如,推断和/或估计)用户姿势312。例如,如下文将更详细解释的,化身引擎304可以使用机器学习算法来确定用户姿势312,其中机器学习算法被训练以基于对应于用户部分的图像数据来确定用户姿势。此外,在某些示例中,化身引擎304可以使用XR设备的一个或多个外置摄像头来确定用户姿势312。例如,化身引擎304可以至少部分地基于由内置摄像头捕获的图像数据来确定用户的面部表情,并且至少部分地基于由外置摄像头捕获的图像数据来确定用户的肢体方位和/或手势。化身引擎304可以使用XR设备的内置摄像头、外置摄像头和/或附加摄像头的任何组合来确定用户姿势312。
在某些情况下,化身引擎304可以基于附加的用户输入来捕获用户姿势312。例如,化身引擎304可以检测用于指导化身引擎304捕获用户的当前姿势的用户输入。附加的用户输入可以包括各种类型的用户输入,诸如语音命令、触摸输入、手势输入以及其他类型的输入。在说明性示例中,一旦用户对其当前姿势和/或位置感到满意,就可以提供输入。此外,用户输入可以包括用于指导化身引擎304捕获对应于用户姿势312的单个帧的输入(例如,用于生成单个自我图像),或用于指导化身引擎304捕获对应于用户姿势312的一系列帧的输入(例如,用于生成自我视频)。
在某些示例中,化身引擎304可以生成反映用户姿势312的用户的化身318。如本文所用,术语“化身”可以包括用户的全部或部分的任何数字表示。在一个示例中,用户的化身可以包括计算机生成的图像数据。附加地或可选地,用户的化身可以包括由图像传感器捕获的图像数据。此外,用户的化身可以对应于用户的抽象(例如,卡通化的)表示,或用户的照片级真实感的(或几乎照片级真实感的)表示。在某些情况下,生成化身318以反映用户姿势312可以被称为“木偶操纵”化身318。
在某些示例中,化身引擎304可以使用一个或多个机器学习系统和/或算法来生成化身318。例如,化身引擎304可以基于机器学习模型来生成化身318,其中机器学习模型是使用机器学习算法就与各种用户姿势相关联的图像数据进行训练的。在示例中,在推理期间将指示所捕获的用户姿势的信息输入到模型时,机器学习模型可以被训练以输出化身,其中化身的姿势对应于捕获的用户姿势。在说明性示例中,一旦机器学习模型被训练,化身引擎304可以提供用于指示所捕获的用户姿势和用户的一个或多个图像的信息作为模型的输入。在某些情况下,用户的一个或多个图像可能与用户的姿势无关。例如,化身引擎304可以捕获用户的一个或多个图像(例如,用户的全身图像)作为为用户设置和/或配置自我图像捕获系统的一部分。基于捕获到的用户姿势和用户的一个或多个图像,机器学习模型可以输出与捕获到的姿势中与用户相似的化身。例如,如果捕获的用户姿势包括特定手势(例如,“和平手势”),则机器学习模型可以输出类似于做出特定手势的用户的化身(即使模型之前没有与做出特定手势的用户相关联的图像数据)。
化身引擎304可以实施各种类型的机器学习算法来生成化身318。在说明性示例中,化身引擎304可以实施深度神经网络(NN),诸如生成对抗网络(GAN)。下面参考图8和图9描述深度神经网络的说明性示例。机器学习模型的附加示例包括但不限于时间延迟神经网络(TDNN)、深度前馈神经网络(DFFNN)、循环神经网络(RNN)、自动编码器(AE)、变体AE(VAE)、去噪AE(DAE)、稀疏AE(SAE)、马尔可夫链(MC)、感知器或其某种组合。机器学习算法可以是监督学习算法、无监督学习算法、半监督学习算法、其任意组合、或其他学习技术。
在某些示例中,化身引擎304可以实施多个(例如,两个或更多个)机器学习模型,模型被配置为生成化身318的不同版本。例如,如图3A和图3B所示,化身引擎304可以可选地包括化身引擎304(A)和化身引擎304(B)。在某些情况下,化身引擎304(A)可以生成或获得化身的第一版本(表示为化身318(A))和化身的第二版本(表示为化身318(B))。在一个示例中,化身318(A)可以对应于化身318的预览或初始版本。在此类示例中,化身318(B)可以对应于化身318的最终版本。在某些情况下,化身318(A)(预览或初始版本)可以是与化身318(B)(最终版本)相比保真度较低的版本。在某些示例中,化身引擎304(A)可以在捕获用户姿势312和/或背景帧314之前生成和/或显示化身318(A)(例如,以促进捕获期望的用户姿势312和/或背景帧314)。一旦捕获到用户姿势312和/或背景帧314,化身引擎304(B)就可以生成化身318(B)。合成引擎308可以使用化身318(B)生成自我图像帧316。例如,当用户处于其当前姿势时,XR设备或系统显示较低保真度的化身(例如,化身318(A))。然后用户可以操作XR设备或系统来捕获最终姿势(例如,用于生成化身318(B)),其中合成引擎308可以在生成自我图像帧316时将其用于合成。在姿势捕获阶段或背景图像捕获阶段呈现给较低保真度的化身(例如,化身318(A))的益处是能在使用较高保真度化身(例如,化身318(B))执行最终合成之前以较低的处理能力执行合成。
在某些情况下,化身引擎304(A)可以实施生成化身318(A)的第一机器学习模型(例如,化身318的预览或初始版本)。在某些情况下,化身引擎304(B)可以实施生成化身318(B)的第二机器学习模型(例如,化身318的最终版本)。在某些方面,由化身引擎304(A)实施的第一机器学习模型可能需要比由化身引擎304(B)实施的第二机器学习模型更少的处理能力。例如,第一机器学习模型可以是相对简单(例如,低保真度)的模型,其可以在本地(例如,在XR系统或设备内)实施。在某些方面,第一机器学习模型也可以实时(或近似实时)地实施。第二机器学习模型可能相对复杂(例如,高保真度)。在某些方面,第二机器学习模型可以离线实施(例如,使用被配置用于生成化身的远程服务器或设备)。
在某些情况下,背景帧引擎306可以捕获一个或多个背景帧(例如,背景帧314)。背景帧314可以包括和/或对应于将成为自我图像(或自我视频)的背景的任何帧。在一个示例中,背景帧引擎306可以基于附加的用户输入来捕获背景帧314。例如,背景帧引擎306可以检测用户输入,其中用户输入指导背景帧引擎306使用XR系统或设备的外置摄像头捕获现实世界环境的一个或多个帧。附加的用户输入可以包括各种类型的用户输入,诸如语音命令、触摸输入、手势输入以及其他类型的输入。在说明性示例中,一旦对现实世界环境的当前视图(可以在XR设备的显示器上和/或通过XR设备的显示器显示)感到满意,用户就可以提供输入。此外,用户输入可以包括用于指导背景帧引擎306捕获现实世界环境的单个帧的输入(例如,用于生成单个自我图像),或用于指导背景帧引擎306捕获现实世界环境的一系列帧的输入(例如,用于生成自我视频)。
合成引擎308可以基于化身318(例如化身318(B))和背景帧314生成自我图像帧316(或一系列自我图像帧)。例如,合成引擎308可以将化身318叠加在背景帧314上。如上所述,化身引擎304可以确定对应于用户姿势312的用户的3D位置。因此,合成引擎308可以将化身318叠加在处于对应位置的背景帧314内。例如,合成引擎308可以在背景帧314内渲染化身318,使得化身318在化身引擎304捕获用户姿势312时看起来与用户位于相同的3D位置。以这种方式,得到的自我图像帧316可以看起来是从面向用户的角度拍摄的用户图像(例如,用于捕获传统“自拍”的前置摄像头的角度)。
在某些示例中,合成引擎308可以使用一个或多个机器学习系统和/或算法来将化身318叠加到背景帧314上。例如,合成引擎308可以基于机器学习模型来将化身318叠加到背景帧314上,其中机器学习模型是使用机器学习算法就与各种化身和/或背景帧相关联的图像数据进行训练的。在示例中,可以训练机器学习模型以将化身并入背景帧中,使得化身的视觉特征(例如,灯光、颜色等)与背景帧的视觉特征一致和/或连贯。例如,一旦机器学习模型被训练,合成引擎308可以提供一个或多个背景帧和与化身(例如,至少部分渲染的化身和/或被训练生成化身的机器学习模型)相关联的信息作为模型的输入。基于与化身相关联的信息,机器学习模型可以以自然和/或照片级真实感的方式将化身叠映到一个或多个背景帧上。在说明性示例中,模型可以确定一个或多个背景帧在化身将被叠加的位置中包括阴影。在此示例中,模型可以渲染化身以包括相应的阴影。
合成引擎308可以实施各种类型的机器学习算法以生成自我图像帧316,包括可以由化身引擎304实施以生成化身318(如上所述)的任何机器学习算法。在某些情况下,由合成引擎308实施的机器学习模型可能与由化身引擎304实施的机器学习模型不同。例如,被训练来生成化身318的机器学习模型的输出可以被输入到被训练来生成自我图像帧316的机器学习模型。
在说明性示例中,图3A中所示的自我图像捕获系统300(A)可以在捕获背景帧314的操作之前执行生成化身318的操作。图4A、图4B和图4B说明了此类自我图像捕获过程的示例。在示例中,自我图像启动引擎302可以检测与XR设备的自我图像捕获模式的启动相对应的用户输入310。响应于用户输入310,自我图像捕获系统300(A)可以启动姿势捕获模式,其中化身引擎304可以捕获用户姿势312。在说明性示例中,化身引擎304可以输出指令(例如,在XR设备的显示器内),指导用户为自我图像采取期望的姿势。然而,在某些示例中,化身引擎304可能不输出指令(例如,如果用户熟悉自我图像捕获过程)。在某些情况下,期望的姿势可以包括现实世界环境中的期望的3D位置(例如,以便于在背景帧314内的对应位置中渲染化身318)。在处于姿势捕获模式时,化身引擎304可以检测用于指导化身引擎304捕获用户姿势312的用户输入。
图4A示出了对应于用户姿势312的至少一部分的示例帧402。在示例中,用户姿势312包括手势(例如,“和平手势”)。化身引擎304可以至少部分地基于由XR设备的一个或多个外置摄像头捕获的图像数据来检测手势。尽管未示出,但用户姿势312可以包括关于用户的物理外观的附加信息。例如,化身引擎304可以确定关于用户身体和/或其他肢体的方位的信息。在另一个示例中,化身引擎304可以(例如,至少部分地基于由XR设备的一个或多个内置摄像头捕获的图像数据)确定与用户的表情相关的信息。基于用户姿势312,化身引擎304可以生成(例如,木偶操纵)化身318。例如,化身引擎304可以将用户姿势312(以及用户的一个或多个图像)提供给机器学习模型,其中机器学习模型经过训练以生成反映用户姿势的化身。在说明性示例中,化身引擎304(A)可以基于用户姿势312生成化身318(A)(例如,化身318的预览版本)。
一旦化身引擎304生成化身318(例如,化身318(A)),自我图像捕获系统300(A)就可以启动背景捕获模式,其中背景帧引擎306可以捕获背景帧314。在说明性示例中,背景帧引擎306可以(例如,在XR设备的显示器内)输出指令,指令指导用户在现实世界环境内为自我图像(或自我视频)选择3D位置。然而,在某些示例中,背景帧引擎306可能不输出指令(例如,如果用户熟悉自我图像捕获过程)。在一个示例中,用户可以在现实世界环境中移动,直到XR设备的显示器的当前FOV对应于自我图像帧316的期望背景帧。在处于背景捕获模式时,背景帧引擎306可以检测用于指导背景帧引擎306捕获期望的背景帧的用户输入。一旦背景帧引擎306捕获背景帧314,合成引擎308可以通过将化身318叠加在背景帧314上来生成自我图像帧316。例如,合成引擎308可以在背景帧314内与用户姿势312的3D位置相对应的位置处渲染化身318。在说明性示例中,化身引擎304(B)可以基于正在被捕获的背景帧314生成和/获得化身318(B)(例如,化身318的最终版本)。在示例中,合成引擎308可以通过在背景帧314内渲染化身318(B)来生成自我图像帧316。
在某些情况下,当自我图像捕获系统300(A)在背景捕获模式下操作时(例如,当用户围绕现实世界环境移动以选择背景帧314时),化身引擎304可以在XR设备的显示器内渲染化身318。例如,当用户姿势312被捕获时,化身引擎304可以在与用户的3D位置相对应的位置处渲染化身318(例如,化身318(A))。随着XR设备的显示器的FOV改变(例如,基于用户的移动),化身引擎304可以调整所呈现的化身318(例如,化身318(A))在显示器内的位置以进行运动。因此,在自我图像捕获系统300(A)实施的自我图像捕获过程中,化身318可以“世界锁定”。在某些情况下,世界锁定的化身可以使用户能够选择适合于对应于化身318的现实世界位置的背景帧。例如,如果XR设备移动使得对应于化身318的3D位置不再在XR设备的FOV内,则化身引擎304可以从显示器中移除化身318。这样,用户可以确保化身318正确地定位在对应于背景帧314的FOV内。
图4B示出了示例帧404,其中当自我图像捕获系统300(A)在背景捕获模式下操作时,示例帧404对应于XR设备的FOV。图4C示出了示例帧406,其中一旦背景帧引擎306捕获背景帧314,示例帧406对应于由合成引擎308生成的自我图像帧316。在这些示例中,帧404包括化身318(A)并且帧406包括化身318(B)。例如,当自我图像捕获系统300(A)处于背景捕获模式时,化身引擎304可以渲染化身318(A),并且当生成自我图像帧316时,合成引擎308可以用化身318(B)替换化身318(A)。如上所述,化身318(A)可以是化身318的低保真度版本,并且化身318(B)可以是化身318的高保真度版本。例如,化身引擎304可以使用化身引擎304(A)和304(B)实施的不同机器学习模型来生成化身318(A)和318(B)。在一个示例中,化身引擎304(A)可以使用低保真度机器学习模型来生成化身318(A),其中低保真度机器学习模型涉及和/或需要比化身引擎304(B)使用的高保真度机器学习模型更少的处理能力和/或时间来生成化身318(B)。随着XR设备的FOV在背景捕获模式期间发生变化,使用低保真度机器学习模型来生成化身318(A)可以使化身引擎304(A)能够实时(或几乎实时地)更新XR设备的显示器内的化身318(A)的位置。此外,使用高保真度机器学习模型来生成化身318(B)可以为最终确定的自我图像产生更高质量(例如,更逼真)的化身。例如,图4B中的化身318(A)是卡通化的,而图4C中的化身318(B)是照片级真实感的。在一个示例中,化身引擎304(A)可以在XR设备上(例如,本地)实施低保真度机器学习模型,而化身引擎304(B)可以指导远程服务器来实施高保真度机器学习模型,其中远程服务器被配置为生成化身。化身引擎304可以生成任何类型或数量的化身(包括使用单个机器学习模型的单个化身)。
参考图3B,自我图像捕获系统300(B)可以在生成化身318的操作之前执行捕获背景帧314的操作。图4D、图4E和图4F说明了此类自我图像捕获过程的示例。在示例中,自我图像启动引擎302可以检测与XR设备的自我图像捕获模式的启动相对应的用户输入310。响应于用户输入310,自我图像捕获系统300(B)可以启动背景捕获模式,其中背景帧引擎306可以捕获背景帧314。在背景捕获模式中,背景帧引擎306可以可选地输出指令,指令指导用户在现实世界环境内为自我图像(或自我视频)选择3D位置。在一个示例中,用户可以在现实世界环境中移动,直到XR设备的显示器的当前FOV对应于自我图像帧316的期望背景帧。在处于背景捕获模式时,背景帧引擎306可以检测用于指导背景帧引擎306捕获期望的背景帧的用户输入。图4D示出了对应于捕获的背景帧的示例帧408。虽然自我图像捕获系统300(B)的背景捕获模式可能与自我图像捕获系统300(A)的背景捕获模式相似,但此背景捕获模式的不同之处可能在于化身318(例如,化身318(A))在用户选择自我图像的位置时不在XR设备的显示器内显示(例如,木偶操纵)。
一旦背景帧引擎306捕获到背景帧314,自我图像捕获系统300(B)可以启动姿势捕获模式,其中化身引擎304可以捕获用户姿势312。在某些情况下,化身引擎304可以可选地输出指令,其中指令指导用户采取期望的姿势获得自我图像。在某些示例中,期望的姿势可以包括现实世界环境中的期望的3D位置(例如,以便于在背景帧314内的对应位置中渲染化身318)。在处于姿势捕获模式时,化身引擎304可以检测用于指导化身引擎304捕获用户姿势312的用户输入。基于用户姿势312,化身引擎304可以生成(例如,木偶操纵)化身318。例如,化身引擎304可以将用户姿势312(以及用户的一个或多个图像)提供给机器学习模型,其中机器学习模型经过训练以生成反映用户姿势的化身。在说明性示例中,化身引擎304(B)可以基于用户姿势312生成化身318(B)。一旦化身引擎304生成化身318(例如,化身318(B)),合成引擎308可以通过将化身318叠加到背景帧314上来生成自我图像帧316。例如,合成引擎308可以在背景帧314内与用户姿势312的3D位置相对应的位置处渲染化身318。
在某些情况下,当自我图像捕获系统300(B)处于姿势捕获模式时(例如,在用户姿势312被捕获前,当用户在围绕现实世界环境移动时),化身引擎304(A)可以在XR设备的显示器内渲染化身318(A)。例如,化身引擎304可以基于用户姿势的变化来(例如,实时或近似实时地)动态地更新化身318(A)。用户姿势的变化可以包括用户在现实世界环境中的3D位置的变化和/或用户的物理外观的变化(例如,用户的表情、手势、肢体方位等)。化身引擎304(A)可以在显示背景帧314的预览窗口内显示化身318(A)。例如,化身引擎304(A)可以在XR设备的显示器内显示预览窗口,并且随着用户围绕现实世界环境移动而更新化身318(A)。在某些情况下,化身318(A)的版本可以是“头部锁定”的(例如,与由自我图像捕获系统300(A)生成的化身318(A)的“世界锁定”版本相反)。在一个示例中,头部锁定的化身可以通过使用户选择适合于先前选择的背景帧314的用户姿势来促进精确的自我图像合成。
图4E示出了包括预览窗口414的示例帧410。预览窗口414可以显示(静态)背景帧314和动态更新的化身318(A)。例如,随着用户的姿势改变(例如,由于用户在现实世界环境中的移动),化身引擎304(A)可以更新预览窗口414内的化身318(A)以进行变化。当显示化身318(A)时,化身引擎304(B)可以检测用户输入,其中用户输入用于指导化身引擎304(B)捕获当前的用户姿势(例如,对应于用户姿势312)。基于接收到此类用户输入,化身引擎304(B)可以基于用户姿势312生成(例如,木偶操纵)化身318(B)。图4F示出了示例帧412,其中一旦化身引擎304(B)基于用户姿势312生成化身318(B),示例帧412就对应于由合成引擎308生成的自我图像帧316。如上所述,化身318(A)可以对应于化身318的低保真度版本,并且化身318(B)可以对应于化身318的高保真度版本。例如,化身引擎304(A)可以使用本地和/或低保真度机器学习算法生成化身318(A),并且化身引擎304(B)可以使用远程和/或高保真度机器学习算法生成和/或获得化身318(B)。自我图像捕获系统300(B)可以使用任何合适的机器学习算法来生成任何类型或数量的化身。
如上所述,自我图像捕获系统300(A)和300(B)可以实施用于在XR环境中自我图像捕获的各种串行化过程。这些自我图像捕获系统可以使HMD和其他设备(诸如手机的前置摄像头)生成自然和逼真的自我图像,其中设备没有为自我图像捕获而设计的机制。此外,通过在不同时间点捕获用户的姿势和背景帧,所公开的自我图像捕获系统可以使用户能够精确地定制和/或优化自我图像的合成。
如上所述,在某些情况下,所公开的自我图像捕获技术和系统可用于生成自我视频。自我图像捕获系统300(A)和自我图像捕获系统300(B)都可以用来生成自我视频。图5A是的示例过程500(A)的流程图,其中自我视频捕获可以由自我图像捕获系统300(A)执行。在操作502处,过程500(A)可以包括自我视频启动。例如,自我图像捕获系统300(A)可以检测与自我视频模式的启动相对应的用户输入。在操作504处,过程500(A)可以包括开始记录用户的姿势。例如,自我图像捕获系统300(A)可以使用XR设备的内置摄像头和/或外置摄像头来捕获一个或多个帧。自我图像捕获系统300(A)可以生成(例如,木偶操纵)多个化身(例如,一系列化身),化身对应于所有或部分捕获的帧所指示的用户的姿势。在操作506处,自我图像捕获系统300(A)可以停止记录用户的姿势。自我图像捕获系统300(A)可以在操作504和操作506之间记录与用户的姿势相关联的任意数量的帧。在一个示例中,自我图像捕获系统300(A)可以记录预定数量的帧(例如,10帧、50帧等)和/或记录用于预定时间量(例如,2秒、5秒等)的帧。在另一个示例中,自我图像捕获系统300(A)可以记录帧直到检测到用于指导自我图像捕获系统300(A)停止记录的用户输入。
在操作508处,过程500(A)可以包括开始记录一个或多个背景帧(例如,使用XR设备的前置摄像头)。在操作510处,自我图像捕获系统300(A)可以停止记录背景帧。自我图像捕获系统300(A)可以在操作508和操作510之间记录任意数量的背景帧。在一个示例中,自我图像捕获系统300(A)可以记录大量的帧,帧的数量与记录帧的数量(例如,在操作504处,记录的帧的数量)相对应,记录帧与用户的姿势相关联。例如,在与用户的姿势相关联的记录帧相对应的时间量之后,用于记录背景帧的记录过程可以自动终止(例如,超时)。在另一个示例中,自我图像捕获系统300(A)可以记录单个背景帧。在此示例中,单个背景帧可以对应于自我视频的静态背景。在操作512处,过程500(A)可以包括自我视频合成。例如,自我图像捕获系统300(A)可以将多个化身叠加在一个或多个背景帧上。
图5B是用于自我视频捕获的示例过程500(B)的流程图,其中自我视频捕获可以由自我图像捕获系统300(B)执行。在操作514处,过程500(B)可以包括自我视频启动。例如,自我图像捕获系统300(B)可以检测与自我视频模式的启动相对应的用户输入。在操作516处,过程500(B)可以包括开始记录一个或多个背景帧(例如,使用XR设备的前置摄像头)。在操作518,自我图像捕获系统300(B)可以停止记录背景帧。自我图像捕获系统300(B)可以在操作516和操作518之间记录任意数量的背景帧。在一个示例中,自我图像捕获系统300(B)可以记录预定数量的背景帧和/或记录背景帧达预定时间量。在另一个示例中,自我图像捕获系统300(B)可以记录背景帧,直到检测到指导自我图像捕获系统300(A)停止记录的用户输入。
在操作520处,过程500(B)可以包括开始记录用户的姿势。例如,自我图像捕获系统300(B)可以使用XR设备的内置摄像头和/或外置摄像头来捕获一个或多个帧。自我图像捕获系统300(B)可以生成(例如,木偶操纵)多个化身,化身对应于所有或部分捕获的帧所指示的用户的姿势。在操作522处,自我图像捕获系统300(B)可以停止记录与用户的姿势相关联的帧。自我图像捕获系统300(B)可以记录与用户的姿势相关联的任意数量的帧。在一个示例中,自我图像捕获系统300(B)可以记录与记录的背景帧的数量相对应的大量的帧。例如,在与记录背景帧相对应的时间量之后,用于记录用户的姿势的记录过程可以自动终止(例如,超时)。在操作524处,过程500(B)可以包括自我视频合成。例如,自我图像捕获系统300(B)可以将多个化身叠加在一个或多个背景帧上。
在某些情况下,所公开的用于在XR环境中进行自我图像捕获的技术和系统可用于生成包括多人的自我图像或自我视频。自我图像捕获系统300(A)和自我图像捕获系统300(B)都可以用来生成包括多人的自我图像或自我视频。图6A是用于多用户自我图像捕获的示例过程600(A)的流程图,其中多用户自我图像捕获可以由自我图像捕获系统300(A)执行。在操作602处,过程600(A)可以包括多用户自我图像启动。例如,自我图像捕获系统300(A)可以检测与多用户自我图像捕获模式的启动相对应的用户输入。在操作604,过程600(A)可以包括基于捕获的用户姿势生成化身。例如,自我图像捕获系统300(A)可以木偶操纵与佩戴XR设备的用户的当前姿势相对应的化身。在某些情况下,当用户与一个或多个其他人合影以包括在多用户自我图像中时,自我图像捕获系统300(A)可以捕获用户的姿势。
在操作606处,过程600(A)可以包括获得对应于附加人物的化身数据。例如,自我图像捕获系统300(A)(在用户佩戴的XR设备上实施)可以向一个或多个附近的XR设备发送请求,以接收与将被包括在多用户自我图像中的任何其他人的化身相关联的数据。在一个示例中,自我图像捕获系统300(A)可以向自我图像捕获系统300(A)的广播范围内的任何XR设备广播请求。在另一个示例中,自我图像捕获系统300(A)可以将特定的请求发送到已知与一个或多个人物相关联的XR设备,以包括在多用户自我图像中。例如,自我图像捕获系统300(A)可以基于用户输入向特定XR设备发送请求,和/或向自我图像捕获系统300(A)先前已与之通信和/或连接的XR设备发送请求。
在一个示例中,自我图像捕获系统300(A)请求的化身数据可以包括对应于一个或多个其他人物的化身,以包括在多用户自我图像内。例如,自我图像捕获系统300(A)可以促使在XR设备上实施的自我图像捕获系统生成对应于一个或多个其他人物的捕获姿势的化身,其中XR设备与一个或多个人物相关联。在另一个示例中,化身数据可以包括数据,数据使自我图像捕获系统300(A)能够生成对应于一个或多个其他人物的化身。例如,化身数据可以包括关于一个或多个其他人物的捕获姿势相关的信息。化身数据还可以包括经过训练以生成一个或多个其他人物的化身的机器学习模型(例如,化身条件网络)。在某些情况下,可以使用一个或多个其他人物的一个或多个图像(例如全身图像)来训练模型。值得注意的是,在某些情况下,要包括在多用户自我图像中的人物(或多人)可能没有佩戴和/或与配置为生成化身的XR设备相关联。在这些情况下,自我图像捕获系统300(A)可能无法获得与对应于人物的化身相关联的数据。
在操作608处,过程600(A)可以包括捕获背景帧。例如,自我图像捕获系统300(A)可以检测用户输入,用户输入用于指导自我图像捕获系统300(A)来捕获与XR设备的当前FOV相对应的背景帧。在一个示例中,背景帧可以包括对应于一个或多个其他人物的图像数据,以包括在多用户自我图像内。例如,当一个或多个其他人物保持静止时,用户可以在现实世界环境中移动。一旦用户确定XR设备的当前FOV适合于背景帧(例如,基于包括一个或多个其他人物的当前FOV),用户可以提供输入,其中输入用于指导自我图像捕获系统300(A)捕获背景帧。
在操作610处,过程600(A)可以包括多用户自我图像合成。在自我图像捕获系统300(A)接收一个或多个人物的化身(例如,先前生成的化身)的示例中,自我图像捕获系统300(A)可以将化身(以及用户的化身)叠加在背景帧上。例如,自我图像捕获系统300(A)可以用适当的化身替换对应于一个或多个其他人物的图像数据。在自我图像捕获系统300(A)接收机器学习模型的示例中,机器学习模型被训练以生成一个或多个其他人物的化身,自我图像捕获系统300(A)可以使用模型渲染在背景帧内对应于一个或多个其他人物的化身。
例如,图6C是多用户自我图像捕获系统622的框图。多用户自我图像捕获系统622可以接收用户姿势630(1)-(N),其对应于一个或多个其他人物的捕获的用户姿势。多用户自我图像捕获系统622还可以接收化身网络624(1)-624(N),其对应于被训练以生成一个或多个其他人物的化身的机器学习模型(例如,机器学习模型的模型文件)。基于用户姿势630(1)-(N),多用户自我图像捕获系统622可以实施化身网络624(1)-624(N)以生成对应于一个或多个其他人物的化身。生成的化身可以被输入到自我图像生成器626,自我图像生成器对应于机器学习模型,机器学习模型被训练以在背景帧内渲染一个或多个化身。自我图像生成器626可以生成多用户自我图像628,其包括对应于用户和一个或多个其他人物的化身。在某些情况下,自我图像生成器626可以确保化身在多用户自我图像628内是全局一致的和/或内聚的。例如,自我图像生成器626可以标准化化身的灯光、颜色和/或其他视觉特征。在某些情况下,自我图像生成器628还可以去除在背景帧中可见的任何可能遮掩化身的部分的遮挡物。此外,自我图像生成器626可以确保一个或多个人物佩戴的XR设备不在多用户自我图像628内描绘。在将包括在多用户自我图像628内的人物(或多个人物)不与XR设备和/或化身相关联的示例中,多用户自我图像捕获系统622可以使背景帧内与人物对应的图像数据保持不变。
图6B是用于多用户自我图像捕获的示例过程600(B)的流程图,其中多用户自我图像捕获可以由自我图像捕获系统300(B)执行。在操作612处,过程600(B)可以包括多用户自我图像启动。例如,自我图像捕获系统300(B)可以检测与多用户自我图像捕获模式的启动相对应的用户输入。在操作614处,过程600(B)可以包括捕获背景帧。例如,自我图像捕获系统300(B)可以检测用户输入,用户输入用于指导自我图像捕获系统300(B)来捕获与XR设备的当前FOV相对应的背景帧。在某些示例中,背景帧可以不包括对应于一个或多个人物的图像数据,以包括在多用户自我图像内。例如,用户与一个或多个其他人物为了实现多用户自我图像而合影前,自我图像捕获系统300(B)可以捕获背景帧。在操作616处,过程600(B)可以包括基于捕获的用户姿势生成化身。例如,自我图像捕获系统300(B)可以检测用户输入,用户输入用于指导自我图像捕获系统300(B)来捕获用户的姿势(例如,一旦用户和一个或多个其他人物已经合影)。自我图像捕获系统300(B)可以木偶操纵与佩戴XR设备的用户的当前姿势相对应的化身。
在操作618处,过程600(B)可以包括获得对应于一个或多个其他人物的化身数据。例如,自我图像捕获系统300(B)(在用户的XR设备上实施)可以向一个或多个附近的XR设备发送请求,以接收一个或多个其他人物的化身。在另一个示例中,自我图像捕获系统300(B)可以发送请求以接收数据,数据使自我图像捕获系统300(B)能够生成一个或多个其他人物的化身。例如,自我图像捕获系统300(B)可以发送请求以接收机器学习模型,机器学习模型被训练为生成一个或多个其他人物的化身(诸如图6C中所示的化身网络624(1)-(N))。在某些情况下,自我图像捕获系统300(B)可以按照以下方式中的任何一种向附近的XR设备发送请求,方式与自我图像捕获系统300(A)在过程600(A)的操作606处执行的方式相同。在操作620处,过程600(B)可以执行多用户自我图像合成。在自我图像捕获系统300(B)接收一个或多个人物的化身(例如,先前生成的化身)的示例中,自我图像捕获系统300(B)可以将化身(以及用户的化身)叠加在背景帧上。在自我图像捕获系统300(B)接收机器学习模型的示例中,机器学习模型被训练以生成一个或多个其他人物的化身,自我图像捕获系统300(B)可以使用模型渲染在背景帧内对应于一个或多个其他人物的化身。例如,自我图像捕获系统300(B)可以将模型生成的化身输入到图6C所示的自我图像生成器626中。
图7是示出用于在扩展现实环境中进行自我图像捕获的示例过程700的流程图。为了清楚起见,过程700是参照图3A和图3B所示的自我图像捕获系统300(A)和300(B)来描述的。本文概述的步骤或操作是示例并且可以以其任何组合来实施,包括排除、添加或修改某些步骤或操作的组合。
在操作702处,过程700包括捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置。在某些示例中,化身引擎304可以至少部分地基于图像数据来捕获用户的姿势,图像数据是由扩展现实系统的内置摄像头系统捕获的。此外,化身引擎304可以至少部分地基于确定用户的表情和/或确定用户的手势来捕获用户的姿势。在一个示例中,化身引擎304可以至少部分地基于生成现实世界环境的三维地图来确定用户在现实世界环境内的位置。
在操作704处,过程700包括生成用户的数字表示,用户的数字表示反映了用户的姿势。在某些示例中,过程700可以生成用户的第一数字表示和用户的第二数字表示。在某些情况下,与用户的第一数字表示相比,用户的第二数字表示可以是用户的更高保真度的数字表示。例如,过程700可以包括生成或获得具有第一保真度的第一数字表示,以及生成或获得具有第二保真度的第二数字表示(第二保真度高于第一保真度)。在某些方面,用户的第一数字表示可以对应于用户的预览数字表示,预览数字表示可以显示给用户以便于捕获用户的期望背景帧和/或姿势。在某些方面,用户的第二数字表示可以对应于用户的最终数字表示。
在某些示例中,化身引擎304可以使用机器学习算法来生成用户的数字表示。例如,在某些情况下,化身引擎304可以基于第一机器学习算法来生成用户的第一数字表示。化身引擎304可以基于第二机器学习算法来生成用户的第二数字表示。在某些情况下,化身引擎304可以基于在扩展现实系统上实施第一机器学习算法来生成用户的第一数字表示。在某些情况下,通过使服务器使用第二机器学习算法来生成用户的第二数字表示,化身引擎304可以获得用户的第二数字表示,其中服务器被配置为生成用户的数字表示。
在操作706处,方法700包括捕获现实世界环境的一个或多个帧。在某些示例中,背景帧引擎306可以使用扩展现实系统的外置摄像头系统来捕获现实世界环境的一个或多个帧。在一个示例中,可以在操作702和/或操作704之后执行操作706。例如,在背景帧引擎306捕获现实世界环境的一个或多个帧之前,化身引擎304可以生成用户的数字表示。在示例中,化身引擎304可以在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中通过显示器,现实世界环境是可见的。在某些示例中,化身引擎304可以使用捕获的用户的姿势(在操作702捕获的)来显示用户的数字表示。当用户的数字表示显示在扩展现实系统的显示器内时,背景帧引擎306可以检测与指令相对应的用户输入以便捕获现实世界环境的一个或多个帧。然后背景帧引擎306可以基于用户输入捕获现实世界环境的一个或多个帧。在一个示例中,在背景帧引擎306捕获现实世界环境的一个或多个帧之前,化身引擎304可以在扩展现实系统的显示器内显示用户的第一(例如,预览)数字表示。化身引擎304可以基于正在被捕获的现实世界环境的一个或多个帧和/或基于用户在一个或多个帧中的姿势来生成用户的第二(例如,最终)数字表示。
在另一个示例中,可以在操作702和/或操作704之前执行操作706。例如,在化身引擎304捕获用户的姿势之前,背景帧引擎306可以捕获现实世界环境的一个或多个帧。在示例中,化身引擎304可以在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中,现实世界环境的一个或多个帧显示在显示器上。在某些示例中,化身引擎304可以使用用户的当前姿势来显示用户的数字表示。化身引擎304可以基于检测到用户在现实世界环境内的位置的变化来更新用户的数字表示的显示位置。当用户的数字表示在扩展现实系统的显示器内显示时,化身引擎304可以检测与指令相对应的用户输入,指令是要捕获用户的姿势。然后化身引擎304可以基于用户输入捕获用户的姿势。在一个示例中,在捕获用户的姿势之前,化身引擎304可以在扩展现实系统的显示器内显示用户的第一(例如,预览)数字表示。化身引擎304可以基于正在被捕获的现实世界环境的一个或多个帧和/或基于正在被捕获的用户的姿势来生成用户的第二(例如,最终)数字表示。
在操作708处,过程700包括将用户的数字表示叠加到现实世界环境的一个或多个帧上。在某些示例中,合成引擎308可以在对应于用户在现实世界环境内的位置的帧位置中将用户的数字表示叠加到现实世界环境的一个或多个帧上。在一个示例中,合成引擎308可以使用机器学习算法将用户的数字表示叠加到现实世界环境的一个或多个帧上。机器学习算法可以不同于化身引擎304用来生成用户的数字表示的机器学习算法。
在某些示例中,过程700可以包括在现实世界环境中捕获人物的姿势并生成人物的数字表示。人物的数字表示可以反映人物的姿势。过程700还可以包括将用户的数字表示和人物的数字表示叠加到现实世界环境的一个或多个帧上。在一个示例中,化身引擎304可以至少部分地基于与人物的数字表示相关联的信息来生成人物的数字表示,其中人物的数字表示是从人物的扩展现实系统接收到的。与人物的数字表示相关联的信息可以包括被训练以生成人物的数字表示的机器学习模型。
在进一步的示例中,过程700可以包括捕获用户的、与多个帧相关联的多个姿势,并且生成与多个帧相对应的用户的多个数字表示。过程700还可以包括将用户的多个数字表示叠加到现实世界环境的一个或多个帧上,现实世界环境的一个或多个帧包括现实世界环境的多帧。
在某些示例中,过程500(A)、500(B)、600(A)、600(B)、700和/或在此描述的其他过程可以由一个或多个计算设备或装置来执行。在某些示例中,过程500(A)、500(B)、600(A)、600(B)、700和/或在此描述的其他过程可以由图2所示的扩展现实系统200、图3A所示的自我图像捕获系统300(A)、图3B所示的自我图像捕获系统300(B)、图6C所示的多用户自我图像捕获系统622和/或具有图1000所示的计算设备架构1000的一个或多个计算设备来执行。在某些情况下,此类计算设备或装置可以包括处理器、微处理器、微型计算机、或被配置为执行过程500(A)、500(B)、600(A)、600(B)、700的步骤的设备的其他组件。在某些示例中,此类计算设备或装置可以包括一个或多个被配置为捕获图像数据的传感器。例如,计算设备可以包括智能手机、摄像头、头戴式显示器、移动设备、或其他合适的设备。在某些示例中,此类计算设备或装置可以包括被配置为捕获一个或多个图像或视频的摄像头。在某些情况下,此类计算设备可以包括用于显示图像的显示器。在某些示例中,一个或多个传感器和/或摄像头与计算设备分离,在这种情况下计算设备接收感测数据。此类计算设备还可以包括被配置为传达数据的网络接口。
计算设备的组件可以在电路中实施。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实施,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理器(GPU)、数字信号处理器(DSP)、中央处理器(CPU)和/或其他合适的电子电路),和/或可以包括和/或使用计算机软件、固件或其任何组合来实施,以执行在此描述的各种操作。计算设备还可以包括显示器(作为输出设备的示例或除了输出设备之外)、被配置为传达和/或接收数据的网络接口、其任何组合、和/或其他组件。网络接口可以被配置为传达和/或接收基于互联网协议(IP)的数据或其他类型的数据。
过程500(A)、500(B)、600(A)、600(B)、700被示出为逻辑流程图,其操作表示可以在硬件、计算机指令、或其组合中实施的操作的顺序。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,计算机可执行指令执行所述操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的描述的操作可以以任何顺序和/或并行组合以实施过程。
此外,在此描述的过程500(A)、500(B)、600(A)、600(B)、700和/或其他过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以由硬件或其组合实施为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。如上所述,代码可以存储在计算机可读或机器可读存储介质上,例如,以包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂时性的。
图8是可由光估计器使用的深度学习神经网络800的说明性示例。输入层820包括输入数据。在一个说明性示例中,输入层820可以包括表示输入帧的像素的数据。神经网络800包括多个隐藏层822a、822b到822n。隐藏层822a、822b到822n包括“n”个隐藏层,其中“n”是大于或等于1的整数。隐藏层的数量可以包含给定应用所需的尽可能多的层。神经网络800还包括输出层824,其提供由隐藏层822a、822b到822n执行处理产生的输出。在一个说明性示例中,输出层824可以提供与给一帧提供灯光相关联的光估计。光估计可以包括灯光参数和/或潜在特征向量。
神经网络800是互连节点的多层神经网络。每个节点可以表示一条信息。与节点相关联的信息在不同层之间共享,并且每层在处理信息时保留信息。在某些情况下,神经网络800可以包括前馈网络,在这种情况下,没有反馈连接,其中网络的输出被反馈回其自身。在某些情况下,神经网络800可以包括循环神经网络,循环神经网络可以具有允许在读入输入时跨节点载运信息的循环。
通过各个层之间的节点到节点互连,可以在节点之间交换信息。输入层820的节点可以激活第一隐藏层822a中的一组节点。例如,如图所示,输入层820的输入节点中的每一个都连接到第一隐藏层822a的节点中的每一个。隐藏层822a、822b到822n的节点可以通过将激活函数应用于这些信息来转换每个输入节点的信息。从转换得到的信息然后可以被传递到并且可以激活下一个隐藏层822b的节点,隐藏层822b可以执行它们自己的指定功能。示例函数包括卷积、上采样、数据转换和/或任何其他合适的函数。然后隐藏层822b的输出可以激活下一个隐藏层的节点,以此类推。最后一个隐藏层822n的输出可以激活输出层824的一个或多个节点,在节点处提供输出。在某些情况下,虽然神经网络800中的节点(例如,节点826)被显示为具有多个输出线,但节点具有单个输出并且所有被显示为从节点输出的线表示相同的输出值。
在某些情况下,每个节点或节点之间的互连可以具有权重,权重是从神经网络800的训练导出的一组参数。一旦神经网络800被训练,它就可以被称为训练的神经网络,它可以用来对一个或多个对象进行分类。例如,节点之间的互连可以表示一条关于互连节点的信息。互连可以具有可调数字权重,可调数字权重可以(例如,基于训练数据集)调整,允许神经网络800适应输入并且能够随着越来越多的数据被处理而学习。
神经网络800被预训练以使用不同的隐藏层822a、822b到822n来处理来自输入层820中的数据的特征,以便通过输出层824提供输出。在神经网络800用于标识图像中的对象的示例中,可以使用包括图像和标签的训练数据来训练神经网络800。例如,可以将训练图像输入到网络中,每个训练图像都有一个标签,指示每个图像中一个或多个对象的类别(基本上,向网络指示对象是什么以及它们具有什么特征)。在一个说明性示例中,训练图像可以包括数字2的图像,在这种情况下,图像的标签可以是[0 0 1 0 0 0 0 0 0 0]。
在某些情况下,神经网络800可以使用称为反向传播的训练过程来调整节点的权重。反向传播可以包括前向传递、损失函数、后向传递和权重更新。前向传递、损失函数、后向传递和参数更新在一次训练迭代中执行。对于每组训练图像,过程可以重复一定次数的迭代,直到神经网络800被训练得足够好,使得层的权重被准确地调整。
对于标识图像中的对象的示例,前向传递可以包括使训练图像通过神经网络800传递。在训练神经网络800之前,权重最初是随机化的。图像可以包括例如表示图像像素的数字阵列。阵列中的每个数字都可以包含一个从0到255的值,用于描述阵列中位置的像素强度。在一个示例中,阵列可以包括具有28行和28列像素和3个颜色分量(诸如红色、绿色和蓝色,或亮度和两个色度分量等)的28×28×3数字阵列。
对于神经网络800的第一训练迭代,由于在初始化时随机选择权重,输出将可能包括不优先于任何特定类别的值。例如,如果输出是向量,其中向量具有对象包括不同类别的概率,则不同类别中的每一个的概率值可能相等或至少非常相似(例如,对于十个可能的类别,每个类别可能具有概率值0.1)。使用初始权重,神经网络800无法确定低级特征,因此无法准确确定对象的分类可能是什么。损失函数可用于分析输出中的误差。可以使用任何合适的损失函数定义。损失函数的一个示例包括均方误差(MSE)。MSE定义为 它计算实际答案乘以二分之一后再减去预测(输出)答案的平方的总和。损失可以设置为等于E总的值。
第一训练图像的损失(或误差)会很高,因为实际值将与预测输出有很大不同。训练的目标是最小化损失量,使预测输出与训练标签相同。神经网络800可以通过确定哪些输入(权重)对网络的损失贡献最大来执行后向传递,并且可以调整权重以使损失减少并最终最小化。
可以计算损失相对于权重的导数(表示为dL/dW,其中W是特定层的权重)以确定对网络损失贡献最大的权重。在计算出导数之后,可以通过更新滤波器的所有权重来执行权重更新。例如,可以更新权重,以便它们在梯度的相反方向上变化。权重更新可以表示为其中w表示权重,wi表示初始权重,并且η表示学习率。学习率可以被设置为任何合适的值,高学习率包括较大的权重更新,并且较低的值表示较小的权重更新。
神经网络800可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层和输出层之间具有多个隐藏层。下面参考图8描述CNN的示例。CNN的隐藏层包括一系列卷积层、非线性层、池化(用于下采样)层和全连接层。神经网络800可以包括除CNN之外的任何其他深度网络,诸如自动编码器、深度置信网络(DBN)、循环神经网络(RNN)等。
图9是卷积神经网络900(CNN 900)的说明性示例。CNN 900的输入层920包括表示图像的数据。例如,数据可以包括表示图像像素的数字阵列,阵列中的每个数字包括从0到255的值,描述阵列中位置的像素强度。使用从上述获得的前述示例,阵列可以包括具有28行和28列像素和3个颜色分量(例如红色、绿色和蓝色,或亮度和两个色度分量等)的28×28×3数字阵列。图像可以通过卷积隐藏层922a、可选的非线性激活层、池化隐藏层922b和全连接隐藏层922c以在输出层924处获得输出。虽然所有隐藏层中只有一个在图9中显示,普通技术人员将理解多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层都可以包括在CNN 900中。如前所述,输出可以指示对象的单个类别,或者可以包括最能描述图像中对象的类别的概率。
CNN 900的第一层是卷积隐藏层922a。卷积隐藏层922a分析输入层920的图像数据。卷积隐藏层922a的每个节点都连接到输入图像的节点(像素)区域,称为感受域。卷积隐藏层922a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征图),滤波器的每个卷积迭代是卷积隐藏层922a的节点或神经元。例如,滤波器在每次卷积迭代中覆盖的输入图像区域将是滤波器的感受域。在一个说明性示例中,如果输入图像包括一个28×28阵列,并且每个滤波器(和相应的感受域)是一个5×5阵列,那么在卷积隐藏层922a中将有24×24节点。节点和节点的感受域之间的每个连接都会学习权重,并且在某些情况下,还会学习整体偏差,以便每个节点学习分析其在输入图像中的特定局部感受域。隐藏层922a的每个节点都将具有相同的权重和偏差(称为共享权重和共享偏差)。例如,滤波器有一个权重阵列(数字)和与输入相同的深度。对于视频帧示例,滤波器的深度为3(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例大小是5×5×3,对应于节点的感受域的大小。
卷积隐藏层922a的卷积性质是由于卷积层的每个节点被应用于其对应的感受域。例如,卷积隐藏层922a的滤波器可以从输入图像阵列的左上角开始并且可以围绕输入图像进行卷积。如上所述,滤波器的每次卷积迭代可以被认为是卷积隐藏层922a的节点或神经元。在每次卷积迭代中,滤波器的值与图像的相应数量的原始像素值相乘(例如,5×5滤波器阵列乘以输入图像阵列左上角的5×5输入像素值阵列)。每次卷积迭代的乘积都可以加在一起以获得迭代或节点的总和。过程接下来根据卷积隐藏层922a中下一个节点的感受域在输入图像中的下一个位置继续。例如,一个滤波器可以移动一个等级数到下一个感受域。等级数可以设置为1或其他合适的量。例如,如果等级数设置为1,则在每次卷积迭代时,滤波器将向右移动1个像素。在输入体积的每个唯一位置处处理滤波器产生表示位置的滤波结果的数字,导致为卷积隐藏层922a的每个节点确定总和值。
从输入层到卷积隐藏层922a的映射被称为激活图(或特征图)。激活图包括每个节点的值,表示输入体积的每个位置处的滤波结果。激活图可以包括一个阵列,阵列包括从输入体积上的滤波器的每次迭代产生的各种总和值。例如,如果将5×5滤波器应用于28×28输入图像的每个像素(等级数为1),则激活图将包括24×24阵列。卷积隐藏层922a可以包括几个激活图以便标识图像中的多个特征。如图9所示的示例包括三个激活图。使用三个激活图,卷积隐藏层922a可以检测三种不同类型的特征,每个特征都可以在整个图像中检测到。
在某些示例中,可以在卷积隐藏层922a之后应用非线性隐藏层。非线性层可用于将非线性引入一直在计算线性运算的系统。非线性层的一个说明性示例是整流线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入体积中的所有值,这会将所有负激活变为0。ReLU因此可以增加网络900的非线性特性而不影响卷积隐藏层922a的感受域。
池化隐藏层922b可以应用在卷积隐藏层922a之后(并且在使用时在非线性隐藏层之后)。池化隐藏层922b用于简化来自卷积隐藏层922a的输出中的信息。例如,池化隐藏层922b可以获取从卷积隐藏层922a输出的每个激活图,并使用池化函数生成压缩的激活图(或特征图)。最大池化是池化隐藏层执行的函数的一个示例。池化隐藏层922a使用其他形式的池化函数,诸如平均池化、L2-范数池化或其他合适的池化函数。池化函数(例如,最大池化滤波器、L2-范数滤波器或其他合适的池化滤波器)被应用于卷积隐藏层922a中包括的每个激活图。在图9所示的示例中,三个池化滤波器用于卷积隐藏层922a中的三个激活图。
在某些示例中,可以通过应用具有等级数(例如,等于滤波器的维度,诸如等级数为2)的最大池化滤波器(例如,具有2×2的大小)来使用最大池化从卷积隐藏层922a输出的激活图。最大池化滤波器的输出包括滤波器到处卷积的每个子区域中的最大数量。以2×2滤波器为例,池化层中的每个单元都可以汇总上一层中2×2节点的区域(每个节点是激活图中的一个值)。例如,激活图中的四个值(节点)将在滤波器的每次迭代中由2×2最大池化滤波器分析,四个值中的最大值作为“最大值”输出。如果将这种最大池化滤波器应用于来自卷积隐藏层922a的具有24×24节点维度的激活滤波器,则池化隐藏层922b的输出将是12×12节点的阵列。
在某些示例中,还可以使用L2-范数池化滤波器。L2-范数池化滤波器包括计算激活图的2×2区域(或其他合适区域)中值的平方和的平方根(而不是像在最大池化中那样计算最大值),并使用计算值作为输出。
直观地说,池化函数(例如,最大池化、L2-范数池化或其他池化函数)确定是否在图像区域的任何位置找到给定特征,并丢弃确切的方位信息。这可以在不影响特征检测结果的情况下完成,因为一旦找到特征,特征的确切位置就不如其相对于其他特征的大致位置重要。最大池化(以及其他池化方法)提供的好处是池化特征更少,从而减少了CNN 900后续层所需的参数数量。
网络中的连接的最后一层是全连接层,它将池化隐藏层922b中的每个节点连接到输出层924的输出节点中的每一个。使用上面的示例,输入层包括28×28节点,节点编码输入图像的像素强度。基于(用于滤波器)5×5局部感受域到三个激活图的应用,卷积隐藏层922a包括3×24×24隐藏特征节点。并且基于最大池滤波器到三个特征图中的每一个的2×2区域的应用,池化层922b包括一个3×12×12隐藏特征节点的层。扩展这个示例,输出层924可以包括十个输出节点。在这样的示例中,3×12×12池化隐藏层922b的每个节点都连接到输出层924的每个节点。
全连接层922c可以获得前一个池化层922b的输出(它应表示高级特征的激活图),并确定与特定类别最相关的特征。例如,全连接层922c层可以确定与特定类别最密切相关的高级特征,并且可以包括高级特征的权重(节点)。可以计算全连接层922c和池化隐藏层922b的权重之间的乘积,以获得不同类别的概率。例如,如果CNN 900被用于预测视频帧中的对象是人物,则表示人物的高级特征的激活图中将出现高值(例如,呈现两条腿、一张脸呈现于对象的顶部,两只眼睛呈现于脸部的左上角和右上角,鼻子呈现于脸部中间,嘴巴呈现于脸部底部,和/或人物的其他共同特征)。
在某些示例中,来自输出层924的输出可以包括M维向量(在之前的示例中,M=10),其中M可以包括程序在将图像中的对象分类时必须从中选择的类别的数量。也可以提供其他示例输出。M维向量中的每个数字都可以表示对象属于某一类的概率。在一个说明性示例中,如果表示十个不同类别对象的10维输出向量为[0 0 0.05 0.8 0 0.15 0 0 0 0],则向量表示图像有5%的概率是第三类别对象(例如,狗),有80%的概率是第四类别对象(例如,人物),并且有15%的概率是第六类别对象(例如,袋鼠)。一个类别的概率可以被认为是对象是类别的一部分的置信水平。
图10是示出用于实施本发明技术的某些方面的系统的示例的图。特别地,图10示出了计算系统1000的示例,其可以是例如构成内部计算系统的任何计算设备、远程计算系统、摄像头或其任何组件,其中系统的组件使用连接1005彼此通信。连接1005可以是使用总线的物理连接,或者是到处理器1010的直接连接,诸如在芯片组架构中。连接1005也可以是虚拟连接、网络连接或逻辑连接。
在某些示例中,计算系统1000是分布式系统,其中本公开中描述的功能可以分布在数据中心、多个数据中心、对等网络等内部。在某些示例中,所描述的系统组件中的一个或多个表示许多此类组件各自执行描述组件的部分或全部功能。在某些情况下,组件可以是物理或虚拟设备。
示例系统1000包括至少一个处理器(CPU或处理器)1010和将各种系统组件耦合到处理器1010的连接1005,其中系统组件包括系统存储器1015,诸如只读存储器(ROM)1020和随机存取存储器(RAM)1025)。计算系统1000可以包括高速存储器的高速缓存1012,高速存储器与处理器1010直接连接、靠近或集成为处理器1010的一部分。
处理器1010可以包括任何通用处理器和硬件服务或软件服务,诸如存储在存储设备1030中的服务1032、1034和1036,被配置为控制处理器1010以及专用处理器,其中软件指令被并入到实际的处理器设计。处理器1010本质上可以是完全独立的计算系统,包含多个内核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
为了实现用户交互,计算系统1000包括输入设备1045,其可以表示任意数量的输入机制,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、手势输入、语音等。计算系统1000还可以包括输出设备1035,其可以是多个输出机制中的一个或多个。在某些情况下,多模式系统可以使用户提供多种类型的输入/输出以与计算系统1000进行通信。计算系统1000可以包括通信接口1040,其通常可以支配和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发器执行或促进接收和/或传输有线或无线通信,包括使用音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、无线信号传输、/>低能量(BLE)无线信号传输、/>无线信号传输、射频识别(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短距离通信(DSRC)无线信号传输、802.10Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、全球微波接入互操作性(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网络(PSTN)信号传输、综合业务数字网络(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、ad-hoc网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿电磁频谱的无线信号传输,或其某种组合,的通信。通信接口1040还可以包括一个或多个全球导航卫星系统(GNSS)接收器或收发器,其用于基于从一个或多个卫星接收的一个或多个信号来确定计算系统1000的位置,其中卫星与一个或多个GNSS系统相关联。GNSS系统包括但不限于美国的全球定位系统(GPS)、俄罗斯的全球导航卫星系统(GLONASS)、中国的北斗导航卫星系统(BDS)和欧洲的伽利略GNSS。对在任何特定硬件配置上的操作没有限制,因此这里的基本特征可以很容易地替换为改进的硬件或固件配置,因为它们正在开发。
存储设备1030可以是非易失性和/或非暂时性和/或计算机可读存储设备,并且可以是硬盘或可以存储计算机可访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储设备、数字万能光盘、盒式磁带、软磁盘、可折叠磁盘、硬盘、磁带、磁条/道、任何其他磁存储介质、闪存、忆阻器存储器、任何其他固态存储器、光盘只读存储器(CD-ROM)光盘、可重写压缩光盘(CD)光盘、数字视盘(DVD)光盘、蓝光光碟(BDD)光盘、全息光盘、另一种光学介质、安全数字(SD)卡、微型安全数字(microSD)卡、Memory卡、智能卡芯片、EMV芯片、订户身份模块(SIM)卡,迷你/缩微/纳米/微微SIM卡,另一个集成电路(IC)芯片/卡,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存EPROM(FLASHEPROM)、高速缓存存储器(L1/L2/L3/L4/L5/L#)、电阻随机存取存储器(RRAM/ReRAM)、相变存储器(PCM)、自旋转移矩RAM(STT-RAM)、另一种存储芯片或盒式磁带和/或其组合。
存储设备1030可以包括软件服务、服务器、服务等,当处理器1010执行定义此种软件的代码时,它使系统执行功能。在某些示例中,执行特定功能的硬件服务可以包括存储在计算机可读介质中的软件组件,软件组件与诸如处理器1010、连接1005、输出设备1035等必要的硬件组件相结合,以执行功能。
如本文所用,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括非瞬态介质,其中非瞬态介质可以存储数据并且不包括无线或通过有线连接传播的载波和/或瞬态电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如压缩光盘(CD)或数字万能光盘(DVD)之类的光存储介质、闪存、存储器或存储设备。计算机可读介质上可能存储有代码和/或机器可执行指令,它们可以表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类别、或指令、数据结构或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,代码段可以耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以使用包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的方式来传递、转发或传输。
在某些示例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身之类的介质。
在上面的描述中提供了具体细节以提供对此处提供的示例的透彻理解。然而,让本领域普通技术人员容易理解的是,可以在没有这些具体细节的情况下实践示例。为了实现清晰的解释,在某些情况下,本技术可以被呈现为包括单独的功能块,功能块包括在以软件或硬件和软件的组合实施的方法中的设备、设备组件、操作、步骤或例程。可以使用除了图中所示和/或此处描述的那些之外的附加组件。例如,电路、系统、网络、过程和其他组件可以被显示为框图形式的组件,以免在不必要的细节中模糊化示例。在其他示例中,可以示出熟知的电路、处理、算法、结构和技术而没有给出不必要的细节,以避免混淆示例。
上面可以将各个示例描述为描绘为流程图、流程图表、数据流图、结构图或框图的过程或方法。虽然流程图可以将操作描述为序列过程,但很多操作可以并行或并发进行。另外,可以重新安排操作的顺序。一个过程在其操作完成时终止,但可能具有图中未包括的其他操作。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回调用函数或主函数。
根据上述示例的过程和方法可以使用计算机可执行指令来实施,其中计算机可执行指令存储在或以其他方式从计算机可读介质获得。此类指令可以包括,例如,导致或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令,诸如汇编语言、固件、源代码等。根据所述示例,可以用于存储指令,使用的信息和/或在使用方法期间创造的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、网络存储设备等。
实施根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形式因素中的任何一种。当以软件、固件、中间件或微代码实施时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。各种形状因子的典型示例包括膝上型电脑、智能手机、移动电话、平板设备或其他小型个人电脑、个人数字助理、机架式设备、独立设备等。此处描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,此类功能还可以在不同芯片或在单个设备中执行的不同过程之间的电路板上实施。
指令、用于传送此类指令的介质、用于执行它们的计算资源、以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例手段。
在前面的描述中,参考其具体示例描述了本申请的各个方面,但是本领域的技术人员将认识到本申请不限于此。因此,虽然本文已经详细描述了本申请的说明性示例,但是应当理解,本发明构思可以以其他方式不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变化,通过现有技术除非受到限制。上述应用的各种特征和方面可以单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,示例可以在超出在此描述的那些的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。出于说明的目的,以特定顺序描述了方法。应当理解,在替代示例中,可以以与所描述的顺序不同的顺序来执行这些方法。
普通技术人员将理解,在此使用的小于(“<”)和大于(“>”)符号或术语可以分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号,而不脱离本描述的范围。
在组件被描述为“配置为”执行某些操作的情况下,可以通过例如设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如微处理器或其他合适的电子电路)进行编程来实现此类配置以执行操作或其任何组合。
短语“耦合到”是指直接或间接物理连接到另一个组件的任何组件,和/或与另一个组件直接或间接通信的任何组件(例如,通过有线或无线连接,连接到另一个组件,和/或其他合适的通信接口)。
引用一组“至少一个”和/或一组“一个或多个”的权利要求语言或其他语言表示组的一个成员或组的多个成员(以任何组合)满足权利要求。例如,引用“A和B中的至少一个”的权利要求语言是指A、B或A和B。在另一个示例中,引用“A、B和C中的至少一个”的权利要求语言是指A、B、C,或A和B,或A和C,或B和C,或A和B和C。语言一组“至少一个”和/或一组“一个或多个”不将组限制为组中列出的项目。例如,引用“A和B中的至少一个”的权利要求语言可以表示A、B或A和B,并且可以另外包括未在组A和B中列出的项目。
结合本文公开的示例的各种说明性的逻辑块、模块、电路和算法操作可以被实施为电子硬件、计算机软件、固件或组合。为了清楚地示出硬件和软件的这种可互换性,上面已经对各种说明性组件、块、模块、电路和操作在其功能方面进行了总体描述。将这种功能性实施为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能性,但是这种实施决策不应被解释为导致脱离本应用的范围。
本文中所描述的技术可实施于电子硬件、计算机软件、固件或其任何组合。这些技术可实施于多种设备(例如通用计算机、无线通信设备手持机、或集成电路设备)中的任何一个,其具有包括在无线通信设备手持机及其它设备中的应用的多种用途。被描述为模块或组件的任何特征可一起实施于集成逻辑设备或分开来实施为离散但可互操作的逻辑设备。如果在软件中实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储介质来实现,所述程序代码包括在被执行时执行上文所描述的方法中的一个或多个的指令。计算机可读数据存储介质可形成计算机程序产品的一部分,产品可包括封装材料。计算机可读介质可包括存储器或数据存储媒体,例如,随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、磁性或光学数据存储媒体等等。附加地或可选地这些技术可至少部分地由计算机可读通信介质来实现,计算机可读通信介质以指令或数据结构的形式载运或传达程序代码且可由诸如传播信号或传播波的计算机访问、读取和/或执行。
程序代码可被处理器执行,处理器可包含一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。这样的处理器可被配置来执行本公开中所描述的技术中的任何一个。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任何一个、前述结构的任何组合,或适合于实施本文中所描述的技术的任何其它结构或装置。另外,在某些方面,可将本文中所描述的功能提供在被配置用于编码和解码的专用软件模块或硬件模块内,或并入组合的视频编码解码器(CODEC)中。
本公开的说明性方面如下:
方面1:一种用于在扩展现实环境中捕获自我图像的装置,装置包括存储器;以及耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;生成用户的数字表示,用户的数字表示反应用户的姿势;捕获现实世界环境的一个或多个帧;以及将用户的数字表示叠加到现实世界环境的一个或多个帧上。
方面2:根据权利要求1所述的装置,其中,一个或多个处理器被配置为在对应于用户在现实世界环境内的位置的帧位置中将用户的数字表示叠加到现实世界环境的一个或多个帧上。
方面3:根据权利要求1所述的装置,其中,一个或多个处理器被配置为在捕获现实世界环境的一个或多个帧之前生成用户的数字表示。
方面4:根据权利要求1至3中任一项所述的装置,其中,一个或多个处理器被配置为在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中通过显示器,现实世界环境是可见的。
方面5:根据权利要求4所述的装置,其中,一个或多个处理器被配置为:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获现实世界环境的一个或多个帧的指令的用户输入;以及基于用户输入捕获现实世界环境的一个或多个帧。
方面6:根据权利要求1所述的装置,其中,一个或多个处理器被配置为在捕获用户的姿势之前捕获现实世界环境的一个或多个帧。
方面7:根据权利要求6所述的装置,其中,一个或多个处理器被配置为在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中现实世界环境的一个或多个帧通过显示器显示。
方面8:根据权利要求7所述的装置,其中,一个或多个处理器被配置为基于检测到用户在现实世界环境中的位置的变化来更新用户的数字表示的显示位置。
方面9:根据权利要求7所述的装置,其中,一个或多个处理器还被配置为:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获用户的姿势的指令的用户输入;以及基于用户输入捕获用户的姿势。
方面10:根据权利要求1至9中任一项所述的装置,其中一个或多个处理器被配置为:生成用户的、具有第一保真度的第一数字表示;以及获得用户的、具有第二保真度的第二数字表示,其中第二保真度高于第一保真度。
方面11:根据权利要求10所述的装置,其中,一个或多个处理器被配置为:在捕获用户的姿势之前,在扩展现实系统的显示器内显示用户的第一数字表示;基于正被捕获的用户的姿势生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。
方面12:根据权利要求10所述的装置,其中,一个或多个处理器被配置为:在捕获现实世界环境的一个或多个帧之前,在扩展现实系统的显示器内显示用户的第一数字表示;基于正被捕获的现实世界环境的一个或多个帧生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。
方面13:根据权利要求10所述的装置,其中,第一数字表示基于第一机器学习算法,并且用户的第二数字表示基于第二机器学习算法。
方面14:根据权利要求13所述的装置,其中,一个或多个处理器被配置为:基于在扩展现实系统上实施第一机器学习算法,生成用户的第一数字表示;以及使被配置为生成用户的数字表示的服务器基于实施第二机器学习算法来生成用户的第二数字表示。
方面15:根据权利要求1-14中任一项所述的装置,其中,一个或多个处理器被配置为:在现实世界环境中捕获人物的姿势;生成人物的数字表示,人物的数字表示反映了人物的姿势;以及将用户的数字表示和人物的数字表示叠加到现实世界环境的一个或多个帧上。
方面16:根据权利要求15所述的装置,其中,一个或多个处理器被配置为至少部分地基于与人物的数字表示相关联的信息来生成人物的数字表示,其中人物的数字表示是从人物的扩展现实系统接收到的。
方面17:根据权利要求16所述的装置,其中,与人物的数字表示相关联的信息包括被训练以生成人物的数字表示的机器学习模型。
方面18:根据权利要求1-17中任一项所述的装置,其中,一个或多个处理器被配置为:捕获用户的、与多个帧相关联的多个姿势;生成用户的、对应于多个帧的多个数字表示;以及将用户的多个数字表示叠加到现实世界环境的一个或多个帧上,现实世界环境的一个或多个帧包括现实世界环境的多个帧。
方面19:根据权利要求1-18中任一项所述的装置,其中一个或多个处理器被配置为:使用第一机器学习算法生成用户的数字表示;以及使用第二机器学习算法将用户的数字表示叠加到现实世界环境的一个或多个帧上。
方面20:根据权利要求1-19中任一项所述的装置,其中,一个或多个处理器被配置为至少部分地基于图像数据来捕获用户的姿势,其中图像数据是由扩展现实系统的内置摄像头系统捕获的。
方面21:根据权利要求1-20中任一项所述的装置,其中,一个或多个处理器被配置为至少部分地基于确定用户的表情来捕获用户的姿势。
方面22:根据权利要求1-21中任一项所述的装置,其中,一个或多个处理器被配置为至少部分地基于确定用户的手势来捕获用户的姿势。
方面23:根据权利要求1-22中任一项所述的装置,其中,一个或多个处理器被配置为至少部分地基于生成现实世界环境的三维地图来确定用户在现实世界环境内的位置。
方面24:根据权利要求1-23中任一项所述的装置,其中,一个或多个处理器被配置为使用扩展现实系统的外置摄像头系统来捕获现实世界环境的一个或多个帧。
方面25:根据权利要求1-24中任一项所述的装置,其中,装置包括扩展现实系统。
方面26:根据权利要求1-25中任一项所述的装置,其中,装置包括移动设备。
方面27:根据权利要求1-26中任一项所述的装置,还包括显示器。
方面28:一种用于在扩展现实环境中捕获自我图像的方法,方法包括捕获扩展现实系统的用户的姿势,用户的姿势包括用户在与扩展现实系统相关联的现实世界环境中的位置;生成用户的数字表示,用户的数字表示反应用户的姿势;捕获现实世界环境的一个或多个帧;以及将用户的数字表示叠加到现实世界环境的一个或多个帧上。
方面29:根据权利要求28所述的方法,其中,将用户的数字表示叠加到现实世界环境的一个或多个帧上包括将用户的数字表示叠加在对应于用户在现实世界环境内的位置的帧位置中。
方面30:根据权利要求28所述的方法,其中,生成用户的数字表示是在捕获现实世界环境的一个或多个帧之前执行的。
方面31:根据权利要求28-30中任一项所述的方法,还包括在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中通过显示器,现实世界环境是可见的。
方面32:根据权利要求31所述的方法,其中,捕获现实世界环境的一个或多个帧还包括:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获现实世界环境的一个或多个帧的指令的用户输入;以及基于用户输入捕获现实世界环境的一个或多个帧。
方面33:根据权利要求28所述的方法,其中,捕获现实世界环境的一个或多个帧是在捕获用户的姿势之前执行的。
方面34:根据权利要求33所述的方法,还包括在扩展现实系统的显示器内,在与用户在现实世界环境内的位置相对应的显示位置中显示用户的数字表示,其中在显示器上显示现实世界环境的一个或多个帧。
方面35:根据权利要求34所述的方法,还包括基于检测到用户在现实世界环境内的位置的变化来更新用户的数字表示的显示位置。
方面36:根据权利要求34所述的方法,其中,捕获扩展现实系统的用户的姿势还包括:当用户的数字表示显示在扩展现实系统的显示器内时,检测对应于捕获用户的指令的用户输入;以及基于用户输入捕获用户的姿势。
方面37:根据权利要求28-36中任一项所述的方法,其中生成用户的数字表示包括:生成用户的、具有第一保真度的第一数字表示;以及获得用户的、具有第二保真度的第二数字表示,其中第二保真度高于第一保真度。
方面38:根据权利要求37所述的方法,还包括:在捕获用户的姿势之前,显示用户在扩展现实系统的显示器内的第一数字表示;基于正被捕获的用户的姿势生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。
方面39:根据权利要求37所述的方法,还包括:在捕获现实世界环境的一个或多个帧之前,显示用户在扩展现实系统的显示器内的第一数字表示;基于正被捕获的现实世界环境的一个或多个帧生成用户的第二数字表示;以及将用户的第二数字表示叠加到现实世界环境的一个或多个帧上。
方面40:根据权利要求37所述的方法,其中,第一数字表示基于第一机器学习算法,并且用户的第二数字表示基于第二机器学习算法。
方面41:根据权利要求40所述的方法,其中:生成用户的第一数字表示包括在扩展现实系统上实施第一机器学习算法;以及获得用户的第二数字表示包括使被配置为生成用户的数字表示的服务器基于实施第二机器学习算法来生成用户的第二数字表示。
方面42:根据权利要求28-41中任一项所述的方法,还包括:在现实世界环境中捕获人物的姿势;生成人物的数字表示,人物的数字表示反映了人物的姿势;以及将用户的数字表示和人物的数字表示叠加到现实世界环境的一个或多个帧上。
方面43:根据权利要求42所述的方法,其中,至少部分地基于与人物的数字表示相关联的信息来生成人物的数字表示,其中人物的数字表示是从人物的扩展现实系统接收到的。
方面44:根据权利要求43所述的方法,其中,与人物的数字表示相关联的信息包括被训练以生成人物的数字表示的机器学习模型。
方面45:根据权利要求28-44中任一项所述的方法,还包括:捕获用户的、与多个帧相关联的多个姿势;生成用户的、对应于多个帧的多个数字表示;以及将用户的多个数字表示叠加到现实世界环境的一个或多个帧上,现实世界环境的一个或多个帧包括现实世界环境的多个帧。
方面46:根据权利要求28-45中任一项所述的方法,其中,生成用户的数字表示包括使用第一机器学习算法;以及将用户的数字表示叠加到现实世界环境的一个或多个帧上包括使用第二机器学习算法。
方面47:根据权利要求28-46中任一项所述的方法,其中捕获用户的姿势包括使用扩展现实系统的内置摄像头系统捕获图像数据。
方面48:根据权利要求28-47中任一项所述的方法,其中,捕获用户的姿势包括确定用户的表情。
方面49:根据权利要求28-48中任一项所述的方法,其中,捕获用户的姿势包括确定用户的手势。
方面50:根据权利要求28-49中任一项所述的方法,还包括至少部分地基于生成现实世界环境的三维地图来确定用户在现实世界环境内的位置。
方面51:根据权利要求28-50中任一项所述的方法,其中捕获现实世界环境的一个或多个帧包括使用扩展现实系统的外置摄像头系统捕获图像数据。
方面52:一种用于在扩展现实环境中捕获自我图像的非暂时性计算机可读存储介质,非暂时性计算机可读存储介质包括存储在其中的指令,当由一个或多个处理器执行时,指令使一个或多个处理器根据方面1-51中任一项执行操作。
方面53:一种用于在扩展现实环境中捕获自我图像的装置,装置包括用于根据方面1-51中任一项执行操作的部件。
Claims (59)
1.一种用于在扩展现实环境中捕获自我图像的装置,所述装置包括:
存储器;以及
与所述存储器耦合的一个或多个处理器,所述一个或多个处理器被配置为:
捕获扩展现实系统的用户的姿势,所述用户的姿势包括所述用户在与所述扩展现实系统相关联的现实世界环境的一部分内的位置;
生成所述用户的数字化身表示,所述用户的数字化身表示反映了所述用户的姿势;
捕获所述现实世界环境中所述用户不在一个或多个帧中的一部分的所述一个或多个帧;以及
在对应于所述用户在所述现实世界环境中与捕获的姿势相关联的一部分内的位置的帧位置中,将所述用户的数字化身表示叠加到所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧上,其中,当所述用户在所述现实世界环境内移动以捕捉所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧时,所述数字化身表示是静态的。
2.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为在捕获所述现实世界环境的一部分的所述一个或多个帧之前生成所述用户的数字化身表示。
3.根据权利要求2所述的装置,其中,为了将所述用户的数字化身表示叠加到所述一个或多个帧上,所述一个或多个处理器被配置为在所述扩展现实系统的显示器内,在与所述用户在所述现实世界环境的一部分内的位置相对应的帧位置中显示所述用户的数字化身表示,其中通过所述显示器,所述现实世界环境是可见的。
4.根据权利要求3所述的装置,其中,所述一个或多个处理器被配置为:
当所述用户的数字化身表示显示在所述扩展现实系统的所述显示器内时,检测对应于捕获所述现实世界环境的一部分的所述一个或多个帧的指令的用户输入;以及
基于所述用户输入捕获所述现实世界环境的一部分的所述一个或多个帧。
5.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为在捕获所述用户的姿势之前捕获所述现实世界环境的一部分的所述一个或多个帧。
6.根据权利要求5所述的装置,其中,为了将所述用户的数字化身表示叠加到所述一个或多个帧上,所述一个或多个处理器被配置为在所述扩展现实系统的显示器内,在与所述用户在所述现实世界环境的一部分内的位置相对应的帧位置中显示所述用户的数字化身表示,其中所述现实世界环境的一部分的所述一个或多个帧在所述显示器上显示。
7.根据权利要求6所述的装置,其中,所述一个或多个处理器被配置为基于检测到所述用户在所述现实世界环境的一部分内的位置的变化来更新所述用户的数字化身表示的帧位置。
8.根据权利要求6所述的装置,其中,所述一个或多个处理器还被配置为:
当所述用户的数字化身表示显示在所述扩展现实系统的所述显示器内时,检测对应于捕获所述用户的姿势的指令的用户输入;以及
基于所述用户输入捕获所述用户的姿势。
9.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
生成所述用户的、具有第一保真度的第一数字化身表示;以及
获得所述用户的、具有第二保真度的第二数字化身表示,其中所述第二保真度高于所述第一保真度。
10.根据权利要求9所述的装置,其中,所述一个或多个处理器被配置为:
在所述用户的姿势被捕获之前,在所述扩展现实系统的显示器内显示所述用户的所述第一数字化身表示;
基于正被捕获的所述用户的姿势生成所述用户的所述第二数字化身表示;以及
将所述用户的所述第二数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
11.根据权利要求9所述的装置,其中,所述一个或多个处理器被配置为:
在所述现实世界环境的一部分的所述一个或多个帧被捕获之前,在所述扩展现实系统的显示器内显示所述用户的所述第一数字化身表示;
基于正被捕获的所述现实世界环境的一部分的所述一个或多个帧,生成所述用户的所述第二数字化身表示;以及
将所述用户的所述第二数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
12.根据权利要求9所述的装置,其中,所述第一数字化身表示基于第一机器学习算法,并且所述用户的第二数字化身表示基于第二机器学习算法。
13.根据权利要求12所述的装置,其中,所述一个或多个处理器被配置为:
基于在所述扩展现实系统上实施所述第一机器学习算法,生成所述用户的所述第一数字化身表示;以及
使被配置为生成所述用户的数字化身表示的服务器基于实施所述第二机器学习算法来生成所述用户的所述第二数字化身表示。
14.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
在所述现实世界环境的一部分内捕获人物的姿势;
生成所述人物的数字化身表示,所述人物的数字化身表示反映了所述人物的姿势;以及
将所述用户的数字化身表示和所述人物的数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
15.根据权利要求14所述的装置,其中,所述一个或多个处理器被配置为至少部分地基于与所述人物的数字化身表示相关联的信息来生成所述人物的数字化身表示,其中与所述人物的数字化身表示相关联的信息是从所述人物的扩展现实系统接收到的。
16.根据权利要求15所述的装置,其中,与所述人物的数字化身表示相关联的信息包括被训练以生成所述人物的数字化身表示的机器学习模型。
17.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
捕获所述用户的、与多个帧相关联的多个姿势;
生成所述用户的、对应于所述多个帧的多个数字化身表示;以及
将所述用户的所述多个数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上,所述现实世界环境的一部分的所述一个或多个帧包括所述现实世界环境的一部分的多个帧。
18.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
使用第一机器学习算法生成所述用户的数字化身表示;以及
使用第二机器学习算法将所述用户的数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
19.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为至少部分地基于由所述扩展现实系统的内置摄像头系统捕获的图像数据来捕获所述用户的姿势。
20.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为至少部分地基于确定所述用户的表情来捕获所述用户的姿势。
21.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为至少部分地基于确定所述用户的手势来捕获所述用户的姿势。
22.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为至少部分地基于生成所述现实世界环境的三维地图来确定所述用户在所述现实世界环境内的位置。
23.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为使用所述扩展现实系统的外置摄像头系统来捕获所述现实世界环境的一部分的一个或多个帧。
24.根据权利要求1所述的装置,其中,所述装置包括所述扩展现实系统。
25.根据权利要求1所述的装置,其中,所述装置包括移动设备。
26.根据权利要求1所述的装置,还包括显示器。
27.根据权利要求1所述的装置,其中,当所述用户在所述现实世界环境内移动时,调整叠加到所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧上的所述数字化身表示的位置以说明移动。
28.一种用于在扩展现实环境中捕获自我图像的方法,所述方法包括:
捕获扩展现实系统的用户的姿势;所述用户的姿势包括所述用户在与所述扩展现实系统相关联的现实世界环境的一部分中的位置;
生成所述用户的数字化身表示,所述用户的数字化身表示反映了所述用户的姿势;
捕获所述现实世界环境中所述用户不在一个或多个帧中的一部分的所述一个或多个帧;以及
在对应于所述用户在所述现实世界环境中与捕获的姿势相关联的一部分内的位置的帧位置中,将所述用户的数字化身表示叠加到所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧上,其中,当所述用户在所述现实世界环境内移动以捕捉所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧时,所述数字化身表示是静态的。
29.根据权利要求28所述的方法,其中,生成所述用户的数字化身表示是在捕获所述现实世界环境的一部分的所述一个或多个帧之前执行的。
30.根据权利要求29所述的方法,其中,将所述用户的数字化身表示叠加到所述一个或多个帧上包括在所述扩展现实系统的显示器内,在与所述用户在所述现实世界环境的一部分内的位置相对应的帧位置中显示所述用户的数字化身表示,其中通过所述显示器,所述现实世界环境是可见的。
31.根据权利要求30所述的方法,其中,捕获所述现实世界环境的一部分的所述一个或多个帧还包括:
当所述用户的数字化身表示显示在所述扩展现实系统的所述显示器内时,检测对应于捕获所述现实世界环境的一部分的所述一个或多个帧的指令的用户输入;以及
基于所述用户输入捕获所述现实世界环境的一部分的所述一个或多个帧。
32.根据权利要求28所述的方法,其中,捕获所述现实世界环境的一部分的所述一个或多个帧是在捕获所述用户的姿势之前执行的。
33.根据权利要求32所述的方法,其中,将所述用户的数字化身表示叠加到所述一个或多个帧上包括在所述扩展现实系统的显示器内,在与所述用户在所述现实世界环境的一部分内的位置相对应的帧位置中显示所述用户的数字化身表示,其中所述现实世界环境的一部分的所述一个或多个帧在所述显示器上显示。
34.根据权利要求33所述的方法,还包括基于检测到所述用户在所述现实世界环境的一部分内的位置的变化来更新所述用户的数字化身表示的帧位置。
35.根据权利要求33所述的方法,其中,捕获所述扩展现实系统的所述用户的姿势还包括:
当所述用户的数字化身表示显示在所述扩展现实系统的所述显示器内时,检测对应于捕获所述用户的姿势的指令的用户输入;以及
基于所述用户输入捕获所述用户的姿势。
36.根据权利要求28所述的方法,其中,生成所述用户的数字化身表示包括:
生成所述用户的、具有第一保真度的第一数字化身表示;以及
获得所述用户的、具有第二保真度的第二数字化身表示,其中所述第二保真度高于所述第一保真度。
37.根据权利要求36所述的方法,还包括:
在所述用户的姿势被捕获之前,在所述扩展现实系统的显示器内显示所述用户的所述第一数字化身表示;
基于正被捕获的所述用户的姿势生成所述用户的所述第二数字化身表示;以及
将所述用户的所述第二数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
38.根据权利要求36所述的方法,还包括:
在所述现实世界环境的一部分的所述一个或多个帧被捕获之前,在所述扩展现实系统的显示器内显示所述用户的所述第一数字化身表示;
基于正被捕获的所述现实世界环境的一部分的所述一个或多个帧,生成所述用户的所述第二数字化身表示;以及
将所述用户的所述第二数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
39.根据权利要求36所述的方法,其中,所述第一数字化身表示基于第一机器学习算法,并且所述用户的第二数字化身表示基于第二机器学习算法。
40.根据权利要求39所述的方法,其中:
生成所述用户的所述第一数字化身表示包括在所述扩展现实系统上实施所述第一机器学习算法;以及
获得所述用户的所述第二数字化身表示包括使被配置为生成所述用户的数字化身表示的服务器基于实施所述第二机器学习算法来生成所述用户的所述第二数字化身表示。
41.根据权利要求28所述的方法,还包括:
在所述现实世界环境的一部分内捕获人物的姿势;
生成所述人物的数字化身表示,所述人物的数字化身表示反映了所述人物的姿势;以及
将所述用户的数字化身表示和所述人物的数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上。
42.根据权利要求41所述的方法,其中,所述人物的数字化身表示是至少部分地基于与所述人物的数字化身表示相关联的信息来生成的,其中与所述人物的数字化身表示相关联的信息是从所述人物的扩展现实系统接收到的。
43.根据权利要求42所述的方法,其中,与所述人物的数字化身表示相关联的信息包括被训练以生成所述人物的数字化身表示的机器学习模型。
44.根据权利要求28所述的方法,还包括:
捕获所述用户的、与多个帧相关联的多个姿势;
生成所述用户的、对应于所述多个帧的多个数字化身表示;以及
将所述用户的所述多个数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上,所述现实世界环境的一部分的所述一个或多个帧包括所述现实世界环境的一部分的多个帧。
45.根据权利要求28所述的方法,其中:
生成所述用户的数字化身表示包括使用第一机器学习算法;以及
将所述用户的数字化身表示叠加到所述现实世界环境的一部分的所述一个或多个帧上包括使用第二机器学习算法。
46.根据权利要求28所述的方法,其中,捕获所述用户的姿势包括使用所述扩展现实系统的内置摄像头系统捕获图像数据。
47.根据权利要求28所述的方法,其中,捕获所述用户的姿势包括确定所述用户的表情。
48.根据权利要求28所述的方法,其中,捕获所述用户的姿势包括确定所述用户的手势。
49.根据权利要求28所述的方法,还包括至少部分地基于生成所述现实世界环境的三维地图来确定所述用户在所述现实世界环境内的位置。
50.根据权利要求28所述的方法,其中,捕获所述现实世界环境的一部分的所述一个或多个帧包括使用所述扩展现实系统的外置摄像头系统捕获图像数据。
51.一种非暂时性计算机可读存储介质,用于在扩展现实环境中捕获自我图像,所述非暂时性计算机可读存储介质包括:
存储在其中的指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下操作:
捕获扩展现实系统的用户的姿势,所述用户的姿势包括所述用户在与所述扩展现实系统相关联的现实世界环境的一部分中的位置;
生成所述用户的数字化身表示,所述用户的数字化身表示反映了所述用户的姿势;
捕获所述现实世界环境中所述用户不在一个或多个帧中的一部分的所述一个或多个帧;以及
在对应于所述用户在所述现实世界环境中与捕获的姿势相关联的一部分内的位置的帧位置中,将所述用户的数字化身表示叠加到所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧上,其中,当所述用户在所述现实世界环境内移动以捕捉所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧时,所述数字化身表示是静态的。
52.根据权利要求51所述的非暂时性计算机可读存储介质,其中,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器在捕获所述现实世界环境的一部分的所述一个或多个帧之前生成所述用户的数字化身表示。
53.根据权利要求51所述的非暂时性计算机可读存储介质,其中,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器在捕获所述用户的姿势之前捕获所述现实世界环境的一部分的所述一个或多个帧。
54.一种用于在扩展现实环境中捕获自我图像的装置,所述装置包括:
存储器;以及
与所述存储器耦合的一个或多个处理器,所述一个或多个处理器被配置为:
捕获扩展现实系统的用户的姿势,所述用户的姿势包括所述用户在与所述扩展现实系统相关联的现实世界环境的一部分中的位置;
生成所述用户的数字化身表示,所述用户的数字化身表示反映了所述用户的姿势,所述数字化身表示包括数字化身表示的第一版本和数字化身表示的第二版本,其中数字化身表示的第一版本对应于所述用户的姿势;
捕获所述现实世界环境中所述用户不在一个或多个帧中的一部分的所述一个或多个帧,其中生成所述用户的数字化身表示的第一版本发生在所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧被捕获时;以及
将所述用户的数字化身表示的第二版本叠加到所述现实世界环境中所述用户不在所述一个或多个帧中的一部分的所述一个或多个帧上。
55.根据权利要求54所述的装置,其中,所述数字化身表示的第一版本是低保真度版本,所述数字化身表示的第二版本是高保真度版本。
56.根据权利要求54所述的装置,其中,为了将所述用户的数字化身表示叠加到所述一个或多个帧上,所述一个或多个处理器被配置为在通过其所述现实世界环境是可见的所述扩展现实系统的显示器内,在与所述用户在所述现实世界环境的一部分内的位置相对应的帧位置中显示所述用户的数字化身表示。
57.根据权利要求56所述的装置,其中,如果对应于所述数字化身表示的位置在所述扩展现实系统的显示器的视野(FOV)之外,则从所述显示器中移除所述数字化身表示。
58.根据权利要求56所述的装置,其中,当所述数字化身表示的第二版本被选择用于所述叠加时,所述数字化身表示的第一版本不显示在所述扩展现实系统的显示器内。
59.根据权利要求54所述的装置,其中,当所述用户在所述现实世界环境内移动以捕捉所述现实世界环境中所述用户不在所述一个或多个帧中的所述一个或多个帧时,所述数字化身表示的第一版本是静态的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/174,137 | 2021-02-11 | ||
US17/174,137 US11644890B2 (en) | 2021-02-11 | 2021-02-11 | Image capturing in extended reality environments |
PCT/US2022/013379 WO2022173579A1 (en) | 2021-02-11 | 2022-01-21 | Image capturing in extended reality environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116897375A CN116897375A (zh) | 2023-10-17 |
CN116897375B true CN116897375B (zh) | 2024-05-03 |
Family
ID=80786790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280013597.6A Active CN116897375B (zh) | 2021-02-11 | 2022-01-21 | 扩展现实环境中的图像捕获 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11644890B2 (zh) |
EP (1) | EP4292053A1 (zh) |
JP (1) | JP2024506024A (zh) |
KR (1) | KR20230122173A (zh) |
CN (1) | CN116897375B (zh) |
TW (1) | TW202303527A (zh) |
WO (1) | WO2022173579A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6590329B1 (ja) * | 2019-06-26 | 2019-10-16 | 株式会社ラディウス・ファイブ | 画像表示システム及びプログラム |
EP4075789A4 (en) * | 2020-01-23 | 2023-05-03 | Sony Group Corporation | IMAGING DEVICE, IMAGING PROCEDURE AND PROGRAM |
US11632258B1 (en) * | 2020-04-12 | 2023-04-18 | All Turtles Corporation | Recognizing and mitigating displays of unacceptable and unhealthy behavior by participants of online video meetings |
US11710280B1 (en) * | 2020-08-14 | 2023-07-25 | United Services Automobile Association (Usaa) | Local physical environment modeling in extended reality environments |
CN113181619A (zh) * | 2021-04-09 | 2021-07-30 | 青岛小鸟看看科技有限公司 | 一种运动训练方法、装置和系统 |
JP2023011262A (ja) * | 2021-07-12 | 2023-01-24 | トヨタ自動車株式会社 | 仮想現実シミュレータ及び仮想現実シミュレーションプログラム |
US20240096033A1 (en) * | 2021-10-11 | 2024-03-21 | Meta Platforms Technologies, Llc | Technology for creating, replicating and/or controlling avatars in extended reality |
US11861778B1 (en) * | 2022-07-25 | 2024-01-02 | Gravystack, Inc. | Apparatus and method for generating a virtual avatar |
US11756277B1 (en) * | 2023-02-23 | 2023-09-12 | Intuit Inc. | Network platform impersonation mitigation systems and methods |
CN117173382B (zh) * | 2023-10-27 | 2024-01-26 | 南京维赛客网络科技有限公司 | Vr交互中的虚拟数字人体态矫正方法、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784708A (zh) * | 2018-07-25 | 2020-02-11 | 发那科株式会社 | 感测系统、作业系统、扩展现实图像的显示方法、扩展现实图像的存储方法以及程序 |
CN110945869A (zh) * | 2017-04-19 | 2020-03-31 | 维多尼股份公司 | 利用运动捕捉的虚拟手的增强现实学习系统和方法 |
CN111630435A (zh) * | 2017-12-15 | 2020-09-04 | 奇跃公司 | 用于显示装置的增强的姿势确定 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991285B2 (en) * | 2008-01-08 | 2011-08-02 | Sony Ericsson Mobile Communications Ab | Using a captured background image for taking a photograph |
US8988558B2 (en) * | 2011-04-26 | 2015-03-24 | Omnivision Technologies, Inc. | Image overlay in a mobile device |
WO2014081394A1 (en) | 2012-11-22 | 2014-05-30 | Agency For Science, Technology And Research | Method, apparatus and system for virtual clothes modelling |
KR102064973B1 (ko) * | 2013-06-04 | 2020-01-10 | 삼성전자주식회사 | 듀얼 이미지를 편집하는 전자 장치 및 방법 |
KR102114377B1 (ko) * | 2013-07-05 | 2020-05-25 | 삼성전자주식회사 | 전자 장치에 의해 촬영된 이미지들을 프리뷰하는 방법 및 이를 위한 전자 장치 |
KR102136241B1 (ko) * | 2015-09-29 | 2020-07-22 | 바이너리브이알, 인크. | 표정 검출 성능을 갖는 머리-장착형 디스플레이 |
US10665019B2 (en) * | 2016-03-24 | 2020-05-26 | Qualcomm Incorporated | Spatial relationships for integration of visual images of physical environment into virtual reality |
US11416714B2 (en) * | 2017-03-24 | 2022-08-16 | Revealit Corporation | Method, system, and apparatus for identifying and revealing selected objects from video |
US10304239B2 (en) * | 2017-07-20 | 2019-05-28 | Qualcomm Incorporated | Extended reality virtual assistant |
US9996940B1 (en) * | 2017-10-25 | 2018-06-12 | Connectivity Labs Inc. | Expression transfer across telecommunications networks |
JP7344894B2 (ja) * | 2018-03-16 | 2023-09-14 | マジック リープ, インコーポレイテッド | 眼追跡カメラからの顔の表情 |
US10529139B1 (en) * | 2018-08-21 | 2020-01-07 | Jeremy Greene | System, method, and apparatus for avatar-based augmented reality electronic messaging |
JP6559871B1 (ja) | 2018-11-30 | 2019-08-14 | 株式会社ドワンゴ | 動画合成装置、動画合成方法及び動画合成プログラム |
US10885693B1 (en) | 2019-06-21 | 2021-01-05 | Facebook Technologies, Llc | Animating avatars from headset cameras |
US11475639B2 (en) * | 2020-01-03 | 2022-10-18 | Meta Platforms Technologies, Llc | Self presence in artificial reality |
US11449131B2 (en) * | 2020-07-28 | 2022-09-20 | Qualcomm Incorporated | Obfuscated control interfaces for extended reality |
US11579693B2 (en) * | 2020-09-26 | 2023-02-14 | Apple Inc. | Systems, methods, and graphical user interfaces for updating display of a device relative to a user's body |
US11954242B2 (en) * | 2021-01-04 | 2024-04-09 | Apple Inc. | Devices, methods, and graphical user interfaces for interacting with three-dimensional environments |
-
2021
- 2021-02-11 US US17/174,137 patent/US11644890B2/en active Active
-
2022
- 2022-01-21 KR KR1020237026726A patent/KR20230122173A/ko not_active Application Discontinuation
- 2022-01-21 CN CN202280013597.6A patent/CN116897375B/zh active Active
- 2022-01-21 JP JP2023547472A patent/JP2024506024A/ja active Pending
- 2022-01-21 TW TW111102585A patent/TW202303527A/zh unknown
- 2022-01-21 EP EP22704821.2A patent/EP4292053A1/en active Pending
- 2022-01-21 WO PCT/US2022/013379 patent/WO2022173579A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110945869A (zh) * | 2017-04-19 | 2020-03-31 | 维多尼股份公司 | 利用运动捕捉的虚拟手的增强现实学习系统和方法 |
CN111630435A (zh) * | 2017-12-15 | 2020-09-04 | 奇跃公司 | 用于显示装置的增强的姿势确定 |
CN110784708A (zh) * | 2018-07-25 | 2020-02-11 | 发那科株式会社 | 感测系统、作业系统、扩展现实图像的显示方法、扩展现实图像的存储方法以及程序 |
Also Published As
Publication number | Publication date |
---|---|
CN116897375A (zh) | 2023-10-17 |
EP4292053A1 (en) | 2023-12-20 |
WO2022173579A1 (en) | 2022-08-18 |
JP2024506024A (ja) | 2024-02-08 |
TW202303527A (zh) | 2023-01-16 |
US20220253126A1 (en) | 2022-08-11 |
KR20230122173A (ko) | 2023-08-22 |
US11644890B2 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116897375B (zh) | 扩展现实环境中的图像捕获 | |
US11972780B2 (en) | Cinematic space-time view synthesis for enhanced viewing experiences in computing environments | |
US9094576B1 (en) | Rendered audiovisual communication | |
US20220100265A1 (en) | Dynamic configuration of user interface layouts and inputs for extended reality systems | |
US11600039B2 (en) | Mechanism for improved light estimation | |
EP4248413A1 (en) | Multiple device sensor input based avatar | |
US20230342943A1 (en) | Object segmentation and feature tracking | |
US20220277489A1 (en) | Modeling objects from monocular camera outputs | |
US20240007760A1 (en) | Low-power fusion for negative shutter lag capture | |
US20230093827A1 (en) | Image processing framework for performing object depth estimation | |
US11977979B2 (en) | Adaptive bounding for three-dimensional morphable models | |
US20240095997A1 (en) | Systems and methods of image reprojection | |
US20240161418A1 (en) | Augmented reality enhanced media | |
US20240087232A1 (en) | Systems and methods of three-dimensional modeling based on object tracking | |
US20240020901A1 (en) | Method and application for animating computer generated images | |
US20240029354A1 (en) | Facial texture synthesis for three-dimensional morphable models | |
US20230401673A1 (en) | Systems and methods of automated imaging domain transfer | |
US20240104686A1 (en) | Low-Latency Video Matting | |
WO2023056149A1 (en) | Image processing framework for performing object depth estimation | |
WO2023250223A1 (en) | View dependent three-dimensional morphable models | |
CN117813626A (zh) | 从多视图立体(mvs)图像重建深度信息 | |
TW202414341A (zh) | 自動成像域轉移的系統和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |