CN112437950A - 用于对虚拟头像制作动画的骨架系统 - Google Patents

用于对虚拟头像制作动画的骨架系统 Download PDF

Info

Publication number
CN112437950A
CN112437950A CN201980047039.XA CN201980047039A CN112437950A CN 112437950 A CN112437950 A CN 112437950A CN 201980047039 A CN201980047039 A CN 201980047039A CN 112437950 A CN112437950 A CN 112437950A
Authority
CN
China
Prior art keywords
joint
user
constraints
skeleton
joints
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
CN201980047039.XA
Other languages
English (en)
Inventor
G·韦迪希
S·M·科默
J·J·班克罗夫特
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.)
Magic Leap Inc
Original Assignee
Magic Leap Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Magic Leap Inc filed Critical Magic Leap Inc
Publication of CN112437950A publication Critical patent/CN112437950A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

用于为虚拟头像制作动画的蒙皮参数可以包括网格权重和骨架的关节变换。提供了用于使用优化过程来确定蒙皮参数的系统和方法,该优化过程受到基于骨架关节之间的人类可理解或解剖学驱动的关系的约束。优化过程的输入可以包括高阶骨架,并且所施加的约束可以在优化期间动态变化。蒙皮参数可用于增强现实中的线性混合蒙皮(LBS)应用中。

Description

