CN111936912A - 使用眼部配准的头部扫描对准 - Google Patents

使用眼部配准的头部扫描对准 Download PDF

Info

Publication number
CN111936912A
CN111936912A CN201980022921.9A CN201980022921A CN111936912A CN 111936912 A CN111936912 A CN 111936912A CN 201980022921 A CN201980022921 A CN 201980022921A CN 111936912 A CN111936912 A CN 111936912A
Authority
CN
China
Prior art keywords
subject
head
scan
eye
eyeball
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
CN201980022921.9A
Other languages
English (en)
Inventor
G·韦迪希
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 CN111936912A publication Critical patent/CN111936912A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/19Sensors therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0127Head-up displays characterised by optical features comprising devices increasing the depth of field
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • G02B2027/0174Head mounted characterised by optical features holographic
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B3/00Simple or compound lenses
    • G02B3/12Fluid-filled or evacuated lenses
    • G02B3/14Fluid-filled or evacuated lenses of variable focal length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

用于对准虚拟化身的受试者的头部扫描的方法和系统可以基于在扫描中定位受试者的眼睛。在将一个或多个眼球模型适配到参考头部扫描中的受试者的每个眼球的巩膜的参考候选点之后,可以从眼球模型中推断出附加参考点。可以将眼球模型适配到另一个头部扫描中的受试者的每个眼球的巩膜的候选点,并且可以从被适配的眼球模型中推断出附加点。可以基于适配到参考头部扫描和其他头部扫描中的候选点的眼球模型和推断的附加点,在头部扫描之间确定仿射变换。该方法和系统可以用于装配或动画化虚拟化身。

Description