用于对虚拟头像制作动画的骨架系统
相关申请的交叉引用
本申请要求享有2018年5月22日提交的题为“用于对虚拟头像制作动画的骨架系统(SKELETAL SYSTEMS FOR ANIMATING VIRTUAL AVATARS)”的美国专利申请No.62/674,908的优先权,该申请的全部内容通过引用合并于此。
技术领域
本公开涉及虚拟现实和增强现实,包括混合现实、成像和可视化系统,并且更具体地涉及用于对诸如头像的虚拟角色制作动画的蒙皮系统和方法。
背景技术
现代计算和显示技术已经促进了用于所谓的“虚拟现实”、“增强现实”和“混合现实”体验的系统的开发,其中以使得它们看起来是真实的或可以被感知为真实的方式将数字再现的图像呈现给用户。虚拟现实(VR)场景通常涉及对其它实际的真实视觉输入没有透明度的计算机生成的虚拟图像信息的呈现。增强现实(AR)场景通常涉及作为对用户周围现实世界可视化的增强的虚拟图像信息的呈现。混合现实(MR)是一种增强现实,其中物理对象和虚拟对象可以共存并实时交互。在此公开的系统和方法解决了与VR、AR和MR技术有关的各种挑战。
发明内容
用于对虚拟头像制作动画的蒙皮参数可以包括网格权重和骨架的关节变换。提供了用于使用优化过程来确定蒙皮参数的系统和方法,该优化过程受到基于骨架关节之间的人类可理解或解剖学驱动的关系的约束。优化过程的输入可以包括高阶骨架,并且所施加的约束可以在优化期间动态变化。蒙皮参数可用于增强现实、游戏、电影或视觉效果的线性混合蒙皮(LBS)应用中。
提供了用于改进或优化用于虚拟头像的动画的网格(例如,皮肤)权重和关节变换的系统和方法的示例。关节变换可以包括多个(例如6个)自由度。该系统和方法可以接受来自各种输入源的目标姿势训练数据(例如摄影测量扫描、艺术家驱动的雕刻、仿真或生物统计学派生模型),并可以生成高保真度权重和变换以用于线性混合蒙皮(LBS)。该系统和方法可以通过求解约束优化问题来计算权重和关节变换(例如,旋转和平移)。可以将优化仅约束为在一般条件下提供高保真度的那些解决方案,包括使用新颖的或实时捕获的动画表演。这可以导致样本数量(通常会很昂贵且耗时地生成)减少,或者用于满足质量指标的关节变换的数量的减少。
尽管在增强、混合或虚拟现实的上下文中描述了系统和方法的某些实施例,但是它们不限于此,并且可以被应用于游戏、电影或视觉效果(VFx)。
本说明书中描述的主题的一种或多种实现方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,其它特征、方面和优点将变得显而易见。该概述或以下详细描述均不旨在定义或限制本发明主题的范围。
附图说明
本说明书中描述的主题的一种或多种实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,其它特征、方面和优点将变得显而易见。
图1描绘了具有某些虚拟现实对象以及人观看的某些物理对象的混合现实场景的图示。
图2示意性地示出可穿戴系统的示例。
图3示意性地示出可穿戴系统的示例组件。
图4示意性地示出用于将图像信息输出给用户的可穿戴设备的波导堆叠的示例。
图5是用于与虚拟用户界面进行交互的方法的示例的过程流程图。
图6A是可包括头像处理和渲染系统的可穿戴系统的另一个示例的框图。
图6B示出头像处理和渲染系统的示例组件。
图7是包括进入可穿戴系统的各种输入的可穿戴系统的示例的框图。
图8是关于所识别的对象渲染虚拟内容的方法的示例的过程流程图。
图9A示意性地示出描绘彼此交互的多个可穿戴系统的整体系统视图。
图9B示出示例远程呈现会话。
图10示出可穿戴系统的用户所感知的头像的示例。
图11A示出低阶核心(或基础)骨架的示例。可以将高阶骨架添加到低阶核心骨架(例如,参见图11B中所示的示例)。
图11B示出用于对头像制作动画的骨架的示例。骨架包括在互连关节的分层集合中具有更高阶的生物力学联系(以虚线示出)的核心(或基础)骨架(以实线示出)。
图12示出针对手部变形的关节分解的示例。
图13示出针对下巴变形的关节分解的示例。
图14是用于关节分解的示例方法的流程图。
在所有附图中,附图标记可以被重复使用以指示参考元件之间的对应关系。提供附图是为了说明在此描述的示例实施例,而无意于限制本公开的范围。
具体实施方式
概述
虚拟头像可以是AR/VR/MR环境中真实或虚构的人(或生物或拟人化的对象)的虚拟表示。例如,在其中两个AR/VR/MR用户彼此交互的远程呈现会话期间,观看者可以感知观看者环境中另一个用户的头像,并且从而对观看者环境中的另一个用户的存在产生真实的感觉。头像还可以为用户提供一种在共享的虚拟环境中彼此交互并一起做事的方式。例如,参加在线课程的学生可以在虚拟教室中感知其他学生或老师的头像并与之交互。作为另一示例,在AR/VR/MR环境中玩游戏的用户可以在游戏中观看其他玩家的头像并与之交互。
所公开的系统和方法的实施例可以提供头像的改进的动画以及可穿戴系统的用户与用户环境中的头像之间的更逼真的交互。虽然本公开中的示例通常描述了对人形头像制作动画,但是类似的技术也可以应用于动物、虚拟生物、物体等。
可穿戴设备可以包括用于呈现交互式VR/AR/MR环境的显示器,该交互式VR/AR/MR环境包括高保真度的数字头像。创建高保真数字头像可能需要专业团队花费数周或数月的时间,并且可以利用人体模型的大量高质量数字化摄影扫描。所公开的技术的实施例具有创建任何人类、动物、角色或物体的高质量或高保真的头像(或一般而言是数字表示)的能力。为了实现这一点,所公开的过程的实施例更快并且资源消耗更少,同时仍然保持准确的输出。
作为示例,人的数字表示(通常是任何动物或可变形的物体,诸如衣服或头发)可以包括骨架和上面的网格(例如,以示出可以是皮肤、衣服等的外表面)。骨骼可以在关节处被连接到其它骨骼,并且骨骼可以具有被分配给它的特定的网格顶点,使得当骨骼移动时,所分配的顶点会随骨骼一起自动移动。随着从骨骼运动的组合插入的顶点的运动,每个顶点可以具有多个骨骼分配。该初始运动被称为“皮肤簇”,并且通常捕获总体运动(应该注意,骨骼和骨架是数字构造,并不一定与人体中的实际骨骼相对应)。可以对人体建模的后续步骤(在此有时将其虚拟表示称为头像)可能需要捕获皮肤的更精细的运动,皮肤在此有时被称为表面或网格。该后续步骤表示与初始总体运动的差异,以捕获皮肤的更精细的运动。
为了对头像制作动画,可穿戴设备可以利用线性混合蒙皮(LBS)技术,其中头像网格的顶点基于下层骨架关节的旋转和平移的线性加权总和进行变换。计算一系列头像姿势的关节的权重、旋转和平移(统称为蒙皮参数)是具有挑战性的问题。
人类动画师可以通过针对每个骨骼设定每个顶点的对应权重,来将网格顶点分配给骨骼。人类动画师基于动画师的独特、主观、艺术的视野进行这些分配,并且手动蒙皮技术与人类动画师存在一样多的分配。该分配过程可能是费力且耗时的过程,这无法很好地定位以创建用于实时应用(诸如增强现实、混合现实或虚拟现实)的皮肤。
本申请描述了可以从多种来源采取目标姿势的计算系统和方法(例如,模型的摄影测量扫描、艺术家驱动的雕刻、模拟或生物统计学派生的模型)并计算该姿势的蒙皮参数。该系统和方法可以应用以初始目标姿势、高阶骨架和皮肤簇为起源(seed)的约束优化技术,以生成受人类理解和生物学统计动机约束的蒙皮参数(例如,关节之间的长度可能受到约束,因为真实世界的骨骼不会轻易改变其长度)。该系统和方法可以特别适用于实时上下文,并且可以减少或最小化对用户(例如,动画师)输入的需求。这些计算系统和方法基于特定的客观的非传统的规则,该规则可通过以与人类动画师使用动画师的主观艺术视觉来主观执行动画不同的方式在算法上被应用以生成蒙皮参数。
因此,下面将提供用于计算自动头像动画的蒙皮参数的系统和方法的各种实现方式。
可穿戴系统的3D显示示例
可穿戴系统(在此也称为增强现实(AR)系统)可以被配置为向用户呈现2D或3D虚拟图像。图像可以是静止图像、视频的帧或视频的组合等。可穿戴系统的至少一部分可以在可穿戴设备上实现,该可穿戴设备可以针对用于交互单独或组合地呈现VR、AR或MR环境。可穿戴设备可以作为AR设备(ARD)被互换地使用。此外,出于本公开的目的,术语“AR”与术语“MR”可被互换地使用。
图1描绘了具有某些虚拟现实对象以及由人观看的某些物理对象的混合现实场景的图示。在图1中,描绘了MR场景100,其中MR技术的用户看到了真实世界的公园状设置110,其以人、树、背景中的建筑物以及混凝土平台120为特征。除了这些项目之外,MR技术的用户还可以感知到他“看到”了站在真实世界平台120上的机器人雕像130,以及似乎是大黄蜂的拟人化的飞行着的卡通般头像角色140,尽管这些元素在真实世界中不存在。
为了使3D显示器产生真实的深度感,且更具体地,产生表面深度的模拟感,可能希望显示器视野中的每个点都生成与其虚拟深度相对应的适应响应。如果对显示点的适应响应不符合该点的虚拟深度(如由会聚和立体视觉的双目深度提示确定),则人眼可能会遇到适应冲突,从而导致成像不稳定,有害的眼睛疲劳,头痛,以及在缺乏适应信息的情况下的几乎完全的表面深度缺失。
VR、AR和MR体验可以通过具有显示器的显示系统来提供,在该显示器中,与多个深度平面相对应的图像被提供给观看者。对于每个深度平面,图像可能不同(例如,提供场景或对象的稍微不同的呈现),并且可能由观看者的眼睛分别聚焦,从而基于使位于不同深度平面上的场景的不同图像特征聚焦所需的眼睛适应,或基于观察在不同深度平面上失焦的不同图像特征,为用户提供深度提示。如在此其它地方所讨论的,这种深度提示提供了可靠的深度感知。
图2示出可被配置为提供AR/VR/MR场景的可穿戴系统200的示例。可穿戴系统200还可称为AR系统200。可穿戴系统200包括显示器220以及支持显示器220的功能的各种机械和电子模块和系统。显示器220可以耦合至框架230,该框架230可以由用户、佩戴者或观看者210佩戴。显示器220可以放置于用户210的眼睛前面。显示器220可以向用户呈现AR/VR/MR内容。显示器220可以包括戴在用户的头上的头戴式显示器(HMD)。
在一些实施例中,扬声器240被耦合至框架230并且邻近用户的耳道放置(在一些实施例中,未示出的另一个扬声器邻近用户的另一耳道放置以提供立体声/可塑的声音控制)。显示器220可包括用于检测来自环境的音频流并捕获环境声音的音频传感器(例如,麦克风)232。在一些实施例中,未示出的一个或多个其它音频传感器被放置以提供立体声接收。立体声接收可以用来确定声源的位置。可穿戴系统200可以对音频流执行声音或语音识别。
可穿戴系统200可以包括面向外成像系统464(图4中所示),该面向外成像系统464观察用户周围环境中的世界。可穿戴系统200还可以包括可以跟踪用户的眼睛运动的面向内成像系统462(图4中所示)。面向内成像系统可以跟踪一只眼睛的运动或两只眼睛的运动。面向内成像系统462可以附接至框架230,并且可以与处理模块260或270电通信,该处理模块260或270可以处理由面向内成像系统获取的图像信息以确定用户210的例如眼睛的瞳孔直径或取向的眼睛运动或眼睛姿势。面向内成像系统462可以包括一个或多个相机。例如,至少一个相机可以用于对每只眼睛成像。由相机获取的图像可用于分别确定每只眼睛的瞳孔大小或眼睛姿势,从而允许将图像信息呈现给每只眼睛以针对该只眼睛动态地调整。
作为示例,可穿戴系统200可使用面向外成像系统464或面向内成像系统462来获取用户的姿势的图像。图像可以是静止图像、视频的帧,或视频。
显示器220可以诸如通过有线引线或无线连接可操作地耦合250到本地数据处理模块260,该本地数据处理模块260可以以各种配置安装,诸如固定地附接至框架230,固定地附接至由用户佩戴的头盔或帽子,嵌入耳机中或以其它方式可移除地附接至用户210(例如,以背包式配置、皮带耦合式配置)。
本地处理和数据模块260可以包括硬件处理器以及数字存储器,诸如非易失性存储器(例如,闪存),二者都可以用于辅助数据的处理、缓存和存储。数据可以包括如下数据:a)从传感器(其可以例如可操作地耦合至框架230或以其它方式附接至用户210)捕获,诸如图像捕获设备(例如,面向内成像系统或面向外成像系统中的相机)、音频传感器(例如,麦克风)、惯性测量单元(IMU)、加速度计、罗盘、全球定位系统(GPS)单元、无线电设备或陀螺仪;或b)使用远程处理模块270或远程数据存储库280获取或处理,可能在这种处理或取得之后传递给显示器220。本地处理和数据模块260可以通过通信链路262或264(诸如经由有线或无线通信链路)可操作地耦合至远程处理模块270或远程数据存储库280,使得这些远程模块可用作本地处理和数据模块260的资源。此外,远程处理模块280和远程数据存储库280可以可操作地彼此耦合。
在一些实施例中,远程处理模块270可以包括被配置为分析和处理数据或图像信息的一个或多个处理器。在一些实施例中,远程数据存储库280可以包括数字数据存储设施,其可以通过互联网或以“云”资源配置的其它联网配置来使用。在一些实施例中,所有数据被存储并且所有计算在本地处理和数据模块中执行,从而允许来自远程模块的完全自主的使用。
可穿戴系统的示例组件
图3示意性地示出可穿戴系统的示例组件。图3示出可穿戴系统200,其可包括显示器220和框架230。放大视图202示意性地示出可穿戴系统200的各个组件。在某些实现方式中,图3中所示的一个或多个组件可以是显示器220的一部分。单独或组合的各种组件可以收集与可穿戴系统200的用户或用户的环境相关联的各种数据(诸如例如,音频或视觉数据)。应当理解,取决于可穿戴系统所用于的应用,其它实施例可以具有更多或更少的组件。尽管如此,图3提供了可以通过可穿戴系统收集、分析和存储的数据的各种成分和类型中的一些的基本思想。
图3示出示例可穿戴系统200,该示例可穿戴系统200可以包括显示器220。显示器220可以包括可以安装到用户的头部或与框架230相对应的壳体或框架230上的显示透镜226。显示透镜226可以包括一个或多个透明镜,该透明镜由壳体230定位在用户的眼睛302、304的前面,并且可以被配置为将投射的光338反射到眼睛302、304中并有助于光束成形,同时也允许来自本地环境的至少一些光的透射。投射光束338的波前可以被弯曲或聚焦以与投射光的期望焦距一致。如图所示,两个广视场机器视觉相机316(也称为世界相机)可以被耦合到壳体230以对用户周围的环境成像。这些相机316可以是双重捕获可见光/不可见(例如,红外)光相机。相机316可以是图4中所示的面向外成像系统464的一部分。由世界相机316获取的图像可以由姿势处理器336处理。例如,姿势处理器336可以实现一个或多个对象识别器708(例如,图7所示)以识别用户或在该用户环境中另一人的姿势,或识别该用户环境中的物理对象。
继续参考图3,示出了一对扫描激光成形波前(例如,用于深度)光投影仪模块,其具有被配置为将光338投射到眼睛302、304中的显示镜和光学器件。所描绘的视图还示出了与红外光(诸如发光二极管“LED”)配对的两个微型红外相机324,其被配置为能够跟踪用户的眼睛302、304以支持渲染和用户输入。相机324可以是图4中所示的面向内成像系统462的一部分。可穿戴系统200可进一步具有传感器组件339,该传感器组件可包括X、Y和Z轴加速度计功能以及磁罗盘以及X、Y和Z轴陀螺仪功能,优选以相对较高的频率(诸如200Hz)提供数据。传感器组件339可以是参考图2A描述的IMU的一部分。所描绘的系统200还可以包括头部姿势处理器336,诸如ASIC(专用集成电路)、FPGA(现场可编程门阵列)或ARM处理器(先进的精简指令集机器),该头部姿势处理器可被配置为根据从捕获设备316输出的宽视场图像信息来计算实时或接近实时的用户头部姿势。头部姿势处理器336可以是硬件处理器,并且可以实现为图2A中所示的本地处理和数据模块260的一部分。
可穿戴系统还可包括一个或多个深度传感器234。深度传感器234可被配置为测量环境中的对象到可穿戴设备之间的距离。深度传感器234可包括激光扫描仪(例如,激光雷达)、超声深度传感器或深度感测相机。在某些实现方式中,在相机316具有深度感测能力的情况下,相机316也可以被认为是深度传感器234。
还示出了处理器332,其被配置为执行数字或模拟处理以从来自传感器组件339的陀螺仪、罗盘或加速度计数据中得出姿势。处理器332可以是图2中所示的本地处理和数据模块260的一部分。如图3中所示的可穿戴系统200还可包括诸如例如GPS 337(全球定位系统)的定位系统,以辅助姿势和定位分析。另外,GPS可以进一步提供关于用户环境的基于远程(例如,基于云)的信息。该信息可用于识别用户环境中的对象或信息。
可穿戴系统可以将由GPS 337获取的数据与可以提供有关用户环境的更多信息的远程计算系统(诸如例如,远程处理模块270、另一个用户的ARD等)相结合。作为一个示例,可穿戴系统可以基于GPS数据确定用户的位置并取得世界地图(例如,通过与远程处理模块270通信),该世界地图包括与用户的位置相关联的虚拟对象。作为另一个示例,可穿戴系统200可以使用世界相机316(其可以是图4中所示的面向外成像系统464的一部分)来监测环境。基于由世界相机316获取的图像,可穿戴系统200可以检测环境中的对象(例如,通过使用图7中所示的一个或多个对象识别器708)。可穿戴系统可以进一步使用由GPS 337获取的数据来解释特征。
可穿戴系统200还可以包括渲染引擎334,该渲染引擎334可以被配置为提供用户本地的渲染信息,以促进扫描仪的操作和成像到用户的眼睛中,以便用户观看世界。渲染引擎334可以由硬件处理器(诸如例如,中央处理单元或图形处理单元)实现。在一些实施例中,渲染引擎是本地处理和数据模块260的一部分。渲染引擎334可以通信地耦合(例如,经由有线或无线链路)到可穿戴系统200的其它组件。例如,渲染引擎334可以经由通信链路274耦合到眼睛相机324,并且经由通信链路272耦合到投影子系统318(其可以以类似于视网膜扫描显示器的方式经由扫描的激光装置将光投射到用户的眼睛302、304中)。渲染引擎334还可以分别经由链路276和294与其它处理单元(诸如例如传感器姿势处理器332和图像姿势处理器336)通信。
相机324(例如,微型红外相机)可用于跟踪眼睛姿势以支持渲染和用户输入。一些示例眼睛姿势可以包括用户正在看的地方或他或她正在聚焦的深度(这可以通过眼睛的聚散来估计)。GPS 337、陀螺仪、罗盘和加速度计339可用于提供粗略或快速的姿势估计。相机316中的一个或多个可以获取图像和姿势,该图像和姿势可以与来自关联的云计算资源的数据一起被用来映射本地环境并与其他人共享用户视图。
图3中描绘的示例组件仅用于说明目的。为了便于说明和描述,一起示出了多个传感器和其它功能模块。一些实施例可以仅包括这些传感器或模块中的一个或子集。此外,这些组件的位置不限于图3中所示的位置。一些组件可以安装到其它组件或容纳在其它组件(诸如皮带安装组件、手持组件或头盔组件)内。作为一个示例,图像姿势处理器336、传感器姿势处理器332和渲染引擎334可以放置在腰带包中,并被配置为经由无线通信(诸如超宽带、Wi-Fi、蓝牙等)或经由有线通信与可穿戴系统的其它组件通信。所描绘的壳体230优选地是用户可头戴的和可穿戴的。然而,可穿戴系统200的一些组件可能会穿戴到用户身体的其它部分。例如,扬声器240可以被插入用户的耳朵中以向用户提供声音。
关于光338到用户的眼睛302、304中的投影,在一些实施例中,相机324可以被用来测量用户的眼睛的中心在几何上趋向的位置,该位置通常与眼睛的焦点位置或“焦点深度”重合。眼睛趋向的所有点的三维表面可以称为“两眼视界(horopter)”。焦距可以采取一定数量的深度,或者可以无限变化。从聚散距离投射的光似乎聚焦到主体眼睛302、304,而在聚散距离之前或之后的光则是模糊的。在美国专利公开No.2016/0270656中也描述了本公开的可穿戴设备和其它显示系统的示例,其全部内容通过引用合并于此。
人的视觉系统是复杂的,并且提供对深度的真实感是具有挑战性的。由于聚散和适应的组合,对象的观看者可以将对象感知为三维的。两只眼睛相对于彼此的聚散运动(例如,用于会聚眼睛的视线以固定在对象上的瞳孔朝向或远离彼此的转动运动)与眼睛晶状体的聚焦(或“适应”)密切相关。在正常情况下,改变眼睛晶状体的焦点或适应眼睛,以在被称为“适应-聚散反射”的关系下将焦点从一个对象改变为在另一距离处的另一对象来自动将聚散变化匹配到相同距离。同样,在正常情况下,聚散的变化将触发适应的匹配变化。在适应和聚散之间提供更好匹配的显示系统可以形成更逼真的和更舒适的三维图像模拟。
此外,人眼可以正确地分辨束直径小于约0.7毫米的空间相干光,而不管眼睛聚焦在哪里。因此,为了产生适当的焦深的错觉,可以用相机324跟踪眼睛的聚散,并且渲染引擎334和投影子系统318可用于渲染处于聚焦的两眼世界上或附近的所有对象,以及处于变化的散焦程度(例如,使用有意创建的模糊)的所有其它对象。优选地,系统220以大约每秒60帧或更高的帧速率向用户渲染。如上所述,优选地,相机324可以用于眼睛跟踪,并且软件可以被配置为不仅拾取聚散几何形状而且拾取焦点位置提示以用作用户输入。优选地,此类显示系统配置有适合白天或晚上使用的亮度和对比度。
在一些实施例中,显示系统优选地对于视觉对象对准具有小于约20毫秒的延迟,小于约0.1度的角度对准和约1弧分的分辨率,不受理论的限制,据信这大约是人眼的极限。显示系统220可以与定位系统集成在一起,该定位系统可以涉及GPS元件、光学跟踪、罗盘、加速度计或其它数据源,以帮助位置和姿势确定;定位信息可用于促进用户观看相关世界时的准确渲染(例如,此类信息将有助于眼镜了解它们关于真实世界的位置)。
在一些实施例中,可穿戴系统200被配置为基于用户的眼睛的适应来显示一个或多个虚拟图像。在一些实施例中,不同于迫使用户聚焦在图像被投影的地方的现有3D显示方法,可穿戴系统被配置为自动改变所投影虚拟内容的焦点,以允许更舒适地观看被呈现给用户的一个或多个图像。例如,如果用户的眼睛具有1m的当前焦点,则图像可以被投影为与用户的焦点重合。如果用户将焦点移至3m,则图像被投影为与新焦点重合。因此,一些实施例的可穿戴系统200允许用户的眼睛以更自然的方式起作用而不是迫使用户达到预定的焦点。
这样的可穿戴系统200可以消除或减少通常关于虚拟现实设备观察到的眼睛疲劳、头痛和其它生理症状的发生。为了实现这一点,可穿戴系统200的各种实施例被配置为通过一个或多个可变聚焦元件(VFE)以变化的焦距投影虚拟图像。在一个或多个实施例中,可通过多平面聚焦系统来实现3D感知,该多平面聚焦系统在远离用户的固定焦平面处投影图像。其它实施例采用可变平面焦点,其中,焦平面在z方向前后移动,以与用户当前的焦点状态一致。
在多平面聚焦系统和可变平面聚焦系统二者中,可穿戴系统200可以采用眼睛跟踪来确定用户的眼睛的聚散,确定用户的当前焦点以及将虚拟图像投影在所确定的焦点处。在其它实施例中,可穿戴系统200包括光调制器,该光调制器通过光纤扫描仪或其它光发生源将可变焦点的光束以光栅图案可变地投射到整个视网膜上。因此,如在美国专利No.2016/0270656(其全部内容通过引用合并于此)中进一步描述的,可穿戴系统200的显示器以变化的焦距投影图像的能力不仅减轻了用户观看3D对象的调焦,而且还可以用于补偿用户的眼部异常。在一些其它实施例中,空间光调制器可以通过各种光学组件将图像投影到用户。例如,如下文进一步所述,空间光调制器可将图像投影到一个或多个波导上,然后将图像传输给用户。
波导堆叠组件
图4示出用于向用户输出图像信息的波导堆叠的示例。可穿戴系统400包括波导的堆叠,或堆叠的波导组件480,其可以用于使用多个波导432b、434b、436b、438b、4400b向眼睛/大脑提供三维感知。在一些实施例中,可穿戴系统400可以对应于图2的可穿戴系统200,图4示意性地更详细地示出该可穿戴系统200的一些部分。例如,在一些实施例中,波导组件480可以被集成到图2的显示器220中。
继续参考图4,波导组件480还可在波导之间包括多个特征458、456、454、452。在一些实施例中,特征458、456、454、452可以是透镜。在其它实施例中,特征458、456、454、452可以不是透镜。而是,它们可以仅仅是间隔物(例如,覆盖层或用于形成气隙的结构)。
波导432b、434b、436b、438b、440b或多个透镜458、456、454、452可以被配置为以各种水平的波前曲率或光线发散将图像信息发送到眼睛。每个波导级可以与特定的深度平面相关联,并且可以被配置为输出与该深度平面相对应的图像信息。图像注入设备420、422、424、426、428可以被用来将图像信息注入波导440b、438b、436b、434b、432b,波导中的每个波导可以被配置为将入射光横跨每个相应的波导分布,用于朝向眼睛410输出。光离开图像注入设备420、422、424、426、428的输出表面,并且被注入到波导440b、438b、436b、434b、432b的对应输入边缘中。在一些实施例中,单个光束(例如,准直光束)可以被注入到每个波导中,以输出克隆的准直束的整个场,该准直束以对应于与特定波导相关联的深度平面的特定角度(和发散量)导向眼睛410。
在一些实施例中,图像注入设备420、422、424、426、428是分立的显示器,其各自产生图像信息以分别注入到对应的波导440b、438b、436b、434b、432b中。在一些其它实施例中,图像注入设备420、422、424、426、428是单个多路复用显示器的输出端,该显示器可以例如经由一个或多个光导管(诸如光缆)将图像信息传送到图像注入设备420、422、424、426、428中的每一个。
控制器460控制堆叠波导组件480和图像注入设备420、422、424、426、428的操作。控制器460包括调节定时和向波导440b、438b、436b、434b、432b提供图像信息的编程(例如,非暂态计算机可读介质中的指令)。在一些实施例中,控制器460可以是单个集成设备,或者是通过有线或无线通信信道连接的分布式系统。在一些实施例中,控制器460可以是处理模块260或270(在图2中示出)的一部分。
波导440b、438b、436b、434b、432b可以被配置为通过全内反射(TIR)在每个相应波导内传播光。波导440b、438b、436b、434b、432b可各自是平面的或具有另一种形状(例如,弯曲的),具有主要的顶部表面和底部表面以及在那些主要的顶部表面和底部表面之间延伸的边缘。在所示的配置中,波导440b、438b、436b、434b、432b可各自包括光提取光学元件440a、438a、436a、434a、432a,其被配置为通过将在每个相应波导内传播的光重定向到波导之外以将图像信息输出到眼睛410,从而从波导中提取光。提取的光也可以被称为出耦合光,并且光提取光学元件也可以称为出耦合光学元件。所提取的光束由波导在波导中传播的光撞击光重定向元件的位置处输出。光提取光学元件(440a、438a、436a、434a、432a)可以例如是反射或衍射光学特征。尽管为了便于描述和清楚起见而示出设置在波导440b、438b、436b、434b、432b的底部主表面上,但是在一些实施例中,光提取光学元件440a、438a、436a、434a、432a可以设置在顶部主表面或底部主表面,或者可以直接设置在波导440b、438b、436b、434b、432b的体积中。在一些实施例中,光提取光学元件440a、438a、436a、434a、432a可以形成为材料层,该材料层附接至透明基板上以形成波导440b、438b、436b、434b、432b。在一些其它实施例中,波导440b、438b、436b、434b、432b可以是单片材料,并且光提取光学元件440a、438a、436a、434a、432a可以形成在该片材料的表面上或内部中。
继续参考图4,如在此讨论的,每个波导440b、438b、436b、434b、432b被配置为输出光以形成与特定深度平面相对应的图像。例如,最靠近眼睛的波导432b可以被配置为将注入到这种波导432b中的准直光传送到眼睛410。准直光可以代表光学无限远焦平面。下一个波导向上434b可以被配置为在通过第一透镜452(例如,负透镜)的准直光到达眼睛410之前发出该准直光。第一透镜452可以被配置为产生轻微的凸波前曲率,使得眼睛/大脑将来自下一个波导向上434b的光解释为来自光学无限远朝内更加靠近眼睛410的第一焦平面。类似地,第三向上波导436b在到达眼睛410之前将其输出光通过第一透镜452和第二透镜454二者。第一透镜452和第二透镜454的组合光焦度可以配置为产生另一增量的波前曲率,使得眼睛/大脑将来自第三波导436b的光解释为来自第二焦平面,该第二焦平面比来自下一个波导向上434b的光从光学无限远朝内更加靠近人。
其它波导层(例如,波导438b、440b)和透镜(例如,透镜456、458)被类似地配置,堆叠中的最高波导440b通过其与眼睛之间的所有透镜发送其输出,以用于代表相对于人的最接近焦平面的聚合光焦度。为了在观看/解释来自堆叠波导组件480另一侧上的世界470的光时补偿透镜458、456、454、452的堆叠,可以在堆叠的顶部处设置补偿透镜层430,以补偿下面的透镜堆叠458、456、454、452的总焦度。此类配置提供与可用的波导/透镜对一样多的感知焦平面。波导的光提取光学元件和透镜的聚焦方面二者都可以是静态的(例如,不是动态的或电激励的)。在一些替代实施例中,其一者或二者可以动态使用电激活特征。
继续参考图4,光提取光学元件440a、438a、436a、434a、432a可被配置为既将光重定向到其相应的波导之外,又针对与波导相关联的特定深度平面以适当的发散或准直量输出该光。结果,具有不同相关联的深度平面的波导可以具有光提取光学元件的不同配置,该光提取光学元件取决于相关联的深度平面输出具有不同发散量的光。在一些实施例中,如在此所讨论的,光提取光学元件440a、438a、436a、434a、432a可以是体积或表面特征,该体积或表面特征可以被配置为以特定角度输出光。例如,光提取光学元件440a、438a、436a、434a、432a可以是体积全息图、表面全息图和/或衍射光栅。在2015年6月25日公开的美国专利公开号2015/0178939中描述了诸如衍射光栅的光提取光学元件,其通过引用整体并入在此。
在一些实施例中,光提取光学元件440a、438a、436a、434a、432a是形成衍射图案的衍射特征,或“衍射光学元件”(在此也称为“DOE”)。优选地,DOE具有相对较低的衍射效率,使得光束的光的仅一部分在DOE的每个相交处朝向眼睛410偏转离开,而其余的光经由全内反射继续移动通过波导。承载图像信息的光因此可被分成多个相关的出射束,该出射束在多个位置处离开波导,并且结果是针对在波导内到处弹跳的该特定的准直光束而朝向眼睛304的相当均匀的出射发射的图案。
在一些实施例中,一个或多个DOE可以在它们主动衍射的“开”状态与它们不明显衍射的“关”状态之间切换。例如,可切换的DOE可以包含聚合物分散液晶层,其中微滴在主体介质中包含衍射图案,并且微滴的折射率可以切换为与主体材料的折射率基本上匹配(在这种情况下,该图案不会明显衍射入射光),或者微滴可以切换到与主体介质的折射率不匹配的折射率(在这种情况下,该图案主动衍射入射光)。
在一些实施例中,可以基于观看者的眼睛的瞳孔大小或取向来动态地改变深度平面或景深的数量和分布。景深可能与观看者的瞳孔大小成反比。结果,随着观看者眼睛的瞳孔的大小减小,景深增加,使得因为该平面的位置超出了眼睛的焦点深度而无法辨别的一个平面可能会变得可辨别,并且随着瞳孔大小的减小和景深的相应增加而显得越来越集中。同样地,可以随着瞳孔大小的减小而减少用于向观看者呈现不同图像的间隔开的深度平面的数量。例如,观看者可能在不将眼睛的适应从一个深度平面调节到另一个深度平面的情况下无法在一个瞳孔大小下清楚地感知第一深度平面和第二深度平面二者的细节。然而,这两个深度平面可以同时在不改变适应的情况下以另一个瞳孔大小对用户充分聚焦。
在一些实施例中,显示系统可以基于对瞳孔大小或取向的确定,或者基于接收指示特定瞳孔大小或取向的电信号,来改变接收图像信息的波导的数量。例如,如果用户的眼睛无法区分与两个波导相关联的两个深度平面,则控制器460(其可以是本地处理和数据模块260的实施例)可以被配置或编程以停止向这些波导中的一个波导提供图像信息。有利地,这可以减少系统上的处理负担,从而增加系统的响应性。在波导的DOE可在开和关状态之间切换的实施例中,当波导确实接收到图像信息时,DOE可被切换到关状态。
在一些实施例中,可能希望使出射束满足直径小于观看者的眼睛直径的条件。然而,鉴于观看者瞳孔大小的可变性,满足该条件可能是一个挑战。在一些实施例中,通过响应于观看者的瞳孔大小的确定而改变出射束的大小,在宽范围的瞳孔大小上满足该条件。例如,随着瞳孔大小减小,出射束的大小也可以减小。在一些实施例中,可以使用可变孔径来改变出射束的大小。
可穿戴系统400可以包括对世界470的一部分进行成像的面向外成像系统464(例如,数码相机)。世界470的该部分可以被称为世界相机的视场(FOV),并且成像系统464有时被称为FOV相机。世界相机的FOV可以与观看者210的FOV相同或可以不相同,该观看者210的FOV涵盖观看者210在给定时间感知的世界470的一部分。例如,在一些情况下,世界相机的FOV可以大于可穿戴系统400的观看者210的观看者210。观看者可用于观看或成像的整个区域可以被称为关注场(FOR)。FOR可以包括围绕可穿戴系统400的立体角为4π的弧度,因为佩戴者可以移动他的身体、头部或眼睛以感知空间中的基本上任何方向。在其它上下文中,佩戴者的动作可能会更受限制,并且因此佩戴者的FOR可能会产生更小的立体角。从面向外成像系统464获得的图像可以用于跟踪用户做出的手势(例如,手或手指的手势),检测用户前面的世界470中的对象等。
可穿戴系统400可以包括音频传感器232,例如麦克风,以捕获环境声音。如上所述,在一些实施例中,可以放置一个或多个其它音频传感器以提供用于确定语音源的位置的立体声接收。作为另一示例,音频传感器232可以包括定向麦克风,该定向麦克风还可以提供关于音频源位于何处的这样的有用的定向信息。可穿戴系统400可以在定位语音源时使用来自面向外成像系统464和音频传感器230二者的信息,或者在特定时刻确定活动说话者等。例如,可穿戴系统400可以单独或者与说话者的反射图像(例如,如在镜子中看到)结合使用语音识别以确定说话者的身份。作为另一示例,可穿戴系统400可以基于从定向麦克风获取的声音来确定说话者在环境中的位置。可穿戴系统400可以采用语音识别算法来解析来自说话者位置的声音,以确定语音的内容,并使用语音识别技术来确定说话者的身份(例如,姓名或其他人口统计信息)。
可穿戴系统400还可以包括面向内成像系统466(例如,数码相机),其观察用户的运动,诸如眼睛运动和面部运动。面向内成像系统466可以用于捕获眼睛410的图像以确定眼睛304的瞳孔的大小和/或取向。面向内成像系统466可以用于获得图像以用于确定用户正在看的方向(例如,眼睛姿势)或用户的生物度量识别(例如,经由虹膜识别)。在一些实施例中,可以为每只眼睛使用至少一个相机,以独立地确定每只眼睛单独的瞳孔大小或眼睛姿势,从而允许向每只眼睛呈现图像信息以针对该只眼睛被动态地调整。在一些其它实施例中,仅单只眼睛410的瞳孔直径或取向被确定(例如,每双眼仅使用单个相机),并且假定对于用户的两只眼睛是相似的。可以分析由面向内成像系统466获得的图像以确定用户的眼睛姿势或心情,可穿戴系统400可以使用该眼睛姿势或心情来确定应该向用户呈现哪些音频或视觉内容。可穿戴系统400还可以使用诸如IMU、加速度计、陀螺仪等的传感器来确定头部姿势(例如,头部位置或头部取向)。
可穿戴系统400可以包括用户输入设备466,用户可以通过该用户输入设备466向控制器460输入命令以与可穿戴系统400交互。例如,用户输入设备466可以包括触控板、触摸屏、游戏杆、多自由度(DOF)控制器、电容感测设备、游戏控制器、键盘、鼠标、方向垫(D-pad)、棒、触觉设备、图腾(例如,充当虚拟用户输入设备)等。多DOF控制器可以以控制器的一些或所有可能的平移(例如,向左/向右、向前/向后或向上/向下)或旋转(例如,偏航、俯仰或滚动)来感测用户输入。支持平移运动的多DOF控制器可以称为3DOF,而支持平移和旋转的多自由度控制器可以称为6DOF。在一些情况下,用户可以使用手指(例如,拇指)在触敏输入设备上按下或滑动以向可穿戴系统400提供输入(例如,向由可穿戴系统400提供的用户界面提供用户输入)。用户输入设备466可以在可穿戴系统400的使用期间被用户的手握住。用户输入设备466可以与可穿戴系统400进行有线或无线通信。
可穿戴系统的其它组件
在许多实现方式中,除了上述可穿戴系统的组件之外或作为其替代,可穿戴系统可包括其它组件。可穿戴系统可以例如包括一个或多个触觉设备或组件。触觉设备或触觉组件可以可操作以向用户提供触感。例如,当触摸虚拟内容(例如,虚拟物体、虚拟工具、其它虚拟构造)时,触觉设备或组件可以提供压力或纹理的触感。触感可以复制虚拟对象所代表的物理对象的感觉,或者可以复制虚拟内容所代表的想象的对象或角色(例如,龙)的感觉。在一些实现方式中,触觉设备或组件可以由用户佩戴(例如,用户可佩戴的手套)。在一些实现方式中,触觉设备或组件可以由用户握持。
可穿戴系统可以例如包括可由用户操纵以允许输入可穿戴系统或与可穿戴系统交互的一个或多个物理对象。这些物理对象在此可以称为图腾。一些图腾可能采取无生命物体的形式,诸如例如一块金属或塑料、墙壁、桌子表面。在一些实现方式中,图腾实际上可能没有任何物理输入结构(例如,键、触发器、操纵杆、轨迹球、摇杆开关)。取而代之的是,图腾可以简单地提供物理表面,并且可穿戴系统可以渲染用户界面,以使用户看起来在图腾的一个或多个表面上。例如,可穿戴系统可以将计算机键盘和触控板的图像渲染为看起来驻留在图腾的一个或多个表面上。例如,可穿戴系统可以将虚拟计算机键盘和虚拟触控板渲染为出现在用作图腾的铝制矩形薄板的表面上。矩形板本身没有任何物理键、触控板或传感器。然而,可穿戴系统可以将用户采用矩形板操纵或交互或触摸检测为经由虚拟键盘或虚拟触控板进行的选择或输入。用户输入设备466(图4中所示)可以是图腾的实施例,其可以包括触控板、触摸板、触发器、操纵杆、跟踪球、摇杆或虚拟开关、鼠标、键盘、多自由度控制器或另一物理输入设备。用户可以单独或与姿势结合使用图腾与可穿戴系统或其他用户进行交互。
可与本公开的可穿戴设备、HMD和显示系统一起使用的触觉设备和图腾的示例在美国专利公开No.2015/0016777中进行了描述,其全部内容通过引用合并于此。
用户与可穿戴系统交互的示例过程
图5是用于与虚拟用户界面进行交互的方法500的示例的过程流程图。方法500可以由在此描述的可穿戴系统执行。方法500的实施例可以由可穿戴系统用来检测可穿戴系统的FOV中的人或文档。
在框510处,可穿戴系统可以识别特定的UI。UI的类型可以由用户预先确定。可穿戴系统可以识别特定的UI需要基于用户输入(例如,手势、视觉数据、音频数据、感觉数据、直接命令等)来填充。UI可以特定于安全场景,在该安全场景中,系统的佩戴者正在观察向佩戴者(例如,在旅行检查站)呈现文档的用户。在框520处,可穿戴系统可以生成用于虚拟UI的数据。例如,可以生成与UI的边界、总体结构、形状等相关联的数据。另外,可穿戴系统可以确定用户的物理位置的地图坐标,使得可穿戴系统可以显示与用户的物理位置有关的UI。例如,如果UI以身体为中心,则可穿戴系统可以确定用户的身体姿势、头部姿势或眼睛姿势的坐标,使得可以在用户周围显示环形UI,或者可以在墙上或在用户前面显示平面UI。在此所述的安全性上下文中,可以将UI显示为好像UI围绕正在向系统的佩戴者呈现文档的旅行者一样,使得佩戴者可以在观看旅行者和旅行者的文档时轻松观看UI。如果UI以手为中心,则可以确定用户的手的地图坐标。这些地图点可以通过FOV相机接收的数据、感官输入或任何其它类型的收集数据得出。
在框530处,可穿戴系统可以将数据从云发送到显示器,或者可以将数据从本地数据库发送到显示器组件。在框540处,基于所发送的数据向用户显示UI。例如,光场显示器可以将虚拟UI投射到用户的一只或两只眼睛中。一旦已经创建了虚拟UI,则在框550处,可穿戴系统可以简单地等待来自用户的命令以在虚拟UI上生成更多虚拟内容。例如,UI可以是围绕用户的身体或用户环境中的人(例如旅行者)的身体的以身体为中心的环。然后,可穿戴系统可以等待命令(手势、头部或眼睛的运动、语音命令、来自用户输入设备的输入等),并且如果识别出该命令(框560),则可以与该命令相关联的虚拟内容向用户显示(框570)。
混合现实中的头像渲染的示例
可穿戴系统可以采用各种映射相关技术,以便在渲染的光场中实现高景深。在映射出虚拟世界时,了解真实世界中的所有特征和点以相对于真实世界准确地描绘虚拟对象是有利的。为此,可以通过包含传达有关真实世界的各个点和特征的信息的新图片,将从可穿戴系统用户捕获的FOV图像添加到世界模型。例如,可穿戴系统可以收集一组地图点(例如2D点或3D点)并找到新的地图点以渲染世界模型的更准确版本。可以将第一用户的世界模型(例如,通过诸如云网络的网络)传送给第二用户,使得第二用户可以体验围绕第一用户的世界。
图6A是可穿戴系统的另一示例的框图,该可穿戴系统可包括混合现实环境中的头像处理和渲染系统690。可穿戴系统600可以是图2中所示的可穿戴系统200的一部分。在该示例中,可穿戴系统600可以包括地图620,该地图620可以包括地图数据库710(图7中所示)中的数据的至少一部分。该地图可以部分地驻留在可穿戴系统本地上,并且可以部分地驻留在可通过有线或无线网络访问的联网存储位置(例如,在云系统中)。姿势过程610可以在可穿戴计算架构(例如,处理模块260或控制器460)上执行,并利用来自地图620的数据来确定可穿戴计算硬件或用户的位置和取向。当用户正在体验系统并在世界范围内操作时,可以根据飞行中收集的数据计算姿势数据。数据可以包括图像、来自传感器的数据(诸如惯性测量单元,其通常包括加速度计和陀螺仪组件)以及与真实或虚拟环境中的对象有关的表面信息。
稀疏点表示可以是同时定位和映射(例如,SLAM或vSLAM,是指其中输入仅是图像/视觉的配置)过程的输出。该系统可以配置为不仅找出各个组件在世界中的位置,而且找出世界的构成。姿势可以是实现许多目标的构建块,包括填充地图和使用来自地图的数据。
在一个实施例中,稀疏点位置本身可能并不完全足够,并且可能需要进一步的信息来产生多焦点AR、VR或MR体验。通常指代深度图信息的密集表示可以被用来至少部分地填充该间隙。可以从称为“立体”640的过程中计算此类信息,其中,使用诸如三角测量或飞行时间感测的技术来确定深度信息。图像信息和活动图案(诸如使用活动投影仪创建的红外图案)、从图像相机获取的图像或手势/图腾650可用作立体处理640的输入。大量深度图信息可以被融合在一起,并且其中的一些可以采用表面表示来概括。例如,在数学上可定义的表面可能是其它处理设备(如游戏引擎)的有效(例如,相对于大的点云而言)且可理解的输入。因此,立体过程(例如,深度图)640的输出可以在融合过程630中被组合。姿势610也可以是该融合过程630的输入,并且融合630的输出变成填充地图过程620的输入。诸如在地形图绘制中,子表面可以彼此连接以形成较大的表面,并且该地图变成点和表面的大型混合体。
为了解决混合现实过程660中的各个方面,可以利用各种输入。例如,在图6A中所示的实施例中,可以输入游戏参数来确定系统的用户正在与各个位置处的一个或多个怪物、在各个位置处的墙壁或其它物体等玩怪物战斗游戏,怪物在各种条件下死亡或逃跑(诸如,如果用户射击了怪物)。世界地图可以包括关于对象的位置的信息或对象的语义信息(例如,诸如对象是平坦还是圆形,水平还是竖直,桌子还是灯等的分类),并且世界地图可以是对于混合现实的另一个有价值的输入。相对于世界的姿势也变成输入,并且在几乎所有交互系统中都扮演着关键角色。
来自用户的控制或输入是可穿戴系统600的另一输入。如在此所述,用户输入可包括视觉输入、手势、图腾、音频输入、感官输入等。为了四处移动或玩游戏,例如,用户可能需要指示可穿戴系统600有关他或她想做什么。除了在空间中移动自身外,还存在可以利用的各种形式的用户控件。在一个实施例中,图腾(例如用户输入设备)或诸如玩具枪的对象可以由用户握持并由系统跟踪。该系统优选地将被配置为了解用户正在握持该物品并了解用户正在与该物品进行什么类型的交互(例如,如果图腾或对象是枪,则系统可以被配置为了解位置和取向,以及用户是否点击了触发器或可能配备有传感器(诸如IMU)的其它感应按钮或元件,即使当这种活动不在任何相机的视野之内时,该传感器也可以辅助确定发生了什么)。
手势跟踪或识别也可以提供输入信息。可穿戴系统600可以被配置为跟踪和解释用于按钮按压、用于手势向左或向右、停止、抓握、握持等的手势。例如,在一种配置中,用户可能想要在非游戏环境中翻阅电子邮件或日历,或者与另一个人或玩家进行“拳头碰撞”。可穿戴系统600可以被配置为利用最小量的手势,该最小量的手势可以是动态的或可以不是动态的。例如,手势可以是简单的静态手势,如张开手表示停止,上竖大拇指表示可以,下竖大拇指表示不可以;或手向右或向左或向上/向下翻转以表示方向命令。
眼睛跟踪是另一种输入(例如,跟踪用户正在看向控制显示技术以在特定深度或范围进行渲染的位置)。在一个实施例中,可以使用三角测量确定眼睛的聚散,并且然后使用针对该特定人开发的聚散/适应模型来确定适应。眼睛跟踪可由眼睛相机执行,以确定眼睛注视(例如,一只眼睛或两只眼睛的方向或取向)。其它技术可以被用于眼睛跟踪,诸如例如,通过放置在眼睛附近的电极(例如,眼电位计)来测量电势。
语音跟踪可以是可以单独使用或与其它输入(例如,图腾跟踪、眼睛跟踪、手势跟踪等)组合使用的另一种输入。语音跟踪可以包括单独或组合的语音识别、声音识别。系统600可以包括从环境接收音频流的音频传感器(例如,麦克风)。系统600可以结合声音识别技术来确定谁正在说话(例如,语音是来自ARD的佩戴者还是另一个人或语音(例如,语音是来自ARD佩戴者还是其他人还是语音(例如,环境中扬声器发送的录制语音))以及语音识别技术来确定在说什么。本地数据和处理模块260或远程处理模块270可以处理来自麦克风的音频数据(或诸如例如用户正在观看的视频流的另一个流中的音频数据),以通过应用各种语音识别算法,诸如例如隐马尔可夫模型、基于动态时间规整(DTW)的语音识别、神经网络、深度学习算法(诸如深度前馈和递归神经网络)、端到端自动语音识别、机器学习算法(参考图7进行描述),或使用声学建模或语言建模的其它算法等,来识别语音内容。
本地数据和处理模块260或远程处理模块270也可以应用语音识别算法,该算法可以识别说话者的身份,诸如说话者是可穿戴系统600的用户210还是用户正在交流的其他人。一些示例语音识别算法可以包括频率估计、隐马尔可夫模型、高斯混合模型、模式匹配算法、神经网络、矩阵表示、矢量量化、说话者二叉化、决策树和动态时间规整(DTW)技术。语音识别技术还可以包括反说话者技术,诸如同类群组模型和世界模型。频谱特征可用于表示说话者特征。本地数据和处理模块或远程数据处理模块270可以使用参考图7描述的各种机器学习算法来执行语音识别。
可穿戴系统的实现方式可以经由UI使用这些用户控件或输入。UI元素(例如,控件、弹出窗口、气泡、数据输入字段等)可以用于例如关闭信息(例如对象的图形或语义信息)的显示。
关于相机系统,图6A中所示的示例可穿戴系统600可以包括三对相机:布置在用户面部两侧的相对较宽的FOV或被动SLAM相机对;取向为用户前方的不同对的相机,其用于处理立体成像过程640并捕获在用户面部前方跟踪的手势和图腾/对象。FOV相机和用于立体过程640的相机对可以是面向外成像系统464(图4中所示)的一部分。可穿戴系统600可以包括朝向用户的眼睛取向的眼睛跟踪相机(其可以是图4中所示的面向内成像系统462的一部分),以便对眼睛矢量和其它信息进行三角测量。可穿戴系统600还可包括一个或多个纹理光投影仪(诸如红外(IR)投影仪)以将纹理注入场景。
可穿戴系统600可以包括头像处理和渲染系统690。头像处理和渲染系统690可以被配置为基于上下文信息生成、更新、动画化和渲染头像。头像处理和渲染系统690中的一些或全部可以单独地或组合地实现为本地处理和数据模块260或远程处理模块262、264的一部分。在各个实施例中,多个头像处理和渲染系统690(例如,如在不同的可穿戴设备上实现)可以用于渲染虚拟头像670。例如,第一用户的可穿戴设备可以用于确定第一用户的意图,而第二用户的可穿戴设备可以基于从第一用户的可穿戴设备接收的意图来确定头像的特征并渲染第一用户的头像。如将参考图9A和9B所描述的,第一用户的可穿戴设备和第二用户的可穿戴设备(或其它此类可穿戴设备)可以例如经由网络进行通信。
图6B示出示例头像处理和渲染系统690。头像处理和渲染系统690可以实现参考图11-14C描述的网格转移技术。示例头像处理和渲染系统690可以单独或组合地包括3D模型处理系统680、上下文信息分析系统688、头像自动缩放器692、意图映射系统694、解剖结构调节系统698、刺激响应系统696。系统690旨在示出用于头像处理和渲染的功能,而并非旨在进行限制。例如,在某些实现方式中,这些系统中的一个或多个系统可以是另一系统的一部分。例如,上下文信息分析系统688的部分单独地或组合地可以是头像自动缩放器692、意图映射系统694、刺激响应系统696或解剖结构调节系统698的一部分。
上下文信息分析系统688可以被配置为基于参考图2和图3描述的一个或多个设备传感器来确定环境和对象信息。例如,上下文信息分析系统688可以使用由用户或用户头像的观看者的面向外成像系统464获取的图像,分析环境和用户环境或渲染用户头像的环境的对象(包括物理或虚拟对象)。上下文信息分析系统688可以单独或者与从位置数据或世界地图(例如,地图620、710、910)获取的数据组合来分析此类图像,以确定环境中对象的位置和布局。上下文信息分析系统688通常还可以访问用户或人类的生物学特征,以现实地对虚拟头像670制作动画。例如,上下文信息分析系统688可以生成不适感曲线,该不适感曲线可以应用于头像,使得用户的头像身体的一部分(例如头部)关于用户的身体的其它部分没有处于不舒适(或不现实)的位置(例如,头像的头部未转动270度)。在某些实现方式中,一个或多个对象识别器708(图7中所示)可以被实现为上下文信息分析系统688的一部分。
头像自动缩放器692、意图映射系统694和刺激响应系统696以及解剖结构调节系统698可以被配置为基于上下文信息来确定头像的特征。头像的一些示例特征可以包括大小、外观、位置、取向、运动、姿势、表情等。头像自动缩放器692可以被配置为自动缩放头像,使得用户不必以不舒服的姿势看头像。例如,头像自动缩放器692可以增加或减小头像的大小以将头像放到用户的视线高度,使得用户不需要分别向下看头像或向上看头像。意图映射系统694可以确定用户交互的意图,并基于渲染头像所在的环境将意图映射到头像(而不是确切的用户交互)。例如,第一用户的意图可以是在远程呈现会话中与第二用户通信(例如,参见图9B)。通常,两个人在交流时会面对面。第一用户的可穿戴系统的意图映射系统694可以确定在远程呈现会话期间存在此类面对面的意图,并且可以使第一用户的可穿戴系统将第二用户的头像渲染为面对第一用户。如果第二用户要在物理上转身,而不是将第二用户的头像渲染到转身的位置(这将导致第二用户的头像的背面被渲染给第一用户),则第一用户的意图映射系统694可以继续将第二头像的面部渲染给第一用户,这是远程呈现会话的推断意图(例如,在该示例中的面对面意图)。
刺激响应系统696可以识别环境中的关注对象,并确定头像对关注对象的响应。例如,刺激响应系统696可以识别头像的环境中的声源,并自动转动头像以看着声源。刺激响应系统696还可以确定阈值终止条件。例如,刺激响应系统696可以在声源消失之后或者经过一段时间之后,使头像回到其原始姿势。
解剖结构调节系统698可以被配置为基于生物学特征来调节用户的姿势。例如,解剖结构调节系统698可以被配置为基于不舒适曲线来调节用户的头部与用户的躯干之间或用户的上半身与下半身之间的相对位置。
3D模型处理系统680可以被配置为对显示器220制作动画并使其渲染虚拟头像670。3D模型处理系统680可以包括虚拟角色处理系统682和运动处理系统684。虚拟角色处理系统682可以被配置为生成和更新用户的3D模型(用于创建虚拟头像并对其制作动画)。运动处理系统684可以被配置为对头像制作动画,诸如例如通过改变头像的姿势,通过在用户的环境中四处移动头像或对头像的面部表情制作动画等。如将在此进一步描述的,可以使用装配技术对虚拟头像制作动画。在一些实施例中,头像以两个部分表示:用于渲染虚拟头像的外部外观的表面表示(例如,可变形的网格)和用于对网格制作动画的互连关节(例如,核心骨架)的分层集合。在一些实现方式中,虚拟角色处理系统682可以被配置为编辑或生成表面表示,而运动处理系统684可以用于通过移动头像,使网格变形等来对头像制作动画。例如,在一些实现方式中,运动处理系统684执行在此描述的关节分解过程(例如,参考图14描述的过程1400)的实施例。
映射用户环境的示例
图7是MR环境700的示例的框图。MR环境700可以被配置为从一个或多个用户可穿戴系统(例如,可穿戴系统200或显示系统220)或固定房间系统(例如,房间相机等)接收输入(例如,来自用户的可穿戴系统的视觉输入702,诸如室内相机的固定输入704,来自各种传感器的感官输入706,手势,图腾,眼睛跟踪,来自用户输入设备466的用户输入等)。可穿戴系统可以使用各种传感器(例如,加速度计、陀螺仪、温度传感器、运动传感器、深度传感器、GPS传感器、面向内成像系统、面向外成像系统等)来确定用户环境的位置和各种其它属性。该信息可以进一步补充有来自房间中固定相机的信息,该固定相机可以从不同的视角提供图像或各种提示。由相机(诸如房间相机和/或面向外成像系统的相机)获取的图像数据可以减少到一组映射点。
一个或多个对象识别器708可以爬行通过所接收的数据(例如,点的集合)并且识别或映射点、标签图像,借助于地图数据库710将语义信息附加到对象。地图数据库710可以包括随时间推移收集的各种点及其对应的对象。各种设备和地图数据库可以通过网络(例如,LAN、WAN等)彼此连接以访问云。
基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别环境中的对象。例如,对象识别器可以识别面部、人物、窗户、墙壁、用户输入设备、电视、文档(例如,本安全示例中在此所述的旅行机票、驾照、护照)、用户环境中的其它对象等。一个或多个对象识别器可以专门用于具有某些特征的对象。例如,对象识别器708a可用于识别面部,而另一对象识别器可用于识别文档。
可以使用多种计算机视觉技术来执行对象识别。例如,可穿戴系统可以分析由面向外成像系统464(图4中所示)获取的图像以执行场景重构、事件检测、视频跟踪、对象识别(例如人或文档)、对象姿势估计、面部识别(例如,来自环境中的人或文档上的图像)、学习、索引、运动估计或图像分析(例如,在文档中识别标记,诸如照片、签名、标识信息、旅行信息等)等。可以使用一种或多种计算机视觉算法来执行这些任务。计算机视觉算法的非限制性示例包括:尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)、定向FAST和旋转的BRIEF(ORB)、二进制鲁棒不变可扩展关键点(BRISK)、快速视网膜关键点(FREAK)、Viola-Jones算法、Eigenfaces方法、Lucas-Kanade算法、Horn-Schunk算法、均值漂移算法、视觉同时定位和映射(vSLAM)技术、顺序贝叶斯估计器(例如,卡尔曼过滤器、扩展卡尔曼过滤器等)、束调节、自适应阈值(和其它阈值技术)、迭代最近点(ICP)、半全局匹配(SGM)、半全局块匹配(SGBM)、特征点直方图、各种机器学习算法(诸如例如支持矢量机、k最近邻算法、朴素贝叶斯、神经网络(包括卷积或深度神经网络)或其它监督/无监督模型等)等。
对象识别可以另外地或可替代地通过各种机器学习算法来执行。训练后,机器学习算法可以由HMD存储。机器学习算法的一些示例可以包括有监督或无监督的机器学习算法,包括回归算法(诸如例如普通最小二乘回归)、基于实例的算法(诸如例如学习矢量量化)、决策树算法(诸如例如分类和回归树)、贝叶斯算法(诸如例如朴素贝叶斯)、聚类算法(诸如例如k均值聚类)、关联规则学习算法(诸如例如先验算法)、人工神经网络算法(诸如例如Perceptron)、深度学习算法(诸如例如Deep Boltzmann Machine或深度神经网络)、降维算法(诸如例如,主要成分分析)、整体算法(例如,Stacked Generalization)和/或其它机器学习算法。在一些实施例中,可以为各个数据集定制单独的模型。例如,可穿戴设备可以生成或存储基本模型。基本模型可以用作生成特定于数据类型(例如,远程呈现会话中的特定用户)、数据集(例如,用户在远程呈现会话中获得的一组附加图像的集合)、有条件的情况或其它变化的附加模型的起点。在一些实施例中,可穿戴HMD可以被配置为利用多种技术来生成用于分析聚合数据的模型。其它技术可以包括使用预定义的阈值或数据值。
基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别对象并向对象补充语义信息以赋予对象生命。例如,如果对象识别器将一组点识别为门,则系统可以附加一些语义信息(例如,门具有铰链并且围绕铰链具有90度的运动)。如果对象识别器将一组点识别为镜子,则系统可以附加该镜子具有可以反射房间中对象图像的反射表面的语义信息。语义信息可以包括在此所述的对象的功能可见性。例如,语义信息可以包括对象的法线。系统可以分配矢量,其方向指示对象的法线。随着时间推移,地图数据库会随着系统(其可驻留在本地或可通过无线网络访问)从世界收集更多数据而增长。一旦对象被识别,信息就可以被传输到一个或多个可穿戴系统。例如,MR环境700可以包括关于在加利福尼亚州发生的场景的信息。环境700可被传输给纽约的一个或多个用户。基于从FOV相机和其它输入接收的数据,对象识别器和其它软件组件可以映射从各种图像收集的点,识别对象等,使得可以将场景准确地“传递”给第二用户,该第二用户可能在世界的不同部分。环境700也可以将拓扑图用于定位目的。
图8是关于所识别的对象渲染虚拟内容的方法800的示例的过程流程图。方法800描述了可以如何向可穿戴系统的用户呈现虚拟场景。用户可以在地理位置上远离场景。例如,用户可能在纽约,但可能想要观看当前在加利福尼亚州发生的场景,或者可能想与居住在加利福尼亚州的朋友一起散步。
在框810处,可穿戴系统可以从用户和其他用户接收关于用户的环境的输入。这可以通过各种输入设备以及地图数据库中已经拥有的知识来实现。在框810处,用户的FOV相机、传感器、GPS、眼睛跟踪等将信息传达到系统。在框820处,系统可以基于该信息来确定稀疏点。稀疏点可以用于确定姿势数据(例如,头部姿势、眼睛姿势、身体姿势或手势),该姿势数据可以用于显示和理解用户周围环境中的各种对象的取向和位置。在框830处,对象识别器708a-708n可爬行通过这些收集的点并使用地图数据库识别一个或多个对象。然后,在框840处,该信息可以被传达到用户的单独的可穿戴系统,并且在框850处,所需的虚拟场景可以因此被显示给用户。例如,所需的虚拟场景(例如,加利福尼亚州的用户)可以相对于纽约的用户的各种对象和其它周围环境以适当的取向、位置等显示。
多个可穿戴系统之间的示例通信
图9A示意性地示出描绘彼此交互的多个用户设备的整体系统视图。计算环境900包括用户设备930a、930b、930c。用户设备930a、930b和930c可以通过网络990彼此通信。用户设备930a-930c可以各自包括网络接口,以经由网络990与远程计算系统920(也可以包括网络接口971)通信。网络990可以是LAN、WAN、对等网络、无线电、蓝牙或任何其它网络。计算环境900也可以包括一个或多个远程计算系统920。远程计算系统920可以包括集群的并且位于不同地理位置的服务器计算机系统。用户设备930a、930b和930c可以经由网络990与远程计算系统920通信。
远程计算系统920可以包括远程数据仓库980,该远程数据仓库980可以维护关于特定用户的物理和/或虚拟世界的信息。数据存储器980可以存储与用户、用户的环境(例如,用户环境的世界地图)或用户的头像的配置有关的信息。远程数据存储库可以是图2中所示的远程数据存储库280的实施例。远程计算系统920还可以包括远程处理模块970。远程处理模块970可以是图2中所示的远程处理模块270的实施例。远程处理模块970可以包括一个或多个处理器,该处理器可以与用户设备(930a、930b、930c)和远程数据仓库980通信。处理器可以处理从用户设备和其它来源获得的信息。在一些实现方式中,处理或存储的至少一部分可以由本地处理和数据模块260(如图2中所示)提供。远程计算系统920可以使给定用户能够与另一用户共享关于特定用户自己的物理和/或虚拟世界的信息。
用户设备可以是单独或组合的可穿戴设备(诸如HMD或ARD)、计算机、移动设备或任何其它设备。例如,用户设备930b和930c可以是可以被配置为呈现AR/VR/MR内容的图2中所示的可穿戴系统200(或图4中所示的可穿戴系统400)的实施例。
一个或多个用户设备可以与图4中所示的用户输入设备466一起使用。用户设备可以获得关于用户和用户的环境的信息(例如,使用图4中所示的面向外成像系统464)。用户设备和/或远程计算系统1220可以使用从用户设备获得的信息来构造、更新和构建图像、点和其它信息的集合。例如,用户设备可以处理获取的原始信息,并将处理的信息发送到远程计算系统1220以进行进一步处理。用户设备还可以将原始信息发送到远程计算系统1220以进行处理。用户设备可以从远程计算系统1220接收处理的信息,并在投影到用户之前提供最终处理。用户设备还可以处理获得的信息,并将处理的信息传递给其他用户设备。用户设备可以在处理获取的信息的同时与远程数据存储库1280通信。多个用户设备和/或多个服务器计算机系统可以参与所获取图像的构造和/或处理。
关于物理世界的信息可以随时间推移发展,并且可以基于由不同用户设备收集的信息。虚拟世界的模型也可随时间推移而发展,并基于不同用户的输入。此类信息和模型有时在此可以被称为世界地图或世界模型。如参考图6和图7所述,由用户设备获取的信息可以用于构造世界地图910。世界地图910可以包括图6A中描述的地图620的至少一部分。各种对象识别器(例如708a,708b,708c…708n)可用于识别对象和标记图像,以及将语义信息附加到对象。这些对象识别器也在图7中描述。
远程数据存储库980可以用于存储数据并且促进世界地图910的构造。用户设备可以不断更新关于用户环境的信息并接收关于世界地图910的信息。世界地图910可以由用户或其他人创建。如在此所讨论的,用户设备(例如930a、930b、930c)和远程计算系统920可以单独或组合地构造和/或更新世界地图910。例如,用户设备可以与远程处理模块970和远程数据仓库980通信。用户设备可以获取和/或处理关于用户和用户环境的信息。远程处理模块970可以与远程数据存储库980和用户设备(例如,930a、930b、930c)通信,以处理关于用户和用户的环境的信息。远程计算系统920可以修改由用户设备(例如,930a、930b、930c)获取的信息,诸如例如,选择性地裁剪用户的图像,修改用户的背景,将虚拟对象添加到用户的环境,采用辅助信息注释用户的语音等。远程计算系统920可以将处理的信息发送到相同和/或不同的用户设备。
远程呈现会话的示例
图9B描绘了其中相应可穿戴系统的两个用户正在进行远程呈现会话的示例。该图中示出两个用户(在该示例中分别名为Alice 912和Bob 914)。两个用户正在佩戴他们相应的可穿戴设备902和904,该可穿戴设备902和904可以包括参考图2描述的HMD(例如,系统200的显示设备220),用于表示远程呈现会话中的另一用户的虚拟头像。两个用户可以使用可穿戴设备进行远程呈现会话。注意,图9B中将两个用户分开的竖直线旨在示出当Alice912和Bob 914经由远程呈现进行通信的同时(例如,Alice可能在她位于亚特兰大的办公室内而Bob在波士顿户外时)可能(但是不是必须)位于两个不同的位置。
如参考图9A所描述的,可穿戴设备902和904可以彼此通信或者与其他用户设备和计算机系统通信。例如,Alice的可穿戴设备902可以例如经由网络990(在图9A中示出)与Bob的可穿戴设备904通信。可穿戴设备902和904可以跟踪用户的环境以及环境中的运动(例如,经由相应的面向外成像系统464,或者一个或多个位置传感器)和语音(例如,经由相应的音频传感器232)。可穿戴设备902和904还可以基于由面向内成像系统462获取的数据来跟踪用户的眼睛运动或注视。在一些情况下,可穿戴设备还可以捕获或跟踪用户的面部表情或其它身体运动(例如手臂或腿部运动),其中用户靠近反射表面,并且面向外成像系统464可以获得用户的反射图像,以观察用户的面部表情或其它身体运动。
可穿戴设备可以使用从第一用户和环境中获取的信息来对虚拟头像制作动画,该虚拟头像将由第二用户的可穿戴设备渲染,以在第二用户环境中产生第一用户的有形的存在感。例如,可穿戴设备902和904、远程计算系统920可以单独或组合地处理由Bob的可穿戴设备904呈现的Alice的图像或运动,或者可以处理由Alice的可穿戴设备902呈现的Bob的图像或运动。如在此进一步描述,可以基于诸如例如用户的意图、用户的环境或其中渲染头像的环境或人的其它生物学特征的上下文信息来渲染头像。
尽管示例仅涉及两个用户,但是在此描述的技术不应限于两个用户。使用可穿戴设备(或其它远程呈现设备)的多个用户(例如,两个、三个、四个、五个、六个或更多)可以参加远程呈现会话。在远程呈现会话期间,特定用户的可穿戴设备可以向该特定用户呈现其他用户的头像。此外,虽然该图中的示例将用户示出为站在环境中,但是不需要用户站立。在远程呈现会话期间,任何用户都可以站立、坐着、跪着、躺下、步行或奔跑,或者处于任何位置或运动。除了在此示例中所述,用户还可能处于物理环境中。在进行远程呈现会话的同时,用户可以处于单独的环境中,或可以处于相同的环境中。并非所有用户都需要在远程呈现会话中佩戴其相应的HMD。例如,在Bob 914佩戴可穿戴设备904的同时,Alice 912可以使用其它图像采集和显示设备,诸如网络摄像头和计算机屏幕。
虚拟头像的示例
图10示出可穿戴系统的用户所感知的头像的示例。图10中所示的示例头像1000可以是站在房间中的物理植物后面的Alice 912(图9B中所示)的头像。头像可包括各种特征,诸如例如大小、外观(例如肤色、面色、发型、衣服、面部特征,诸如皱纹、痣、斑点、粉刺、酒窝等)、位置、取向、运动、姿势、表情等。这些特征可以基于与头像相关联的用户(例如,Alice的头像1000可以具有实际人Alice 912的一些或全部特征)。如在此进一步描述的,头像1000可以基于上下文信息被动画化,其可以包括对头像1000的一个或多个特征的调节。尽管在此通常被描述为表示人(例如Alice)的身体外观,但这是为了说明而不是限制。Alice的头像可以表示除了Alice、拟人化的对象、生物或任何其它真实或虚拟的表示之外的另一个真实或虚构的人的外观。此外,图10中的植物不必是物理的,而可以是由可穿戴系统向用户呈现的植物的虚拟表示。此外,与图10中所示的内容相比,附加的或不同的虚拟内容也可以呈现给用户。
用于虚拟角色的绑定(rigging)系统的示例
诸如人类头像的动画虚拟角色可以在计算机图形中被全部或部分地表示为多边形网格。多边形网格或简称为“网格”,是在所建模的三维空间中的点的集合。网格可以形成多面体对象,其表面定义虚拟角色(或其一部分)的主体或形状。尽管网格可以包括任何数量的点(在可用计算能力可能会施加的实际限制内),但具有更多点的更精细的网格通常能够描绘出具有可以更接近现实生活中的人、动物、物体等的更精细细节的更逼真的虚拟角色。图10示出头像1000的眼睛周围的网格1010的示例。尽管网格可以包括任何数量的点(在可能由可用的计算能力施加的实际限制内),但是具有更多点的更精细网格通常能够描绘出具有可以更接近现实生活中的人、动物、物体等的更精细细节的更逼真的虚拟角色。图10示出头像1000的眼睛周围的网格1010的示例。网格1010可以相对精细(例如,具有相对大量的点),以便于高质量模拟眼睛区域中发生的复杂曲线和运动。
网格中的每个点都可以通过所建模的三维空间中的坐标定义。所建模的三维空间可以是例如由(x,y,z)坐标寻址的笛卡尔空间。网格中的点是构成多面体对象的多边形的顶点。每个多边形表示多面体对象的表面或面,并由有序的一组顶点定义,每个多边形的边是连接有序的一组顶点的直线边缘。在一些情况下,网格中的多边形顶点可与几何多边形不同,其中它们在3D图形中不一定共面。另外,网格中多边形的顶点可以是共线的,在这种情况下,多边形具有零面积(被称为退化多边形)。
在一些实施例中,网格由三顶点多边形(即,三角形或简称为“tris”)或四顶点多边形(即,四边形或称为“quad”)组成。然而,也可以在一些网格中使用高阶多边形。在直接内容创建(DCC)应用(例如,诸如Maya(可从Autodesk,Inc.获得)或Houdini(可从SideEffects Software Inc.获得)的应用)中,网格通常基于四边形,其主要设计用于创建和操纵3D计算机图形),而网格在实时应用中通常是基于三角形的。
为了对虚拟角色制作动画,可以通过在各个时刻将虚拟角色的一些或全部顶点移动到空间中的新位置来变形虚拟角色的网格。变形既可以表示大规模运动(例如,四肢运动)又可以表示精细运动(例如,面部运动)。这些变形和其它变形可以基于真实世界的模型(例如,对执行身体运动,关节、面部扭曲,表情等的真实人类进行摄影测量扫描)、艺术指导的开发(其可基于真实世界的采样)、相同或其它技术的组合。在计算机图形学的早期,可以通过独立设定顶点的新位置来手动完成网格变形,但是鉴于现代网格的大小和复杂性,通常期望使用自动化系统和过程来产生变形。用于产生这些变形的控制系统、过程和技术称为绑定,或简称为“绑定(the rig)”。图6B的示例头像处理和渲染系统690包括可实现绑定的3D模型处理系统680。
用于虚拟角色的绑定可以使用骨架系统来辅助网格变形。骨架系统包括关节的集合,该关节对应于网格的关节点。在绑定的上下文中,关节有时被称为“骨骼”而不管在解剖学意义上使用时的这些术语之间的差异。骨架系统中的关节可以根据可以被应用于关节的变换彼此相对移动或以其它方式改变。变换可以包括空间的平移或旋转以及其它操作。可以为关节分配彼此之间的层次关系(例如,父子关系)。这些层次关系可以允许一个关节从另一个关节继承变换或其它特征。例如,骨架系统中的子关节可以继承被分配给其父关节的变换,以便使子关节与父关节一起移动。
可以采用适当位置处的关节以及采用适当的局部旋转轴、自由度等来定义虚拟角色的骨架系统,以允许要被执行的期望的一组网格变形。一旦为虚拟角色定义了骨架系统,就可以在被称为“蒙皮”的过程中为每个关节分配对网格中各个顶点的影响量。这可以通过为骨架系统中每个关节的每个顶点分配权重值来完成。当将变换应用于任何给定关节时,可以根据该关节变换对受该关节影响的顶点自动地移动或以其它方式改变可取决于它们相应的权重值的量。
绑定可以包括多个骨架系统。一种类型的骨架系统是核心骨架(也被称为低阶骨架),其可用于控制虚拟角色的大规模运动。图11A示出低阶核心骨架1100a的示例。例如,在人类头像的情况下,核心骨架可能类似于人的解剖骨架。尽管用于绑定目的的核心骨架可能无法精确地映射到在解剖学上正确的骨架,但它可能在相似位置中具有带有类似取向和运动特性的关节子集。可以将更高阶的关节和生物力学联系添加到核心骨架1100a,以建立可以执行更多动画功能的骨架。图11B示出骨架系统1100的示例,其中核心框架以实线示出,而更高阶的关节以虚线示出。
如上所述,关节的骨架系统可以是分层的,例如,关节之间具有父子关系。当将变换(例如,位置和/或取向的变化)应用于骨架系统中的特定关节时,可以将相同的变换应用于相同层次结构内的所有其它较低级别的关节。例如,在用于人类头像的绑定的情况下,核心骨架可包括用于头像的肩部、肘部和腕部的单独关节。其中,可以将肩关节分配给层次结构中的最高级别,而可以将肘关节分配为肩关节的子级,并且可以将腕关节分配为肘关节的子级。因此,当将特定的平移和/或旋转变换被应用于肩关节时,相同的变换也可以被应用于肘关节和腕关节,使得它们以与肩膀相同的方式被平移和/或旋转。
尽管其名称具有含义,但是绑定中的骨架系统不必表示解剖骨架。在绑定中,骨架系统可以表示用于控制网格变形的各种层次结构。例如,头发可以被表示为层次链中的一系列关节;由于头像的面部扭曲(其可表示诸如微笑、皱眉、笑、说话、眨眼等的表情)引起的皮肤运动可以由一系列由面部绑定控制的面部关节来表示;肌肉变形可以由关节建模;以及衣服的运动可以由关节网格来表示。
虚拟角色的索装可以包括多个骨架系统,其中的一些可以驱动其它骨架的运动。低阶骨架系统是驱动一个或多个高阶骨架系统的系统。相反,高阶骨架系统是由低阶骨架系统驱动或控制的系统。例如,虽然角色的核心骨架的运动可能由动画师手动控制,但核心骨架可以进而驱动或控制高阶骨架系统的运动。例如,更高阶的辅助关节(在物理骨架中可能没有解剖类似物)可以被提供以改进由核心骨架的运动引起的网格变形。可以从被应用于低阶骨架的变换中,在算法上得出被应用于高阶骨架系统中的这些关节和其它关节的变换。高阶骨架可以表示例如肌肉、皮肤、脂肪、衣服、头发或不需要直接动画控制的任何其它骨架系统。
如已经讨论的那样,可以将变换应用于骨架系统中的关节,以便执行网格变形。在绑定的上下文中,变换包括接受3D空间中的一个或多个给定点并产生一个或多个新3D点的输出的函数。例如,变换可以接受定义关节的一个或多个3D点,并可以输出指定变换的关节的一个或多个新3D点。关节变换可以包括例如平移分量、旋转分量和缩放分量。
平移是如下变换,该变换将所建模的3D空间中的一组一个或多个指定点移动指定量,而该点集的取向或大小不变。旋转是将所建模的3D空间中的一组一个或多个指定点围绕指定轴旋转指定量(例如,将网格中的每个点围绕z轴旋转45度)的变换。仿射变换(或6自由度(DOF)变换)是仅包括平移和旋转的一种变换。仿射变换的应用可以被认为是移动一组一个或多个空间点而不改变其大小,但是取向可以改变。
同时,缩放变换是一种通过以指定值缩放所建模的3D空间中的一个或多个指定点的相应坐标来修改该指定点的变换。这将改变所变换的一组点的大小和/或形状。均匀缩放变换可以将每个坐标缩放相同的量,而非均匀缩放变换可以独立缩放指定点的(x,y,z)坐标。例如,可以使用非均匀缩放变换来提供挤压和拉伸效果,诸如可能由肌肉动作产生的效果。另一类型的变换是剪切变换。剪切变换是通过基于该坐标距轴的距离将点的坐标平移不同量来修改建模3D空间中一组一个或多个指定点的变换。
当将变换被应用于关节以使其移动时,在该关节的影响下的顶点也会被移动。这导致网格变形。如上所述,分配权重以量化每个关节对每个顶点的影响的过程称为蒙皮(或有时称为“权重绘画”或“蒙皮加权”)。权重通常是介于0(表示无影响)和1(表示完全影响)之间的值。网格中的一些顶点可能仅受单个关节影响。在那种情况下,这些顶点针对该关节被分配1的权重值,并且它们的位置基于被分配给该特定关节而不是其它关节的变换而改变。网格中的其它顶点可受到多个关节影响。在该情况下,将为所有影响关节的那些顶点分配单独的权重,每个顶点的权重之和等于1。基于被分配给所有的那些影响关节的变换来改变这些顶点的位置。
对网格中的所有顶点进行权重分配可能会非常费力,特别是当关节数量增加时。对于即使是训练有素的艺术家来说,响应于被应用于关节的变换来平衡权重以实现期望的网格变形也可能非常困难。在实时应用的情况下,许多实时系统还对可被加权到特定顶点的关节数量(通常为8个或更少)施加了限制的事实可使任务进一步复杂化。通常出于图形处理单元(GPU)的效率施加这种限制。
术语蒙皮还指基于应用于骨架系统中关节的变换,使用所分配的权重而实际使网格变形的过程。例如,动画师可以指定一系列核心骨架关节变换,以生成期望的角色运动(例如,跑步运动或舞步)。将变换应用于一个或多个关节时,在变换的关节的影响下为顶点计算新位置。通常,将任何给定顶点的新位置计算为影响该特定顶点的所有关节变换的加权平均值。存在用于计算该加权平均值的许多算法,但是最常见的并且由于其简单易用且易于控制而在大多数实时应用中使用的算法是线性混合蒙皮(LBS)。在线性混合蒙皮中,使用针对其的顶点具有非零权重的每个关节变换来计算每个顶点的新位置。然后,将这些关节变换中的每一个关节变换产生的新顶点坐标与被分配给关节中的每个关节的其顶点的相应权重成比例地求和。在实践中,存在着对于LBS众所周知的限制,而制作高质量绑定(例如,用于电影)的许多工作都致力于发现并克服这些限制。为此专门设计了许多辅助关节系统。
除了骨架系统,“混合形状”也可以用在绑定中以产生网格变形。混合形状(有时也称为“变形目标”或简称为“形状”)是一种应用于网格中一组顶点的变形,其中,该一组顶点中的每个顶点都基于权重在指定方向中移动指定量。对于特定的混合形状,集合中的每个顶点可能具有其自己的自定义运动,并且同时移动集合中的顶点将生成期望的形状。可以由“增量(delta)”指定混合形状中每个顶点的自定义运动,该“增量”是表示施加到该顶点的XYZ运动的量和方向的矢量。仅举几种可能性,混合形状可用于产生例如使眼睛、嘴唇、眉毛、鼻子、酒窝等移动的面部变形。
混合形状可用于以一种艺术指导的方式使网格变形。它们可以提供很大的控制力,因为可以通过扫描模型来雕刻或捕获精确的形状。但是,混合形状的益处是以必须存储混合形状中所有顶点的增量为代价的。对于具有精细网格和许多混合形状的动画角色,增量数据量可能很大。
通过使用混合形状权重,可以将每个混合形状应用到指定程度。这些权重通常在0(根本没有应用混合形状)到1(其中混合形状完全激活)的范围内。例如,移动角色眼睛的混合形状可以以较小的权重被施加以少量移动眼睛,或者可以施加较大的权重以产生较大的眼睛运动。
绑定可以彼此组合地施加多个混合形状以实现期望的复杂变形。例如,为了产生微笑,绑定可能会应用混合形状以拉动唇角,抬高上唇和降低下唇,以及移动眼睛、眉毛、鼻子和酒窝。从两个或多个混合形状组合而成的期望形状称为组合形状(或简称为“组合”)。
组合应用两个混合形状可能导致的一个问题是,混合形状可能在一些相同的顶点上操作。当两个混合形状都激活时,结果称为双重变换或“脱离模型”。该问题的解决方案通常是校正混合形状。校正混合形状是一种特殊的混合形状,其关于当前施加的变形表示期望的变形,而不是关于中性表示期望的变形。可以基于他们正在校正的混合形状的权重来应用校正混合形状(或仅称为“校正”)。例如,可以使校正混合形状的权重与触发混合校正形状的应用的基础混合形状的权重成比例。
校正混合形状也可以被用于校正蒙皮异常或改进变形的质量。例如,关节可以表示特定肌肉的运动,但作为单个变换,它不能表示皮肤、脂肪和肌肉的所有非线性行为。在肌肉激活时应用一种校正或一系列校正可以导致更令人愉悦和令人信服的变形。
绑定内置于层中,较低较简单的层通常驱动较高阶的层。这适用于骨架系统和混合形状变形两者。例如,如已经提到的,用于动画虚拟角色的绑定可以包括由低阶骨架系统控制的高阶骨架系统。存在基于低阶骨架控制高阶骨架或混合形状的许多方法,包括约束、逻辑系统和基于姿势的变形。
约束通常是一种系统,其中特定对象或关节变换控制应用于另一个关节或对象的变换的一个或多个分量。存在许多不同类型的约束。例如,目标约束将目标变换的旋转改变为指向特定方向或特定对象。父约束充当变换对之间的虚拟父子关系。位置约束将变换约束到特定点或特定对象。取向约束将变换限制为对象的特定旋转。下面提供了可以在所公开的关节分解的实施例中使用的约束的附加讨论。
逻辑系统是数学方程式的系统,其在给定一组输入的情况下产生一些输出。这些是指定的而不是学习的。例如,混合形状值可能被定义为其它两个混合形状的乘积(这是称为组合或组合形状的校正形状的示例)。
基于姿势的变形也可以用于控制高阶骨架系统或混合形状。骨架系统的姿势由该骨架系统中所有关节的变换(例如旋转和平移)集合定义。也可以为骨架系统中关节的子集定义姿势。例如,可以通过应用于肩部、肘部和腕部的关节的变换来定义手臂姿势。姿势空间变形器(PSD)是一种系统,该系统用于基于该姿势与定义的姿势之间的一个或多个“距离”来确定特定姿势的变形输出。这些距离可以是表征一个姿势与另一个姿势如何不同的度量。PSD可以包括姿势插值节点,例如,该姿势插值节点接受一组关节旋转(定义姿势)作为输入参数,并且进而输出归一化的每姿势权重以驱动变形器,诸如混合形状。姿势插值节点可以以多种方式实现,包括采用径向基函数(RBF)。RBF可以执行机器学习的函数数学近似。可以使用一组输入及其关联的预期输出来训练RBF。训练数据可以是例如多组关节变换(其定义特定姿势)和响应于这些姿势而应用的对应混合形状(或线性蒙皮)。一旦学习了该函数,就可以给出新的输入(例如姿势),并且可以有效地计算它们的预期输出。RBF是人工神经网络的子类型。RBF可用于基于较低级别组件的状态来驱动绑定的较高级别组件。例如,核心骨架的姿势可以以较高级别驱动辅助关节和校正。
这些控制系统可以被链接在一起以执行复杂的行为。例如,眼睛绑定可以包含两个“环视”值以进行水平和竖直旋转。这些值可以通过一些逻辑传递,以确定眼睛关节变换的精确旋转,然后可以将其用作RBF的输入,该RBF控制改变眼睑的形状以匹配眼睛的位置的混合形状。这些形状的激活值可用于使用附加逻辑来驱动面部表情的其它组件,依此类推。
绑定系统的目标通常是提供一种基于简单的人类可理解的控制系统产生令人愉悦的高保真变形的机制。在实时应用的情况下,目标通常是提供足够简单以在例如VR/AR/MR系统200上实时运行的绑定系统,同时尽可能对最终质量做出很少的妥协。在一些实施例中,3D模型处理系统680执行绑定系统以实时地在混合现实环境100中对头像制作动画以(与VR/AR/MR系统的用户)交互,并在用户的环境中提供适当的上下文头像行为(例如,基于意图的行为)。
用于虚拟头像的几何变形的骨架系统的简介
如在此所讨论的,绑定包括用于将有关头像身体的变形的信息(例如,面部扭曲、手臂运动、腿部运动、躯干运动、头部旋转和倾斜、包括抓握和指向的手部运动等)传递到顶点网格上的技术。动画化网格(例如,对头像制作动画)可以包括通过将形成网格的一些或全部顶点移动到3D空间中的新位置来使网格变形。图6B的示例头像处理和渲染系统690包括3D模型处理系统680,该3D模型处理系统680可以实现绑定(例如,用于使网格变形并且对头像制作动画的控制系统)。由于网格可包括大量顶点,因此绑定通常会提供常见的期望变形作为使控制网格更加容易的计算机化命令。
对于诸如电影的高端视觉效果产品,绑定可能有足够的生产时间来执行大量的数学计算,以实现高度逼真的动画效果,换句话说,该情境通常以牺牲高速度为代价优先考虑高质量。
但是对于实时应用(诸如在混合现实中),变形速度可能非常有利,并且可以使用不同的绑定技术,换句话说,该情境通常以牺牲高质量为代价来优先考虑高速度。绑定通常利用依赖于骨架系统的变形、线性混合蒙皮或可选的混合形状。下面描述了生成绑定可用于头像蒙皮变换的参数的技术。
线性混合蒙皮(LBS)是用于对数字木偶制作动画的常用技术,其中,网格(或其它几何对象)基于由关节变换的层次构成的驱动骨架而变形。图11B示出具有关节的分层顺序的骨架1100的示例。网格(例如包括多面顶点)可以覆盖骨架,并且可以用于表示头像的皮肤或衣服或另一个虚拟对象的可变形表面。
骨架关节与该骨架的基本(中性)姿势之间的关系可以用于定义网格的每个顶点与骨架中的每个关节之间的关联。对于骨架的新姿势,可以通过确定每个关节从其基本姿势到新姿势的相对变换(例如,旋转和平移)来计算(表示新姿势的)变形网格。并非每个关节都会对每个顶点具有影响。例如,头像的左腿的运动通常将不会引起头像的右手的任何运动。然而,头像的右前臂的运动通常将引起头像的右手的运动。包括每个关节和每个顶点的一组权重的权重图可用于测量任何关节对任何顶点的影响量。如果关节不影响顶点,则关联的权重为零。
对于每个关节,将关节的相对变换应用于对该关节具有非零权重的每个顶点,并存储新的顶点坐标。所有顶点的最终顶点位置是关节具有非零权重的每个关节的变换顶点位置的加权总和。因此,当骨架移动时,绑定可以经由LBS蒙皮参数移动网格顶点(例如,表示覆盖骨骼的皮肤或衣服)。LBS的附加技术细节如下所述。
LBS或任何直接蒙皮方法中的一个潜在困难是确定每个关节的权重图。在实践中,这些通常在被称为权重绘制的过程中通过手工设定。这是费时费力的,并且容易出现用户错误。复杂度随着影响网格给定区域的关节数量增加而增加。此外,在实时应用中,经常会对可影响特定几何形状的关节的最大数量有严格的限制,这进而需要进行仔细的评估和权衡,以在严格的实时限制下实现高质量。
在一些情况下,LBS倾向为使网格变形的相对低质量的方法,因此混合形状有时会被添加到LBS的顶部以实现网格的较高质量的变形。混合形状可以根据0(例如,中性或静止形状)和1(例如,完全混合形状)之间的控制值移动一个或多个顶点,并具有用于特定训练姿势的特定混合形状值,但并不直接绑定到绑定的骨架。使用LBS和混合形状需要许多计算(例如,对于许多顶点和骨骼运动等进行LBS计算、混合形状计算),这对于绑定控制系统可能是计算上的挑战,特别是在实时方面。
因此,以下详细描述的蒙皮技术的一个目标是开发一种系统,该系统提供高质量良广义(well-generalized)的蒙皮并基于姿势的训练数据在实时上下文中运行。为了实现该目标,系统的实施例部分地是高度用户可配置的。尽管许多绑定系统被设计为需要最少的用户输入,但此类系统通常会受到常见的缺陷,这使它们对于MR或实时应用而言是不合需要的。例如,一些常见的缺点包括以下中的一个或多个。
缺点的一个示例是对大量关节的依赖。大量的关节变换可能降低蒙皮近似的误差,但不能满足实时系统中强制执行的限制,不能很好地推广到新颖的动画,需要更多的控制计算,并且通常不容易为人类所理解,这限制了它们在上下文中调试的能力。
缺点的第二示例是可能发生过拟合问题,这可能需要大量的输入数据或难以理解的控制统计信息来防止。
所公开的系统和方法的实施例通过利用描述所得系统的特征的人类可理解的约束来减少或避免这些缺点中的一些或全部缺点的可能性。这些约束允许系统(可选地)接收人类用户输入,以便基于人类对领域特定知识的更好理解来获得结果。
训练数据的示例
可以从表示一系列或一连串的目标姿势(例如,面部表情、身体姿势、运动(例如,坐着、走路、跑步等))的训练数据中提取表示蒙皮系统的关节的变换(例如,权重图、旋转和平移)的参数。可以使用各种机器学习或人工智能技术(以下进一步描述)从训练数据中学习蒙皮参数。从训练数据中学习蒙皮参数的过程有时称为关节分解。
训练数据包括与用于头像的动画的基本中性网格共享拓扑的网格,但是该网格已经被变形为用于对头像蒙皮的目标姿势。训练数据可以表示头像的姿势或混合形状。训练数据可以来自任何可用的来源,包括以下中的一个或多个。
扫描的地面实况。取决于训练数据集的数量、类型和格式,机器学习模型的结果可能会欠拟合或过拟合训练数据。训练数据可以通过扫描执行一系列姿势的对象(例如,模型)来生成。对于关节点以及变形的地面实况,扫描的数据在三维上在几何上以姿势顺序表示对象。可以例如通过将对象放置于包括围绕并指向对象的多个相机(例如,两个或更多)的摄影测量捕获台中来进行成像扫描。相机可以彼此同步以捕获图像,该图像可以被转换为执行姿势的对象的3D扫描。对于静态姿势,可以生成单次扫描。然而,对于可以移动和作表情的头像,可以在对象执行包括基本表情单位(例如,微笑,皱着眉头,打手势,走路等)的训练姿势时进行扫描。这些扫描可用于创建训练数据集,该训练数据集用于构造蒙皮参数,该蒙皮参数可用于创建正在活动的对象的令人信服的数字头像。
例如,所扫描的图像可以用于生成在头像的低阶核心骨架(例如,参见图11A中的低阶骨架1100a或图11B中的骨架1100的实线部分的示例)和扫描数据的几何空间之间的姿势对应关系。所得的训练数据可用于在广义统计空间中训练关节分解系统(其可从训练数据确定蒙皮参数)。例如,可以从蒙皮参数的初始集合中确定改进的蒙皮参数。所得的统计空间可以表示头像的任何动画或关节,并且可以采用例如径向基函数(RBF)进行实时评估。
艺术家驱动的雕刻。该方法经常在真实图像捕获数据不可用、不切实际或太昂贵而无法获得或质量较差的情况下使用。它也用于需要更多艺术指导的焦点(诸如在3D动画中)的情况。该形式的数据是劳动密集型的,并且由于资源不足而经常由人解释并且可能容易出错。
模拟。在视觉效果制作中经常使用布料和组织模拟来实现高保真度和逼真的变形。尽管这些实践经常产生最优结果,但它们计算繁重并且可能不适合实时应用。在关节分解系统的实现方式中,可以使用实时图形模拟诸如皮肤或衣服的变形。通过活动范围(ROM)运行这些模拟,系统可以将变形空间分解为混合形状和权重的统计模型。然后可以将统计模型的权重对RBF插值以进行实时执行。
生物统计学派生模型。可以经由关节和LBS在角色的骨架空间中表示常见的骨骼和肌肉类型的生物力学的高阶骨架。虽然肌肉表现出有限体积的特性,但可以在用于其表示的关节的缩放矩阵内对肌肉的应力和应变率进行建模。骨骼更多地集中在刚性空间中,但需要更多的机械特性和结构以实现期望的运动。然后,可以通过关节分解来捕获骨骼和肌肉的力学。
线性蒙皮系统和方法的概述
线性蒙皮(或线性混合蒙皮)是一种基于一组关节的变换来变换3D空间中的一组点的位置的方法。该点可以是用于对头像制作动画的网格的顶点。在下面,骨架具有以j=1,2,...,J索引的J个关节,并且总共有以i=1,2,...,V索引的V个关注点。每个关节具有与它包括旋转Rj和平移Tj相关联的变换。给定点vi可以使用公式Rjvi+Tj由关节j变换为新的点vi'。
对于每个关节和每个点,权重wij可以表示第j个关节对第i个点的影响。权重量化了特定关节对特定点的影响量。所有权重wij的集合有时被称为权重图。权重图的各个权重可以满足许多约束。例如,权重中的每个权重通常非负wij≥0,并且所有J个关节对任何点i的总影响可以归一化为一:
Figure BDA0002895841220000461
对蒙皮参数(例如权重图,旋转Rj和平移Tj)可能存在其它约束。例如,可以将任何点的非零权重的数量限制为最大值,以减少对网格动画化的处理器的计算负担并减少过拟合。最大数M可以是例如4或8或12,并且可以基于用于动画的处理器(例如,商业图形处理单元(GPU))的存储器模型来选择。为了表示3D空间中的有效旋转,可以以多种不同的数学方式将旋转Rj例如表示为正交矩阵,该正交矩阵避免通过变换进行剪切或缩放。
点vi的变换坐标vi′是每个特定关节的加权变换之和:
Figure BDA0002895841220000471
关节分解的示例
关节分解过程的目标是以减少或最小化训练数据(如上所述)的目标姿势中这些点的变换位置vi′(从方程式(1)计算)和参考位置
Figure BDA0002895841220000472
之间的误差的方式计算蒙皮参数wij、Rj和Tj。可以将分解过程公式化为约束优化问题,并且可以将误差表示为训练数据中的变换位置和目标姿势位置之间的欧几里德或L2范数。可以使用其它误差函数(例如,中位数或L1范数)。上面已经描述了对约束优化问题的解决方案的各种约束,并且在下面描述了其它约束。
例如,约束优化可以减小或最小化可以在一些实施例中表示的误差E(使用L2范数):
Figure BDA0002895841220000473
取决于约束,优化方法可以包括线性或二次编程。然而,当存在受到复杂约束的许多旋转分量时,减小或最小化误差通常需要复杂的非线性编程方法。例如,一些技术应用了使用一阶和二阶导数估计并适用于任意约束的非线性求解器。其它技术是迭代的,其中交替锁定每个点的权重或关节变换,并优化其它分量。在各种实现方式中,优化技术包括梯度下降、块坐标下降、下坡单(纯)形、模拟退火、Levenberg-Marquardt优化、最小二乘、非线性优化、启发式或超启发式(例如Tabu)搜索、加权绝对取向求解器等。
约束优化算法可以接受初始化骨架(例如,骨架关节的初始位置)、网格顶点到关节的映射(例如,皮肤簇)以及表示头像的一个目标姿势(或多个目标姿势)的网格作为输入。可以迭代约束优化算法,直到训练数据中的目标姿势中这些点的变换位置v′i(例如从方程式(1)计算)和参考位置之间的误差E(例如从方程式(2)计算)收敛(例如,误差E低于误差阈值,到变换的位置vi′的增量低于阈值,或达到最大迭代次数)。约束优化算法的输出可以是蒙皮参数(例如,wij、Rj和Tj),其为目标训练姿势提供改进或优化的拟合。在一些实施例中,关节分解系统可以另外地或可替代地输出具有反映对目标训练姿势的拟合的关节或顶点位置的更新骨架。在一些实施例中,关节分解系统可以另外地或可替代地输出蒙皮参数的径向基函数(RBF)表示。
关节分解系统的一些实施例不同于基于用于初始化的输入以及系统操作所依据的约束的传统系统。
例如,许多分解系统仅将变形的网格作为输入,从该数据推断出关节的数量和位置以及它们的网格权重。一些系统甚至尝试从输入的训练数据生成层次骨架。尽管此类系统可以工作,但实际上,不受约束的性质导致错误的行为(例如,生物统计学上不合理的解决方案),以及通过过拟合或找到在较大上下文中不可接受的局部最小值而缺乏普遍性。
关节分解过程的示例输入
蒙皮的网格需要网格和骨骼层次结构,其中骨骼变换驱动网格上的所有变形。在实践中,采用直接使网格变形的骨架层次来直接处理可能是不利的。通常,存在被包括的许多额外的骨骼以获得头像的更优变形。直接对这些额外的骨骼制作动画可显著降低动画任务的速度。另外,这些骨骼通常处理头像的各个方面,诸如体积保存,这对于人类动画师来说很难做到正确,但对于计算机计算通常很简单。对于诸如动作捕获的自动化动画任务,跟踪许多这些骨骼可能不切实际,该骨骼可能不直接对应于任何真实的单个物理元素。此外,高阶的图层通常用于可选组件,如头发或衣服,其可以在不改变基础动画的情况下在现有角色上被更改或替换。
相反,在实践中,通过将程序动画组件添加到高阶骨架中,可以将简单的低阶骨架逐渐变得更复杂。图11A示出低阶骨架1100a的示例,而图11B示出高阶骨架1100的示例(虚线)。这些控制系统包括新骨骼,创建高阶骨架和控制系统,该控制系统基于用作输入的低阶骨架的变换对这些新骨骼制作动画。例如,低阶骨架可能表示与头像的实际骨架相对应的头像身体的骨骼。高阶骨架可能包括表示头像肌肉的骨骼。这些附加骨骼可以由低阶骨架的位置驱动。例如,二头肌的“骨骼”位置可以由低阶骨架中的对应前臂骨骼控制,除其它方面之外,该骨骼表示动画中该点处的肘部角度。
这些低阶到高阶骨架系统可能非常复杂,例如涉及体积保存、动力学(例如,肌肉/脂肪抖动)和其它系统。在许多动画绑定中,可能存在多层低阶和高阶骨架,其中一个骨架系统的高阶输出成为下一个骨架系统的低阶输入。作为示例,想象一个头像,其中最低阶骨架表示头像的“真实”骨架,第二骨架系统表示肌肉,并且第三骨架系统表示依附在肌肉顶部的脂肪。可以添加附加骨架系统来表示头发、衣服或道具。
因此,在一些实现方式中,低阶骨架可以包括一组骨骼和关节,该骨骼和关节表示或类似于将被动画化的头像的解剖学骨骼和关节(和/或它们的互连)。高阶骨架(将组件添加到低阶骨架上)可以表示肌肉、韧带、脂肪、头发、衣服等。低阶骨架可以包括一组骨骼或关节的一部分,该骨骼或关节定义了数字角色的骨架(例如,类似于图11A中所示的低阶骨架1100a,其类似于真实的人类骨架中的骨骼)。低阶骨架可以表示分层骨架结构的基础。高阶骨架可以被认为是完整骨架(例如,图11B中所示的骨架系统1100)与低阶骨架1100a之间的差。
一些关节分解系统可能根本没有骨架,并且可以从动画中推断出所有骨骼和骨骼关系。一些此类系统可能是不利的,因为它们不允许描述允许在此所述的某些有利实施例来很好地概括的约束。
当执行关节分解时,该系统或方法可以确定该变形的最终层(例如,最高阶骨架)的权重和运动。该系统和方法可以至少接收高阶骨架的层次结构作为输入,因此该系统和方法可以执行优化。然而,在一些情况下,并非需要初始化该高阶骨架中的所有骨骼。例如,可以采用将附加高阶骨骼设定为默认值的基础骨架姿势初始化系统和方法。该系统和方法可以确定附加骨骼的最优变换(例如,从默认值开始)。
因此,系统和方法可以接收高阶骨架的结构作为输入,但是可以不需要高阶骨架的姿势。
关节分解系统的某些实施例可以给定初始骨架以及目标姿势或皮肤权重一起作为选项。用于初始化约束优化算法的骨架可以是表示靠近目标姿势的关节和网格位置的高阶骨架,而不是中性或静止姿势(通常与目标姿势无关)中的基础骨架。以该方式而不是以白板(tabula rasa)开始分解,减少或防止因灵活性过大而导致的错误学习的可能性。由于输入骨架和蒙皮参数已经接近期望结果(即与目标姿势匹配),因此这也导致更有效的优化。在实践中,初始起始骨架数据可能与期望目标非常粗糙匹配。例如,可能对网格进行分段,使得每个顶点被分配给单个骨骼(例如,参见关于手部分段1200的示例的图12)。此类蒙皮解决方案通常是不可接受的,但是用作初始输入,可足以将关节分解系统引导到期望方向中。
示例线性蒙皮约束
虽然可以将线性蒙皮的基本形式公式化为方程式(1),但是优化方程式可能非常复杂。这是由于约束所隐含的相互依赖性。在此所述的各种关节分解系统可以强制实施各种约束,并且这些约束中的一些约束是用户可选择的,或者可以在关节分解期间动态地改变。关节分解系统的实施例可以接受用户输入,以更好地指导系统找到生物统计学上合理的解决方案,并更好地定义优化技术将在其中操作的问题空间。
许多LBS关节分解系统所共有的约束已在上文描述,并且包括权重图的非负性和归一化约束、旋转参数表示有效旋转的要求(例如Rj是正交矩阵),以及每顶点的非零权重的最大数M。
其它约束包括分层骨架系统中关节之间的父子关系。例如,手关节可以是前臂关节的子级等。此类约束可以通过将子关节限制在相对于其父级的局部空间的固定位置(例如,与父关节相距固定距离的位置,以表示骨骼的刚性行为),以强制实施刚性的类骨骼行为。可以按姿势或使用所有目标姿势来估计该固定位置。使用所有目标姿势对于将骨架拟合到捕获的角色可能是有利的。在许多层次骨架中,关节在动画期间相对于其父级的长度是固定的,并且只允许改变取向。该约束类似于真实世界的骨骼,其中该骨骼不易改变其长度。
关节之间的关系可使优化方程式进一步复杂化。例如,两个关节j1和j2之间的父子关系可以表示关节j1的旋转参数
Figure BDA0002895841220000511
和平移参数
Figure BDA0002895841220000512
取决于(例如,基于如下来计算)关节j2的旋转参数
Figure BDA0002895841220000513
和平移参数
Figure BDA0002895841220000514
这必须在约束优化期间解决。同样,如果不同点的权重相互关联,则优化方程组应包括这些关系。
平滑度约束可以对关节或顶点层次结构中的附近点强制实施相似的加权。例如,系统可以限制顶点以使用在拓扑上在网格上接近的顶点的相似权重。平滑度约束可以有利地产生更平滑的皮肤变形。如果顶点是邻居或邻近的邻居(例如,在网格上的边缘的阈值数量之内,诸如小于3、5、7、10、12等),则一个顶点在拓扑上可能接近另一个顶点。平滑度可能通过不允许顶点的权重受到约束,该顶点在拓扑上彼此接近以使彼此之间的差不超过平滑因子。
在一些实现方式中,关节可以通过几何模型来约束,该几何模型表示该关节所表示的基础解剖结构(例如,长度、横向大小、相对于附近关节的活动范围(ROM)的限制等)。例如,可以对表示指骨的关节给定半径、长度和活动范围,使得它不会向后弯曲到手的上表面。在分解过程期间施加关节约束可能是有利的,并且导致在生物统计学上更合理的关节分解。
一个或多个其它新颖的约束可以另外地或可替代地并入所公开的系统的实施例中。以下提供了可以在分解过程期间使用的各种约束的非限制性列表。
关节位置可以在约束优化过程期间被估计或锁定以防止改变。例如,当分解过程优化骨架或网格的其它子集时,可以锁定关节(或一组关节,或与这些关节相关联的顶点)(并且然后在该过程优化那个关节或一组关节时解锁)。例如,在求解手关节的蒙皮参数的同时,可以锁定腿关节。
扩展上述的关节父子关系,可以限制关节位置以仅沿着父关节的一个或多个特定轴平移以产生更鲁棒的绑定。例如,可以沿着上述特定轴锁定或解锁关节位置以便确定骨架长度。
类似于锁定或解锁关节位置,可以以类似的方式锁定或解锁关节取向、半径、长度等。
可以将关节或顶点限制为仅对几何上接近的关节进行加权。例如,手臂上的顶点关于腿部的关节具有零权重,以反映腿部运动和手臂运动是独立的解剖学约束。当特定关节在另一个关节移动时趋于移动(例如,当其附着的手臂移动时手部趋于移动,而另一手臂移动时手部不趋向于移动),则关节或顶点在几何上可以被认为是接近的。
可以应用关节距离约束。利用关节几何模型,系统可以计算顶点距关节的距离,并在优化过程中使用该距离。例如,如果距离太大(例如,超过阈值距离),则可以将顶点排除在使用关节之外(例如,权重设定为0)。作为另一个示例,仅对于关节的阈值距离内的顶点,权重可以为非零。例如可以将关节(或顶点)之间的距离计算为沿着网格的骨架(例如,参见图11B中所示的骨架1100)所遍历的距离,因为关节/顶点可以表示互连的层次结构排序。
可以应用顶点和关节选择约束。系统可以指定可以以多种方式组合的顶点和关节的多个命名选择。例如,顶点选择可以被锁定到特定的权重或加权到关节的特定选择,或者完全不包含在优化过程中。
可通过使用分割集来优化权重或将权重锁定在每个关节、每个顶点或每个关节-顶点对上,该分割集将特定的一组一个或多个顶点与特定的一组一个或多个关节相关联。
前述限制列表并非旨在穷举。该系统可以接收用户输入以选择要应用的约束或用于约束的参数(例如,距离阈值、分割集等)。约束(或约束参数)可以在关节分解期间动态变化。例如,距离阈值可以开始时相对较小(例如,相邻的关节),并且然后随着关节分解进行而增加。因此,该系统可以高度可配置以更好地定义关节分解将在其中进行操作的问题空间。
实时绑定系统的示例应用
用于关节分解的统计姿势空间是经过深思熟虑的,并且是端到端计划的。关节分解的结果取决于分解所植入的信息。如果允许关节分解无限制地生成蒙皮变换,则结果可能无法使用或人类无法解释。关节分解技术的实施例改进或优化了高阶骨架的行为以匹配训练数据(例如,地面实况扫描数据)。通过为关节分解系统植入有效信息,该系统倾向于避免异常值,并在混合现实或游戏的实时绑定系统领域的应用中产生定性和实用结果。
分割是指在特定的一组顶点和一组关节之间进行映射。该映射可以隔离和定位关节分解的结果。因为减少了实现收敛结果所需的计算数量,分割还可以提高系统的性能。例如,如上所述,关节分解可以锁定除在分割集中找到的关节的权重以外的所有关节的权重,并且可以仅分析关联的顶点以优化LBS蒙皮参数。
作为示例,如果动画师只希望分解手部,则可以为每个单独的手指生成分割集。例如,这防止中指的关节影响无名指或食指,并将分解结果定位在骨架层次结构中,使得在生物力学上控制顶点的关节被优化,而在生物力学上不控制顶点的关节(例如,在分割集之外)的关节被锁定。
关节分解可以(可选地)与下降(fall off)半径整合,该下降半径将特定区域的结果与现有皮肤簇或LBS混合在一起。例如,下降可以将为一组关节找到的蒙皮参数过渡(feather)到另一组关节。作为一个示例,下降可以利用三个区域:计算蒙皮变换的第一区域,未通过分解修改(例如锁定)的第二更远区域,以及在第一和第二区域之间的中间区域,其中下降参数将蒙皮参数从第一区域(例如,在分割集内)平滑过渡到第二区域(例如,在分割集外)。下降可以在中间区域中实现加权平均。
图12示出针对手部变形的关节分解的示例。在该示例中,关节分解为每个手指使用了下降和分割集。在手部1200中,不同的交叉影线表示顶点对特定的一组手指关节的分割或结合。手部1200可以用作初始化关节分解过程的输入,而手部1208表示目标手部姿势(在该情况下,是期望手部变形的混合形状)。手部1204示出来自手部的关节分解的结果的示例。手部1212覆盖有热图,该热图(以不同的灰色阴影)示出区域,在该区域中目标手部1208和LBS分解手部1204之间的误差更大(深灰色)或更小(浅灰色)。LBS关节分解提供了与目标手部1208的良好匹配,在拇指后方以及食指和中指之间的垫子中存在一些误差。
关节分解的用户可引导性的另一方面是对一个或多个关节设定变换极限的能力。例如,在分解过程期间,可以允许关节的旋转和平移参数(例如Rj和Tj)在至多6个自由度中并结合网格权重的约束优化来更新以匹配目标的共形特性。如果没有对优化施加任何限制,则关节可能会过拟合目标训练数据。过拟合具有较差的预测和计算性能,并且可能对输入的训练数据中的微小波动变得敏感。来自过拟合的输出的不期望的变化可能表现为通常被称为跳跃或弹出的高频伪像。
该过度拟合是不期望的,并且可能被认为在统计空间和姿势空间变形的应用中不可用。通过施加约束,优化产生了实际阈值,并减少或避免了因过拟合而引起的弹出。上面已经描述了各种此类约束(例如,锁定关节位置或取向、关节距离约束、分割集等)。例如,可以应用限制分割的关节在3D空间子集(例如,x、y或z值范围,或偏航角、俯仰角或侧倾角的范围)中移动的约束,以使关节的行为与实际关节如何在生物统计学上移动相一致。
对于关节系统,例如,包括骨架1100的生物力学绑定,可以确定该关节及其相关的皮肤簇权重的改进的或最优的位置或旋转信息,并将其应用于关节分解中。在没有提供关节或将关节作为目标的情况下,系统(或经由用户输入)可以生成可以添加到皮肤簇的关节。
图13示出针对下巴变形的关节分解的示例。在该示例中,与向整个下巴添加单个关节相反,向下巴线添加了三个额外的关节,并且对额外的下巴线关节可以移动的自由度施加了限制。头部1300示出用于初始化关节分解的输入皮肤(网格),头部1312示出目标姿势(例如,在该示例中为混合形状),并且头部1304示出关节分解的结果。头部1308覆盖有热图,该热图示出分解结果1304与目标1312之间的误差的示例。整个面部大部分地方的匹配都很好,下颈部区域的误差较大。
关节分解系统和方法的附加方面和优点
可以通过从训练数据中得出网格(例如皮肤)权重和关节位置来解决数字角色的高质量、良广义、实时网格变形的挑战。可以通过植入具有初始目标形状、高阶骨架和皮肤簇的约束优化引擎(例如使用误差最小化)并使用人类可理解的约束来确定网格权重和关节位置。
提供了用于改进的或高质量的线性混合蒙皮(LBS)的关节分解系统和方法的实施例。这些系统和方法可以在算法上“绘制”用于线性混合蒙皮的权重,并在需要时移动高阶骨架关节或骨骼的位置,使得所得的LBS提供高质量的动画,从而减少或消除对混合形状的需求。
关节分解系统的输出可以包括对高阶骨架的更新(可能已用于初始化系统),该高阶骨架涵盖新的线性混合蒙皮权重或关节或骨骼位置(其中一个或二者可以被优化)。
例如,标准的LBS通常无法捕获如鱼尾纹的精细细节(例如,细小皱纹的簇和在眼睛外角周围形成的细纹),而本系统和方法的实施例能够这样做。在获得鱼尾纹的标准动画技术中,人类动画师将关节移动到他或她主观感觉为最优位置的位置,并且然后手动绘制这些高阶骨架关节的顶点分配,以匹配鱼尾纹的特定形状,导致花费大量时间来执行并且不适合(诸如AR或游戏)实时应用的迭代过程。
关节分解系统的实施例可以将目标混合形状转换为LBS顶点映射,以允许绑定系统快速有效地模拟混合形状(例如,参见图12和图13中的示例)。
提供了用于在算法上推导与线性混合蒙皮插值引擎一起使用的有效网格权重和关节位置的方法。本技术的实施例不同于标准技术,在标准技术中,将LBS参数和混合形状输入到径向基函数(RBF)插值引擎中,以确定应当应用哪些混合形状来使网格变形以用于新的头像姿势。标准技术在插值引擎上可能比较困难,因为在使用混合形状时会涉及许多计算。与标准技术相反,在此的某些实施例在不使用混合形状的情况下将LBS参数(例如权重图、旋转、平移)输入到RBF插值引擎中以确定如何使头像的网格变形。某些此类实施例的可能的优点包括:需要由插值引擎执行较少的计算;因此,某些此类技术不仅速度更快,而且更易于在计算上实现,这实现了实时性能。
关节分解系统的实施例可以采用皮肤簇(例如,网格顶点到关节的映射)、用于初始化约束优化算法的高阶骨架以及在优化期间要匹配(例如,通过减少或最小化错误)的目标形状作为输入。
关节分解过程的益处可包括高质量的LBS蒙皮参数作为输出,该参数是良广义的并且适用于实时动画应用(诸如AR或游戏)。LBS输出可被认为是良广义的,因为该输出可以在RBF插值引擎内重新使用,以及被重新用于不同的头像或角色。这是可能的,因为RBF通常利用一组已知的或固定的输入、输出和训练姿势。在此所述的算法权重绘制可以使用相同的高阶骨架作为输入,以初始化优化以匹配目标姿势,使得基于关节和顶点的相同总体结构和格式来计算所有LBS值,从而实现在RBF插值引擎中使用LBS输出。
如上所述,关节分解系统和方法可以利用设置在优化算法上的人类可理解的约束。例如,上臂可以在抬起或放下手臂时绕着肩膀关节笔直向上或向下移动大约180度。可以将该运动范围作为约束添加到约束优化算法中,因此关节分解收敛到在生物统计学上正确的解决方案,而不是以解剖学上不可能的方式收敛。
一些传统系统从零开始或从低阶骨架创建高阶骨架,这可能在计算上具有挑战性。因此,关节分解系统的实施例使用高阶骨架作为输入,并允许约束优化算法以移动或调节或优化高阶骨架,而不是从白板开始。使用高阶骨架作为输入实现广义化,因为高阶骨架可以跨不同的头像使用,因此每个不同的头像都有相同数量的关节等。由于所有人类都有相同的基础高阶骨架,这是需要做的可接受的标准化。
关节分解的示例过程
图14示出用于关节分解的示例过程1400。示例过程1400可以由一个或多个计算系统来执行,该一个或多个计算系统包括远程处理模块270、本地处理和数据模块260、图6B的头像处理和渲染系统690、图9A的远程计算系统920、其它合适的计算设备以及这些和其它计算设备的组合。
在框1404处,过程1400访问头像的目标姿势的目标网格。目标网格可以包括在此描述的任何训练数据集(例如,扫描的地面实况、艺术家驱动的雕刻、模拟、或生物统计学派生模型)。目标网格可以包括头像的姿势序列中的一个或多个。目标网格可以与用于头像的动画的基础中性网格共享拓扑,但是已经被变形为用于对头像进行蒙皮的目标姿势。
在框1408处,过程1400访问初始化网格,该初始化网格可用于植入约束优化过程。初始化网格可以包括基础骨架(例如,以中性或休息姿势)或高阶骨架(例如,以大致近似于目标姿势的姿势)。初始化网格可以包括皮肤簇,该皮肤簇将网格顶点分配给骨架的关节(或骨骼)。如在此所述,用高阶骨架来初始化约束优化过程可能是有利的,这可以导致优化的更快速和有效的收敛。初始化网格可以可选地包括接近目标姿势的初始权重图、旋转或平移参数,这也可以改进过程1400的收敛。可以使用任何合适的方法(包括如上所述的LBS,或用户定义的方法)来创建初始权重图。
在框1412处,过程访问或更新将要被应用于约束优化过程的约束。上面已经详细描述了各种约束(例如,锁定关节位置或取向、关节的距离或运动约束的范围、分割集等)。通过施加适当的约束,优化产生实际阈值并减少或避免因过拟合而引起的弹出。同样如上所述,约束可以包括人类可理解的约束,其是解剖学或生物统计学驱动的(例如,对肩部或膝盖的运动范围的约束)。人类可理解的约束可以有利地允许约束优化过程收敛到在生物统计学上正确的解决方案,而不是以解剖学上不可能的方式收敛。
在框1416处,过程1400执行受到在框1412处访问的约束的约束优化,以确定头像的目标姿势的蒙皮参数。可以使用在框1408处访问的初始化网格来初始化约束优化。如在此参考方程式(1)和(2)所述,约束优化的输出可以是蒙皮参数的改进或优化集合,诸如例如,针对骨架所有关节的权重图wij、旋转Rj和平移Tj。取决于在框1412处访问或更新的约束,约束优化方法可以包括线性或二次编程,使用一阶和二阶导数估计的非线性求解器。其它约束优化技术是迭代的,其中交替地锁定每点权重或关节变换,并且优化其它分量。在各种实现方式中,优化技术包括梯度下降、块坐标下降、下坡单纯形、模拟退火、Levenberg-Marquardt优化、最小二乘、非线性优化、启发式或超启发式(例如Tabu)搜索、加权绝对取向求解器等。
在框1420处,将收敛测试应用于约束优化过程。例如,如果误差E低于误差阈值,或者如果变换的位置vi′的增量低于阈值(例如,网格位置在迭代期间几乎没有变化)或达到最大迭代数量,则可以找到收敛。如果尚未发生收敛,则过程1400可以返回到框1412,在框1412处可以更新约束。例如,距离阈值或分割集可随着关节分解进行而改变。在一些实施例中,可以在框1412处接收用户输入以帮助改进收敛,并且人类可理解的约束的使用可以是有利的,因为人类动画师可以确定收敛的进度并在优化过程的适当阶段处应用例如在生物统计学上合适的约束。因此,该系统可以高度可配置以更好地定义关节分解将在其中进行操作的问题空间。
如果约束的优化已收敛,则过程1400移动至框1424,在框1424处输出优化的结果。例如,输出可以被存储在非暂态计算机存储装置中,被传送到增强现实显示设备930b、930c(例如,经由参考图9A描述的网络990)以用于虚拟头像的动画等。对于线性混合蒙皮,输出可以包括针对骨架的所有关节的权重图wij、旋转Rj和平移Tj。在一些实施例中,可以在框1424处计算并输出蒙皮参数的径向基函数(RBF)表示。
附加方面
1.一种系统,包括:非暂态计算机存储装置,其被配置为存储:表示虚拟头像的姿势的目标网格,该目标网格包括多个目标网格顶点;初始化骨架,其包括多个关节;蒙皮参数,其表示骨架变形为虚拟头像的姿势;以及与蒙皮参数或关节相关联的一组约束;以及与非暂态计算机存储装置通信的硬件处理器,该硬件处理器被编程为:访问目标网格、初始化骨架和一组约束;执行约束优化过程以确定与目标网格相匹配的蒙皮参数,该约束优化过程受到一组约束;以及输出蒙皮参数。
2.根据方面1所述的系统,其中,从执行姿势的人或动物对象的摄影扫描确定目标网格。
3.根据前述方面中任一项所述的系统,其中,根据艺术家驱动的雕刻、姿势的计算仿真或生物统计学派生模型确定目标网格。
4.根据前述方面中任一项所述的系统,其中,初始化骨架包括高阶骨架。
5.根据前述方面中任一项所述的系统,其中,初始化骨架包括处于基本姿势或中性姿势的低阶骨架。
6.根据前述方面中任一项所述的系统,其中,初始化骨架进一步包括顶点到骨架的关节的皮肤簇映射。
7.根据前述方面中任一项所述的系统,其中,蒙皮参数包括权重图,该权重图测量关节对顶点的影响量。
8.根据前述方面中任一项所述的系统,其中,蒙皮参数包括与每个关节的运动相关联的六个自由度参数。
9.根据方面8所述的系统,其中,六个自由度参数包括旋转和平移。
10.根据前述方面中任一项所述的系统,其中,硬件处理器进一步被编程为计算与蒙皮参数相关联的径向基函数(RBF)表示。
11.根据前述方面中任一项所述的系统,其中,约束优化过程被编程为实现下降,该下降被配置为将来自第一区域的结果混合到第二区域中。
12.根据前述方面中任一项所述的系统,其中,约束优化过程包括线性或二次编程。
13.根据前述方面中任一项所述的系统,其中,约束优化过程包括利用一阶导数或二阶导数估计的非线性求解器。
14.根据前述方面中任一项所述的系统,其中,该组约束包括以下中的一个或多个:权重图的权重的非负约束;所有关节对顶点的总影响的归一化约束;任何顶点的最大非零权重数;与关节运动相关联的旋转参数表示三维旋转的约束;或与关节运动相关联的旋转参数包括正交矩阵的约束。
15.根据前述方面中任一项所述的系统,其中,该组约束包括以下中的一个或多个:将子关节限制为与父关节相距固定距离的约束;平滑度约束,其限制网格的相邻顶点在权重图中具有相似的权重;表示关节的解剖特征的几何约束;表示关节的长度、横向大小或运动范围(ROM)的几何约束;锁定关节的子集在约束优化过程期间防止被更新的约束;关节位置只能沿特定轴平移的约束;在约束优化过程期间锁定关节特征的约束;如果关节位于距顶点的阈值距离之外则将顶点的权重设定为零的约束;或结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束。
16.根据前述方面中任一项所述的系统,其中,一组约束包括结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束,并且其中,约束优化过程被编程为仅作用于分割集中的关节或顶点。
17.根据前述方面中任一项所述的系统,其中,硬件处理器被编程为在约束优化过程期间动态地更新该组约束。
18.一种方法,包括:在与非暂态存储装置进行通信的硬件处理器的控制下:访问表示虚拟头像的目标姿势的目标网格;访问用于匹配目标网格的初始化网格;访问一组约束;执行约束优化以确定表示目标姿势的蒙皮参数,所执行的约束优化受到一组约束,约束优化采用初始化网格初始化;以及输出蒙皮参数。
19.根据方面18所述的方法,其中,目标网格根据执行目标姿势的人类或动物对象的摄影扫描、艺术家驱动的雕刻、目标姿势的计算仿真或生物统计学派生模型来确定。
20.根据方面18或方面19所述的方法,其中,初始化网格包括高阶骨架。
21.根据方面18-20中任一项所述的方法,其中,初始化骨架包括网格的顶点到骨架的关节的皮肤簇映射。
22.根据方面18-21中任一项所述的方法,其中,蒙皮参数包括权重图,该权重图测量关节对顶点的影响量。
23.根据方面18-22中任一项所述的方法,其中,蒙皮参数包括与骨架的每个关节的运动相关联的六个自由度参数。
24.根据方面23所述的方法,其中,六个自由度参数包括旋转和平移。
25.根据方面18-24中任一项所述的方法,进一步包括计算与蒙皮参数相关联的径向基函数(RBF)表示。
26.根据方面18-25中任一项所述的方法,其中,执行约束优化包括迭代在变换的网格和目标网格之间的误差项直到收敛为止。
27.根据方面18-26中任一项所述的方法,进一步包括在执行约束优化的同时动态地更新该组约束。
28.根据方面27所述的方法,其中,动态地更新该组约束包括接收关于该组约束的用户输入。
29.根据方面18-28中任一项所述的方法,其中,该组约束包括以下中的一个或多个:权重图的权重的非负约束;所有关节对顶点的总影响的归一化约束;任何顶点的最大非零权重数;与关节运动相关联的旋转参数表示三维旋转的约束;或与关节运动相关联的旋转参数包括正交矩阵的约束。
30.根据方面18-29中任一项所述的方法,其中,该组约束包括以下中的一个或多个:将子关节限制为与父关节相距固定距离的约束;平滑度约束,其限制网格的相邻顶点在权重图中具有相似的权重;表示关节的解剖特征的几何约束;表示关节的长度、横向大小或运动范围(ROM)的几何约束;锁定关节的子集在执行约束优化过程期间防止被更新的约束;关节位置只能沿特定轴平移的约束;在执行约束优化过程期间锁定关节特征的约束;如果关节位于距顶点的阈值距离之外则将顶点的权重设定为零的约束;或结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束。
31.根据方面18-30中任一项所述的方法,其中,一组约束包括结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束,并且其中,执行约束优化包括仅作用于分割集中的关节或顶点。
32.一种自动绘制用于线性混合蒙皮的权重并确定骨架位置的方法,该方法包括:在与非暂态存储装置进行通信的硬件处理器的控制下:基于初始线性混合蒙皮权重集、高阶骨架和目标姿势来求解误差最小化方程,其中,方程受到人类可理解的约束。
33.根据方面32所述的方法,其中,第一人类可理解的约束包括基于解剖学约束的用于肢体旋转的受限姿势空间。
34.根据方面33所述的方法,其中,肢体旋转包括被限制为不通过数字角色的躯干移动的手臂。
35.根据方面32-34中任一项所述的方法,其中,第二人类可理解的约束包括防止网格的一部分改变。
36.一种方法,包括:在与非暂态存储进行通信的硬件处理器的控制下:使用算法在算法上得出皮肤的权重和关节位置,其中,算法的输入是初始线性混合蒙皮权重集、高阶骨架和目标姿势,其中,算法受到基于一个或多个人类可理解的约束的一组约束。
37.根据方面36所述的方法,其中,第一人类可理解的约束包括基于解剖学约束的用于肢体旋转的受限姿势空间。
38.根据方面37所述的方法,其中,肢体旋转包括被限制为不通过数字角色的躯干移动的手臂。
39.根据方面36-38中任一项所述的方法,其中,第二人类可理解的约束包括防止网格的一部分改变。
40.一种系统,其包括非暂态存储装置和被编程为执行方面18-39中任一项的方法的硬件处理器。
其它注意事项
在此描述和/或附图中描绘的过程、方法和算法中的每一个可以在由一个或多个物理计算系统、硬件计算机处理器、专用电路和/或配置为执行专用和特定计算机指令的电子硬件执行的代码模块中体现,并且完全或部分地由代码模块自动执行。例如,计算系统可以包括采用特定计算机指令或专用计算机、专用电路等编程的通用计算机(例如服务器)。代码模块可以被编译并链接到可执行程序中,安装在动态链接库中,或者可以用解释的编程语言编写。在一些实现方式中,特定操作和方法可以由特定于给定功能的电路执行。
此外,本公开的功能的某些实现方式在数学上、计算上或技术上足够复杂,以使得专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)可能有必要例如由于所涉及的计算的量或复杂性而执行功能或者基本上实时地提供结果。例如,动画或视频可以包括许多帧,每个帧具有数百万个像素,并且需要专门编程的计算机硬件来处理视频数据,以在商业上合理的时间量内提供期望的图像处理任务或应用。作为另一个示例,通过解决针对这些参数的约束优化问题来计算蒙皮系统的权重图、旋转和平移参数是高度计算密集的(例如,参见参考图14描述的示例过程1400)。
代码模块或任何类型的数据可以被存储在任何类型的非暂态计算机可读介质上,诸如包括硬盘驱动器、固态存储器、随机存取存储器(RAM)、只读存储器(ROM)、光盘、易失性或非易失性存储设备,与它们相同或类似物的组合等的物理计算机存储装置。方法和模块(或数据)还可以作为所生成的数据信号(例如,作为载波或其它模拟或数字传播信号的一部分)在各种计算机可读传输介质(包括基于无线的和有线的/基于电缆的介质)上发送,并且可以采用多种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。所公开的过程或过程步骤的结果可以持久地或以其它方式存储在任何类型的非暂态有形计算机存储装置中,或者可以经由计算机可读传输介质传送。
在此描述和/或附图中描绘的流程图中的任何过程、框、状态、步骤或功能应当理解为可能表示代码模块、代码段或代码部分,其包括用于实施特定功能(例如,逻辑或算术)或过程中的步骤的一个或多个可执行指令。各种过程、块、状态、步骤或功能可以与在此提供的说明性示例组合、重新排列、添加、删除、修改或以其它方式改变。在一些实施例中,附加或不同的计算系统或代码模块可以执行在此描述的一些或全部功能。在此描述的方法和过程也不限于任何特定序列,并且与其相关的块、步骤或状态可以以适当的其它顺序执行,例如,以串行、并行或以一些其它方式。可以向所公开的示例实施例添加任务或事件或从中移除任务或事件。此外,在此描述的实现方式中的各种系统组件的分离是出于说明性目的,并且不应被理解为在所有实现方式中都需要这种分离。应当理解,所描述的程序部件、方法和系统通常可以一起集成在单个计算机产品中或打包成多个计算机产品。许多实现方式变化都是可能的。
过程、方法和系统可以在网络(或分布式)计算环境中实现。网络环境包括企业范围的计算机网络、内联网、局域网(LAN)、广域网(WAN)、个人局域网(PAN)、云计算网络、众包计算网络、互联网和万维网。网络可以是有线或无线网络或任何其它类型的通信网络。
本公开的系统和方法各自具有若干创新方面,其中没有一个单独地对在此公开的期望属性负责或要求。以上所述的各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本公开的范围内。对本领域技术人员来说,对本公开中描述的实现方式的各种修改是显而易见的,并且在不脱离本公开的精神或范围的情况下,在此定义的一般原理可以应用于其它实现方式。因此,权利要求不旨在限于在此所示的实现方式,而是与符合在此公开的本公开、原理和新颖特征的最宽范围相一致。
在单独实现方式的上下文中在本说明书中描述的某些特征也可以在单个实现方式中组合实施。相反,在单个实现方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实现方式中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以用于子组合或子组合的变体。对于每个和所有实施例,没有单个特征或特征组是必需或必不可少的。
除非另有说明,或者在所使用的上下文中以其它方式理解,否则在此使用的条件语言,诸如“能够”、“可以”、“可能”、“可”、“例如”等通常旨在传达某些实施例包括某些特征、元件和/或步骤,而其它实施例不包括某些特征、元件和/或步骤。因此,这种条件语言通常不旨在暗示对于一个或多个实施例以任何方式需要特征、元素和/或步骤,或者一个或多个实施例必须包括用于决定是否在任何特定实施例中包括或将要执行这些特征、元件和/或步骤(无论是否有作者输入或提示)的逻辑。术语“包含”、“包括”、“具有”等是同义的并且以开放式方式包含使用,并且不排除附加元件、特征、动作、操作等。此外,术语“或”在其包含意义上(而不是在其独有意义上)使用,因此当使用时,例如,为了连接元素列表,术语“或”表示列表中的一个、一些或全部元素。另外,除非另有说明,否则本申请和所附权利要求中使用的冠词“一”、“一个”和“该”应理解为表示“一个或多个”或“至少一个”。
如在此所使用的,指代项目列表中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“A、B或C中的至少一个”旨在涵盖:A、B、C、A和B、A和C、B和C,以及A、B和C。除非另外特别说明,否则诸如短语“X、Y和Z中的至少一个”的联合语言以其它方式通过上下文理解为通常用于传达项目、术语等可以是X、Y或Z中的至少一个。因此,这种联合语言通常不旨在暗示某些实施例需要X中的至少一个、Y中的至少一个和Z中的至少一个各自存在。
类似地,虽然可以以特定顺序在附图中描绘操作,但应认识到,不需要以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。此外,附图可以以流程图的形式示意性地描绘一个或多个示例过程。然而,未示出的其它操作可以包含在示意性示出的示例方法和过程中。例如,可以在任何所示操作之前、之后、同时或之间执行一个或多个附加操作。另外,可以在其它实现方式中重新排列或重新排序操作。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实现方式中的各种系统组件的分离不应被理解为在所有实现方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被打包到多种软件产品。另外,其它实现方式在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。

Claims (22)

1.一种系统,包括:
非暂态计算机存储装置,其被配置为存储:
表示虚拟头像的姿势的目标网格,所述目标网格包括多个目标网格顶点;
初始化骨架,其包括多个关节;
蒙皮参数,其表示骨架变形为所述虚拟头像的姿势;以及
与所述蒙皮参数或所述关节相关联的一组约束;以及
与所述非暂态计算机存储装置通信的硬件处理器,所述硬件处理器被编程为:
访问所述目标网格、所述初始化骨架和所述一组约束;
执行约束优化过程以确定提供与所述目标网格的匹配的所述蒙皮参数,所述约束优化过程受到所述一组约束;以及
输出所述蒙皮参数。
2.根据权利要求1所述的系统,其中,从执行姿势的人或动物对象的摄影扫描确定所述目标网格。
3.根据权利要求1所述的系统,其中,根据艺术家驱动的雕刻、所述姿势的计算仿真、或生物统计学派生模型确定所述目标网格。
4.根据权利要求1所述的系统,其中,所述初始化骨架包括高阶骨架。
5.根据权利要求1所述的系统,其中,所述初始化骨架包括处于基本姿势或中性姿势的低阶骨架。
6.根据权利要求1所述的系统,其中,所述初始化骨架进一步包括顶点到骨架的关节的皮肤簇映射。
7.根据权利要求1所述的系统,其中,所述蒙皮参数包括权重图,所述权重图测量关节对顶点的影响量。
8.根据权利要求1所述的系统,其中,所述蒙皮参数包括与每个关节的运动相关联的六个自由度参数。
9.根据权利要求8所述的系统,其中,所述六个自由度参数包括旋转和平移。
10.根据权利要求1所述的系统,其中,所述硬件处理器进一步被编程为计算与所述蒙皮参数相关联的径向基函数(RBF)表示。
11.根据权利要求1所述的系统,其中,所述约束优化过程被编程为实现下降,所述下降被配置为将来自第一区域的结果混合到第二区域中。
12.根据权利要求1所述的系统,其中,所述约束优化过程包括线性或二次编程。
13.根据权利要求1所述的系统,其中,所述约束优化过程包括利用一阶导数估计或二阶导数估计的非线性求解器。
14.根据权利要求1所述的系统,其中,所述一组约束包括以下中的一个或多个:
权重图的权重的非负约束;
所有关节对顶点的总影响的归一化约束;
任何顶点的最大非零权重数;
与关节运动相关联的旋转参数表示三维旋转的约束;或
与关节运动相关联的旋转参数包括正交矩阵的约束。
15.根据权利要求1所述的系统,其中,所述一组约束包括以下中的一个或多个:
将子关节限制为与父关节相距固定距离的约束;
平滑度约束,其限制网格的相邻顶点在权重图中具有相似的权重;
表示关节的解剖特征的几何约束;
表示关节的长度、横向大小或运动范围(ROM)的几何约束;
锁定关节的子集在所述约束优化过程期间防止被更新的约束;
关节位置只能沿特定轴平移的约束;
在所述约束优化过程期间锁定关节特征的约束;
如果关节位于距所述顶点的阈值距离之外则将顶点的权重设定为零的约束;或
结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束。
16.根据权利要求1所述的系统,其中,所述一组约束包括结合将一组一个或多个顶点与一组一个或多个关节相关联的分割集的约束,并且其中,所述约束优化过程被编程为仅作用于所述分割集中的关节或顶点。
17.根据权利要求1所述的系统,其中,所述硬件处理器被编程为在所述约束优化过程期间动态地更新所述一组约束。
18.一种方法,包括:
在与非暂态存储装置通信的硬件处理器的控制下:
访问表示虚拟头像的目标姿势的目标网格;
访问用于匹配所述目标网格的初始化网格;
访问一组约束;
执行约束优化以确定表示所述目标姿势的蒙皮参数,执行的所述约束优化受到所述一组约束,所述约束优化采用所述初始化网格进行初始化;以及
输出所述蒙皮参数。
19.一种自动绘制用于线性混合蒙皮的权重并确定骨架位置的方法,所述方法包括:
在与非暂态存储装置通信的硬件处理器的控制下:
基于初始线性混合蒙皮权重集、高阶骨架和目标姿势来求解误差最小化方程,
其中,所述方程受到人类可理解的约束。
20.一种方法,包括:
在与非暂态存储装置通信的硬件处理器的控制下:
使用算法在算法上得出皮肤的权重和关节位置,
其中,所述算法的输入是初始线性混合蒙皮权重集、高阶骨架和目标姿势,
其中,所述算法受到基于一个或多个人类可理解的约束的一组约束。
21.一种用于自动绘制用于线性混合蒙皮的权重并确定骨架位置的系统,所述系统包括:
与非暂态存储装置通信的硬件处理器,所述硬件处理器被编程为:
基于初始线性混合蒙皮权重集、高阶骨架和目标姿势来求解误差最小化方程,
其中,所述方程受到人类可理解的约束。
22.一种系统,包括:
与非暂态存储装置通信的硬件处理器,所述硬件处理器被编程为:
使用算法在算法上得出皮肤的权重和关节位置,
其中,所述算法的输入是初始线性混合蒙皮权重集、高阶骨架和目标姿势,
其中,所述算法受到基于一个或多个人类可理解的约束的一组约束。
CN201980047039.XA 2018-05-22 2019-05-20 用于对虚拟头像制作动画的骨架系统 Pending CN112437950A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862674908P 2018-05-22 2018-05-22
US62/674,908 2018-05-22
PCT/US2019/033131 WO2019226554A1 (en) 2018-05-22 2019-05-20 Skeletal systems for animating virtual avatars