使用眼部配准的头部扫描对准
相关申请的交叉引用
本申请要求于2018年2月28日提交的题为“HEAD SCAN ALIGNMENT USING OCULARREGISTRATION(使用眼部配准的头部扫描对准)”的美国临时专利申请号62/636695的优先权,在此通过引用将其全部内容合并于此。
技术领域
本公开涉及虚拟现实和增强现实,包括混合现实、成像和可视化系统,更具体地,涉及用于使诸如化身的虚拟角色动画化并且用于处理用于化身的受试者的图像扫描的装配系统和方法。
背景技术
现代计算和显示技术促进了用于所谓“虚拟现实”、“增强现实”和“混合现实”体验的系统的开发,其中,数字再现的图像以使得它们看起来像是或可能被感知为是真实的方式呈现给用户。虚拟现实(VR)场景通常涉及计算机生成的虚拟图像信息的呈现,而对其他实际的现实世界视觉输入不透明。增强现实(AR)场景通常涉及虚拟图像信息的呈现,作为对用户周围现实世界可视化的增强。混合现实(MR)是一种增强现实,其中物理对象和虚拟对象可以共存和实时交互。本文公开的系统和方法解决了与VR、AR和MR技术有关的各种挑战。
发明内容
可以生成执行各种姿势的受试者的成像扫描,以创建受试者的逼真的三维(3D)虚拟表示(例如,化身)。通常在受试者执行训练姿势时进行扫描,该姿势显示出受试者的不同面部表情(例如,微笑、皱眉、眨眼、惊讶等)。扫描可用于为受试者的虚拟化身制作动画。可能遇到的一个缺点是,在针对不同训练姿势的成像扫描之间,受试者的头部会运动。这种运动如果不能稳定或得到补偿,则可能导致化身出现令人不快、怪诞或不自然的外观,因为头部的这种微小运动作为整体被导入到动画表情中。
用于对准用于虚拟化身的受试者的头部扫描的方法和系统的各种实施例可以基于在扫描中定位受试者的眼睛。在将一个或多个眼球模型适配到参考头部扫描中的受试者的每个眼球的巩膜的参考候选点之后,可以从眼球模型中推断出另一个参考点。可以将眼球模型适配到另一个头部扫描中的受试者的每个眼球的巩膜的候选点,并且可以从适配的眼球模型中推断出另一个点。可以基于适配到参考头部扫描和其他头部扫描中的候选点的眼球模型以及推断的其他点,在头部扫描之间确定仿射变换。
该方法和系统的实施例还可以用于通过定位非隐蔽的对象(例如眼睛)来定位隐蔽的刚性形状(例如受试者的头骨),该非隐蔽的对象具有至少一个相对于隐蔽的刚性形状的位置是固定的点。
在另一个实施例中,可以通过将眼睛的巩膜的可见部分适配到几何形状(例如,球形或椭圆形的一部分)并且使用该几何形状作为固定参考点以稳定扫描来获得对准受试者的头部的多个扫描。
在各种实施例中,用于在扫描之间变换受试者的头部的适配六个自由度(DOF)可被减少为适配至少五个DOF加一个附加DOF的自动过程。可以使用受试者皮肤上的参考点自动执行或者由动画师手动执行适配一个附加DOF。
本文公开的系统和方法可以用于各种行业,包括增强现实、虚拟现实或混合现实、游戏、视觉效果(VFx)、电影等。
本说明书中描述的主题的一种或多种实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,其他特征、方面和优点将变得显而易见。该概述或以下详细描述均不旨在限定或限制本发明主题的范围。
附图说明
图1描绘了具有某些虚拟现实对象以及由人观看的某些物理对象的混合现实场景的图示。
图2示意性地示出了可穿戴系统的示例。
图3示意性地示出了可穿戴系统的示例组件。
图4示意性地示出了用于将图像信息输出给用户的可穿戴设备的波导堆叠的示例。
图5是用于与虚拟用户接口进行交互的方法的示例的过程流程图。
图6A是可包括化身处理和渲染系统的可穿戴系统的另一示例的框图。
图6B示出了化身处理和渲染系统的示例组件。
图7是包括到可穿戴系统的各种输入的可穿戴系统的示例的框图。
图8是关于所识别的对象渲染虚拟内容的方法的示例的过程流程图。
图9A示意性地示出了描绘彼此交互的多个可穿戴系统的整体系统视图。
图9B示出了示例远程出席(telepresence)会话。
图10示出了由可穿戴系统的用户所感知的化身的示例。
图11A示意性地示出了其动画装配正在被生成的受试者的头部的示例。
图11B示意性地示出了受试者的示例性头骨,其是受试者的头部的刚性组件。头骨或受试者头部的相对于头骨具有至少一个固定点的部分的位置可用于在成像扫描之间稳定受试者的头部。
图12示意性地示出了眼睛的示例。
图13示出了在受试者的头部扫描期间获取的受试者的眼睛的巩膜的一部分。
图14示意性地示出了穿过受试者的眼睛的平面的横截面。该图示意性地示出了受试者的头部的眼睛的中心点和受试者的头部的第三点的示例,可用于确定两个不同的头部扫描中受试者的头部位置之间的变换。
图15是基于受试者的眼球模型来确定受试者的头部的姿势的示例过程的流程图。
图16是对准受试者的头部扫描的示例过程的流程图。
图17是对准受试者的扫描的示例过程的流程图,该受试者包括隐蔽部分和非隐蔽部分。
在所有附图中,附图标记可以被重复使用以指示引用元件之间的对应关系。提供附图是为了说明本文中描述的示例实施例,而无意于限制本公开的范围。
具体实施方式
总览
虚拟化身可以是AR/VR/MR环境中真实或虚构的人(或生物或拟人化对象)的虚拟表示。例如,在两个AR/VR/MR用户彼此交互的远程出席会话期间,观看者可以感知在该观看者的环境中的另一个用户的化身,从而对另一个用户在该观看者环境中的存在产生切实的感觉。化身还可以为用户提供一种在共享的虚拟环境中彼此交互并一起做事的方式。例如,参加在线课程的学生可以感知虚拟教室中其他学生或老师的化身并与之交互。作为另一示例,在AR/VR/MR环境中玩游戏的用户可以查看游戏中其他玩家的化身并与之交互。
所公开的系统和方法的实施例可以提供改进的化身,以及在可穿戴系统的用户与用户环境中的化身之间提供更现实的交互。尽管本公开中的示例描述了对人形化身进行动画处理,但是类似的技术也可以应用于动物、虚拟生物、对象等。因此,本文所述的成像扫描和对准或稳定化技术的受试者可以是人、动物或其他可变形的对象或角色。在本文描述的许多示例中,受试者是人(例如,创建看起来像人的化身),但这只是为了说明,而不是限制所公开的方法和系统。此外,本文描述的许多技术对于动物受试者可能特别有利,因为动物可能不理解(或服从)在图像之间保持静止的命令。
要创建一个令人信服的人的数字化身,可能需要扫描该人的三维(3D)相似度以创建数字几何。例如通过将受试者置于包括围绕并指向受试者的多个相机(例如,60、80、120或更多个相机)的摄影测量捕获平台中来进行成像扫描。相机可以彼此同步以捕获图像,这些图像可以转换为执行姿势的受试者的3D扫描。由于图像(或相应的扫描)可以包括人的头部的至少一部分,因此图像(或相应的扫描)在本文中可以称为头部扫描。头部扫描因此可以包括例如该人的头部的仅一部分(例如,眼睛区域),整个头部,头部和颈部,头部、颈部和上躯干,或整个人体。头部扫描可以包括来自人的环境的背景特征。
对于静态突发,可以生成单个扫描。但是,对于可以移动和做表情的化身,可以在受试者执行包括基本表情单元(例如,微笑、皱眉等)的训练姿势时进行扫描。这些扫描可用于创建训练集,该训练集用于构建动画装配(如下所述),该动画装配可用于创建活动中的人的令人信服的数字化身。
在该过程中可能遇到的一个困难是对准问题(也称为稳定化)。可能是由于人在扫描事件之间的微小移动,因此人的每一个扫描都可能相对于彼此出现在3D空间中。在执行扫描时可能很难或不可能完全消除这种微小移动。例如,当该人执行训练姿势时,在头部的多个扫描期间,该人可能无法保持其头部静止并没有任何移动。为了促进这些扫描的使用,可以通过本公开的方法有利地确定、减小、最小化或消除这些微小移动。
即使微小移动(例如,小于1毫米)也可能导致基于扫描的完成的动画装配看起来令人不快、不自然或异常,因为这些微小移动(例如,头部或身体整体的平移或旋转)被合并到动画装配中(例如,用于对化身进行动画处理的混合变形)。例如,如果两个头部扫描未精确对准(例如,小于0.5毫米),则与从基于扫描的完成的装配生成的化身进行交互的AR/MR/VR用户可以清楚地注意到该化身的异常或不自然。当与这样的化身进行交互时,AR/MR/VR设备的用户可能会感到奇怪、怪异或令人不快的感觉。操作者可以手动对准头部扫描,每个扫描或每帧可能需要0.5到2.5个小时,对于在许多场景下创建受试者的装配而言,这可能太长了。此外,操作者使用人工判断和个性化技术以在扫描之间对准受试者的头部。相反,本文公开的方法的各种实施例基于可应用于数字扫描的一组计算机化规则来提供自动化(或至少半自动化)对准方法。尽管结果可能是相同的(例如,在一组扫描中对准或稳定受试者的头部),但是计算机技术的执行方式不同于操作者的方法,后者依赖于个人的判断和经验。
因此,所公开的系统和技术的实施例可以用于在扫描之间快速且自动地(或在有限的或减少的人工干预下)对准受试者的头部,这改善了所得化身的动画效果。例如,可以渲染化身以减少进入所谓的恐怖谷的可能性,这表示人类对化身的情感反应有所下降,该化身的外观或运动几乎但并非完全是人类。
对于人类受试者,可以使用受试者的刚性组件(例如头骨)的位置来确定受试者头部在扫描之间的对准。但是,头骨被受试者的皮肤遮盖了,在训练姿势期间表现感情的表情期间,头骨会变形。因此,直接从成像扫描中确定头骨的位置具有挑战性。诸如皮肤特征、鼻子、耳朵或额头之类的非隐蔽特征已被有限地成功或准确使用。如本文中更详细地描述的,可以通过使用关于相对于头骨几乎刚性固定的非隐蔽特征(例如,眼睛)的信息来确定头骨的位置。
在一些实施方式中,从受试者眼睛的巩膜(白色部分)收集的扫描数据(例如,3D数据)可以适配眼球模型(例如,球形或椭圆形,或任何其他合适的形状),即可确定每只眼睛的中心点。这些点相对于受试者的头骨几乎是刚性的,因此提供了在受试者的成像扫描之间计算头部位置的刚性六个自由度(DOF)变换所需的三个点中的两个。六个自由度变换可以说明身体的刚性组件(例如头骨)在3D坐标空间中的运动,例如三个空间平移(例如,前后、上下和左右)以及三个角度旋转(例如偏航、俯仰和滚动)。六个DOF变换可以包括仿射变换(例如,表示旋转、平移、比例变化、剪切或反射的线性变换)。
将眼睛位置与参考姿势的眼睛位置对准,可以将六个DOF问题减少为一个DOF问题,该问题的特征在于沿着穿过眼睛中心点的轴的单个枢轴(pivot)。最终枢轴可以由操作者(例如动画师)使用基于皮肤的技术或手动技术来计算。在一些实施例中,基于眼球的中心点和半径,仿射变换可以被确定为球面匹配(除了中心点匹配之外)。在一些实施方式中,可以通过匹配眼睛的巩膜的暴露部分的几何形状以进行对准来确定仿射变换。
在一些实施例中,可以使用六个自由度仿射变换来变换每个扫描,以使人的头部的刚性部分(例如,头骨)的位置与共同的参考姿势的位置匹配。共同的参考姿势可以是人的放松、中立的表情。由于头骨实际上是不可见的,因此可以从扫描中显示的信息推断出头骨的位置。扫描中的主要信息(面部皮肤)在扫描之间会变形,从而使其不太适合在许多成像扫描实施方式所需的质量级别上确定变换。
由于面部的可见部分的变形程度,对准问题可能是特别具有挑战性(例如,对于人类受试者而言)。即使对于熟练的操作者来说,也很难看到其底层结构。另外,六个自由度以复杂的方式相互作用,从而使得难以确定平移或旋转是否适合于给定的对准问题。
可以仅使用已经在两个或多个扫描(例如,参考扫描和可用于构建动画装配的一个或多个其他扫描)之间进行刚性变换的三个点来计算六自由度仿射变换。在扫描人的头部的情况下,在扫描中不存在直接可见的这样的点,因为头骨被受试者的皮肤遮盖了,而这肤在摆姿势时会变形。本文公开的对准方法可以基于眼部的配准,眼部的配准是通过从用户的眼睛巩膜推断出头部扫描中的用户眼睛的眼球中心,并使用推断出的眼球中心来对准头部扫描。
然而,由于眼睛发亮,因此扫描可能会有噪音,因为对于不同相机的眼睛反射情况不同。此外,眼睛的漫反射(reflectance)可能会在表面下产生散射,从而产生噪音。在一些实施例中,本公开的眼部对准方法可以用于对准具有噪音的头部扫描。在一些实施方式中,眼部对准方法不需要被创建化身的人穿着粉妆,这可以帮助消除表面下的散射。毕竟,不可能在眼睛上化妆。
在一些实施例中,本文公开的眼部对准方法相对于基于跟踪点(例如鼻梁、前额、耳朵后面的点等)的其他方法具有一个或多个优点,至少部分地是因为这些点在摆姿势时都或多或少地移动。在一些实施方式中,与基于直接跟踪候选皮肤点的对准技术相比,眼部对准方法具有更高的准确性。在一些实施例中,与预测皮肤运动并因此推断头骨位置的统计或机器学习的对准技术相比,眼部对准方法不那么麻烦并且需要较少的训练(例如,使用较低分辨率或较低质量的扫描的训练)。在该方法可以用于制作之前,眼部对准方法可能不需要费时的手部对准。本公开的眼部对准方法可以是简单、准确、快速或易于实施的。在一些实施例中,因为困难的六自由度(DOF)问题已经简化为更易于处理的一个自由度,所以可以容易地修改或改进使用眼部对准方法确定的对准(例如,由操作者或动画师)。眼部对准方法在计算机图形和视觉效果处理(例如,用于电影制作)中具有其他应用。眼部对准方法可以用于头部扫描的全自动或半自动对准(例如,其中使用一些操作者输入,例如用于一个DOF变换)。本文公开的系统和方法可用于各种行业,包括增强现实、虚拟现实或混合现实、游戏、视觉效果(VFx)、电影等。
可穿戴系统的3D显示的示例
可穿戴系统(在本文中也称为增强现实(AR)系统)可被配置为向用户呈现2D或3D虚拟图像。图像可以是静止图像、视频的帧、或视频、或组合等。可穿戴系统的至少一部分可以被实现在可穿戴设备上,该可穿戴设备可以单独或组合地为用户交互来呈现VR、AR或MR环境。可穿戴设备可以互换地用作AR设备(ARD)。此外,出于本公开的目的,术语“AR”与术语“MR”可互换使用。
图1描绘了具有某些虚拟现实对象以及由人观看的某些物理对象的混合现实场景的图示。在图1中,描绘了MR场景100,其中,MR技术的用户看到现实世界的公园状的设置110,其特征在于背景中的人、树、建筑物、以及混凝土平台120。除了这些项目之外,MR技术的用户还感知到他“看到”了站在现实世界平台120上的机器人雕像130,以及飞行的卡通状的化身角色140,似乎是大黄蜂的化身,即使这些元素在现实世界中不存在。
为了使3D显示器产生真实的深度感,更具体地说,产生表面深度的模拟感,可能希望显示器的视野中的每个点都生成与其虚拟深度相对应的适应性响应。如果对显示点的适应性响应不符合该点的虚拟深度(如由双目深度会聚提示和立体视觉确定),则人眼可能会遇到适应冲突,从而导致成像不稳定、有害的眼睛疲劳、头痛、以及缺乏适应信息的情况下几乎完全缺乏表面深度(surface depth)。
可以通过具有显示器的显示系统来提供VR、AR和MR体验,在该显示器中,将与多个深度平面相对应的图像提供给观看者。图像对于每个深度平面可能是不同的(例如,提供场景或对象的稍有不同的呈现),并且可能会被观看者的眼睛分别聚焦,从而有助于基于眼睛所需的适应向用户提供深度提示,为位于不同深度平面上的场景或基于观察不同深度平面上的不同图像特征失焦而聚焦不同图像特征。如本文其他地方所讨论的,这样的深度提示提供了对深度的可信感知。
图2示出了可被配置为提供AR/VR/MR场景的可穿戴系统200的示例。可穿戴系统200也可以称为AR系统200。可穿戴系统200包括显示器220以及支持显示器220的功能的各种机械和电子模块和系统。显示器220可以耦合到可由用户、穿戴者或观看者210穿戴的框架230。显示器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示出了可以包括显示器220的示例可穿戴系统200。显示器220可以包括可以安装到用户的头部或外壳或框架230的显示透镜226,该显示透镜226与框架230相对应。显示透镜226可以包括一个或多个透明镜,该透明镜由外壳230定位在用户的眼睛302、304的前面,并且可被配置为将投射的光338弹射到眼睛302、304中并促进光束整形,同时还允许透射至少一些来自本地环境的光。投射的光束338的波前(wavefront)可以被弯曲或聚焦以与投射的光的期望焦距一致。如图所示,两个广视野机器视觉相机316(也称为世界相机)可以耦合到外壳230以对用户周围的环境成像。这些相机316可以是双重捕获可见光/不可见(例如,红外)光相机。相机316可以是图4中所示的面向外部的成像系统464的一部分。由世界相机316获取的图像可以由姿势处理器336处理。例如,姿势处理器336可以实现一个或多个对象识别器708(例如,图7所示)以标识用户或在用户的环境中的另一个人的姿势或标识在用户的环境中的物理对象。
继续参考图3,示出了一对具有被配置为将光338投射到眼睛302、304中的显示镜和光学器件的扫描激光成形波前(例如,用于深度)光投射仪模块。所描绘的视图还示出了与红外光(例如,发光二极管“LED”)配对的两个微型红外相机324,其被配置为能够跟踪用户的眼睛302、304以支持渲染和用户输入。相机324可以是图4所示的面向内部的成像系统462的一部分。可穿戴系统200的特征还在于传感器组件339,该传感器组件339可包括X、Y和Z轴加速度计能力以及磁指南针以及X、Y和Z轴陀螺仪能力,优选地以相对较高的频率(例如,200Hz)提供数据。传感器组件339可以是参考图2A描述的IMU的一部分。所描绘的系统200还可以包括头部姿势处理器336,诸如ASIC(专用集成电路)、FPGA(现场可编程门阵列)或ARM处理器(高级简化指令集机器),其可被配置为根据从捕获设备316输出的宽视野图像信息来计算实时或近实时用户头部姿势。头部姿势处理器336可以是硬件处理器,并且可以被实现为图2A中所示的本地处理和数据模块260的一部分。
可穿戴系统还可以包括一个或多个深度传感器234。深度传感器234可被配置为测量环境中的对象到可穿戴设备之间的距离。深度传感器234可包括激光扫描仪(例如,lidar)、超声深度传感器、或深度感测相机。在某些实施方式中,在相机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(例如,微型红外相机)可以用来跟踪眼睛的姿势以支持渲染和用户输入。一些示例眼睛姿势可以包括用户正在看的地方、或他或她正聚焦的深度(这可以通过眼睛聚散(vergence)来估计)。GPS 337、陀螺仪、指南针和加速度计339可用于提供粗略或快速的姿势估计。相机316中的一个或多个可以获取图像和姿势,这些图像和姿势与来自关联的云计算资源的数据一起可以用于映射本地环境并与其他用户共享用户视图。
图3所示的示例组件仅用于说明目的。为了便于说明和描述,一起显示了多个传感器和其他功能模块。一些实施例可以仅包括这些传感器或模块中的一个或子集。此外,这些组件的位置不限于图3所示的位置。某些组件可安装到其他组件或容纳在其他组件中,例如,皮带安装组件、手持组件或头盔组件。作为一个示例,图像姿势处理器336、传感器姿势处理器332和渲染引擎334可以被放置在皮带包中,并且被配置为经由无线通信(例如,超宽带、Wi-Fi、蓝牙等)或经由有线通信与可穿戴系统的其他组件通信。所描绘的外壳230优选地是用户可头戴的和可穿戴的。但是,可穿戴系统200的某些组件可能会穿戴到用户的身体的其他部分。例如,扬声器240可以被插入用户的耳朵中以向用户提供声音。
关于光338到用户的眼睛302、304中的投射,在一些实施例中,相机324可以用于测量用户的眼睛的中心在几何上被聚散到的位置,这通常与眼睛的焦点位置或“焦深”一致。眼睛聚散到的所有点的三维表面可以称为“双眼单视界(horopter)”。焦距可以具有有限量的深度,或者可以无限变化。从聚散距离投射的光似乎聚焦到了受试者眼睛302、304,而在聚散距离之前或之后的光却变得模糊了。在美国专利公开号2016/0270656(其全部内容通过引用合并于此)中也描述了本公开的可穿戴设备和其他显示系统的示例。
人的视觉系统是复杂的,并且提供对深度的真实感是具有挑战性的。由于组合了聚散(vergence)和适应,对象的观看者可以将对象感知为三维。两只眼睛相对于彼此的聚散移动(即,瞳孔相向或远离彼此的滚动移动以收敛眼睛的视线以固定在对象上)与眼睛晶状体的聚焦(或“适应”)紧密相关联。在正常情况下,在称为“适应-聚散反射”(accommodation-vergence reflex)的关系下,改变眼睛晶状体的焦点或适应眼睛以将焦点从一个对象变化为不同距离的另一对象,将自动导致在相同距离上的聚散的匹配变化。同样,在正常情况下,聚散的改变将触发适应的匹配变化。在适应和聚散之间提供更好匹配的显示系统可以形成更逼真和舒适的三维图像模拟。
人眼可以正确地分辨出光束直径小于约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包括光调制器,该光调制器通过光纤扫描仪或其他光产生源以可变的方式以不同的焦点以光栅图案跨视网膜投射光束。因此,如在美国专利公开号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,光提取光学元件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。准直光可以表示光学无限远焦平面。下一个上行(up)波导434b可被配置为在准直光到达眼睛410之前发出通过第一透镜452(例如,负透镜)的准直光。第一透镜452可被配置为产生轻微的凸波前曲率,从而眼睛/大脑将来自该下一上行波导434b的光解释为来自第一焦平面,该第一焦平面从光学无限远处向内更靠近朝向眼睛410。类似地,第三上行波导436b在到达眼睛410之前将其输出光通过第一透镜452和第二透镜454。第一透镜452和第二透镜454的组合光功率可被配置为产生另一增量的波前曲率,使得眼睛/大脑将来自第三波导436b的光解释为来自第二焦平面,该第二焦平面比来自下一个上行波导434b的光从光学无穷远向内更靠近人。
其他波导层(例如,波导438b、440b)和透镜(例如,透镜456、458)被类似地配置,堆叠中的最高波导440b通过其与眼睛之间的所有透镜发送其输出,用于表示最靠近人的焦平面的聚合(aggregate)焦度。在观看/解释来自堆叠波导组件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日公开的美国专利公开No.2015/0178939中描述了诸如衍射光栅的光提取光学元件,其通过引用全部并入在此。
在一些实施例中,光提取光学元件440a、438a、436a、434a、432a是形成衍射图案或衍射光学元件(在本文中也称为“DOE”)的衍射特征。优选地,DOE具有相对较低的衍射效率,使得通过与DOE的每个交互,光束的仅一部分光朝着眼睛410偏转,而其余部分则通过全内反射继续移动通过波导。携带图像信息的光因此可以被分成多个相关的出射光束,该出射光束在多个位置处离开波导,并且该结果对于在波导内反弹的该特定准直光束是朝向眼睛304的相当均匀图案的出射发射。
在一些实施例中,一个或多个DOE可以在它们主动衍射的“开启”状态和它们不明显衍射的“关闭”状态之间切换。例如,可切换的DOE可以包括聚合物分散液晶层,其中,微滴(microdrop)在主体介质(host medium)中包含衍射图案,并且微滴的折射率可以切换为与主体材料的折射率基本匹配(在这种情况下,该图案不会明显衍射入射光),或者可以将微滴切换到与主体介质的折射率不匹配的折射率(在这种情况下,该图案会主动衍射入射光)。
在一些实施例中,深度平面或景深的数量和分布可以基于观看者的眼睛的瞳孔大小或定向动态地变化。景深可能与观看者的瞳孔大小成反比。结果,随着观看者眼睛的瞳孔大小减小,景深增加,使得由于该平面的位置超出眼睛的焦深而无法辨认的平面可能变得可辨认,并且随着瞳孔大小的减小和景深的相应增加表现为更聚焦。同样,随着瞳孔大小减小,可以减少用于向观看者呈现不同图像的间隔开的深度平面的数量。例如,在处于一个瞳孔大小下,不将眼睛的适应性从一个深度平面调整到另一个深度平面,则观看者可能无法清楚地感知第一深度平面和第二深度平面两者的细节。但是,这两个深度平面可以在不改变适应性的情况下,对于处于另一瞳孔大小的用户同时充分地聚焦。
在一些实施例中,显示系统可以基于对瞳孔大小或定向的确定,或者基于接收到指示特定瞳孔大小或定向的电信号,来改变接收图像信息的波导的数量。例如,如果用户的眼睛不能区分与两个波导相关联的两个深度平面,则控制器460(其可以是本地处理和数据模块260的实施例)可以被配置或编程为停止向这些波导之一提供图像信息。有利地,这可以减少系统上的处理负担,从而增加系统的响应性。在波导的DOE可在开启和关闭状态之间切换的实施例中,当波导确实接收到图像信息时,DOE可被切换为关闭状态。
在一些实施例中,可能希望使出射光束满足直径小于观看者眼睛的直径的条件。但是,鉴于观看者瞳孔大小的可变性,满足此条件可能是具有挑战性的。在一些实施例中,通过响应于观看者的瞳孔大小的确定而改变出射光束的大小,在宽范围的瞳孔大小上满足该条件。例如,随着瞳孔大小的减小,出射光束的大小也可以减小。在一些实施例中,可以使用可变孔径来改变出射光束的大小。
可穿戴系统400可以包括对世界470的一部分进行成像的面向外部的成像系统464(例如,数码相机)。世界470的这一部分可以称为世界相机的视野(FOV),成像系统464有时被称为FOV相机。世界相机的FOV可以与观看者210的FOV相同或不同,观看者210的FOV包含观看者210在给定时间感知的世界470的一部分。例如,在某些情况下,世界相机的FOV可以大于可穿戴系统400的观看者210的观看者210。可用于观看者观看或成像的整个区域可以被称为能视场(field of regard(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)、棒、触觉设备、图腾(totem)(例如,充当虚拟用户输入设备)等等。多DOF控制器可以感测控制器的某些或所有可能的平移(例如,左/右、前/后、或上/下)或旋转(例如,偏航、俯仰或滚动)中的用户输入。支持平移移动的多DOF控制器可以称为3DOF,而支持平移和旋转的多DOF控制器可以称为6DOF。在一些情况下,用户可以使用手指(例如,拇指)在触敏输入设备上按下或滑动以向可穿戴系统400提供输入(例如,向由可穿戴系统400提供的用户接口提供用户输入)。用户输入设备466可以在可穿戴系统400的使用过程中被用户的手握住。用户输入设备466可以与可穿戴系统400进行有线或无线通信。
可穿戴系统的其他组件
在许多实施方式中,除了上述可穿戴系统的组件之外或作为替代,可穿戴系统可以包括其他组件。可穿戴系统可以例如包括一个或多个触觉设备或组件。触觉设备或组件可操作以向用户提供触感。例如,当触摸虚拟内容(例如,虚拟对象、虚拟工具、其他虚拟构造物)时,触觉设备或组件可以提供压力或纹理的触感。触感可以复制虚拟对象所表示的物理对象的感觉,或者可以复制虚拟内容所表示的想象的对象或角色(例如,龙)的感觉。在一些实施方式中,用户可以穿戴触觉设备或组件(例如,用户可穿戴的手套)。在一些实施方式中,触觉设备或组件可以由用户持有。
例如,可穿戴系统可以包括用户可操纵的一个或多个物理对象,以允许输入或与可穿戴系统交互。这些物理对象在本文中可以称为图腾。一些图腾可以采取无生命对象的形式,例如,一块金属或塑料、墙壁、桌子表面。在某些实施方式中,图腾实际上可能没有任何物理输入结构(例如,按键、触发器、操纵杆、轨迹球、摇杆开关)。相反,图腾可以简单地提供物理表面,并且可穿戴系统可以渲染用户接口,以便对用户看起来在图腾的一个或多个表面上。例如,可穿戴系统可以使计算机键盘和触控板的图像渲染为看起来驻留在图腾的一个或多个表面上。例如,可穿戴系统可以使虚拟计算机键盘和虚拟触控板渲染为看起来在用作图腾的薄铝矩形板的表面上。矩形板本身可能没有任何物理按键、触控板或传感器。但是,可穿戴系统可以将用户操作或交互或者触摸矩形板检测为通过虚拟键盘或虚拟触控板进行的选择或输入。用户输入设备466(图4中所示)可以是图腾的一个实施例,它可以包括触控板、触摸板、触发器、操纵杆、轨迹球、摇杆或虚拟开关、鼠标、键盘、多自由度控制器、或其他物理输入设备。用户可以单独或与姿势结合使用图腾来与可穿戴系统或其他用户进行交互。
在美国专利公开No.2015/0016777中描述了本公开的与可穿戴设备、HMD和显示系统一起使用的触觉设备和图腾的示例,其全部内容通过引用并入本文。
用户与可穿戴系统交互的示例过程
图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,其可以包括地图数据库710(图7所示)中的数据的至少一部分。该地图可以部分地驻留在可穿戴系统本地,并且可以部分地驻留在可通过有线或无线网络(例如,在云系统中)访问的联网存储位置。姿势处理610可以在可穿戴计算架构(例如,处理模块260或控制器460)上执行,并且利用来自地图620的数据来确定可穿戴计算硬件或用户的位置和定向。当用户体验系统并在世界范围内操作时,可以根据操作中收集的数据计算姿势数据。数据可以包括图像、来自传感器(例如,惯性测量单元,其通常包括加速度计和陀螺仪组件)的数据以及与真实或虚拟环境中的对象有关的表面信息。
稀疏点表示可以是同时定位和地图构建(例如,SLAM或vSLAM,是指其中输入仅是图像/视觉的配置)过程的输出。该系统可被配置为不仅查找各个组件在世界中的位置,而且还了解世界由什么组成。姿势可以是实现许多目标的构建块,包括填充地图和使用地图中的数据。
在一个实施例中,稀疏点位置本身可能并不完全足够,并且可能需要更多信息来产生多焦点AR、VR或MR体验。通常涉及深度图信息的密集表示可以被用来至少部分地填充该空隙。可以根据称为立体声(Stereo)640的过程来计算这样的信息,其中,使用诸如三角测量或飞行时间感测(time-of-flight sensing)之类的技术来确定深度信息。图像信息和有源(active)图案(例如,使用有源投影仪创建的红外图案)、从图像相机获取的图像、或手势/图腾650可以用作立体声过程640的输入。大量的深度地图信息可以融合在一起,并且其中一些可以用表面表示来概括。例如,数学上可定义的表面可以是对其他处理设备(例如,游戏引擎)是有效(例如,相对于大的点云而言)和可消化的输入。因此,立体声过程(例如,深度图)640的输出可以在融合过程630中被组合。姿势610也可以是该融合过程630的输入,并且融合630的输出成为填充该地图过程620的输入。例如,子表面可以在地形图绘制中相互连接,以形成更大的表面,并且该地图成为点和表面的大型混合体。
为了解决混合现实过程660中的各个方面,可以利用各种输入。例如,在图6A所示的实施例中,可以输入游戏参数来确定系统的用户正在玩怪物战斗游戏,其中在各个位置处有一个或多个怪物、怪物在各种条件下死亡或逃跑(例如,如果用户射击了怪物)、在各个位置处有墙壁或其他对象、等等。世界地图可以包括关于对象的位置的信息或对象的语义信息(例如,诸如对象是平的还是圆的、水平的还是垂直的、桌子还是灯等的分类),并且世界地图可以是混合现实的另一个有价值的输入。相对于世界的姿势也成为输入,并且在几乎任何交互系统中都扮演着关键角色。
来自用户的控制或输入是可穿戴系统600的另一输入。如本文所述,用户输入可以包括视觉输入、手势、图腾、音频输入、感官输入等。例如,为了四处移动或玩游戏,用户可能需要指示可穿戴系统600关于他或她想做什么。除了在空间中移动自己之外,还可以使用各种形式的用户控件。在一个实施例中,图腾(例如,用户输入设备)或诸如玩具枪之类的对象可以被用户握持并由系统跟踪。该系统优选地将被配置为知道用户正在握持该物品并且了解用户与该物品进行了哪种交互(例如,如果图腾或对象是枪支,则该系统可被配置为理解位置和定向、以及用户是否在点击触发器或可以配备有传感器(诸如IMU)的其它感测按钮或元件,这可能有助于确定正在发生什么,即使这种活动不在任何相机的视野内)。
手势跟踪或识别也可以提供输入信息。可穿戴系统600可被配置为跟踪和解释用于按钮按压、用于指示向左或向右、停止、抓握、握持等的手势。例如,在一种配置中,用户可能想要在非游戏环境中翻阅电子邮件或日历,或与其他人或玩家进行“拳头碰撞”。可穿戴系统600可被配置为利用最小量的手势,该最小量的手势可以是动态的或可以不是动态的。例如,手势可以是简单的静态手势,例如,张开手以示停止、大拇指向上以示可以、大拇指向下以示不可以;或手向右、向左或向上/向下翻转以示方向性命令。
眼睛跟踪是另一输入(例如,跟踪用户正观看的位置以控制显示技术在特定深度或范围进行渲染)。在一个实施例中,可以使用三角测量法确定眼睛的聚散,然后使用针对该特定人开发的聚散/适应性模型来确定适应性。眼睛相机可以执行眼睛跟踪以确定眼睛凝视(例如,一只眼睛或两只眼睛的方向或定向)。可以将其他技术用于眼睛跟踪,例如,通过放置在眼睛附近的电极来测量电势(例如,眼球运动电位测定法)。
语音跟踪可以是另一输入,其可以单独或与其他输入(例如,图腾跟踪、眼睛跟踪、手势跟踪等)组合使用。语音跟踪可以包括单独或组合的语音识别、话音识别。系统600可以包括从环境接收音频流的音频传感器(例如,麦克风)。系统600可以结合语音识别技术来确定谁在说话(例如,语音是来自ARD的穿戴者还是另一个人或语音(例如,由环境中的扬声器发送的录音))以及语音识别技术来确定正在说什么。本地数据和处理模块260或远程处理模块270可以处理来自麦克风的音频数据(或另一个流中的音频数据,例如,用户正在观看的视频流),以通过应用各种语音识别算法来标识语音的内容,例如,隐马尔可夫模型、基于动态时间规整(DTW)的语音识别、神经网络、深度学习算法(例如,深度前馈和递归神经网络)、端到端自动语音识别、机器学习算法(参考图7描述的)或使用声学建模或语言建模等的其他算法。
本地数据和处理模块260或远程处理模块270也可以应用语音识别算法,该算法可以标识说话者的标识,例如,说话者是可穿戴系统600的用户210还是用户正与之通话的另一个人。一些示例语音识别算法可以包括频率估计、隐马尔可夫模型、高斯混合模型、模式匹配算法、神经网络、矩阵表示、矢量量化、说话者分类(speaker diarisation)、决策树、和动态时间规整(DTW)技术。语音识别技术还可以包括反说话者技术,例如,交股模型(cohortmodel)和世界模型。频谱特征可用于表示说话者特性。本地数据和处理模块或远程数据处理模块270可以使用参考图7描述的各种机器学习算法以执行语音识别。
可穿戴系统的实施方式可以通过UI使用这些用户控件或输入。UI元素(例如,控件、弹出窗口、气泡、数据输入字段等)可以用于例如关闭信息(例如,对象的图形或语义信息)的显示。
关于相机系统,图6中所示的示例可穿戴系统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可以单独地或组合地包括: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可被配置为对虚拟化身670进行动画处理,并使显示器220渲染虚拟化身670。3D模型处理系统680可以包括虚拟角色处理系统682和移动处理系统684。虚拟角色处理系统682可被配置为生成和更新用户的3D模型(用于创建虚拟化身和对虚拟化身进行动画处理)。移动处理系统684可被配置为对化身进行动画处理,诸如例如通过改变化身的姿势、通过在用户的环境中四处移动化身、或通过对化身的面部表情进行动画处理等。如在此将进一步描述的那样,可以使用装配(rigging)技术对虚拟化身进行动画处理。在一些实施例中,化身以两部分表示:用于渲染虚拟化身的外表的表面表示(例如,可变形的网格(mesh))和用于对网格进行动画处理的一组分层的互连关节(例如,核心骨骼)。在一些实施方式中,虚拟角色处理系统682可被配置为编辑或生成表面表示,而移动处理系统684可以用于通过移动化身、使网格变形等来对化身进行动画处理。
映射用户的环境的示例
图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算法、均值平移(Mean-shift)算法、视觉同时定位和地图构建(vSLAM)技术、顺序贝叶斯估计器(例如,卡尔曼滤波器、扩展卡尔曼滤波器等)、光束法平差(bundle adjustment)、自适应阈值(和其他阈值技术)、迭代最近点(ICP)、半全局匹配(SGM)、半全局块匹配(SGBM)、特征点直方图、各种机器学习算法(例如,支持矢量机、k最近邻算法、朴素贝叶斯、神经网络(包括卷积或深度神经网络)、或其他有监督/无监督模型等),等等。这些计算机视觉算法中的某些或全部可用于以下描述的眼部配准技术(例如,参见图11A-17),例如,根据受试者的眼睛的扫描来识别巩膜。
可以附加地或替代地通过各种机器学习算法来执行对象识别。训练后,机器学习算法可以由HMD存储。机器学习算法的一些示例可以包括:有监督或无监督的机器学习算法、包括回归算法(例如,普通最小二乘回归)、基于实例的算法(例如,学习矢量量化)、决策树算法(例如,分类和回归树)、贝叶斯算法(例如,朴素贝叶斯)、聚类算法(例如,k-均值聚类)、关联规则学习算法(例如,先验算法)、人工神经网络算法(例如,感知器)、深度学习算法(例如,深度玻尔兹曼机、或深度神经网络)、降维算法(例如,主要成分分析)、整体算法(例如,堆叠泛化)和/或其他机器学习算法。在一些实施例中,可以为各个数据集定制各个模型。例如,可穿戴设备可以生成或存储基本模型。基本模型可以用作起点以生成特定于数据类型(例如,远程出现会话中的特定用户)、数据集(例如,用户在远程出现会话中获得的附加图像的集合)、有条件情况或其他变化的附加模型。在一些实施例中,可穿戴HMD可被配置为利用多种技术来生成用于分析聚合数据的模型。其他技术可以包括使用预定义的阈值或数据值。这些机器学习算法中的某些或全部可用于以下描述的眼部配准技术(例如,参见图11A-17),例如,根据受试者的眼睛的扫描来识别巩膜。
基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别对象并向对象补充语义信息以赋予对象生命。例如,如果对象识别器将一组点识别为门,则系统可以附加一些语义信息(例如,门具有铰链并且绕铰链有90度的运动)。如果对象识别器将一组点识别为镜子,则系统可以附加语义信息,即镜子具有可反射房间中的对象的图像的反射表面。语义信息可以包括本文所述的对象的可供性(affordance)。例如,语义信息可以包括对象的法线。系统可以指派一个矢量,其方向指示对象的法线。随着时间的推移,地图数据库会随着系统(其可以驻留在本地或可以通过无线网络访问)从世界收集更多数据而增长。一旦对象被识别,该信息就可以被发送到一个或多个可穿戴系统。例如,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,其可以维护关于特定用户的物理和/或虚拟世界的信息。数据存储(storage)980可以存储与用户、用户的环境(例如,用户的环境的世界地图)、或用户的化身的配置有关的信息。远程数据库可以是图2中所示的远程数据库280的实施例。远程计算系统920还可以包括远程处理模块970。远程处理模块970可以是图2所示的远程处理模块270的实施例。远程处理模块970可以包括可以与用户设备(930a、930b、930c)和远程数据库980通信的一个或多个处理器。处理器可以处理从用户设备和其他源获得的信息。在一些实施方式中,处理或存储的至少一部分可以由本地处理和数据模块260(如图2所示)提供。远程计算系统920可以使给定用户能够与另一用户共享关于特定用户自己的物理和/或虚拟世界的信息。
用户设备可以是单独或组合的可穿戴设备(例如,HMD或ARD)、计算机、移动设备、或任何其他设备。例如,用户设备930b和930c可以是图2所示的可穿戴系统200(或图4所示的可穿戴系统400)的实施例,其可被配置为呈现AR/VR/MR内容。
一个或多个用户设备可以与图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,其可包括参考图2描述的HMD(例如,系统200的显示设备220),用于在远程出席会话中表示其他用户的虚拟化身。两个用户可以使用可穿戴设备进行远程出席会话。注意,图9B中将两个用户分开的垂直线旨在说明当爱丽丝和鲍勃通过远程出席进行通信时(例如,爱丽丝可能在她位于亚特兰大的办公室内,而鲍勃在波士顿户外,),爱丽丝912和鲍勃914可以(但不必)位于两个不同的位置。
如参考图9A所描述的,可穿戴设备902和904可以彼此通信或者与其他用户设备和计算机系统通信。例如,爱丽丝的可穿戴设备902可以例如经由网络990(在图9A中示出)与鲍勃的可穿戴设备904通信。可穿戴设备902和904可以跟踪用户的环境和环境中的移动(例如,经由相应的面向外部的成像系统464、或一个或多个位置传感器)和语音(例如,经由相应的音频传感器232)。可穿戴设备902和904还可以基于面向内部的成像系统462获取的数据来跟踪用户的眼睛移动或凝视。在某些情况下,可穿戴设备还可以捕获或跟踪用户的面部表情或其他身体移动(例如,手臂或腿部移动),其中用户靠近反射表面并且面向外部的成像系统464可以获得用户的反射图像,以观察用户的面部表情或其他身体移动。
可穿戴设备可以使用获取的第一用户和环境的信息来对虚拟化身进行动画处理,该虚拟化身将由第二用户的可穿戴设备渲染,以在第二用户的环境中创建第一用户的有形存在感。例如,可穿戴设备902和904、远程计算系统920可以单独或组合地处理爱丽丝的图像或移动以由鲍勃的可穿戴设备904呈现,或者可以处理鲍勃的图像或移动以由爱丽丝的可穿戴设备902呈现。在本文进一步描述的情况下,可以基于诸如用户的意图、用户的环境、或其中渲染化身的环境、或人类的其他生物学特征的上下文信息来渲染化身。
尽管示例仅涉及两个用户,但是本文描述的技术不应限于两个用户。使用可穿戴设备(或其他远程出席设备)的多个用户(例如,两个、三个、四个、五个,六个或更多)可以参加远程出席会话。在远程出席会话期间,特定用户的可穿戴设备可以向该特定用户呈现其他用户的化身。此外,尽管该图中的示例将用户示出为站在环境中,但是并不要求用户站立。在远程出席会话期间,任何用户都可以站立、坐着、跪着、躺下、步行或奔跑、或者处于任何姿态或移动。除了本文示例中所述,用户还可以处于物理环境中。在进行远程出席会话时,用户可以处于单独的环境中,或者可以处于相同的环境中。并非要求所有用户都在远程出席会话中穿戴各自的HMD。例如,爱丽丝912可以使用其他图像获取和显示设备(例如,网络相机(webcam)和计算机屏幕),而鲍勃914穿戴可穿戴设备904。
虚拟化身的示例
图10示出了被可穿戴系统的用户所感知的化身的示例。图10中所示的示例化身1000可以是站在房间中的物理植物后面的爱丽丝912(图9B所示)的化身。化身可包括各种特征,诸如大小、外观(例如,肤色、面色、发型、衣服、面部特征,诸如皱纹、痣、斑点、粉刺、酒窝等)、位置、方向、移动、姿势、表情等。这些特征可以基于与化身相关联的用户(例如,爱丽丝的化身1000可以具有实际人爱丽丝912的一些或全部特征)。如本文中进一步描述的,化身1000可以基于上下文信息来动画化,其可以包括对化身1000的一个或多个特征的调整。尽管本文中通常将其描述为代表人(例如,爱丽丝)的物理外观,但这仅是为了说明而不是限制。爱丽丝的化身可以代表除爱丽丝、拟人化的对象、生物或任何其他真实或虚构的表示之外的另一个真实或虚构的人的外观。此外,图10中的植物不一定是物理的,而可以是可穿戴系统向用户呈现的植物的虚拟表示。而且,与图10所示的内容相比,附加或不同的虚拟内容也可以被呈现给用户。
虚拟角色的装配(rigging)系统的示例
诸如人类化身的动画虚拟角色可以在计算机图形中全部或部分地表示为多边形网格。多边形网格或简称为“网格”是建模三维空间中的点的集合。网格可以形成多面体对象,其表面限定虚拟角色(或其一部分)的主体或形状。尽管网格可以包括任意数量的点(在由可用计算能力可能施加的实际限制内),但具有更多点的更精细的网格通常能够描绘更逼真的虚拟角色,并具有更接近真实生活中的人、动物、对象等的精细细节。图10示出了化身1000的眼睛周围的网格1010的示例。
网格中的每个点可以由建模的三维空间中的坐标来限定。建模的三维空间可以是例如由(x,y,z)坐标寻址的笛卡尔空间。网格中的点是构成多面体受试者的多边形的顶点。每个多边形表示多面体对象的表面或面,并由一组有序的顶点限定,每个多边形的边为连接一组有序的顶点的直线边缘。在某些情况下,网格中的多边形顶点可能与几何多边形不同,因为它们在3D图形中不一定共面。另外,网格中多边形的顶点可以是共线的,在这种情况下,多边形的面积为零(称为退化多边形)。
在一些实施例中,网格由三顶点多边形(即,三角形或简称为“三(tri)”)或四顶点多边形(即,四边形或简称为“四(quad)”)组成。但是,也可以在某些网格中使用高阶多边形。在直接内容创建(DCC)应用(例如,诸如Maya(可从Autodesk Inc.获得)或Houdini(可从Side Effects Software Inc.获得)的应用,其主要用于创建和操作3D计算机图形)中网格通常基于quad,而在实时应用中网格通常是基于tri。
为了给虚拟角色设置动画,可以通过在不同的时刻将其部分或全部顶点移动到空间中的新位置来变形其网格。变形既可以代表大尺度运动(例如,四肢运动)又可以代表精细运动(例如,面部运动)。这些变形和其他变形可以基于真实世界的模型(例如,对执行人体运动、关节、面部扭曲、表情等的真实人类进行的摄影测量扫描)、以艺术为导向的开发(可能基于真实世界的采样)、相同或其他技术的组合。在计算机图形学的早期,可以通过独立设置顶点的新位置来手动完成网格变形,但是鉴于现代网格的大小和复杂性,通常希望使用自动化系统和过程来产生变形。产生这些变形的控制系统、过程和技术称为装配(rigging),或简称为“装配(rig)”。图6B的示例性化身处理和渲染系统690包括可以实现装配的3D模型处理系统680。
用于虚拟角色的装配可以使用骨骼系统来辅助网格变形。骨骼系统包括一组关节,这些关节对应于网格的接合点。在装配的上下文中,有时也将关节称为“骨头”,尽管有时在解剖学意义上使用这些术语时在这些术语之间存在差异。骨骼系统中的关节可以根据可以应用于关节的变换来彼此相对移动或改变。变换可以包括空间的平移或旋转以及其他操作。可以为关节分配彼此之间的层次关系(例如,父子关系)。这些层次关系可以使一个关节从另一个关节继承变换或其他特征。例如,骨骼系统中的子关节可以继承分配给其父关节的变换,以使子关节与父关节一起移动。
用于虚拟角色的骨骼系统可以通过在适当位置处的关节、适当的局部旋转轴、自由度等来定义,以允许进行所需的一组网格变形。一旦为虚拟角色定义了骨骼系统,就可以在称为“蒙皮(skinning)”的过程中为每个关节分配对网格中各个顶点的影响量。这可以通过为骨骼系统中每个关节的每个顶点分配一个权重值来完成。当将变换应用于任何给定关节时,可以根据该关节变换自动移动或更改受其影响的顶点的数量,该数量取决于它们各自的权重值。
装配可以包括多个骨骼系统。一种类型的骨骼系统是核心骨骼(也称为低阶骨骼),可用于控制虚拟角色的大尺度运动。例如,在人类化身的情况下,核心骨骼可能类似于人类的解剖骨骼。尽管用于装配目的的核心骨骼可能无法精确地映射到解剖上正确的骨骼,但它可能在相似位置具有类似方向和运动特性的关节子集。
如上简单所述,关节的骨骼系统可以是层次的,例如,关节之间具有父子关系。当将变换(例如,位置和/或方向的变化)应用于骨骼系统中的特定关节时,可以将相同的变换应用于相同层次结构中的所有其他下级关节。例如,在用于人类化身的装配的情况下,核心骨骼可能包括用于化身的肩膀、肘部和腕部的单独关节。其中,可以将肩膀关节分配为层次结构中的最高级别,而可以将肘部关节分配为肩膀关节的子,而可以将腕部关节分配为肘部关节的子。因此,当将特定的平移和/或旋转变换应用于肩膀关节时,相同的变换也可以应用于肘部关节和腕部关节,使得它们以与肩膀相同的方式平移和/或旋转。
尽管其名称具有含义,但是装配中的骨骼系统不一定代表解剖学骨骼。在装配中,骨骼系统可以表示用于控制网格变形的各种层次结构。例如,头发可以表示为层次链中的一系列关节。由化身的面部扭曲(可能表示微笑、皱眉、大笑、说话、眨眼等表情)引起的皮肤运动可以由一系列由面部装配控制的面部关节来表示;肌肉变形可以通过关节建模;衣服的运动可以用关节网格来表示。
用于虚拟角色的装配可以包括多个骨骼系统,其中一些可以驱动其他骨骼系统的运动。低阶骨骼系统是驱动一个或多个高阶骨骼系统的系统。相反,高阶骨骼系统是由低阶骨骼系统驱动或控制的系统。例如,虽然角色的核心骨骼的运动可能由动画师手动控制,但核心骨骼又可以驱动或控制高阶骨骼系统的运动。例如,可以提供更高阶的辅助关节(在物理骨骼中可能没有解剖类似物)来改善由核心骨骼的运动导致的网格变形。可以从应用于低阶骨骼的变换中,在算法上导出应用于高阶骨骼系统中的这些关节和其他关节的变换。高阶骨骼可以表示例如肌肉、皮肤、脂肪、衣服、头发或不需要直接动画控制的任何其他骨骼系统。
如已经讨论的,可以将变换应用于骨骼系统中的关节以便执行网格变形。在装配的上下文中,变换包括一些函数,这些函数接受3D空间中的一个或多个给定点,并产生一个或多个新3D点的输出。例如,变换可以接受一个或多个定义关节的3D点,并可以输出一个或多个指定变换后的关节的新3D点。关节变换可以包括例如平移分量、旋转分量和比例分量。
平移是将建模的3D空间中的一组一个或多个指定点移动指定量,而该组点的方向或大小不变的变换。旋转是将建模的3D空间中的一组一个或多个指定点绕指定轴旋转指定量的变换(例如,将网格中的每个点绕z轴旋转45度)。仿射变换(或6个自由度(DOF)变换)是仅包括平移和旋转的一种变换。仿射变换的应用可以被认为是在空间中移动一组一个或多个点而不改变其大小,尽管方向可以改变。
同时,比例变换是一种通过缩放其相应坐标指定值来修改建模的3D空间中的一个或多个指定点的一种变换。这改变变换后的一组点的大小和/或形状。均匀比例变换可以将每个坐标缩放相同的量,而非均匀比例变换可以独立缩放指定点的(x,y,z)坐标。例如,可以使用非均匀比例变换来提供挤压和拉伸效果,例如可能由肌肉动作产生的效果。另一类型的变换是剪切变换。剪切变换是通过基于坐标与轴的距离将点的坐标平移不同量来修改建模3D空间中一组一个或多个指定点的一种变换。
当将变换应用于关节以使其移动时,在该关节的影响下的顶点也将移动。这导致网格变形。如上所述,分配权重以量化每个关节对每个顶点的影响的过程称为蒙皮(或有时称为“权重绘画”或“蒙皮权重”)。权重通常是介于0(表示无影响)和1(表示完全影响)之间的值。网格中的某些顶点可能仅受单个关节的影响。在这种情况下,对于该关节这些顶点被分配给权重值为1,并且它们的位置根据分配给该特定关节但不是其他关节的变换而改变。网格中的其他顶点可能会受到多个关节的影响。在这种情况下,将为所有影响关节的这些顶点分配单独的权重,每个顶点的权重之和等于1。基于分配给所有影响关节的变换来更改这些顶点的位置。
为网格中的所有顶点分配权重可能是非常费力的,尤其是随着关节数量的增加。即使是对于训练有素的美术师来说,响应于应用于关节的变换来平衡权重以实现所需的网格变形也可能是非常困难的。在实时应用中,由于许多实时系统还对可加权到特定顶点的关节数量施加了限制(通常为8个或更少),因此任务可能会进一步复杂化。通常出于图形处理单元(GPU)的效率强加这样的限制。
术语蒙皮还指的是基于应用于骨骼系统中关节的变换,使用分配的权重来实际变形网格的过程。例如,动画师可以指定一系列核心骨骼关节变换,以产生所需的角色运动(例如,跑步运动或舞步)。在将变换应用于一个或多个关节时,将在变换后的关节的影响下为顶点计算新位置。通常,将任何给定顶点的新位置计算为影响该特定顶点的所有关节变换的加权平均值。有许多算法可用于计算此加权平均值,但最常见的算法是线性混合蒙皮(LBS),由于其简单且易于控制,因此在大多数实时应用中使用。在线性混合蒙皮中,使用每个关节变换为其顶点具有非零权重的每个关节变换来计算每个顶点的新位置。然后,将这些关节变换中的每个关节变换所产生的新顶点坐标与对于每个关节分配给该顶点的各个权重成比例地平均。在实践中,LBS存在着众所周知的局限性,制作高质量装配的许多工作都致力于发现并克服这些局限性。为此专门设计了用于此目的的许多辅助关节系统。
除了骨骼系统,“混合变形”也可以用于装配中以产生网格变形。混合变形(有时也称为“变形目标”或简称为“变形”)是一种应用于网格中一组顶点的变形,其中该组中的每个顶点都基于权重在指定方向上移动了指定量。该组中的每个顶点可能具有针对特定的混合变形的自己的自定义运动,并且同时移动该组中的顶点将生成所需的形状。可以使用“delta”指定混合变形中每个顶点的自定义运动,这里“delta”是一个向量,表示施加到该顶点的XYZ运动的量和方向。仅举出几种可能性,混合变形可用于产生例如使眼睛、嘴唇、眉毛、鼻子酒窝等移动的面部变形。
混合变形可用于以艺术为引导的方式使网格变形。它们可以提供很好的控制,因为可以通过扫描模型来造型(sculpt)或捕获确切的形状。但是,混合变形的好处是以必须存储混合变形中所有顶点的“delta”为代价的。对于具有精细网格和许多混合变形的动画角色,“delta”数据量可能很大。
通过使用混合变形权重,可以将每个混合变形应用到指定程度。这些权重通常在0(根本没有应用混合变形)到1(其中混合变形完全有效)的范围内。例如,移动角色眼睛的混合变形可以以较小的权重应用以少量移动眼睛,也可以以较大的权重应用以创建较大的眼睛移动。
装配可以彼此组合地应用多个混合变形以实现期望的复杂变形。例如,要产生微笑,装配可能会应用混合变形来拉动唇角,抬高上唇和降低下唇,以及移动眼睛、眉毛、鼻子和酒窝。将两个或多个混合变形组合而成的所需形状称为组合变形(或简称为“组合”)。
组合应用两个混合变形可能导致的一个问题是,混合变形可能作用于某些相同的顶点。当两个混合变形都处于有效时,结果称为双重变换或“脱离(going off)模型”。解决此问题的方法通常是校正混合变形。校正混合变形是一种特殊的混合变形,其表示相对于当前应用的变形所需的变形,而不是相对于中性表示所需的变形。可以根据要校正的混合变形的权重来应用校正混合变形(或仅称为“校正”)。例如,校正混合变形的权重可以与触发校正混合变形的应用的基础混合变形的权重成比例。
校正混合变形也可以用于校正蒙皮异常或改善变形的质量。例如,关节可以表示特定肌肉的运动,但作为单个变换,它不能表示皮肤、脂肪和肌肉的所有非线性行为。在肌肉活动时,应用一种或一系列校正方法可以导致更令人愉悦和令人信服的变形。
装配是分层建造的,其中由较低、较简单的层通常驱动较高阶层。这适用于骨骼系统和混合变形。例如,如已经提到的,对动画虚拟角色的装配可以包括由较低阶骨骼系统控制的较高阶骨骼系统。有很多方法可以基于低阶骨骼控制高阶骨骼或混合变形,包括约束、逻辑系统和基于姿势的变形。
约束通常是一种系统,其中特定对象或关节变换控制应用于另一个关节或对象的变换的一个或多个分量。有许多不同类型的约束。例如,目标约束将目标变换的旋转更改为指向特定方向或特定对象。父约束充当转换对之间的虚拟父子关系。位置约束将变换约束到特定点或特定对象。方向约束将变换约束到对象的特定旋转。
逻辑系统是数学方程式的系统,其在给定一组输入的情况下产生一些输出。这些是指定的,不是学习的。例如,混合变形值可以定义为其他两个混合变形的乘积(这是一种被称为组合或组合变形的校正变形的示例)。
基于姿势的变形也可以用于控制高阶骨骼系统或混合变形。骨骼系统的姿势由该骨骼系统中所有关节的变换(例如,旋转和平移)集合定义。也可以为骨骼系统中关节的子集定义姿势。例如,可以通过应用于肩膀、肘部和腕部关节的变换来定义手臂姿势。姿势空间变形器(PSD)是一种系统,其用于根据该姿势与定义的姿势之间的一个或多个“距离”来确定特定姿势的变形输出。这些距离可以是表征一个姿势与另一个姿势有多不同的度量。PSD可以包括一个姿势插入节点,例如,它接受一组关节旋转(定义一个姿势)作为输入参数,然后输出归一化的每姿势权重以驱动变形器,例如混合变形。姿势插入节点可以以多种方式实现,包括使用径向基函数(RBF)。RBF可以执行机器学习的函数数学近似。可以使用一组输入及其关联的预期输出来训练RBF。训练数据可以是例如多组关节变换(定义特定姿势)和响应于这些姿势而应用的相应混合变形。一旦学习了该函数,就可以给出新的输入(例如,姿势),并且可以有效地计算它们的预期输出。RBF是人工神经网络的子类型。RBF可用于根据较低级别组件的状态来驱动装配的较高级别组件。例如,核心骨骼的姿势可以驱动辅助关节和更高级别的校正。
这些控制系统可以链接在一起以执行复杂的行为。例如,眼睛装配可能包含两个“环视”值以用于水平和垂直旋转。这些值可以通过一些逻辑传递,以确定眼球关节变换的确切旋旋转,然后可以将其用作RBF的输入,该RBF控制混合变形来改变眼睑的形状以匹配眼睛的位置。这些形状的激活值可用于使用其他逻辑来驱动面部表情的其他分量,依此类推。
装配系统的目标通常是提供一种基于简单的人类可理解的控制系统来产生令人愉悦的高保真变形的机制。在实时应用的情况下,目标通常是提供足够简单以在例如VR/AR/MR系统200上实时运行的装配系统,同时尽可能对最终质量做出很少的妥协。在一些实施例中,3D模型处理系统680执行装配系统以实时在混合现实环境100中对化身进行动画处理以实现(与VR/AR/MR系统的用户)交互并且在用户的环境中提供适当的上下文化身行为(例如,基于意图的行为)。
受试者的头部和眼睛的示例几何
在一些实施方式中,该方法可以包括通过定位非隐蔽对象来定位隐蔽的刚性形状(例如,受试者的头骨),该非隐蔽对象在隐蔽的刚性形状的基本上固定的相对位置处具有至少一个点(例如,受试者的眼睛)。该方法可以包括使用眼睛作为固定参考点来对准受试者头部的多个扫描。该方法可以包括通过使巩膜的可见部分适配于几何形状(例如,球形或椭圆形、或任何其他合适的形状),并将该几何形状用作固定参考点,来对准受试者头部的多个扫描。在一些实施方式中,通过使至少五个DOF自动化来提供将几何形状的手动六个DOF适配到眼睛扫描的问题,因此手动最多仅需要一个DOF。
用户的头部扫描可以与包括人的参考头部姿势的参考头部扫描对准。例如,参考头部扫描可以包括受试者的放松的中性表情。图11A示意性地示出了正在产生装配的受试者的示例性头部1104a。在一些实施例中,可以使用六自由度仿射变换来变换每个头部扫描,以使人的头部的刚性部分(例如,图11B中的头骨1104b)的位置与参考姿势的位置匹配。由于头骨1104b实际上是不可见的,因此可以从受试者的头部1104a扫描中所呈现的信息中推断出头骨的位置。在扫描过程中提供主要信息的受试者脸部的皮肤会在扫描之间变形,在生成化身的装配所需的质量级别上,使其无法确定变换是否足够。在一些实施例中,参考头部扫描可以是来自多个扫描的单个扫描,单个扫描用作其余扫描的比较的基础,或者被指定或标记为参考扫描。
可以使用三个或更多个点在头部扫描之间计算六自由度仿射变换,该三个或更多个点已经在两个或更多个扫描(例如,可用于构建动画装配的参考扫描和一个或更多个附加扫描)之间进行了刚性变换。在扫描的人的头部1104a的情况下,在扫描中不存在直接可见的这样的点,因为头骨1104b被面部皮肤覆盖。本文公开的对准方法可以基于通过以下的眼部配准,在头部扫描中从受试者的眼睛的巩膜1112a、1112b推断受试者的眼球1108a、1108b的中心,并使用推断的眼球中心来对准头部扫描。眼睛的眼球中心相对于头骨1104b可以相对恒定,因为眼球的位置相对于眼窝1116a、1116b相对恒定。
图11A和图11B示出了坐标系1120(例如,世界坐标系或扫描仪坐标系),在该坐标系中可以生成受试者的头部1104a的头部扫描。在该坐标系中,头部扫描(例如,参考头部扫描)中的受试者的头部1104a的长度可以大致平行于y轴1120y的方向。头部扫描中的用户头部1104a的宽度可以大致平行于x轴1120x的方向。头部扫描中的用户头部1104b的深度可大致平行于z轴1120z的方向。可以使用其他合适的坐标系和对准方法。
示例眼睛、眼睛扫描和候选点选择
图12示意性地示出了具有眼睑1204、巩膜1112(眼睛的“白色”)、虹膜1212和瞳孔1216的眼球1108a、1108b的眼睛1200。曲线1216a示出了瞳孔1216和虹膜1212之间的瞳孔边界,并且曲线1212a示出虹膜1212和巩膜1112之间的边缘边界。眼睑1204包括上眼睑1204a和下眼睑1204b。在眼睛1200的静止位置中的眼睛1200的眼睛姿势1220可以大致垂直于图12中所示的眼睛的平面。
图13示出了眼睛扫描1300的示例,其示出了受试者的巩膜1303和瞳孔1302的一部分。眼睛扫描1300即使在发亮或抛光的表面上也可以具有高精度(例如,亚毫米精度)和足够的细节。尽管仍然有噪音,但是眼睛的大部分表面可以保留在眼睛的数字扫描1300中。可以为每只眼睛的巩膜选择候选点(也称为候选顶点),并在图13中显示为白点(例如,点1304a、1304b)。在一些实施例中,眼睛扫描1300中的候选点(例如,点1304a、1304b)可以使用一种或多种计算机视觉技术(例如,基于机器学习的计算机视觉技术)手动地或以某些其它方式来选择。例如,可以基于眼睛在眼睛扫描1300中的边缘边界1212a和眼睑1204a、1204b的形状来确定眼睛扫描1300中的候选点。可以使用一种或多种计算机视觉技术(例如,基于眼睛扫描1300的导数(诸如二阶导数或更高阶导数)的计算机视觉技术)来确定眼睛的边缘边界1212a和眼睑1204a、1204b。由于在这些区域中噪音是常见的,因此可以认为选择的质量有限,并且可以包括来自瞳孔、眼睑、泪阜等的离群值。在某些实施例中,眼睛扫描应包括对象的点云、网格、红绿蓝-深度(RGB-D)图像、或任何xyz坐标组。
示例眼睛适配过程
图14示意性地示出了在头部扫描中确定受试者的头部的眼睛的中心点以及在头部扫描中确定用户头部的第三点的示例过程。眼球1108a、1108b的模型可以适配到候选点(例如,参考图13描述的候选点1304a、1304b)。该模型可以基于诸如球形或椭圆形的几何形状。适配受试者的眼睛的候选点可以包括确定中心位置和半径(或基于椭圆形的眼球模型的半径),确定该中心位置和半径可以减小或最小化从每个候选点到球形表面(或椭圆形或一般几何形状)的距离。由于所选择的候选点通常包括离群值并且可能有噪声,因此数据可能无法正常分布。在一些实施例中,代替减小或最小化从每个候选点到几何形状的表面的距离的最小平方,可以在适配期间使用更鲁棒的误差度量以最小化离群值和噪声影响。例如,可以使用鲁棒回归、M估计、Theil-Sen估计、随机样本一致性(RANSAC)技术将几何眼睛形状模型适配到眼睛扫描数据。
将眼睛扫描中的眼睛1108a、1108b的候选点适配到眼球模型可以包括对包括多个动作的每个步骤进行迭代剔除。在每次迭代之后,可以计算一个度量,该度量用于确定哪些候选点可能是离群值,并且不太可能是实际巩膜区域的一部分,从而给出最精确的眼球位置和半径。在适配过程的迭代中可以剔除可能的离群值。
在一些实施方式中,可执行以下动作以将眼球模型适配到头部扫描的候选点。适配候选点可以包括下面的公式1。迭代剔除可以包括重复下面的公式1和2,直到达到眼球模型的收敛为止(例如,迭代之间的误差统计上的差异减小到收敛阈值以下或最大迭代次数)。
(1)减小或最小化误差统计。误差统计可以基于眼球模型的位置和半径。在一些实施例中,误差统计基于S型函数。下面的公式1中示出了示例误差统计。
Figure BDA0002705459070000481
其中,x表示与预期半径相比距眼球模型(例如,球形眼球模型)的中心的距离的残余误差,σ表示S型函数tanh的缩放参数,α允许在tanh函数和线性最小平方之间进行调整,tanh表示双曲正切(S型函数,其在-∞到∞的范围内-1.0和+1.0之间变化的,并且在x=0附近近似线性)。该函数允许对误差进行封顶,以使大的残差不会淹没表面附近的大部分。在一些实施例中,σ为0.005且α为0.9。
(2)在执行适配之后,确定可以被剔除的离群值。在一些实施例中,可以使用基于中位数的方法来执行剔除,由于剔除时的选择偏差,该方法可以比基于均值的方法执行得更好。
与其他扫描相比,对于参考扫描的眼睛适配可以略有不同。对于参考扫描,本文公开的方法可以尝试确定眼睛的位置1124a、1124b和正确的眼睛形状模型(例如,一个或多个半径),这对于不同的受试者而言会有所不同。在适配参考扫描期间,可以允许(例如,自由地)改变眼球模型的半径。对于附加扫描,可以允许半径如最初在参考扫描中那样改变(例如,自由地),但是可以在一次或多次剔除迭代之后将半径限制为匹配参考扫描值。这样的过程可以解决眼球本身的非刚性,这可能是眼睑紧张(例如,如果受试者斜眼)而眼睑自身使眼睛的表面扭曲的问题。
计算扫描之间的仿射变换
一旦确定了眼睛位置1124a、1124b,就可以计算仿射(例如,刚性体)变换以在单独的扫描中对准眼睛。为了确定扫描之间头部的仿射变换,需要三个或更多点。由于在头部扫描中仅存在用户眼睛的两个眼球中心1124a、1124b,因此可以推断或创建第三点。例如,第三点可以基于在两个眼睛点之间形成的轴1128与y轴(例如,参考图11A和11B描述的y轴1120y)的叉积。叉积可以用于确定沿着其放置第三点的向量1132。例如,可以选择沿着该向量1132的点1136,该点在连接眼睛中心的线段1128的中心点之前一定距离(例如,1cm),该点可以在用户鼻梁的某处。例如,在执行初始扫描时受试者正确地位于扫描阶段中,则y轴1120y可以大致垂直于眼睛轴1128。利用该第三点,可以执行初始仿射对准,其沿穿过眼睛中心的轴移除了除单个DOF枢轴以外的所有枢轴。
调整最终变换
剩余的一个DOF对准可以通过多种技术来确定。例如,该方法可以应用使用皮肤特征的基于皮肤的技术来确定变换的最终DOF。在某些方法中,手动(例如,操作者)输入用于最终DOF。例如,使用受试者上的可跟踪点(诸如人工跟踪点或面部细节,包括毛孔或雀斑),沿着穿过眼睛中心的轴的最终DOF枢轴可以通过应用于变换的点对面最小化技术来确定。
在某些情况下(例如,在斜视的地方眼睛变窄的情况下),眼睛中心沿y轴1120y的位置可能变得不稳定。由于眼睛中心沿y轴1120y的这种不稳定位置而导致的对准误差(例如,在单只眼睛或者在眼睛扫描上小至0.5mm)随着围绕眼睛之间的中心点(在z轴1120z)的旋转而可见。这样的小误差对于操作者(例如,受过训练的动画师)是可见的。本文公开的对准方法可以通过调节沿y轴1120y的眼睛位置并重新计算仿射变换来解决或确定这种(可能的)不稳定性。在一些实施例中,该方法可以包括用于最终调整的三个控制,例如独立地用于右眼球1108a和左眼球1108b的y轴1120y平移调整,以及x轴1120x旋转调整(例如,对于皮肤目标确实发生不可接受的变形的情况)。在某些情况下,可能会发生y轴1120y测量中的误差,并且可以通过围绕z轴1120z旋转刚性变换来补偿误差。该过程可以不需要或只需很少的人工干预就可以降低难度(例如,操作者只需要几秒钟即可进行最终调整)。
确定用户的头部的姿势的示例过程
图15是基于受试者的眼球模型来确定受试者的头部姿势的示例过程1500的流程图。硬件计算系统可以实现过程1500。在某些情况下,获得受试者的图像的摄影测量捕获平台与执行过程1500的硬件计算系统进行有线或无线通信。在其他实施方式中,参考图6A描述的化身处理和渲染系统690或者参考图6B描述的化身自动缩放器692可以执行过程1500。
在框1504处,计算系统可以接收受试者的头部扫描。受试者的头部扫描可以包括受试者的每只眼睛的眼睛扫描。头部扫描可以是受试者的参考头部扫描或受试者的另一头部扫描,其可以使用参考图1600以下描述的方法1600来对准到参考头部扫描(或者受试者的装配或受试者的数字表示)。头部扫描可包括受试者的头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
在框1508处,计算系统可以确定对象的每只眼睛的巩膜在头部扫描中的候选点。在一些实施例中,眼部扫描中的候选点(例如,参考图13描述的点1304a、1304b)可以使用一种或多种计算机视觉技术(例如,基于机器学习的计算机视觉技术)手动地或以一些其他方法来确定。例如,可以基于眼睛扫描中的眼睛的边缘或瞳孔边界(例如,参考图12描述的边缘边界1212a或瞳孔边界1216a)或眼睑的形状(例如,参考图12描述的眼睑1204a、1204b)来确定眼睛扫描中的候选点。可以使用一种或多种计算机视觉技术(例如,基于眼睛扫描的导数(诸如二阶导数或更高阶导数)的计算机视觉技术、曲线适配、边缘检测、小波技术或其他虹膜或瞳孔分割技术)来确定眼睛的边缘或瞳孔边界或者眼睑的形状或位置。
在框1512处,计算系统可以将眼球模型适配到每只眼睛的巩膜的候选点。例如,将参考眼球模型适配到受试者的每个眼球的巩膜的多个参考候选点可以基于以下来减小或最小化误差统计:(1)受试者的每个眼球的眼球模型的半径,以及(2)受试者的眼球的多个候选点中的候选点与眼球的眼球模型的中心之间的距离。作为另一示例,使眼球模型适配到受试者的每只眼睛的巩膜的多个候选点可以包括基于以下来减小或最小化误差统计:(1)受试者的每只眼球的眼球模型的半径,以及(2)受试者的每个眼球的多个候选点中的每个候选点与每个眼球的眼球模型的中心之间的平均距离。误差统计量可以在-∞至+∞范围内在-1.0和+1.0之间变化。误差统计可以在零附近近似为线性,并且可以有界以减少离群值的影响。例如,误差统计可以基于诸如tanh的S型函数(例如,以上公式1)。当将眼球模型适配到每只眼睛的巩膜的候选点时,眼球模型的半径(或多个半径)可以是固定的或变化的(例如,在整个过程1500中或在过程1500的一部分中)。
在框1516处,计算系统可以确定并移除在框1508处确定的候选点中的一个或多个离群候选点。眼球模型中的受试者的每个眼球的巩膜的候选点的一个或多个离群候选点可以基于多个参考候选点的中值(或平均值)来确定。候选离群点可以被识别为与点的分布的平均值相差超过分布的多个标准偏差(例如,大于2、3、5、7或更大的标准偏差)的点。
过程1500可以包括在框1512处将眼球模型迭代适配到每只眼睛的巩膜的候选点,并且在框1516处确定并移除离群候选点,直到眼球模型到候选点的适配收敛为止。例如,如果适配在判定框1520处未收敛,则计算系统可以前进至框1512,以将更新后的眼球模型适配到每只眼睛的巩膜的候选点,并移除了离群候选点。如果适配在判定框1520处收敛,则该方法可以前进至框1524。在框1520处,可以确定收敛,例如,如果迭代之间的误差统计的差减小到收敛阈值以下,或者达到最大迭代数。
在框1524处,计算系统可以基于眼球模型确定受试者的每个眼球的中心点。眼球模型的参数可包括几何形状,诸如球形、椭圆形、或其组合。参考眼球模型的参数可包括至少一个半径。例如,眼球模型可以包括球形眼球模型的一个半径。作为另一示例,眼球模型可以包括用于椭圆形眼球模型的两个半径(例如,大半径和小半径)。作为又一个示例,眼球模型可以包括用于椭圆形眼球模型的三个半径(例如,沿着三个正交方向的长轴和短轴)。眼球模型的参数可以包括用于几何形状的中心点。每个眼球的中心点可以是每个眼球模型的中心点。眼球模型可以包括适合于眼球的任何类型的弯曲表面,例如,二次曲面的一部分、旋转表面等,以及眼球模型可以包括任何适当数量的参数以描述其形状或方向(例如,中心点,1、2、3或更多的半径,椭圆率等)。
在框1528处,计算系统可以基于在框1528处确定的每个眼球的中心点和坐标系的轴(例如,参考图14所描述的y轴1120y)来确定推断的受试者的头部的第三点。受试者的头部的姿势的表示可以包括在框1528处确定的每个眼球的中心点和在框1528处确定的所推断的第三点。确定头部扫描中所推断的第三点可以包括基于受试者的每个眼球的中心点来确定头部扫描中的所推断第三点。确定头部扫描中所推断的第三点可以包括确定(1)受试者的每个眼球的中心点(例如,参考图14描述的中心点1124a、1124b)之间形成的轴和(2)参考头部扫描的坐标系的轴(例如,参考图14描述的y轴1120y)的参考叉积。所推断的第三点可以在叉积上(例如,参考图14描述的叉积1132)。所推断的第三点可以在叉积上远离受试者的头部,例如参考图14描述的叉积1132上的所推断的第三点1136。
对准头部扫描的示例过程
图16是对准受试者的头部扫描的示例过程1600的流程图。硬件计算系统可以实现过程1600。在一些情况下,获得受试者的图像的摄影测量捕获平台与执行过程1600的硬件计算系统进行有线或无线通信。在其他实施方式中,参考图6A描述的化身处理和渲染系统690或参考图6B描述的化身自动缩放器692可以执行过程1600。
在框1604处,计算系统可以接收受试者的头部的参考头部扫描。参考头部扫描可以包括受试者的头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或它们的组合。在一些实施例中,参考头部扫描中的受试者的头部的姿势可以大致在坐标系的轴的方向上(例如,参考图14描述的y轴1120y)。
在框1608处,计算系统可以基于参考头部扫描中受试者的每只眼睛的巩膜的候选点,确定参考头部扫描中受试者的每个眼球的中心点和所推断的第三点。计算系统可以使用参考图15描述的过程1500来确定参考头部中受试者的每个眼球的中心点和所推断的第三点。在适配参考扫描期间,可以允许(例如,在解剖学上允许的范围内自由地)改变眼球模型的半径。
在框1612处,计算系统可以接收受试者的第二参考头部扫描。第二头部扫描可以包括试者的头部的点云、网格、红绿蓝-深度(RGB-D)扫描、受多个xyz坐标、或其组合。参考头部扫描和第二参考头部扫描是相同类型的头部扫描(例如,两个头部扫描可以是RGB-D扫描)或不同类型的头部扫描(例如,一个头部扫描可以包括点云,而另一个头部扫描可以包括网格)。
在框1616处,计算系统可以基于第二头部扫描中的受试者的每只眼睛的巩膜的候选点来确定第二头部扫描中的受试者的每个眼球的中心点和所推断的第三点。计算系统可以使用参考图15描述的过程1500来确定第二头部中的受试者的每个眼球的中心点和所推断的第三点。对于第二扫描(或其他附加扫描),可以允许眼球模型的半径像最初在参考扫描中那样改变(例如,自由地),但是可以在一次或多次适配迭代和移除离群候选点之后将半径限制为匹配参考扫描值。
在框1620处,计算系统可以基于在框1616处确定的第二头部扫描中的每个眼球的中心点和所推断的第三点以及在框1608处确定的参考头部扫描中的对应点,来确定第二头部扫描与参考头部扫描之间的仿射变换。在一些实施例中,计算系统可以在第二头部扫描中至少对受试者的头部执行仿射变换,以在第二头部扫描中生成受试者的被仿射变换的头部。在各种实施例中,仿射变换可以仅应用于受试者的头部,或者可以应用于整个扫描。计算系统可以使用受试者的头部上的可跟踪点,确定受试者在第二头部扫描中被仿射变换的第二头部相对于受试者在参考头部扫描中的头部的枢轴。例如,计算系统可以最小化受试者的被仿射变换的第二头部上的可跟踪点与受试者在参考头部扫描中的头部上的可跟踪点之间的距离。作为另一示例,计算系统可以最小化受试者的被仿射变换的第二头部上的可跟踪点与受试者在参考头部扫描中的头部上的可跟踪点周围的表面之间的距离。在一些实施例中,计算系统可以使用受试者的头部上的可跟踪点,接收受试者在第二头部扫描中被仿射变换的第二头部相对于受试者在参考头部扫描中的头部的枢轴。在一些实施例中,计算系统可以接收受试者在第二头部扫描中的每个眼球的平移调整,受试者在第二头部扫描中的眼球的旋转调整,或其任何组合。
在框1624处,计算系统可以基于受试者的每个眼球的参考中心点和参考推断点来生成受试者的化身的装配,以及基于仿射变换生成受试者的化身的修改装配。替代地,计算系统可以基于受试者的每个眼球的参考中心点和参考推断点来生成受试者的化身的数字表示,并且基于仿射变换生成受试者的化身的修改数字表示。例如,计算系统可以基于仿射变换在数字木偶中适配眼球。
图17是对准对象的扫描的示例过程1700的流程图,该对象包括隐蔽部分和非隐蔽部分。例如,对象可以包括被扫描的受试者的头部,隐蔽部分可以包括头骨,而非隐蔽部分可以包括受试者的一只或多只眼睛。该对象可能至少部分可变形,例如,受试者的皮肤位于头骨之上,并且随着受试者在被扫描时执行姿势(例如,微笑、皱眉、大笑、表现出惊讶等)皮肤会变形。方法1700可以利用非隐蔽部分(例如,一只或多只眼睛)的扫描来确定刚性的隐蔽部分(例如,头骨)的位置或取向,因为非隐蔽部分的至少一个点与刚性的隐蔽部分是固定关系。由于不能直接观察到刚性的隐蔽部分(例如,扫描未直接示出受试者的头骨),因此方法1700可以使用非隐蔽部分的位置或取向来确定刚性的隐蔽部分的位置或取向,从而确定可校正对象在扫描之间移动的变换(例如,仿射变换)。
在图17所示的示例中,在框1704处,方法1700接收非隐蔽对象的扫描,例如,包括对受试者的眼睛的扫描的头部扫描。在框1708处,该方法确定与隐蔽的刚性对象具有固定关系的非隐蔽对象的一个或多个点。例如,如以上参考图15和图16描述的,该方法可以利用眼睛的巩膜的测量来确定两只眼睛的中心,该中心可用于发现扫描中的对象位置之间的变换。在框1712处,该方法确定补偿对象在扫描之间的移动的仿射变换。在框1716处,该方法可以利用仿射变换来在不同扫描之间对准、配准或稳定对象的位置。
在方法1700的一些实施例中,在框1712处所确定的仿射变换包括六DOF变换。在一些这样的实施例中,非隐蔽部分的测量可以允许确定六DOF中的五个,并且该方法通过对对象的可变形部分的测量(例如,皮肤的测量)来确定最终DOF。另外地或可替代地,方法1700可以接受与最终DOF有关的操作者输入。
硬件计算系统可以实现过程1700。在一些情况下,获得受试者的图像的摄影测量捕获平台与执行过程1700的硬件计算系统进行有线或无线通信。在其他实施方式中,参考图6A所描述的化身处理和渲染系统690或参考图6B所描述的化身自动缩放器692可以执行过程1700。
其他方面
在一些实施例中,可以使用瞳孔或虹膜作为跟踪信息(例如,确定虹膜或瞳孔的外部边缘以及确定虹膜或瞳孔的外部边缘在球形或椭圆形上的位置)来附加地或替代地改进使用眼部对准方法所确定的头部扫描对准。在一些实施方式中,可以基于(例如,在某些实施方式中绝对地)映射到头骨空间的头部的解剖结构(诸如上部牙齿(在大多数姿势中通常不可见))或根据放置在受试者的牙齿上的小无线电发射器来进一步改善头部扫描对准。在其他实施例中,可以用机器学习方法对头部扫描对准进行微调,该机器学习方法用于跟踪出于角色动画目的而放置在面部上的标记(这可能需要手动稳定的训练数据,或者需要在稳定之后进行调整)。可以使用梯度转移技术自动生成机器学习方法的训练数据。
在一些实施例中,本文公开的眼部对准方法可以用于将眼球自动放置在受试者的数字木偶的内部,这允许在没有或减少人为干预的情况下移动数字木偶的眼球球形。在其他实施例中,眼部对准方法可以用于将三维(3D)扫描对准到3D扫描,将3D扫描对准到装配,和/或将3D扫描对准到数字表示。
本文和附图中描述的技术可以通过以下非限制性方面中的一个或多个来实现。
1.一种用于对准受试者的头部扫描的系统,所述系统包括:非暂时性存储器,其配置为存储:受试者的头部的至少一部分的参考头部扫描,以及所述受试者的所述头部的第二头部扫描;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被可执行指令编程为:接收所述受试者的所述参考头部扫描;基于在所述参考头部扫描中的所述受试者的每个眼球的巩膜的多个参考候选点,在所述参考头部扫描中确定所述受试者的所述每个眼球的参考中心点和参考推断点;接收所述受试者的第二头部扫描;基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述巩膜的多个第二候选点,在所述第二头部扫描中确定所述受试者的所述每个眼球的第二中心点和第二推断点;基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述第二中心点和所述第二推断点以及在所述参考头部扫描中的对应点,确定从所述第二头部扫描到所述参考头部扫描的仿射变换;以及至少对在所述第二头部扫描中的所述受试者的所述头部执行所述仿射变换,以在所述第二头部扫描中生成所述受试者的被仿射变换的头部。
2.根据方面1所述的系统,其中,所述参考头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
3.根据方面1-2中的任一方面所述的系统,其中,为了确定所述受试者的所述每个眼球的所述参考中心点,所述硬件处理器被编程为:在所述受试者的所述参考头部扫描中确定所述受试者的所述每个眼球的所述巩膜的多个参考候选点。
4.根据方面3所述的系统,其中,为了确定所述受试者的所述每个眼球的所述参考中心点,所述硬件处理器还被编程为:将参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点;以及基于所述受试者的所述每个眼球的所述参考眼球模型,确定所述每个眼球的所述参考中心点。
5.根据方面4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:基于以下来最小化第一统计误差:所述受试者的第一眼球的所述参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个参考候选点中的参考候选点与所述第一眼球的所述参考眼球模型的中心之间的距离。
6.根据方面4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:基于以下来最小化第一统计误差:所述受试者的第一眼球的所述参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个参考候选点中的每个参考候选点与所述第一眼球的所述参考眼球模型的中心之间的平均距离。
7.根据方面5-6中的任一方面所述的系统,其中,所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。
8.根据方面5-7中的任一方面所述的系统,其中,所述第一误差统计在零误差附近是近似线性的。
9.根据方面5-8中的任一方面所述的系统,其中,所述第一误差统计至少部分地基于S型函数。
10.根据方面4-9中的任一方面所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:相对于所述参考眼球模型,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点;从所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中移除所述参考离群候选点;以及将被更新的眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考离群候选点被移除了的所述多个参考候选点。
11.根据方面10的所述系统,其中,为了确定所述一个或多个参考离群候选点,所述硬件处理器被编程为:基于所述多个参考候选点的中值,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点。
12.根据方面4-9中的任一方面的所述系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:将所述参考眼球模型迭代地适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,直到所述参考眼球模型到所述多个参考候选点的适配收敛。
13.根据方面1-12中的任一方面的所述系统,其中,为了在所述参考头部扫描中确定所述参考推断点,所述硬件处理器被编程为:基于所述受试者的所述每个眼球的所述参考中心点,在所述参考头部扫描中确定所述参考推断点。
14.根据方面13的所述系统,其中,为了在所述参考头部扫描中确定所述参考推断点,所述硬件处理器还被编程为:确定在所述受试者的所述每个眼球的所述参考中心点之间形成的轴与所述参考头部扫描的坐标系的轴的参考叉积。
15.根据方面14的所述系统,其中,所述参考推断点在所述参考叉积上。
16.根据方面15的所述系统,其中,所述参考推断点在所述参考叉积上远离所述受试者的所述头部。
17.根据方面14-16中任一方面的所述系统,其中,所述坐标系的所述轴是所述坐标系的y轴。所述y轴可以沿着所述受试者的所述头部的长度,例如,沿着平行于从下颌区域向上朝向眼睛区域或从下颌区域向上朝向眼睛区域延伸的线。
18.根据方面14-17中任一方面所述的系统,其中,在所述参考头部扫描中的所述受试者的所述头部的姿势大致在所述坐标系的所述轴的方向上。
19.根据方面4-18中任一方面所述的系统,其中,所述参考眼球模型的参数包括几何形状。
20.根据方面19所述的系统,其中,所述几何形状包括球形、椭圆形、或其组合。
21.根据方面19-20中任一方面所述的系统,其中,所述参考眼球模型的所述参数包括至少一个半径。
22.根据方面21所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考候选点,所述硬件处理器被编程为:调整所述参考眼球模型的所述参数的所述至少一个半径。
23.根据方面1-22中任一方面所述的系统,其中,所述第二头部扫描包括:所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
24.根据方面1-23中任一方面所述的系统,其中,为了确定所述受试者的所述每个眼球的所述第二中心点,所述硬件处理器被编程为:在所述受试者的所述参考头部扫描中确定所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点。
25.根据方面24所述的系统,其中,为了确定所述受试者的所述每个眼球的所述第二中心点,所述硬件处理器还被编程为:将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点;并基于适配到所述多个第二候选点的所述受试者的所述每个眼球的所述参考眼球模型确定所述每个眼球模型的所述第二中心点。
26.根据方面25所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,所述硬件处理器被编程为:基于所述受试者的第一眼球的所述参考眼球模型的半径和所述受试者的所述第一眼球的所述多个参考候选点中的第二候选点与所述受试者的所述第一眼球的所述参考眼球模型的中心之间的距离,来最小化第二误差统计。
27.根据方面25所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,所述硬件处理器被编程为:基于所述受试者的第一眼球的所述参考眼球模型的半径和所述受试者的所述第一眼球的所述多个第二候选点中的每个第二候选点与所述受试者的所述第一眼球的所述参考眼球模型的中心之间的平均距离,来最小化第二误差统计。
28.根据方面26-27中任一方面所述的系统,其中,所述第二误差统计在范围-∞和∞上在-1.0和1.0之间变化。
29.根据方面26-28中任一方面所述的系统,其中,所述第二误差统计量在零附近是近似线性的。
30.根据方面26-28中任一方面所述的系统,其中,所述第二误差统计基于tanh。
31.根据方面25-30中任一方面所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,所述硬件处理器被编程为:在所述第二眼球模型中确定所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点中的一个或多个第二离群候选点;从所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点中移除所述第二离群候选点;以及将被更新的参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述第二离群候选点被移除了的所述多个第二候选点。
32.根据方面31所述所述的系统,其中,为了确定所述一个或多个第二离群候选点,所述硬件处理器被编程为:基于所述多个第二候选点的中值,在所述参考眼球模型中确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点。
33.根据方面25-30中任一方面所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,所述硬件处理器被编程为:将所述参考眼球模型迭代地适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,直到所述参考眼球模型到所述多个第二候选点的适配收敛。
34.根据方面25-33中任一方面所述的系统,其中,为了在所述第二头部扫描中确定所述第二推断点,所述硬件处理器被编程为:基于所述受试者的所述每个眼球的所述第二中心点,在所述第二头部扫描中确定所述第二推断点。
35.根据方面34所述的系统,其中,为了在所述第二头部扫描中确定所述第二推断点,所述硬件处理器还被编程为:确定在所述受试者的所述每个眼球的所述第二中心点之间所形成的轴与所述参考头部扫描的坐标系的轴的第二叉积。
36.根据方面35的所述系统,其中,所述第二推断点在所述第二叉积上。
37.根据方面36的所述系统,其中,所述第二推断点在所述第二叉积上远离所述受试者的所述头部。
38.根据方面35-37中任一方面所述的系统,其中,所述坐标系的所述轴是所述坐标系的y轴。
39.根据方面35-38中任一方面所述的系统,其中,在所述参考头部扫描中的所述受试者的所述头部的所述姿势大致在所述坐标系的所述轴的方向上。
40.根据方面1-39中任一方面所述的系统,其中,所述硬件处理器还被编程为:使用在所述受试者的所述头部上的可跟踪点,确定所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
41.根据方面40所述的系统,其中,为了确定所述枢轴,所述硬件处理器被编程为:最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点之间的距离。
42.根据方面40所述的系统,其中,为了确定所述枢轴,所述硬件处理器被编程为:最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点周围的表面之间的距离。
43.根据方面1-42中任一方面所述的系统,其中,所述硬件处理器还被编程为:使用在所述受试者的所述头部上的可跟踪点,接收所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
44.根据方面1-43中任一方面所述的系统,其中,所述硬件处理器还被编程为:接收所述第二头部扫描中的所述受试者的所述每个眼球的平移调整、所述第二头部扫描中的所述受试者的眼球的旋转调整、或其任何组合。
45.根据方面1-44中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的装配;以及基于所述仿射变换,生成所述受试者的所述化身的修改装配。
46.根据方面1-44中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的数字表示;以及基于所述仿射变换,生成所述受试者的所述化身的修改数字表示。
47.根据方面1-44中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述仿射变换,将眼球适配在数字木偶中。
48.一种用于确定受试者的头部的姿势的系统,所述系统包括:非暂时性存储器,其配置为存储:受试者的头部的参考头部扫描;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:接收所述受试者的所述参考头部扫描;基于在所述参考头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一参考候选点,确定所述受试者的所述第一眼球的第一参考中心点;基于在所述参考头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二参考候选点,确定所述受试者的所述第二眼球的第二参考中心点;基于所述第一参考中心点和所述第二参考中心点,在所述参考头部扫描中确定参考推断点;以及基于所述第一参考中心点、所述第二参考中心点、以及所述参考推断点,生成所述受试者的所述头部的姿势。
49.根据方面48所述的系统,其中,所述参考头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
50.根据方面48-49中任一方面所述的系统,其中,为了确定所述受试者的所述第一眼球的所述第一参考中心点,所述硬件处理器还被编程为:将第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点;以及基于所述受试者的所述第一眼球的所述第一参考眼球模型,确定所述第一眼球的所述第一参考中心点。
51.根据方面50所述的系统,其中,为了将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点,所述硬件处理器被编程为:基于以下来最小化第一误差统计:所述受试者的第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一参考候选点中的第一参考候选点与所述第一眼球的所述第一参考眼球模型的中心之间的距离。
52.根据方面50所述的系统,其中,为了将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点,所述硬件处理器被编程为:基于以下来最小化第一误差统计:所述受试者的第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一参考候选点中的每个第一参考候选点与所述第一眼球的所述参考眼球模型的中心之间的平均距离。
53.根据方面50-52中任一方面所述的系统,其中,所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。
54.根据方面50-53中任一方面所述的系统,其中,所述第一误差统计在零附近是近似线性的。
55.根据方面50-54中任一方面所述的系统,其中,所述第一误差统计基于tanh。
56.根据方面50-55中任一方面所述的系统,其中,为了将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点,所述硬件处理器被编程为:相对于所述第一参考眼球模型,确定所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点中的一个或多个第一参考离群候选点;从所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点中移除所述第一参考离群候选点;以及将被更新的第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述第一参考离群候选点被移除了的所述多个第一参考候选点。
57.根据方面56所述的系统,其中,为了确定所述一个或多个第一参考离群候选点,所述硬件处理器被编程为:基于所述多个第一参考候选点的中值,在所述第一参考眼球模型中确定所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点中的一个或多个第一参考离群候选点。
58.根据方面50-57中任一方面所述的系统,其中,为了将所述第一参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点,所述硬件处理器被编程为:将所述第一参考眼球模型迭代地适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点,直到所述第一参考眼球模型到所述多个第一参考候选点的适配收敛。
59.根据方面48-58中任一方面所述的系统,其中,为了在所述参考头部扫描中确定所述参考推断点,所述硬件处理器还被编程为:确定在所述第一参考中心点和所述第二参考中心点之间形成的轴与所述参考头部扫描的坐标系的轴的参考叉积。
60.根据方面59所述的系统,其中,所述参考推断点在所述参考叉积上。
61.根据方面60所述的系统,其中,所述参考推断点在所述参考叉积上远离所述受试者的所述头部。
62.根据方面59-61中任一方面所述的系统,其中,所述坐标系的所述轴是所述坐标系的y轴。
63.根据方面59-62中任一方面所述的系统,其中,在所述参考头部扫描中的所述受试者的所述头部的姿势大致在所述坐标系的所述轴的方向上。
64.根据方面50-63中的任一方面所述的系统,其中,所述参考眼球模型的参数包括几何形状。
65.根据方面64所述的系统,其中,所述几何形状包括球形、椭圆形、或其组合。
66.根据方面64-65中任一方面所述的系统,其中,所述第一参考眼球模型的所述第一参数包括至少一个半径。
67.根据方面66所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述第一参考候选点,所述硬件处理器被编程为:调整所述第一参考眼球模型的所述第一参数的所述至少一个半径。
68.根据方面48-67中任一方面所述的系统,其中,所述硬件处理器还被编程为:接收所述受试者的第二头部扫描;以及基于所述第二头部扫描中的所述受试者的所述第一眼球的所述第一巩膜的多个第一候选点、所述第一眼球模型和第二误差统计量,确定所述受试者的所述第一眼球的第一中心点;基于所述第二头部扫描中的所述受试者的所述第二眼球的所述第二巩膜的多个第二候选点、所述第二眼球模型和所述第二误差统计,确定所述受试者的所述第二眼球的第二中心点;基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及确定从所述第一中心点、所述第二中心点和所述推断点到所述第一参考中心点、所述第二参考中心点和所述参考推断点的仿射变换,其中,所述仿射变换表示从所述第二头部扫描到所述参考头部扫描的变换。
69.根据方面48-68中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的装配。
70.根据方面48-68中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的数字表示。
71.根据方面48-68中任一方面所述的系统,其中,所述硬件处理器还被编程为:基于所述仿射变换,将眼球适配在数字木偶中。
72.一种用于确定受试者的头部的姿势的系统,所述系统包括:非暂时性存储器,其配置为存储:受试者的头部的参考模型,其包括:所述受试者的第一参考眼球模型,所述受试者的第二参考眼球模型,以及所述受试者的所述头部的参考推断点,以及受试者的头部的头部扫描;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:接收所述受试者的所述头部扫描;基于在所述头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一候选点,确定所述受试者的所述第一眼球的第一中心点;基于在所述头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二候选点,确定所述受试者的所述第二眼球的第二中心点;基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及确定从所述第一中心点、所述第二中心点和所述推断点到所述第一参考中心点、所述参考第二中心点和所述参考推断点的仿射变换,其中,所述仿射变换表示从所述头部扫描到所述头部的所述参考模型的变换。
73.根据方面72所述的系统,其中,所述头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
74.根据方面72-73中任一方面所述的系统,其中,为了确定所述受试者的所述第一眼球的所述第一中心点,所述硬件处理器还被编程为:将第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点;以及基于所述受试者的所述第一眼球的所述第一眼球模型,确定所述第一眼球的所述第一中心点。
75.根据方面74所述的系统,其中,为了将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点,所述硬件处理器被编程为:基于以下来最小化第一误差统计:所述受试者的所述第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一候选点中的第一候选点与所述第一眼球的所述第一眼球模型的中心之间的距离。
76.根据方面75所述的系统,其中,为了将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点,所述硬件处理器被编程为:基于以下来最小化第一误差统计:所述受试者的所述第一眼球的所述第一眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一候选点中的每个第一候选点与所述第一眼球的所述眼球模型的中心之间的平均距离。
77.根据方面75-76中的任一方面所述的系统,其中,所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。
78.根据方面75-77中任一方面所述的系统,其中,所述第一误差统计在零附近是近似线性的。
79.根据方面75-78中任一方面所述的系统,其中,所述第一误差统计基于tanh。
80.根据方面74-79中任一方面所述的系统,其中,为了将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点,所述硬件处理器被编程为:相对于所述第一参考眼球模型,确定所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点中的一个或多个第一离群候选点;从所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点中移除所述第一参考离群候选点;以及将被更新的第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述第一参考离群候选点被移除了的所述多个第一候选点。
81.根据方面80所述的系统,其中,为了确定所述一个或多个第一离群候选点,所述硬件处理器被编程为:基于所述多个第一候选点的中值,在所述第一参考眼球模型中确定所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点中的所述一个或多个第一离群候选点。
82.根据方面74-81中任一方面所述的系统,其中,为了将所述第一参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点,所述硬件处理器被编程为:将所述第一参考眼球模型迭代地适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点,直到所述第一参考眼球模型到所述多个第一候选点的适配收敛。
83.根据方面74-82中任一方面所述的系统,其中,为了在所述头部扫描中确定所述参考推断点,所述硬件处理器还被编程为:确定以下的叉积:在所述第一中心点与所述第二中心点之间所形成的轴与所述头部扫描的坐标系的轴。
84.根据方面83所述的系统,其中,所述推断点在所述叉积上。
85.根据方面84所述的系统,其中,所述推断点在所述叉积上远离所述受试者的所述头部。
86.根据方面83-85中任一方面所述的系统,其中,所述坐标系的所述轴是所述坐标系的y轴。
87.根据方面83-86中任一方面所述的系统,其中,在所述头部扫描中的所述受试者的所述头部的所述姿势大致在所述坐标系的所述轴的方向上。
88.根据方面72-87中任一方面所述的系统,其中,所述第一参考眼球模型的所述第一参数包括几何形状。
89.根据方面88所述的系统,其中,所述几何形状包括球形、椭圆形、或其组合。
90.根据方面88-89中任一方面所述的系统,其中,所述第一参考眼球模型的所述第一参数包括至少一个半径。
91.根据方面72-90中任一方面所述的系统,其中,所述硬件处理器还被编程为:接收所述受试者的参考头部扫描;将所述第一眼球模型适配到在所述参考头部扫描中的所述受试者的所述第一眼球的所述第一巩膜的多个第一候选点,其中,所述第一眼球模型包括所述第一眼球的第一中心点;将所述第二眼球模型适配到在所述参考头部扫描中的所述受试者的所述第二眼球的所述第二巩膜的多个第二候选点,其中,所述第二眼球模型包括所述第二眼球的第二中心点;以及基于所述第一参考中心点和所述第二参考中心点在所述参考头部扫描中确定参考推断点。
92.根据方面91所述的系统,其中,所述硬件处理器还被编程为:基于所述第一参考中心点、所述第二参考中心点和所述参考推断点,生成所述受试者的化身的装配。
93.根据方面91所述的系统,其中,所述硬件处理器还被编程为:基于所述第一参考中心点、所述第二参考中心点和所述参考推断点,生成所述受试者的化身的数字表示。
94.根据方面91所述的系统,其中,所述硬件处理器还被编程为:基于所述仿射变换将眼球适配在数字木偶中。
95.一种用于对准受试者的头部扫描的方法,所述方法包括:在硬件处理器的控制下:接收所述受试者的参考头部扫描;基于在参考头部扫描中的所述受试者的每个眼球的巩膜的多个参考候选点,在所述参考头部扫描中确定所述受试者的所述每个眼球的参考中心点和参考推断点;接收所述受试者的第二头部扫描;基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述巩膜的多个第二候选点,在所述第二头部扫描中确定所述受试者的所述每个眼球的第二中心点和第二推断点;基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述第二中心点和所述第二推断点以及在所述参考头部扫描中的对应点,确定从所述第二头部扫描到所述参考头部扫描的仿射变换;以及对在所述第二头部扫描中的所述受试者的所述头部执行所述仿射变换,以在所述第二头部扫描中生成所述受试者的被仿射变换的头部。
96.根据方面95所述的方法,其中,所述参考头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
97.根据方面95-96中任一方面所述的方法,确定所述受试者的所述每个眼球的所述参考中心点包括:在所述受试者的所述参考头部扫描中确定所述受试者的所述每个眼球的所述巩膜的多个参考候选点。
98.根据方面97所述的方法,其中,确定所述受试者的所述每个眼球的所述参考中心点包括:将参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点;以及基于所述受试者的所述每个眼球的所述参考眼球模型,确定所述每个眼球的所述参考中心点。
99.根据方面98所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点包括:基于以下来最小化第一统计误差:所述受试者的第一眼球的所述参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个参考候选点中的参考候选点与所述第一眼球的所述参考眼球模型的中心之间的距离。
100.根据方面98所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点包括:基于以下来最小化第一误差统计:所述受试者的所述第一眼球的所述参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个参考候选点中的每个参考候选点与所述第一眼球的所述参考眼球模型的中心之间的平均距离。
101.根据方面99-100中任一方面所述的方法,其中,所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。。
102.根据方面99-101中任一方面所述的方法,其中,所述第一误差统计在零误差附近是近似线性的。
103.根据方面99-102中任一方面所述的方法,其中,所述第一误差统计至少部分地基于S型函数。
104.根据方面98-103中任一方面所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点包括:相对于所述参考眼球模型,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点;从所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中移除所述参考离群候选点;以及将被更新的眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考离群候选点被移除了的所述多个参考候选点。
105.根据方面104所述的方法,其中,确定所述一个或多个参考离群候选点,所述硬件处理器被编程为:基于所述多个参考候选点的中值,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点。
106.根据方面98-103中任一方面所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点包括:将所述参考眼球模型迭代地适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,直到所述参考眼球模型到所述多个参考候选点的适配收敛。
107.根据方面95-106中任一方面所述的方法,其中,在所述参考头部扫描中确定所述参考推断点包括:基于所述受试者的所述每个眼球的所述参考中心点,在所述参考头部扫描中确定所述参考推断点。
108.根据方面107所述的方法,其中,在所述参考头部扫描中确定所述参考推断点包括:确定在所述受试者的所述每个眼球的所述参考中心点之间形成的轴与所述参考头部扫描的坐标系的轴的参考叉积。
109.根据方面108所述的方法,其中,所述参考推断点在所述参考叉积上。
110.根据方面109所述的方法,其中,所述参考推断点在所述参考叉积上远离所述受试者的所述头部。
111.根据方面108-110中任一方面所述的方法,其中,所述坐标系的所述轴是所述坐标系的y轴。
112.根据方面108-111中任一方面所述的方法,其中,在所述参考头部扫描中的所述受试者的所述头部的姿势大致在所述坐标系的所述轴的方向上。
113.根据方面98-112中任一方面所述的方法,其中,所述参考眼球模型的参数包括几何形状。
114.根据方面113所述的方法,其中,所述几何形状包括球形、椭圆形、或其组合。
115.根据方面113-114中任一方面所述的方法,其中,所述参考眼球模型的所述参数包括至少一个半径。
116.根据方面115所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考候选点包括:调整所述参考眼球模型的所述参数的所述至少一个半径。
117.根据方面95-116中任一方面所述的方法,其中,所述第二头部扫描包括:所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
118.根据方面95-117中任一方面所述的方法,其中,确定所述受试者的所述每个眼球的所述第二中心点包括:在所述受试者的所述参考头部扫描中确定所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点。
119.根据方面118所述的方法,其中,确定所述受试者的所述每个眼球的所述第二中心点包括:将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点;并基于适配到所述多个第二候选点的所述受试者的所述每个眼球的所述参考眼球模型确定所述每个眼球模型的所述第二中心点。
120.根据方面119所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点包括:基于所述受试者的第一眼球的所述参考眼球模型的半径和所述受试者的所述第一眼球的所述多个参考候选点中的第二候选点与所述受试者的所述第一眼球的所述参考眼球模型的中心之间的距离,来最小化第二误差统计。
121.根据方面119所述的方法,其中,将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点包括:基于所述受试者的第一眼球的所述参考眼球模型的半径和所述受试者的所述第一眼球的所述多个第二候选点中的每个第二候选点与所述受试者的所述第一眼球的所述参考眼球模型的中心之间的平均距离,来最小化第二误差统计。
122.根据方面120-121中任一方面所述的方法,其中所述第二误差统计在范围-∞和∞上在-1.0和1.0之间变化。
123.根据方面120-122中任一方面所述的方法,其中所述第二误差统计量在零附近是近似线性的。
124.根据方面120-122中任一方面所述的方法,其中,所述第二误差统计基于tanh。
125.根据方面119-124中任一方面所述的方法,其中将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点包括:在所述第二眼球模型中确定所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点中的一个或多个第二离群候选点;从所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点中移除所述第二离群候选点;以及将被更新的参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述第二离群候选点被移除了的所述多个第二候选点。
126.根据方面125所述的方法,其中确定所述一个或多个第二离群候选点包括:基于所述多个第二候选点的中值,在所述参考眼球模型中确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点。
127.根据方面119-124中任一方面所述的方法,其中将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点包括:将所述参考眼球模型迭代地适配到所述受试者的所述每个眼球的所述巩膜的所述多个第二候选点,直到所述参考眼球模型到所述多个第二候选点的适配收敛。
128.根据方面119-127中任一方面所述的方法,其中在所述第二头部扫描中确定所述第二推断点包括:基于所述受试者的所述每个眼球的所述第二中心点,在所述第二头部扫描中确定所述第二推断点。
129.根据方面128所述的方法,其中在所述第二头部扫描中确定所述第二推断点包括:确定在所述受试者的所述每个眼球的所述第二中心点之间所形成的轴与所述参考头部扫描的坐标系的轴的第二叉积。
130.根据方面129所述的方法,其中,所述第二推断点在所述第二叉积上。
131.根据方面130所述的方法,其中,所述第二推断点在所述第二叉积上远离所述受试者的所述头部。
132.根据方面129-131中任一方面所述的方法,其中,所述坐标系的所述轴是所述坐标系的y轴。
133.根据方面129-132中任一方面所述所述的方法,其中,在所述参考头部扫描中的所述受试者的所述头部的所述姿势大致在所述坐标系的所述轴的方向上。
134.根据方面95-133中任一方面所述的方法,还包括:使用在所述受试者的所述头部上的可跟踪点,确定所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
135.根据方面134所述的方法,其中确定所述枢轴包括:最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点之间的距离。
136.根据方面134所述所述的方法,其中确定所述枢轴包括:最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点周围的表面之间的距离。
137.根据方面95-136中任一方面所述的方法,还包括:使用在所述受试者的所述头部上的可跟踪点,接收所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
138.根据方面95-137中任一方面所述的方法,还包括:接收所述第二头部扫描中的所述受试者的所述每个眼球的平移调整、所述第二头部扫描中的所述受试者的眼球的旋转调整、或其任何组合。
139.根据方面95-138中任一方面所述的方法,还包括:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的装配;以及基于所述仿射变换,生成所述受试者的所述化身的修改装配。
140.根据方面95-138中任一方面所述的方法,还包括:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的数字表示;以及基于所述仿射变换,生成所述受试者的所述化身的修改数字表示。
141.根据方面95-138中任一方面所述的方法,还包括:基于所述仿射变换,将眼球适配在数字木偶中。
142.一种用于确定受试者的头部的姿势的方法,所述方法包括:在硬件处理器的控制下:接收所述受试者的参考头部扫描;基于在所述参考头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一参考候选点,确定所述受试者的所述第一眼球的第一参考中心点;基于在所述参考头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二参考候选点,确定所述受试者的所述第二眼球的第二参考中心点;基于所述第一参考中心点和所述第二参考中心点,在所述参考头部扫描中确定参考推断点;以及基于所述第一参考中心点、所述第二参考中心点、以及所述参考推断点,生成所述受试者的所述头部的姿势。
143.根据方面142所述的方法,其中所述参考头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
144.根据方面142-143中任一方面所述的方法,其中确定所述受试者的所述第一眼球的所述第一参考中心点包括:将第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点;以及基于所述受试者的所述第一眼球的所述第一参考眼球模型,确定所述第一眼球的所述第一参考中心点。
145.根据方面144所述的方法,其中将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点包括:基于以下来最小化第一误差统计:所述受试者的第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一参考候选点中的第一参考候选点与所述第一眼球的所述第一参考眼球模型的中心之间的距离。
146.根据方面144所述的方法,其中将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点包括:基于以下来最小化第一误差统计:所述受试者的第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一参考候选点中的每个第一参考候选点与所述第一眼球的所述参考眼球模型的中心之间的平均距离。
147.根据方面144-146中任一方面所述的方法,其中所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。
148.根据方面144-147中任一方面所述的方法,其中所述第一误差统计在零附近是近似线性的。
149.根据方面144-148中任一方面所述的方法,其中所述第一误差统计基于tanh。
150.根据方面144-149中任一方面所述的方法,其中将所述第一参考眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点包括:相对于所述第一参考眼球模型,确定所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点中的一个或多个第一参考离群候选点;从所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点中移除所述第一参考离群候选点;以及将被更新的第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述第一参考离群候选点被移除了的所述多个第一参考候选点。
151.根据方面150所述的方法,其中确定所述一个或多个第一参考离群候选点包括:基于所述多个第一参考候选点的中值,在所述第一参考眼球模型中确定所述受试者的所述第一眼球的所述第一巩膜的所述多个第一参考候选点中的一个或多个第一参考离群候选点。
152.根据方面144-151中任一方面所述的方法,其中将所述第一参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点包括:将所述第一参考眼球模型迭代地适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一参考候选点,直到所述第一参考眼球模型到所述多个第一参考候选点的适配收敛。
153.根据方面142-152中任一方面所述的方法,其中在所述参考头部扫描中确定所述参考推断点包括:确定在所述第一参考中心点和所述第二参考中心点之间形成的轴与所述参考头部扫描的坐标系的轴的参考叉积。
154.根据方面153所述的方法,其中所述参考推断点在所述参考叉积上。
155.根据方面154所述的方法,其中,所述参考推断点在所述参考叉积上远离所述受试者的所述头部。
156.根据方面153-155中任一方面所述的方法,其中,所述坐标系的所述轴是所述坐标系的y轴。
157.根据方面153-156中任一方面所述的方法,其中在所述参考头部扫描中的所述受试者的所述头部的姿势大致在所述坐标系的所述轴的方向上。
158.根据方面144-157中任一方面所述的方法,其中所述参考眼球模型的参数包括几何形状。
159.根据方面158所述的方法,其中所述几何形状包括球形、椭圆形、或其组合。
160.根据方面158-159中任一方面所述的方法,其中所述第一参考眼球模型的所述第一参数包括至少一个半径。
161.根据方面160所述的方法,其中将所述参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述第一参考候选点包括:调整所述第一参考眼球模型的所述第一参数的所述至少一个半径。
162.根据方面142-161中任一方面所述的方法,还包括:接收所述受试者的第二头部扫描;以及基于所述第二头部扫描中的所述受试者的所述第一眼球的所述第一巩膜的多个第一候选点、所述第一眼球模型和第二误差统计量,确定所述受试者的所述第一眼球的第一中心点;基于所述第二头部扫描中的所述受试者的所述第二眼球的所述第二巩膜的多个第二候选点、所述第二眼球模型和所述第二误差统计,确定所述受试者的所述第二眼球的第二中心点;基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及确定从所述第一中心点、所述第二中心点和所述推断点到所述第一参考中心点、所述第二参考中心点和所述参考推断点的仿射变换,其中,所述仿射变换表示从所述第二头部扫描到所述参考头部扫描的变换。
163.根据方面142-162中任一方面所述的方法,还包括:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的装配。
164.根据方面142-162中任一方面所述的方法,还包括:基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的数字表示。
165.根据方面142-162中任一方面所述的方法,还包括:基于所述仿射变换,将眼球适配在数字木偶中。
166.一种用于确定受试者的头部的姿势的方法,所述方法包括:在硬件处理器的控制下:包括受试者的头部的参考推断点的所述受试者的所述头部的参考模型;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:接收受试者的头部的头部扫描;基于在所述头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一候选点,确定所述受试者的所述第一眼球的第一中心点;基于在所述头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二候选点,确定所述受试者的所述第二眼球的第二中心点;基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及确定从所述第一中心点、所述第二中心点和所述推断点到所述头部的参考模型的所述第一参考中心点、所述参考模型的参考第二中心点和所述参考模型的参考推断点的仿射变换,其中,所述仿射变换表示从所述头部扫描到所述头部的所述参考模型的变换。
167.根据方面166所述的方法,其中,所述头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
168.根据方面166-167中任一方面所述的方法,其中确定所述受试者的所述第一眼球的所述第一中心点包括:将第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点;以及基于所述受试者的所述第一眼球的所述第一眼球模型,确定所述第一眼球的所述第一中心点。
169.根据方面168所述的方法,其中将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点包括:基于以下来最小化第一误差统计:所述受试者的所述第一眼球的所述第一参考眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一候选点中的第一候选点与所述第一眼球的所述第一眼球模型的中心之间的距离。
170.根据方面169所述的方法,其中将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点包括:基于以下来最小化第一误差统计:所述受试者的所述第一眼球的所述第一眼球模型的半径,以及所述受试者的所述第一眼球的所述多个第一候选点中的每个第一候选点与所述第一眼球的所述眼球模型的中心之间的平均距离。
171.根据方面169-170中任一方面所述的方法,其中所述第一误差统计在-∞至∞的范围内在-1.0至1.0之间变化。
172.根据方面169-171中任一方面所述的方法,其中所述第一误差统计在零附近是近似线性的。
173.根据方面169-172中任一方面所述的方法,其中所述第一误差统计基于tanh。
174.根据方面168-173中任一方面所述的方法,其中将所述第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点包括:相对于所述第一参考眼球模型,确定所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点中的一个或多个第一离群候选点;从所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点中移除所述第一参考离群候选点;以及将被更新的第一眼球模型适配到所述受试者的所述第一眼球的所述第一巩膜的所述第一参考离群候选点被移除了的所述多个第一候选点。
175.根据方面174所述的方法,其中确定所述一个或多个第一离群候选点包括:基于所述多个第一候选点的中值,在所述第一参考眼球模型中确定所述受试者的所述第一眼球的所述第一巩膜的所述多个第一候选点中的所述一个或多个第一离群候选点。
176.根据方面168-175中任一方面所述的方法,其中将所述第一参考眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点包括:将所述第一参考眼球模型迭代地适配到所述受试者的所述第一眼睛的所述第一巩膜的所述多个第一候选点,直到所述第一参考眼球模型到所述多个第一候选点的适配收敛。
177.根据方面168-176中任一方面所述的方法,其中在所述头部扫描中确定所述参考推断点包括:确定以下的叉积:在所述第一中心点与所述第二中心点之间所形成的轴与所述头部扫描的坐标系的轴。
178.根据方面177所述的方法,其中所述推断点在所述叉积上。
179.根据方面178所述的方法,其中所述推断点在所述叉积上远离所述受试者的所述头部。
180.根据方面177-179中任一方面所述的方法,其中所述坐标系的所述轴是所述坐标系的y轴。
181.根据方面177-180中任一方面所述的方法,其中在所述头部扫描中的所述受试者的所述头部的所述姿势大致在所述坐标系的所述轴的方向上。
182.根据方面166-181中任一方面所述的方法,其中所述第一参考眼球模型的所述第一参数包括几何形状。
183.根据方面182所述的方法,其中所述几何形状包括球形、椭圆形、或其组合。
184.根据方面182-183中任一方面所述的方法,其中所述第一参考眼球模型的所述第一参数包括至少一个半径。
185.根据方面166-184中任一方面所述的方法,还包括:接收所述受试者的参考头部扫描;将所述第一眼球模型适配到在所述参考头部扫描中的所述受试者的所述第一眼球的所述第一巩膜的多个第一候选点,其中,所述第一眼球模型包括所述第一眼球的第一中心点;将所述第二眼球模型适配到在所述参考头部扫描中的所述受试者的所述第二眼球的所述第二巩膜的多个第二候选点,其中,所述第二眼球模型包括所述第二眼球的第二中心点;以及基于所述第一参考中心点和所述第二参考中心点在所述参考头部扫描中确定参考推断点。
186.根据方面185所述的方法,还包括:基于所述第一参考中心点、所述第二参考中心点和所述参考推断点,生成所述受试者的化身的装配。
187.根据方面185所述的方法,还包括:基于所述第一参考中心点、所述第二参考中心点和所述参考推断点,生成所述受试者的化身的数字表示。
188.根据方面185所述的方法,还包括:基于所述仿射变换将眼球适配在数字木偶中。
189.一种用于对准多个扫描的方法,每个所述扫描包括受试者的头部的至少一部分,所述方法包括:在硬件处理器的控制下:将受试者的多个扫描中的第一扫描和第二扫描对准,所述第一扫描和所述第二扫描各自包括所述受试者的头部的至少一部分,
其中,所述对准包括将:(i)来自所述第一扫描的基于所述受试者的第一眼睛的第一巩膜的可见部分的第一参考点和基于所述受试者的第二眼睛的第二巩膜的可见部分的第二参考点与(ii)来自所述第二扫描的基于第一眼睛的第一巩膜的可见部分的第一参考点和基于第二眼睛的第二巩膜的可见部分的第二参考点相匹配。
190.根据方面189所述的方法,其中来自所述第一扫描的所述第一眼睛的所述第一参考点和所述第二眼睛的所述第二参考点包括:所述第一眼睛的第一中心点和所述第二眼睛的第二中心点。
191.根据方面189或方面190所述的方法,其中来自所述第二扫描的所述第一眼睛的所述第一参考点和所述第二眼睛的所述第二参考点包括:所述第一眼睛的第一中心点和所述第二眼睛的第二中心点。
192.根据方面189至191中任一方面所述的方法,其中对准所述第一扫描和所述第二扫描包括:确定从所述第一扫描到所述第二扫描的仿射变换。
193.根据方面189-192中的任一方面所述的方法,还包括,对于所述第一扫描或所述第二扫描中的任一个或二者,将第一眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述可见部分,或将第二眼球模型适配到所述受试者的所述第二眼睛的所述第二巩膜的所述可见部分。
194.根据方面193所述的方法,其中适配所述第一眼球模型或适配所述第二眼球模型包括:确定所述第一眼球模型的第一中心点和所述第二眼球模型的第二中心点。
195.根据方面194所述的方法,还包括:确定从所述第一眼球模型或所述第二眼球模型推断出的附加参考点。
196.根据方面195所述的方法,其中,所述附加参考点沿着垂直于所述第一中心点和所述第二中心点之间的线并垂直于平行于所述受试者的所述头部的长度的轴的线。
197.一种用于对准多个扫描的系统,每个所述扫描包括受试者的头部的至少一部分,所述系统包括:非暂时性存储器,其被配置为存储受试者的多个扫描,所述多个扫描中的每一个扫描包括所述受试者的头部的至少一部分;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:对准受试者的所述多个扫描中的第一扫描和第二扫描,其中,为了对准所述第一扫描和所述第二扫描,所述硬件处理器被编程为将:(i)来自所述第一扫描的基于所述受试者的第一眼睛的第一巩膜的可见部分的第一参考点和基于所述受试者的第二眼睛的第二巩膜的可见部分的第二参考点与(ii)来自所述第二扫描的基于第一眼睛的第一巩膜的可见部分的第一参考点和基于第二眼睛的第二巩膜的可见部分的第二参考点相匹配。
198.根据方面197所述的系统,其中来自所述第一扫描的所述第一眼睛的所述第一参考点和所述第二眼睛的所述第二参考点包括:所述第一眼睛的第一中心点和所述第二眼睛的第二中心点。
199.根据方面197或方面198所述的系统,其中来自所述第二扫描的所述第一眼睛的所述第一参考点和所述第二眼睛的所述第二参考点包括:所述第一眼睛的第一中心点和所述第二眼睛的第二中心点。
200.根据方面197至199中任一方面所述的系统,其中对准所述第一扫描和所述第二扫描包括:确定从所述第一扫描到所述第二扫描的仿射变换。
201.根据方面197至199中任一方面所述的系统,还包括,对于所述第一扫描或所述第二扫描中的任一个或二者,将第一眼球模型适配到所述受试者的所述第一眼睛的所述第一巩膜的所述可见部分,或将第二眼球模型适配到所述受试者的所述第二眼睛的所述第二巩膜的所述可见部分。
202.根据方面201所述的系统,其中适配所述第一眼球模型或适配所述第二眼球模型包括:确定所述第一眼球模型的第一中心点和所述第二眼球模型的第二中心点。
203.根据方面202所述的系统,还包括:确定从所述第一眼球模型或所述第二眼球模型推断出的附加参考点。
204.根据方面203所述的系统,其中,所述附加参考点沿着垂直于所述第一中心点和所述第二中心点之间的线并垂直于平行于所述受试者的所述头部的长度的轴的线。
205.一种用于对准多个扫描的方法,每个所述扫描包括受试者的头部,所述方法包括:在硬件处理器的控制下:将来自所述多个扫描中的第一扫描的第一眼睛的巩膜与来自所述多个扫描中的第二扫描的所述第一眼睛的巩膜对准;以及将来自所述多个扫描中的所述第一扫描的第二眼睛的巩膜与来自所述多个扫描中的所述第二扫描的所述第二眼睛的巩膜对准。
206.根据方面205所述的方法,包括:确定来自所述第一扫描的所述第一眼睛的所述巩膜的第一候选点;确定来自所述第一扫描的所述第二眼睛的所述巩膜的第二候选点;将第一眼球模型适配到所述第一候选点;将第二眼球模型适配到所述第二候选点。
207.根据方面206所述的方法,包括:确定所述第一眼球模型的第一中心;确定所述第二眼球模型的第二中心;以及至少部分地基于所述第一中心和所述第二中心来确定推断第三点。
208.根据方面207所述的方法,包括:至少部分地基于所述第一中心、所述第二中心和所述推断第三点,确定所述受试者的所述头部的姿势的表示。
209.一种用于对准多个扫描所述的系统,每个所述扫描包括受试者的头部,所述系统包括:非暂时性存储器,其被配置为存储包括受试者的头部的多个扫描;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:将来自所述多个扫描中的第一扫描的第一眼睛的巩膜与来自所述多个扫描中的第二扫描的所述第一眼睛的巩膜对准;以及将来自所述多个扫描中的所述第一扫描的第二眼睛的巩膜与来自所述多个扫描中的所述第二扫描的所述第二眼睛的巩膜对准。
210.根据方面209所述的系统,其中,所述硬件处理器被编程为:确定来自所述第一扫描的所述第一眼睛的所述巩膜的第一候选点;确定来自所述第一扫描的所述第二眼睛的所述巩膜的第二候选点;将第一眼球模型适配到所述第一候选点;以及将第二眼球模型适配到所述第二候选点。
211.根据方面210所述的系统,其中,所述硬件处理器被编程为:确定所述第一眼球模型的第一中心;确定所述第二眼球模型的第二中心;以及至少部分地基于所述第一中心和所述第二中心来确定推断第三点。
212.根据方面211所述的系统,其中,所述硬件处理器被编程为:至少部分地基于所述第一中心、所述第二中心和所述推断第三点,确定所述受试者的所述头部的姿势的表示。
213.一种用于对准多个扫描的方法,每个所述扫描包括头部,所述方法包括:将(i)来自所述多个扫描中的第一扫描的第一左眼、第一右眼、以及基于所述第一左眼和所述第一右眼的第一推断第三点与(ii)来自所述多个扫描中的第二扫描的第二左眼、第二右眼、以及基于所述第二左眼和所述第二右眼的第二推断第三点对准。
214.根据方面213所述的方法,包括:至少部分地基于所述第一左眼和所述第一右眼之间的线以及垂直于所述线的轴来确定所述第一推断第三点。
215.根据方面213或方面214所述的方法,包括:至少部分地基于所述第二左眼和所述第二右眼之间的线和垂直于所述线的轴来确定所述第二推断第三点。
216.根据方面213至215中任一方面所述的方法,其中所述对准包括:利用仿射变换。
217.根据方面216所述的方法,还包括:基于所述仿射变换来执行所述受试者的化身的装配。
218.一种用于对准多个扫描的系统,每个所述扫描包括头部,所述系统包括:非暂时性存储器,其被配置为存储包括受试者的头部的多个扫描;以及与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:将(i)来自所述多个扫描中的第一扫描的第一左眼、第一右眼、以及基于所述第一左眼和所述第一右眼的第一推断第三点与(ii)来自所述多个扫描中的第二扫描的第二左眼、第二右眼、以及基于所述第二左眼和所述第二右眼的第二推断第三点对准。
219.根据方面218所述的系统,其中,所述硬件处理器被编程为:至少部分地基于所述第一左眼和所述第一右眼之间的线以及垂直于所述线的轴来确定所述第一推断第三点。
220.根据方面218或方面219所述的系统,其中,所述硬件处理器被编程为:至少部分地基于所述第二左眼和所述第二右眼之间的线和垂直于所述线的轴来确定所述第二推断第三点。
221.根据方面218-220中任一方面所述的系统,其中为了对准,对硬件处理器被编程为:利用仿射变换。
222.根据方面221所述的系统,其中,所述硬件处理器还被编程为:基于所述仿射变换来执行所述受试者的化身的装配。
223.根据前述方面中任一方面所述的系统或所述的方法,还被配置为:至少部分地基于一个或多个被对准的扫描来执行所述受试者的化身的装配。
其他考虑
本文描述和/或附图中描绘的每个过程、方法和算法可以体现在由一个或多个被配置为执行专门的和特定的计算机指令的物理计算系统、硬件计算机处理器、专用电路和/或电子硬件中以及全部或部分地由其自动化。例如,计算系统可以包括用特定计算机指令编程的通用计算机(例如服务器)或专用计算机、专用电路等。代码模块可被编译并链接到可执行程序中、安装在动态链接库中,或者可以用解释性编程语言来编写。在一些实现中,特定的操作和方法可以由特定于给定功能的电路执行。
此外,本公开的功能的某些实现在数学上、计算上或技术上都足够复杂,以致于可能需要专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)来执行功能,例如由于所涉及计算的量或复杂性,或为了实质上实时地提供结果。例如,动画或视频可以包括许多帧,每个帧具有数百万个像素,并且需要专门编程的计算机硬件来处理视频数据,以在商业上合理的时间量内提供所需的图像处理任务或应用。
代码模块或任何类型的数据可以存储在任何类型的非暂时性计算机可读介质上,例如物理计算机存储器,包括硬盘驱动器、固态存储器、随机存取存储器(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 (30)

1.一种用于对准受试者的头部扫描的系统,所述系统包括:
非暂时性存储器,其配置为存储:
受试者的头部的至少一部分的参考头部扫描,以及
所述受试者的所述头部的第二头部扫描;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被可执行指令编程为:
接收所述受试者的所述参考头部扫描;
基于在所述参考头部扫描中的所述受试者的每个眼球的巩膜的多个参考候选点,在所述参考头部扫描中确定所述受试者的所述每个眼球的参考中心点和参考推断点;
接收所述受试者的第二头部扫描;
基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述巩膜的多个第二候选点,在所述第二头部扫描中确定所述受试者的所述每个眼球的第二中心点和第二推断点;
基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述第二中心点和所述第二推断点以及在所述参考头部扫描中的对应点,确定从所述第二头部扫描到所述参考头部扫描的仿射变换;以及
至少对在所述第二头部扫描中的所述受试者的所述头部执行所述仿射变换,以在所述第二头部扫描中生成所述受试者的被仿射变换的头部。
2.根据权利要求1所述的系统,其中,所述参考头部扫描包括所述受试者的所述头部的点云、网格、红绿蓝-深度(RGB-D)扫描、多个xyz坐标、或其组合。
3.根据权利要求1所述的系统,其中,为了确定所述受试者的所述每个眼球的所述参考中心点,所述硬件处理器被编程为:
在所述受试者的所述参考头部扫描中确定所述受试者的所述每个眼球的所述巩膜的多个参考候选点。
4.根据权利要求3所述的系统,其中,为了确定所述受试者的所述每个眼球的所述参考中心点,所述硬件处理器还被编程为:
将参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点;以及
基于所述受试者的所述每个眼球的所述参考眼球模型,确定所述每个眼球的所述参考中心点。
5.根据权利要求4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:
基于以下来最小化第一统计误差:
所述受试者的第一眼球的所述参考眼球模型的半径,以及
所述受试者的所述第一眼球的所述多个参考候选点中的参考候选点与所述第一眼球的所述参考眼球模型的中心之间的距离。
6.根据权利要求4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:
相对于所述参考眼球模型,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点;
从所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中移除所述参考离群候选点;以及
将被更新的眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考离群候选点被移除了的所述多个参考候选点。
7.根据权利要求6所述的系统,其中,为了确定所述一个或多个参考离群候选点,所述硬件处理器被编程为:
基于所述多个参考候选点的中值,确定所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点中的一个或多个参考离群候选点。
8.根据权利要求4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,所述硬件处理器被编程为:
将所述参考眼球模型迭代地适配到所述受试者的所述每个眼球的所述巩膜的所述多个参考候选点,直到所述参考眼球模型到所述多个参考候选点的适配收敛。
9.根据权利要求4所述的系统,其中,为了将所述参考眼球模型适配到所述受试者的所述每个眼球的所述巩膜的所述参考候选点,所述硬件处理器被编程为:
调整所述参考眼球模型的参数中的至少一个半径。
10.根据权利要求1所述的系统,其中,为了在所述参考头部扫描中确定所述参考推断点,所述硬件处理器被编程为:
基于所述受试者的所述每个眼球的所述参考中心点,在所述参考头部扫描中确定所述参考推断点。
11.根据权利要求10所述的系统,其中,为了在所述参考头部扫描中确定所述参考推断点,所述硬件处理器还被编程为:
确定以下的参考叉积:
在所述受试者的所述每个眼球的所述参考中心点之间所形成的轴,与
所述参考头部扫描的坐标系的轴。
12.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
使用在所述受试者的所述头部上的可跟踪点,确定所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
13.根据权利要求12所述的系统,其中,为了确定所述枢轴,所述硬件处理器被编程为:
最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点之间的距离。
14.根据权利要求12所述的系统,其中,为了确定所述枢轴,所述硬件处理器被编程为:
最小化在所述受试者的所述被仿射变换的第二头部上的所述可跟踪点与所述参考头部扫描中的在所述受试者的所述头部上的所述可跟踪点周围的表面之间的距离。
15.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
使用在所述受试者的所述头部上的可跟踪点,接收所述第二头部扫描中的所述受试者的所述被仿射变换的第二头部相对于所述参考头部扫描中的所述受试者的所述头部的枢轴。
16.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
接收所述第二头部扫描中的所述受试者的所述每个眼球的平移调整、所述第二头部扫描中的所述受试者的眼球的旋转调整、或其任何组合。
17.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的装配;以及
基于所述仿射变换,生成所述受试者的所述化身的修改装配。
18.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
基于所述受试者的所述每个眼球的所述参考中心点和所述参考推断点,生成所述受试者的化身的数字表示;以及
基于所述仿射变换,生成所述受试者的所述化身的修改数字表示。
19.根据权利要求1所述的系统,其中,所述硬件处理器还被编程为:
基于所述仿射变换,将眼球适配在数字木偶中。
20.一种用于确定受试者的头部的姿势的系统,所述系统包括:
非暂时性存储器,其配置为存储:
受试者的头部的参考头部扫描;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:
接收所述受试者的所述参考头部扫描;
基于在所述参考头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一参考候选点,确定所述受试者的所述第一眼球的第一参考中心点;
基于在所述参考头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二参考候选点,确定所述受试者的所述第二眼球的第二参考中心点;
基于所述第一参考中心点和所述第二参考中心点,在所述参考头部扫描中确定参考推断点;以及
基于所述第一参考中心点、所述第二参考中心点、以及所述参考推断点,生成所述受试者的所述头部的姿势。
21.一种用于确定受试者的头部的姿势的系统,所述系统包括:
非暂时性存储器,其配置为存储:
受试者的头部的参考模型,其包括:
所述受试者的第一参考眼球模型,
所述受试者的第二参考眼球模型,以及
所述受试者的所述头部的参考推断点,以及
受试者的头部的头部扫描;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:
接收所述受试者的所述头部扫描;
基于在所述头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一候选点,确定所述受试者的所述第一眼球的第一中心点;
基于在所述头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二候选点,确定所述受试者的所述第二眼球的第二中心点;
基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及
确定从所述第一中心点、所述第二中心点和所述推断点到所述第一参考中心点、所述参考第二中心点和所述参考推断点的仿射变换,其中,所述仿射变换表示从所述头部扫描到所述头部的所述参考模型的变换。
22.一种用于对准受试者的头部扫描的方法,所述方法包括:
在硬件处理器的控制下:
接收所述受试者的参考头部扫描;
基于在参考头部扫描中的所述受试者的每个眼球的巩膜的多个参考候选点,在所述参考头部扫描中确定所述受试者的所述每个眼球的参考中心点和参考推断点;
接收所述受试者的第二头部扫描;
基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述巩膜的多个第二候选点,在所述第二头部扫描中确定所述受试者的所述每个眼球的第二中心点和第二推断点;
基于在所述第二头部扫描中的所述受试者的所述每个眼球的所述第二中心点和所述第二推断点以及在所述参考头部扫描中的对应点,确定从所述第二头部扫描到所述参考头部扫描的仿射变换;以及
对在所述第二头部扫描中的所述受试者的所述头部执行所述仿射变换,以在所述第二头部扫描中生成所述受试者的被仿射变换的头部。
23.一种用于确定受试者的头部的姿势的方法,所述方法包括:
在硬件处理器的控制下:
接收所述受试者的参考头部扫描;
基于在所述参考头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一参考候选点,确定所述受试者的所述第一眼球的第一参考中心点;
基于在所述参考头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二参考候选点,确定所述受试者的所述第二眼球的第二参考中心点;
基于所述第一参考中心点和所述第二参考中心点,在所述参考头部扫描中确定参考推断点;以及
基于所述第一参考中心点、所述第二参考中心点、以及所述参考推断点,生成所述受试者的所述头部的姿势。
24.一种用于确定受试者的头部的姿势的方法,所述方法包括:
在硬件处理器的控制下:
受试者的头部的参考模型包括:
所述受试者的所述头部的参考推断点,以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器由可执行指令编程为:
接收受试者的头部的头部扫描;
基于在所述头部扫描中的所述受试者的第一眼球的第一巩膜的多个第一候选点,确定所述受试者的所述第一眼球的第一中心点;
基于在所述头部扫描中的所述受试者的第二眼球的第二巩膜的多个第二候选点,确定所述受试者的所述第二眼球的第二中心点;
基于所述第一中心点和所述第二中心点,在所述头部扫描中确定推断点;以及
确定从所述第一中心点、所述第二中心点和所述推断点到所述头部的参考模型的第一参考中心点、所述参考模型的参考第二中心点和所述参考模型的参考推断点的仿射变换,其中,所述仿射变换表示从所述头部扫描到所述头部的所述参考模型的变换。
25.一种用于对准多个扫描的方法,每个所述扫描包括受试者的头部的至少一部分,所述方法包括:
在硬件处理器的控制下:
将受试者的多个扫描中的第一扫描和第二扫描对准,所述第一扫描和所述第二扫描各自包括所述受试者的头部的至少一部分,
其中,所述对准包括将:
(i)来自所述第一扫描的基于所述受试者的第一眼睛的第一巩膜的可见部分的第一参考点和基于所述受试者的第二眼睛的第二巩膜的可见部分的第二参考点
(ii)来自所述第二扫描的基于第一眼睛的第一巩膜的可见部分的第一参考点和基于第二眼睛的第二巩膜的可见部分的第二参考点相匹配。
26.一种用于对准多个扫描的系统,每个所述扫描包括受试者的头部的至少一部分,所述系统包括:
非暂时性存储器,其被配置为存储受试者的多个扫描,所述多个扫描中的每一个扫描包括所述受试者的头部的至少一部分;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:
对准受试者的所述多个扫描中的第一扫描和第二扫描,
其中,为了对准所述第一扫描和所述第二扫描,所述硬件处理器被编程为将:
(i)来自所述第一扫描的基于所述受试者的第一眼睛的第一巩膜的可见部分的第一参考点和基于所述受试者的第二眼睛的第二巩膜的可见部分的第二参考点
(ii)来自所述第二扫描的基于第一眼睛的第一巩膜的可见部分的第一参考点和基于第二眼睛的第二巩膜的可见部分的第二参考点相匹配。
27.一种用于对准多个扫描的方法,每个所述扫描包括受试者的头部,所述方法包括:
在硬件处理器的控制下:
将来自所述多个扫描中的第一扫描的第一眼睛的巩膜与来自所述多个扫描中的第二扫描的所述第一眼睛的巩膜对准;以及
将来自所述多个扫描中的所述第一扫描的第二眼睛的巩膜与来自所述多个扫描中的所述第二扫描的所述第二眼睛的巩膜对准。
28.一种用于对准多个扫描的系统,每个所述扫描包括受试者的头部,所述系统包括:
非暂时性存储器,其被配置为存储包括受试者的头部的多个扫描;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:
将来自所述多个扫描中的第一扫描的第一眼睛的巩膜与来自所述多个扫描中的第二扫描的所述第一眼睛的巩膜对准;以及
将来自所述多个扫描中的所述第一扫描的第二眼睛的巩膜与来自所述多个扫描中的所述第二扫描的所述第二眼睛的巩膜对准。
29.一种用于对准多个扫描的方法,每个所述扫描包括头部,所述方法包括:
将(i)来自所述多个扫描中的第一扫描的第一左眼、第一右眼、以及基于所述第一左眼和所述第一右眼的第一推断第三点与(ii)来自所述多个扫描中的第二扫描的第二左眼、第二右眼、以及基于所述第二左眼和所述第二右眼的第二推断第三点对准。
30.一种用于对准多个扫描的系统,每个所述扫描包括头部,所述系统包括:
非暂时性存储器,其被配置为存储包括受试者的头部的多个扫描;以及
与所述非暂时性存储器通信的硬件处理器,所述硬件处理器被编程为:
将(i)来自所述多个扫描中的第一扫描的第一左眼、第一右眼、以及基于所述第一左眼和所述第一右眼的第一推断第三点与(ii)来自所述多个扫描中的第二扫描的第二左眼、第二右眼、以及基于所述第二左眼和所述第二右眼的第二推断第三点对准。
CN201980022921.9A 2018-02-28 2019-02-20 使用眼部配准的头部扫描对准 Pending CN111936912A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862636695P 2018-02-28 2018-02-28
US62/636,695 2018-02-28
PCT/US2019/018815 WO2019168723A1 (en) 2018-02-28 2019-02-20 Head scan alignment using ocular registration

Publications (1)

Publication Number Publication Date
CN111936912A true CN111936912A (zh) 2020-11-13

Family

ID=67685774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980022921.9A Pending CN111936912A (zh) 2018-02-28 2019-02-20 使用眼部配准的头部扫描对准

Country Status (7)

Country Link
US (1) US11275433B2 (zh)
EP (1) EP3759542B1 (zh)
JP (1) JP7355748B2 (zh)
CN (1) CN111936912A (zh)
AU (1) AU2019228458A1 (zh)
CA (1) CA3089645A1 (zh)
WO (1) WO2019168723A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111936912A (zh) 2018-02-28 2020-11-13 奇跃公司 使用眼部配准的头部扫描对准
GB2575509A (en) * 2018-07-13 2020-01-15 Nokia Technologies Oy Spatial audio capture, transmission and reproduction
GB2575511A (en) * 2018-07-13 2020-01-15 Nokia Technologies Oy Spatial audio Augmentation
US20220237849A1 (en) * 2019-06-28 2022-07-28 Tobii Ab Method and system for reducing processor load in a computer
US11467668B2 (en) * 2019-10-21 2022-10-11 Neosensory, Inc. System and method for representing virtual object information with haptic stimulation
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
US20230063681A1 (en) * 2021-08-25 2023-03-02 Sony Interactive Entertainment Inc. Dynamic augmentation of stimuli based on profile of user
US11995240B2 (en) 2021-11-16 2024-05-28 Neosensory, Inc. Method and system for conveying digital texture information to a user

Family Cites Families (38)

* 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
US6433760B1 (en) * 1999-01-14 2002-08-13 University Of Central Florida Head mounted display with eyetracking capability
US7020305B2 (en) 2000-12-06 2006-03-28 Microsoft Corporation System and method providing improved head motion estimations for animation
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
JP2007133449A (ja) * 2005-11-07 2007-05-31 Advanced Telecommunication Research Institute International 顔画像駆動装置、顔画像駆動装置用データ生成装置、及びコンピュータプログラム
US8872832B2 (en) 2008-12-18 2014-10-28 Digital Domain 3.0, Inc. System and method for mesh stabilization of facial motion capture data
US8957948B2 (en) 2010-08-24 2015-02-17 Siemens Corporation Geometric calibration of head-worn multi-camera eye tracking system
US9304319B2 (en) 2010-11-18 2016-04-05 Microsoft Technology Licensing, Llc Automatic focus improvement for augmented reality displays
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
WO2012088478A1 (en) 2010-12-24 2012-06-28 Chunyu Gao An ergonomic head mounted display device and optical system
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
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
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. 表示システムおよび方法
US9874749B2 (en) 2013-11-27 2018-01-23 Magic Leap, Inc. Virtual and augmented reality systems and methods
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
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
WO2015117043A1 (en) 2014-01-31 2015-08-06 Magic Leap, Inc. Multi-focal display system and method
JP6525436B2 (ja) 2014-01-31 2019-06-05 マジック リープ, インコーポレイテッドMagic Leap,Inc. 多焦点表示システムおよび方法
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
US9864430B2 (en) 2015-01-09 2018-01-09 Microsoft Technology Licensing, Llc Gaze tracking via eye gaze model
JP6536324B2 (ja) * 2015-09-30 2019-07-03 富士通株式会社 視線検出システム、視線検出方法および視線検出プログラム
CN105913487B (zh) * 2016-04-09 2018-07-06 北京航空航天大学 一种基于人眼图像中虹膜轮廓分析匹配的视线方向计算方法
US9959455B2 (en) 2016-06-30 2018-05-01 The United States Of America As Represented By The Secretary Of The Army System and method for face recognition using three dimensions
JP6223614B1 (ja) * 2017-03-24 2017-11-01 株式会社コロプラ 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置
CN111936912A (zh) 2018-02-28 2020-11-13 奇跃公司 使用眼部配准的头部扫描对准

Also Published As

Publication number Publication date
EP3759542A1 (en) 2021-01-06
EP3759542A4 (en) 2021-12-01
JP7355748B2 (ja) 2023-10-03
US20190265783A1 (en) 2019-08-29
AU2019228458A1 (en) 2020-08-06
EP3759542B1 (en) 2023-03-29
US11275433B2 (en) 2022-03-15
WO2019168723A1 (en) 2019-09-06
CA3089645A1 (en) 2019-09-06
JP2021515316A (ja) 2021-06-17

Similar Documents

Publication Publication Date Title
US11682155B2 (en) Skeletal systems for animating virtual avatars
US11308673B2 (en) Using three-dimensional scans of a physical subject to determine positions and/or orientations of skeletal joints in the rigging for a virtual character
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
US11275433B2 (en) Head scan alignment using ocular registration
JP2024069598A (ja) 仮想キャラクタの姿勢空間変形のための姿勢空間次元低減
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