Publications (1)

Publication Number Publication Date
CN112437950A true CN112437950A (zh) 2021-03-02

Family

ID=68614741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980047039.XA Pending CN112437950A (zh) 2018-05-22 2019-05-20 用于对虚拟头像制作动画的骨架系统

Country Status (5)

Country Link
US (2) US10885692B2 (zh)
EP (1) EP3797404A4 (zh)
JP (2) JP2021524627A (zh)
CN (1) CN112437950A (zh)
WO (1) WO2019226554A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113610949A (zh) * 2021-08-25 2021-11-05 腾讯科技(深圳)有限公司 虚拟手臂骨骼的蒙皮方法、装置、设备以及存储介质

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241528B1 (en) 2015-12-01 2019-03-26 Energyhub, Inc. Demand response technology utilizing a simulation engine to perform thermostat-based demand response simulations
US10746425B1 (en) 2017-03-08 2020-08-18 Energyhub, Inc. Thermal modeling technology
US10770897B1 (en) 2017-10-17 2020-09-08 Energyhub, Inc. Load reduction optimization
EP3797404A4 (en) 2018-05-22 2022-02-16 Magic Leap, Inc. SKELETAL SYSTEMS TO ANIMATE VIRTUAL AVATARS
US11372474B2 (en) 2019-07-03 2022-06-28 Saec/Kinetic Vision, Inc. Systems and methods for virtual artificial intelligence development and testing
US20210142342A1 (en) * 2019-11-10 2021-05-13 Zhiqing Cheng Methods and systems for provisioning digital data to an individual
US11423549B2 (en) * 2019-11-14 2022-08-23 Adobe Inc. Interactive body-driven graphics for live video performance
CN110992495B (zh) * 2019-12-26 2023-09-08 珠海金山数字网络科技有限公司 一种虚拟模型的变形方法及装置
CN111080755B (zh) * 2019-12-31 2023-11-14 上海米哈游天命科技有限公司 一种运动解算方法、装置、存储介质及电子设备
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US11321891B2 (en) * 2020-04-29 2022-05-03 Htc Corporation Method for generating action according to audio signal and electronic device
CN111627106B (zh) * 2020-05-29 2023-04-28 北京字节跳动网络技术有限公司 人脸模型重构方法、装置、介质和设备
CN111754423B (zh) * 2020-06-05 2024-03-22 北京有竹居网络技术有限公司 高模gpu蒙皮平滑处理方法、装置及电子设备
JP6933758B1 (ja) * 2020-06-29 2021-09-08 株式会社スクウェア・エニックス 情報処理プログラム、情報処理装置及び情報処理方法
KR20230042470A (ko) * 2020-07-24 2023-03-28 카이트스트링, 인크. 동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들
CN111739134B (zh) * 2020-07-30 2023-05-26 腾讯科技(深圳)有限公司 虚拟角色的模型处理方法、装置及可读存储介质
US11250626B1 (en) * 2020-08-13 2022-02-15 Beijing Institute Of Technology Virtual stage based on parallel simulation
US11735916B2 (en) 2020-09-22 2023-08-22 Energyhub, Inc. Autonomous electrical grid management
US11355937B2 (en) * 2020-09-22 2022-06-07 Energy Hub, Inc. Electrical grid control and optimization
CN112184921B (zh) * 2020-10-30 2024-02-06 北京百度网讯科技有限公司 虚拟形象驱动方法、装置、设备和介质
US11694380B2 (en) 2020-11-13 2023-07-04 Zoltan GELENCSER System and method for immersive telecommunications
AU2021204757A1 (en) * 2020-11-20 2022-06-09 Soul Machines Skeletal animation in embodied agents
CN112509099B (zh) * 2020-11-30 2024-02-06 北京百度网讯科技有限公司 虚拟形象驱动方法、装置、设备和存储介质
US11587277B2 (en) * 2020-12-16 2023-02-21 Sony Interactive Entertainment LLC Weight maps to generate off-center split maps of a shape
US11615601B2 (en) 2021-03-15 2023-03-28 Roblox Corporation Layered clothing that conforms to an underlying body and/or clothing layer
CN113421326B (zh) * 2021-05-21 2022-03-18 广东海洋大学 一种基于坐姿点检测的助行设备设计方法及系统
WO2023010204A1 (en) * 2021-08-01 2023-02-09 Digital Domain Virtual Human (Us), Inc. System and method for simplified facial capture with head-mounted cameras
CN113706666A (zh) * 2021-08-11 2021-11-26 网易(杭州)网络有限公司 动画数据处理方法、非易失性存储介质及电子装置
US20230063681A1 (en) * 2021-08-25 2023-03-02 Sony Interactive Entertainment Inc. Dynamic augmentation of stimuli based on profile of user
US20230104702A1 (en) * 2021-10-01 2023-04-06 Disney Enterprises, Inc. Transformer-based shape models
WO2023063570A1 (ko) * 2021-10-14 2023-04-20 삼성전자 주식회사 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법
WO2023075771A1 (en) * 2021-10-28 2023-05-04 Hewlett-Packard Development Company, L.P. Avatar training images for training machine learning model
CN114241100B (zh) * 2022-02-25 2022-06-03 腾讯科技(深圳)有限公司 虚拟对象的蒙皮处理方法、装置、设备、介质及程序产品
WO2023189838A1 (ja) * 2022-04-01 2023-10-05 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム
CN114898289B (zh) * 2022-05-11 2023-05-02 董燊 基于神经网络的园区可燃物识别方法及系统
CN114926572A (zh) * 2022-05-18 2022-08-19 聚好看科技股份有限公司 一种角色动画中衣物的驱动方法及设备
KR20230170485A (ko) * 2022-06-10 2023-12-19 삼성전자주식회사 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법
CN115601505B (zh) * 2022-11-07 2023-03-14 广州趣丸网络科技有限公司 一种人体三维姿态还原方法、装置、电子设备及存储介质
CN116051694B (zh) * 2022-12-20 2023-10-03 百度时代网络技术(北京)有限公司 虚拟形象生成方法、装置、电子设备以及存储介质
KR102584530B1 (ko) * 2023-03-06 2023-10-04 주식회사 메타버즈 인체조직 레이어 구축 방식을 활용한 디지털 휴먼 생성방법
CN116310000B (zh) * 2023-03-16 2024-05-14 北京百度网讯科技有限公司 蒙皮数据生成方法、装置、电子设备及存储介质
CN116342771B (zh) * 2023-05-29 2023-08-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN116402989B (zh) * 2023-06-08 2023-08-08 腾讯科技(深圳)有限公司 数据处理方法、装置、设备以及介质
CN116486108B (zh) * 2023-06-20 2023-09-01 腾讯科技(深圳)有限公司 一种图像处理方法、装置、设备及存储介质
CN117021098B (zh) * 2023-08-22 2024-01-23 北京中科深智科技有限公司 一种基于in-place动作生成world-place动作的方法
CN117292530B (zh) * 2023-11-27 2024-02-13 深圳龙电华鑫控股集团股份有限公司 一种载波通信数据采集效率优化方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222525B1 (en) 1992-03-05 2001-04-24 Brad A. Armstrong Image controllers with sheet connected sensors
US5670988A (en) 1995-09-05 1997-09-23 Interlink Electronics, Inc. Trigger operated electronic device
GB9626825D0 (en) * 1996-12-24 1997-02-12 Crampton Stephen J Avatar kiosk
US11428937B2 (en) 2005-10-07 2022-08-30 Percept Technologies Enhanced optical and perceptual digital eyewear
US8696113B2 (en) 2005-10-07 2014-04-15 Percept Technologies Inc. Enhanced optical and perceptual digital eyewear
US20070081123A1 (en) 2005-10-07 2007-04-12 Lewis Scott W Digital eyewear
US9304319B2 (en) 2010-11-18 2016-04-05 Microsoft Technology Licensing, Llc Automatic focus improvement for augmented reality displays
WO2012088478A1 (en) 2010-12-24 2012-06-28 Chunyu Gao An ergonomic head mounted display device and optical system
US10156722B2 (en) 2010-12-24 2018-12-18 Magic Leap, Inc. Methods and systems for displaying stereoscopy with a freeform optical system with addressable focus for virtual and augmented reality
EP2705435B8 (en) 2011-05-06 2017-08-23 Magic Leap, Inc. Massive simultaneous remote digital presence world
EP2760363A4 (en) 2011-09-29 2015-06-24 Magic Leap Inc TACTILE GLOVE FOR HUMAN COMPUTER INTERACTION
US9786083B2 (en) * 2011-10-07 2017-10-10 Dreamworks Animation L.L.C. Multipoint offset sampling deformation
KR101944846B1 (ko) 2011-10-28 2019-02-01 매직 립, 인코포레이티드 증강 및 가상 현실을 위한 시스템 및 방법
KR102095330B1 (ko) 2012-04-05 2020-03-31 매직 립, 인코포레이티드 능동 포비에이션 능력을 갖는 와이드-fov(field of view) 이미지 디바이스들
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US9536338B2 (en) * 2012-07-31 2017-01-03 Microsoft Technology Licensing, Llc Animating objects using the human body
US9740006B2 (en) 2012-09-11 2017-08-22 Magic Leap, Inc. Ergonomic head mounted display device and optical system
CN105122105B (zh) 2013-01-15 2018-06-15 奇跃公司 超高分辨率扫描光纤显示器
EP2967322A4 (en) 2013-03-11 2017-02-08 Magic Leap, Inc. System and method for augmented and virtual reality
JP6326482B2 (ja) 2013-03-15 2018-05-16 マジック リープ, インコーポレイテッドMagic Leap,Inc. 表示システムおよび方法
JP6348966B2 (ja) 2013-03-15 2018-06-27 スリーディー システムズ インコーポレーテッド 適合する手用装具の設計を自動作成する方法
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9874749B2 (en) 2013-11-27 2018-01-23 Magic Leap, Inc. Virtual and augmented reality systems and methods
KR102462848B1 (ko) 2013-10-16 2022-11-03 매직 립, 인코포레이티드 조절가능한 동공간 거리를 가지는 가상 또는 증강 현실 헤드셋들
CN107272199B (zh) 2013-11-27 2023-04-07 奇跃公司 虚拟和增强现实系统与方法
US9857591B2 (en) 2014-05-30 2018-01-02 Magic Leap, Inc. Methods and system for creating focal planes in virtual and augmented reality
JP6525436B2 (ja) 2014-01-31 2019-06-05 マジック リープ, インコーポレイテッドMagic Leap,Inc. 多焦点表示システムおよび方法
WO2015117043A1 (en) 2014-01-31 2015-08-06 Magic Leap, Inc. Multi-focal display system and method
JP2015163947A (ja) 2014-02-03 2015-09-10 キヤノン株式会社 光源光学系およびこれを用いた光源装置、画像表示装置
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
KR102173699B1 (ko) 2014-05-09 2020-11-03 아이플루언스, 인크. 안구 신호들의 인식 및 지속적인 생체 인증을 위한 시스템과 방법들
WO2015184413A1 (en) 2014-05-30 2015-12-03 Magic Leap, Inc. Methods and systems for generating virtual content display with a virtual or augmented reality apparatus
GB2531585B8 (en) * 2014-10-23 2017-03-15 Toshiba Res Europe Limited Methods and systems for generating a three dimensional model of a subject
WO2016073841A1 (en) * 2014-11-06 2016-05-12 Siemens Medical Solutions Usa, Inc. Scan data retrieval with depth sensor data
US9928663B2 (en) * 2015-07-27 2018-03-27 Technische Universiteit Delft Skeletal joint optimization for linear blend skinning deformations utilizing skeletal pose sampling
WO2017044499A1 (en) 2015-09-07 2017-03-16 Sony Interactive Entertainment America Llc Image regularization and retargeting system
EP3797404A4 (en) 2018-05-22 2022-02-16 Magic Leap, Inc. SKELETAL SYSTEMS TO ANIMATE VIRTUAL AVATARS

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113610949A (zh) * 2021-08-25 2021-11-05 腾讯科技(深圳)有限公司 虚拟手臂骨骼的蒙皮方法、装置、设备以及存储介质
CN113610949B (zh) * 2021-08-25 2023-06-16 腾讯科技(深圳)有限公司 虚拟手臂骨骼的蒙皮方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
JP2023165936A (ja) 2023-11-17
US20190362529A1 (en) 2019-11-28
JP2021524627A (ja) 2021-09-13
US20210201551A1 (en) 2021-07-01
US11682155B2 (en) 2023-06-20
EP3797404A4 (en) 2022-02-16
US10885692B2 (en) 2021-01-05
WO2019226554A1 (en) 2019-11-28
EP3797404A1 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
US11682155B2 (en) Skeletal systems for animating virtual avatars
US11074748B2 (en) Matching meshes for virtual avatars
US20220366627A1 (en) Animating virtual avatar facial movements
US11669726B2 (en) Methods and systems for interpolation of disparate inputs
US11557076B2 (en) Computer generated hair groom transfer tool
US11670032B2 (en) Pose space dimensionality reduction for pose space deformation of a virtual character
WO2019213220A1 (en) Using 3d scans of a physical subject to determine positions and orientations of joints for a virtual character
EP3759542B1 (en) Head scan alignment using ocular registration
US11836840B2 (en) Systems and methods for cross-application authoring, transfer, and evaluation of rigging control systems for virtual characters
US20230260156A1 (en) Methods and systems for interpolation of disparate inputs

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