CN116686006A - 基于可变形模型的三维扫描配准 - Google Patents

基于可变形模型的三维扫描配准 Download PDF

Info

Publication number
CN116686006A
CN116686006A CN202180088752.6A CN202180088752A CN116686006A CN 116686006 A CN116686006 A CN 116686006A CN 202180088752 A CN202180088752 A CN 202180088752A CN 116686006 A CN116686006 A CN 116686006A
Authority
CN
China
Prior art keywords
different
mesh
model
parameters
mesh model
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
CN202180088752.6A
Other languages
English (en)
Inventor
S·苏纳尔约
G·戴恩
A·阿里
U·马赫布卜
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN116686006A publication Critical patent/CN116686006A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • 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/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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
    • 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/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

提供了用于将三维(3D)图像配准到可变形模型的系统和技术。示例方法可以包括基于目标的图像和相关联的深度信息来确定目标的3D网格;基于对所述3D网格的旋转和平移参数的修改来确定旋转和平移参数的不同集合;基于旋转和平移参数的不同集合,生成具有相对于目标的不同方向、不同姿态和/或不同对准的不同3D网格;基于对所述旋转和平移参数的不同集合的修改来确定与所述不同3D网格相关联的模型参数的不同集合;基于所述模型参数的不同集合,生成具有相对于所述目标的不同方向、不同姿态和/或不同对准的不同附加3D网格;以及从不同的附加3D网格中选择目标的最终3D网格。

Description

基于可变形模型的三维扫描配准
技术领域
本公开一般涉及图像处理,更具体地说,涉及用于将可变形模型拟合到捕获的图像数据的技术和系统。
背景技术
许多设备和系统能够生成捕获场景、物体、人和形状等的图像(或帧)和/或视频数据(包括多个帧)。例如,相机或包括相机的计算设备(例如,诸如移动电话的移动设备或包括一个或多个相机的智能设备)可以捕获场景、人和/或物体的图像。图像可以由这样的设备和系统捕获和处理,并输出以供消费(例如,显示在设备上)。在一些情况下,图像可以被捕获并进一步处理用于某些应用,例如,计算机图形学、扩展现实(例如,增强现实、虚拟现实等)、图像识别(例如,形状识别、物体识别、场景识别等)和特征估计等。例如,可以处理图像以检测图像中存在的任何物体或面部(例如,使用面部或物体识别等),这对于各种应用都是有用的。
一些具有相机或成像功能的设备和系统也能够捕获与捕获的图像或视频数据相关联的深度信息。例如,各种三维(3D)扫描仪和多摄像机系统能够捕获物体、人和形状的3D表面(例如,3D深度、形状、纹理等)。在某些情况下,收集的3D数据可用于构建目标(例如,物体、人、形状等)的3D模型。3D模型和/或收集的3D图像数据可用于各种应用,例如多媒体(例如,电影、视频游戏、扩展现实等)、计算机视觉(例如,运动跟踪、形状建模、物体映射、图像识别、姿态估计、图像配准和扭曲、场景重建、图像分割、动画等)、机器人和自动化、工业设计和医疗保健等。基于捕获的3D图像数据的3D建模可能是具有挑战性的,特别是当对可变形形状(例如,可以随时间变化的形状)进行建模时,或者当3D图像数据可以在大小上变化和/或任意大小时。此外,3D建模技术通常是不准确和不一致的,并且难以处理3D数据中的噪声、模糊性和变化。
发明内容
在一些示例中,描述了通过将可变形模型拟合到3D图像数据来进行三维(3D)图像配准的技术和系统。根据至少一个说明性示例,提供了一种利用可变形模型进行3D图像配准的方法。在一些示例中,该方法可以包括基于目标的图像和与该图像相关联的深度信息来确定目标的三维(3D)网格模型;基于与3D网格模型和/或3D网格模型的不同实例相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及从修改的3D网格模型集合中选择目标的最终3D网格模型。
根据至少一个说明性示例,提供了一种用于与可变形模型进行3D图像配准的非暂时性计算机可读介质。在一些方面中,非暂时性计算机可读介质可以包括指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器基于目标的图像和与所述图像相关联的深度信息来确定所述目标的三维(3D)网格模型;基于与3D网格模型和/或3D网格模型的不同实例相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;并且从修改的3D网格模型的集合中选择目标的最终3D网格模型。
根据至少一个说明性示例,提供了一种用于与可变形模型进行3D图像配准的装置。在一些方面中,所述装置可以包括其上存储有计算机可读指令的存储器和一个或多个处理器,所述一个或多个处理器被配置为基于目标的图像和与所述图像相关联的深度信息来确定所述目标的三维(3D)网格模型;基于与3D网格模型和/或3D网格模型的不同实例相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;并且从修改的3D网格模型的集合中选择目标的最终3D网格模型。
根据另一个说明性示例,用于与可变形模型进行3D图像配准的装置可以包括用于基于目标的图像和与该图像相关联的深度信息来确定目标的三维(3D)网格模型的单元;基于与3D网格模型和/或3D网格模型的不同实例相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合的单元;以及用于从修改的3D网格模型的集合中选择目标的最终3D网格模型的单元。
在一些方面,上述方法、装置和计算机可读介质可包括基于来自一个或多个估计损失的估计损失和/或对来自多个旋转和平移参数的旋转和平移参数的修改来确定不同的调整后的旋转和平移参数集合,所述旋转和平移参数对应于所述3D网格模型;以及基于调整后的旋转和平移参数的不同集合生成不同的3D网格模型,其中不同的3D模型可以包括3D网格模型的不同实例,并且不同的3D网格模型可以具有相对于图像中的目标的不同方向、不同姿态和/或不同对准。
在一些方面,上述方法、装置和计算机可读介质可包括确定与不同3D网格模型相关联的不同模型参数集合,不同模型参数集合基于对不同调整的旋转和平移参数集合的修改。在一些示例中,可以基于与不同的3D网格模型相关联的模型参数的不同集合来生成修改的3D网格模型的集合。
在一些示例中,可以通过为与图像和深度信息相关联的3D点云中的每个顶点确定3D点云中每个顶点到由3D网格模型形成的表面的最短距离来确定来自一个或多个估计损失的估计损失;基于3D点云中每个顶点的最短距离的平均值来确定扫描到网格的距离;对于所述3D网格模型中的每个顶点,确定所述3D网格模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及基于3D网格模型中每个顶点的最短距离的平均值来确定网格到扫描的距离。
在一些方面,上述方法、装置和计算机可读介质可包括:基于调整后的旋转和平移参数的不同集合,确定3D网格模型的不同方向、3D网格模型的不同姿态和/或3D网格模型相对于图像中目标的不同对准;以及生成所述不同的3D网格模型,所述不同的3D网格模型中的每个包括来自不同方向的不同方向、来自不同姿态的不同姿态和/或来自不同对准的不同对准。
在一些示例中,修改的3D网格模型集合是基于与3D网格模型的不同实例相关联的不同模型参数集合生成的,并且来自不同模型参数集合的每个模型参数集合可以包括不同的旋转参数、不同的平移参数、不同的姿态参数和/或不同的形状参数。在一些情况下,可以基于针对来自与3D网格模型相关联的调整的旋转和平移参数的不同集合的调整的转动和平移参数集合计算的一个或多个估计损失中的估计损失来确定不同模型参数集合的每个模型参数集合。在一些示例中,调整的旋转和平移参数的不同集合可以基于对3D网格模型的旋转和平移参数的修改。
在某些情况下,估计损失可以基于为3D网格模型的不同实例的相应3D网格模型计算的扫描到网格距离、为相应3D网格模型计算的网格到扫描距离、物理约束损失、姿态先验损失、姿态正则化损失和/或形状正则化损失。在一些情况下,扫描到网格的距离可以包括基于与图像和深度信息相关联的3D点云中的每个顶点到由相应的3D网格模型形成的第一表面的最短距离来确定的第一平均距离,并且网格到扫描的距离可以包括基于各个3D网格模型中的每个顶点到由3D点云形成的第二表面的最短距离来确定的第二平均距离。
在一些情况下,可以基于一系列姿态参数和/或形状参数来确定物理约束损失,并且姿态正则化损失和/或形状正则化损失可以与姿态参数和/或形状参数的大小成比例。在一些情况下,姿态先验损失可以基于指示姿态的可能性的概率得分。
在一些示例中,最终3D网格模型是基于与图像和深度信息相关联的3D点云与修改的3D网格模型集合中的每个特定3D网格模型之间的相应距离来选择的。在一些情况下,各个距离可以包括各个扫描到网格的距离,其中各个扫描到网络的距离包括基于3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离而确定的平均距离,并且最终3D网格模型包括具有最短扫描到网络距离的特定3D网格模型。
在一些示例中,图像和深度信息可以包括3D图像和/或3D扫描,最终3D网格模型可以包括可变形模型,并且目标可以包括可形变物体和/或可变形体。
在一些示例中,选择最终的3D网格模型可以包括将最终的3D网格模型与图像和深度信息中的3D点云对齐和/或拟合,该3D点云对应于目标。
在一些方面,上述方法、装置和计算机可读介质可以包括生成3D网格模型的不同实例,其中多个旋转和平移参数对应于3D网格模型中的不同实例,并且基于对3D网格模型的不同实例的多个旋转和平移参数的修改来生成修改的3D网格模型集合。
在一些方面,装置可以是以下各项或者是以下各项的一部分:相机(例如,IP相机)、移动设备(例如,移动电话或所谓的“智能手机”或其他移动设备)、智能可穿戴设备、扩展现实设备(例如虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机、3D扫描仪、多摄像头系统或其他设备。在一些方面中,该装置包括用于捕获一个或多个图像的一个相机或多个相机。在一些方面,该装置还包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面中,上述装置可以包括一个或多个传感器。
本概述不旨在识别所要求保护的主题的关键或基本特征,也不旨在单独用于确定所要求保护主题的范围。本主题应通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解。
通过参考以下说明书、权利要求和附图,上述内容以及其他特征和实施例将变得更加明显。
附图说明
下面参照附图详细描述本申请的说明性实施例:
图1是示出根据本公开的一些示例的示例图像处理系统的简化框图;
图2是示出根据本公开的一些示例的用于将三维(3D)图像数据配准到3D网格中的示例配准过程的图;
图3A和3B是示出根据本公开的一些示例的用于在配准过程中执行多阶段优化的示例优化系统的图;
图4是示出根据本公开的一些示例的、在来自配准过程的第一优化阶段的全局平移和旋转参数的初始估计之后生成的手网格模型的多个示例实例的图;
图5示出了根据本公开的一些示例的用于将3D图像数据配准到3D网格中的另一示例配准过程;
图6是示出根据本公开的一些示例的配准过程的高级示例的图;
图7是示出根据本公开的一些示例的3D扫描物体的示例和对应的配准的图;
图8A和8B是示出根据本公开的一些示例的用于与可变形模型进行3D图像配准的示例方法的流程图;以及
图9是示出用于实现本文所描述的某些方面的示例系统架构的图。
具体实施方式
以下提供了本公开的某些方面和实施例。这些方面和实施例中的一些可以独立应用,并且其中一些可以组合应用,这对本领域技术人员来说是显而易见的。在以下描述中,出于解释的目的,给出了具体细节,以提供对本申请实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。这些数字和描述并不具有限制性。
随后的描述仅提供了示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能描述。应当理解,在不偏离所附权利要求中所陈述的本申请的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
如前所述,一些具有相机和/或成像功能的设备和系统能够捕获图像数据和与图像数据相关联的深度信息。例如,三维(3D)扫描仪和某些多摄像机系统能够捕获3D图像或扫描。3D图像或扫描可以捕获物体、人和形状的3D表面(例如,3D深度、形状、纹理等)。在某些情况下,收集的3D数据可用于构建目标(例如,物体、人、形状等)的3D模型。3D模型和/或收集的3D图像数据可用于各种应用,例如多媒体(例如,电影、视频游戏、扩展现实等),计算机视觉(例如,运动跟踪、形状建模、物体映射、图像识别、姿态估计、图像配准和扭曲、场景重建、图像分割、动画等)、机器人和自动化、工业设计和医疗保健等。
基于捕获的3D图像数据的3D建模可能具有挑战性,特别是当对可变形物体建模时,或者当3D图像数据可以在大小上变化和/或具有任意大小时。可变形物体可以包括具有关节的非刚性物体(例如,关节、可以相对于其他部件移动的部件等)和/或在任何组件之间具有独立自由度的部件。例如,可变形物体可以包括具有网格结构的非刚性物体,其中底层骨架或框架可以关节连接,例如身体或操纵机器人。可变形物体可以使用可变形模型进行建模。在一些示例中,可变形模型可以包括输出固定大小的有序网格的参数化模型。模型的输入参数可以控制网格的姿态和形状。
将3D图像数据(如原始3D点云或扫描)与3D可变形物体模型配准可能非常困难。例如,基于3D图像数据拟合参数化的、可变形的模型(例如3D点云扫描(例如,由捕获系统捕获的任意大小、无序的顶点集合)),可能是一个具有挑战性的过程,该过程用于将捕获的3D图像数据配准到精确和/或定义良好的网格中。拟合过程可能受到各种因素的影响,例如,3D图像数据中的噪声、可能导致模型和3D图像数据之间未对准的对准模糊性、3D图像数据(和/或3D图像数据捕获的目标)中较差的表面纹理、待建模的目标的姿态和形状的大变化、3D图像数据中的顶点的大小的变化和/或不可预测性等因素。形成数据集以训练和基准测试用于基于视觉输入(例如,3D图像数据)估计可变形输出的算法也可能是复杂的,并且可能增加基于3D图像数据精确拟合可变形模型的难度。
上述各种因素可能导致和/或加剧模型对准中的局部极小值问题。例如,拟合过程可能陷入局部极小值和/或难以找到全局极小值。在优化之前实现模型参数的随机初始化在解决对准中的局部最小值问题时通常是无效的。在许多情况下,当对准模型接近和/或部分对准3D图像数据时,实例化多个中间初始化更有效。
根据一些示例,本文描述的技术和系统可以提供多阶段优化过程,以使参数化模型变形并输出最佳拟合网格。例如,用于拟合参数化的可变形模型的过程可以包括多阶段优化过程,以使参数化模型变形并基于预定损失函数输出最适合输入数据的3D网格。在一些示例中,多级优化过程的第一阶段可以优化全局旋转和平移参数。在某些情况下,多级优化过程的第一阶段可以保持其他模型参数不变。在第一阶段之后,可以操纵模型参数以创建多个模型实例(例如,不同的网格实例和/或配准)。在一些示例中,每个模型实例可以具有不同的参数集。每个模型实例中的参数可以通过第二优化阶段进行优化。然后可以从优化的实例中选择最终或输出网格实例。例如,相对于3D图像数据具有最小损失的最终网格实例可以从与多个实例相关联的不同的优化配准中选择。
在某些情况下,选择的最终网格实例可以是与3D图像数据具有最小距离的网格实例。例如,可以基于扫描到网格的距离和/或网格到扫描的距离来选择最终网格实例。扫描到网格的距离可以包括与3D图像数据相关联的点云中的每个顶点(例如,3D点云扫描)与由算法估计的网格形成的表面之间的距离。网格到扫描的距离可以包括由算法估计的网格中的每个顶点与由与3D图像数据相关联的点云(例如,3D点云扫描)形成的表面之间的距离。在一些示例中,由拟合过程(例如,多阶段优化过程)实现的损失函数可以包括和/或可以基于扫描到网格的距离、网格到扫描的距离、姿态正则化(例如,强制更准确和/或更真实的姿态参数的范数正则化损失),和/或形状正则化(例如强制更精确和/或更真实的形状参数的范数正则化损失)。在一些情况下,损失函数可以可选地包括姿态先验损失,其惩罚被确定为不太可能的姿态(例如,具有低概率的姿态)
在一些示例中,本文描述的技术可以有效地应用于具有复杂关节的3D图像数据捕获对象,例如身体(例如,人体或动物体)、身体部位(例如,头部、手、腿、手臂等)、关节机器人或物体等。本文描述的技术可以适用于任何参数化模型,并且可以应用于来自任何捕获设备的任意大小的图像数据(例如,点云)。在某些情况下,在设计实例化时可以使用特定应用程序领域中的先验知识。损失函数可以对3D图像数据中的噪声和/或遮挡是鲁棒的。在一些示例中,本文描述的技术可能不需要从大的带注释的数据集学习。然而,这样的数据集可以在某些实现中使用。例如,这样的数据集可以用于选择性地实现姿态先验损失。在某些情况下,在设计实例和损失时,可以针对特定应用中的对象姿态(例如,人体或动物体、身体部位、物体等的关节旋转限制和运动限制)导出并合并额外的物理约束。
图1至图9示出了本文中描述的用于与可变形模型进行3D图像配准的系统和技术的示例,并在下文中进行了描述。图1是示出示例性图像处理系统100的图。图像处理系统100可以执行与可变形模型的3D图像配准,如本文中进一步描述的。此外,图像处理系统100可以执行各种图像处理任务、效果、计算等,例如,生成色度键控效果、扩展现实效果、图像配准和扭曲、运动跟踪、姿态估计、物体映射、特征提取、图像识别(例如,人脸识别、表情识别、性别识别、眼睛凝视识别、年龄估计、种族估计、物体识别等)、跟踪、自动化、机器视觉、物体建模和配准,和/或任何其他图像处理任务、效果和/或计算。
在一些说明性示例中,图像处理系统100可以执行与可变形模型的3D图像配准。图像处理系统100可以生成在3D图像数据(例如,RGB-D图像、3D扫描)中捕获的可变形物体的3D网格模型,优化模型参数(例如,旋转参数、平移参数、姿态参数和/或形状参数),生成3D模型的不同实例(例如,转动和/或操纵实例),优化与3D模型的不同实例相关联的模型参数以及为3D图像数据中捕获的可变形物体选择3D模型的实例。在一些示例中,图像处理系统100可以实现如本文进一步描述的多阶段优化和配准过程。
在图1所示的示例中,图像处理系统100包括相机系统102、存储器106、计算组件110、图像处理引擎120、建模引擎122和渲染引擎124。图像处理系统100还可以可选地包括一个或多个附加传感器104,例如图像传感器、雷达传感器、光探测和测距(LIDAR)传感器、红外(IR)传感器等。
图像处理系统100可以是计算设备或多个计算设备的一部分。在一些示例中,图像处理系统100可以是诸如相机系统(例如,数码相机、IP相机、视频相机、安全相机等)、电话系统(例如智能手机、蜂窝电话、会议系统等)、台式计算机、XR设备(例如,头戴式显示器等)、智能可穿戴设备(例如,智能手表、智能眼镜等)、膝上型计算机或笔记本电脑、平板电脑、机顶盒、电视、显示设备、数字媒体播放器、游戏控制台、视频流设备、无人机、车内计算机、物联网(IoT)设备或任何其他合适的电子设备的电子设备的一部分。
在一些实现中,相机系统102、传感器104、存储器106、计算组件110、图像处理引擎120、建模引擎122和渲染引擎124可以是同一计算设备的一部分。例如,在一些情况下,相机系统102、传感器104、存储器106、计算组件110、图像处理引擎120、建模引擎122和渲染引擎124可以集成到智能手机、膝上型电脑、平板电脑、智能穿戴设备、游戏系统、服务器和/或任何其他计算设备中。然而,在一些实现中,相机系统102、传感器104、存储器106、计算组件110、图像处理引擎120、建模引擎122和/或渲染引擎124可以是两个或多个单独的计算设备的一部分。
相机系统102可以包括一个或多个能够捕获图像和相关联的深度信息的图像传感器。例如,相机系统102可以包括能够捕获RGB-D图像和/或3D扫描的一个或多个图像传感器。在一些示例中,相机系统102可以包括一个或多个3D扫描仪。在一些示例中,相机系统102可以包括一个或多个相机设备。在一些情况下,相机系统102可以捕获多视图图像数据。在一些示例中,相机系统102可以包括多相机系统或扫描仪。
在某些情况下,相机系统102可以包括一个或多个图像传感器(或图像捕获设备)。一个或多个图像传感器可以是任何类型的图像传感器(或图像捕获设备)和/或视频传感器(或视频捕获设备)。例如,相机系统102可以包括数字相机传感器、视频相机传感器、智能手机相机传感器、作为电子装置(例如,电视、计算机、相机等)的一部分被包括的图像/视频捕获设备。在某些情况下,相机系统102可以是相机或计算设备的一部分,例如数字相机、视频相机、IP相机、智能手机、智能电视、游戏系统、扫描仪、多摄像头系统或其他计算设备。相机系统102可以捕获3D图像数据和/或视频内容(例如,原始图像和/或音频数据)。如本文所述,3D图像数据和/或视频内容可以由计算组件110、图像处理引擎120、建模引擎122和/或渲染引擎124来处理。
其他传感器104可以是用于检测和测量诸如距离、运动、位置、深度、速度等信息的任何传感器。其他传感器104的非限制性示例包括LIDAR、陀螺仪、加速度计、磁力计、IR传感器、惯性测量单元(IMU)、雷达传感器、机器视觉传感器等。在某些情况下,图像处理系统100可以包括其他传感器,例如智能场景传感器、语音识别传感器、冲击传感器、位置传感器、倾斜传感器、光传感器等。
存储器106可以是用于存储数据的任何存储设备,例如图像或视频数据。此外,存储器106可以存储来自图像处理系统100的任何组件的数据。例如,存储器106可以存储来自相机系统102、其他传感器104、计算组件110的数据或测量(例如,处理参数、输出、生成的图像、计算结果、模型等)、和/或来自图像处理引擎120、建模引擎122、和/或渲染引擎124(例如,输出图像、处理结果、模型等)的数据。在一些示例中,存储器106可以包括用于存储由计算组件110处理的数据(例如,图像数据)的缓存器。
在一些实现中,计算组件110可以包括中央处理单元(CPU)112、图形处理单元(GPU)114、数字信号处理器(DSP)116和/或图像信号处理器(ISP)118。计算组件110可以执行各种操作,例如图像增强、物体或图像分割、计算机视觉、图形渲染、增强现实、图像/视频处理、传感器处理、识别(例如,文本识别、对象识别、特征识别、人脸识别、面部表情识别、眼睛凝视识别、年龄识别、性别识别、种族识别、跟踪或模式识别、场景变化识别等)、视差检测、机器学习、过滤、人脸增强、人脸分析、面部渲染,以及本文所描述的各种操作中的任何一种。在一些示例中,计算组件110可以实现图像处理引擎120、建模引擎122和渲染引擎124。在其他示例中,计算组件110还可以实现一个或多个其他处理引擎。
此外,图像处理引擎120、建模引擎122和渲染引擎124的操作可以由一个或多个计算组件110实现。在一个说明性示例中,图像处理引擎120和建模引擎122(以及相关联的操作)可以由CPU 112、DSP 116和/或ISP 118来实现,并且渲染引擎124(以及相关联的操作)能够由GPU 114来实现。在一些情况下,计算组件110可以包括其他电子电路或硬件、计算机软件、固件或其任何组合,以执行本文所述的各种操作中的任何操作。
在一些情况下,计算组件110可以接收由相机系统102捕获的数据(例如,图像数据、视频数据等),并生成、优化3D网格模型并将其拟合到数据中。例如,计算组件110可以接收由相机系统102捕获的3D图像数据,检测3D图像数据中的可变形物体,生成可变形物体的3D网格模型,优化3D网格模型的参数,生成3D网格模型的不同实例,优化3D网络模型的不同实例的参数,生成额外的3D网格模型实例,优化所述额外的3D模型实例的参数,并选择3D网格模型实例作为所述可变形物体的最终网格模型。图像(或帧)可以包括每像素具有红色、绿色和蓝色分量的红-绿-蓝(RGB)图像或帧;每像素具有亮度分量和两个色度(颜色)分量(色度红和色度蓝)的亮度、色度红、色度蓝(YCbCr)图像或帧;或任何其他合适类型的彩色或单色图片。图像还可以包括RGB深度(RGB-D)图像或3D扫描图像。
计算组件110可以实现图像处理引擎120和建模引擎122,以执行各种图像处理操作,例如物体建模、模型优化、将网格模型拟合到3D图像数据、物体跟踪、XR渲染等。例如,计算组件110可以实现图像处理引擎120和建模引擎122以执行与可变形模型的3D图像配准,如本文进一步描述的。计算组件110可以处理由相机系统102和/或其他传感器104捕获的图像数据、存储在存储器106中的图像数据、从远程源(例如,远程相机、服务器、内容提供商、其任何组合和/或其他远程源)接收的图像数据、从源的组合获得的图像数据、其任何组合和/或其他图像数据。
在一些示例中,建模引擎122可以包括(例如,可以实现、可以包含等)一个或多个模型。例如,在一些情况下,建模引擎122可以包括一个或多个蒙皮模型,如本文中进一步描述的。在一些情况下,建模引擎122可以包括优化系统,如本文所述。在一些示例中,建模引擎122可以实现任何其他模型,例如任何类型的统计模型、神经网络模型等。
在一些示例中,渲染引擎124可以从计算组件110接收输出图像数据,并渲染输出图像数据以用于在显示设备(例如,屏幕/显示器、电视、投影仪等)上呈现。在某些示例中,渲染引擎124可以从图像处理引擎120和/或建模引擎122接收生成的图像和/或网格模型,并且渲染图像和/或者网格模型。
虽然图像处理系统100被显示为包括某些组件,但本领域的普通技术人员将理解,图像处理系统100可以包括比图1中所示的组件更多或更少的组件。例如,在一些情况下,图像处理系统100还可以包括一个或多个存储器设备(例如,RAM、ROM、高速缓存等)、一个或多个网络接口(例如,有线和/或无线通信接口等)、一个或多个显示设备和/或图1中未示出的其他硬件或处理设备。下面参照图9描述可以用图像处理系统100实现的计算设备和硬件组件的说明性示例。
图2是示出用于将3D图像数据配准到3D网格中的示例配准过程200的图。3D图像数据可以包括图像数据和与由3D图像数据捕获的可变形物体相对应的相关联的深度信息。可变形物体可以包括非刚性系统(例如,非刚性物体、身体部位、物体等),其结构可以铰接(例如,移动、旋转等)。例如,可变形物体可包括铰接物体。关节式物体可以包括至少两个组件,其中任何一个组件之间最多有六个自由度。为了说明,关节式物体可以包括具有一个或多个连接或关节(或关节表面)的结构,该一个或多个连接或关节允许该结构的一个或多个部件(例如,部件、部分、子结构等)相对于该结构的不同部件移动和/或在该结构的任何部件之间提供一定的移动自由度(例如,旋转、平移等)。可变形物体的非限制性示例可以包括人、动物、身体部位、某些工具、操纵机器人等。
3D网格可以包括由3D图像数据捕获的可变形对象的可变形模型。可变形模型可以包括参数化模型,该参数化模型基于控制网格的一个或多个方面(例如网格的姿态和网格的形状)的输入参数来输出固定大小的有序网格。在一些示例中,可变形模型(例如,3D网格)可以具有固定的、有限数量的参数,这些参数描述网格的关节、网格的方向、网格的平移以及网格的3D坐标。
3D图像数据可以由一个或多个捕获设备捕获,该捕获设备被配置为捕获图像数据和相关联的深度信息。例如,3D图像数据可以由图1中所示的照相机系统102捕获。3D图像数据可以包括例如红-绿-蓝(RGB)深度(RGB-D)图像、3D扫描、与RGB-D图像或3D扫描相关联的3D点云等。
配准过程200可以将参数化的可变形模型(例如,3D网格)拟合到3D图像数据。在一些示例中,配准过程200可以执行拟合和优化以将3D网格配准或对准到3D图像数据。如示例配准过程200中所示,图像处理系统100可以使用初始模型参数202来执行第一优化阶段204,以初始化3D网格并优化模型参数。为了执行第一优化阶段204,图像处理系统100实现优化系统,如图3A和3B所示并且在下文中进一步描述。
初始模型参数202可以包括3D网格的旋转参数、平移参数、形状参数和姿态参数。在第一优化阶段204,图像处理系统100可以使用初始模型参数202来生成表示在3D图像数据中捕获的可变形对象的3D网格。在第一优化阶段204,图像处理系统100然后可以优化与3D网格相关联的旋转和平移参数。在一些情况下,第一优化阶段204可以优化全局旋转和平移参数,但保持其他模型参数不变。
第一优化阶段204可以基于损失函数和3D图像数据来优化旋转和平移参数。下面参照图3A和3B进一步描述包括损失函数的第一优化阶段204。
在优化阶段204之后,图像处理系统100可以旋转先前生成的3D网格,以生成具有不同旋转和/或平移参数的不同网格实例210、212、214。图像处理系统100可以基于模型参数生成网格实例210、212、214,该模型参数包括相应的优化参数。在一些示例中,图像处理系统100可以以不同的方式操纵3D网格,以生成具有不同姿态的网格实例(例如,网格实例210、212、214)。
图像处理系统100可以将第二优化阶段220应用于网格实例210,以基于网格实例210生成网格结果230。在第二优化阶段220,图像处理系统100可以优化网格实例210的模型参数中的至少一些。例如,图像处理系统100可以优化网格实例210的旋转和平移参数。在一些情况下,在第二优化阶段220,图像处理系统100还可以优化其他模型参数,例如姿态和/或形状参数。图像处理系统100可以基于损失函数和3D图像数据来优化模型参数。下面参照图3A和3B进一步描述包括损失函数的第二优化阶段220。
在一些示例中,网格结果230可以具有相对于网格实例210的修改的姿态和/或相对于网格实例210与3D图像数据的对准的与3D图像的修改的对准。当为3D图像数据选择最终网格时,图像处理系统100可以使用网格结果230作为候选网格。
图像处理系统100可以将优化阶段222应用于网格实例212,并将优化阶段224应用于网格示例214。优化阶段222可以包括第一优化阶段和第二优化阶段,如前所述。类似地,优化阶段224可以包括第一优化阶段和第二优化阶段。图像处理系统100可以将第一优化阶段应用于网格实例212和网格实例214,以更好地对准和/或以其他方式操纵(例如,调整姿态等)网格实例212与网格实例214。图像处理系统100可以将第二优化阶段应用于网格实例212和网格实例214,以再次优化它们各自的模型参数并生成网格实例212与网格实例214的网格结果。
在优化阶段222和224之后,图像处理系统100可以生成或输出网格实例212的网格结果232和网格实例214的网格结果234。网格结果232和网格结果234可以用作最终网格的附加候选。图像处理系统100可以基于网格结果230、网格结果232和网格结果234来选择最终网格240。
为了选择最终网格240,图像处理系统100可以为每个网格结果计算网格结果与3D图像数据之间的距离,并选择具有最小距离的网格结果。例如,在一些情况下,图像处理系统100可以计算网格结果230、网格结果232和网格结果234的扫描到网格的距离。图像处理系统100然后可以选择具有最小距离或最小平均距离的网格结果作为最终网格240。
在一些示例中,为了计算网格实例的扫描到网格的距离,图像处理系统100可以针对3D图像数据中的每个顶点或点(例如,与3D图像数据相关联的3D点云中的每个顶点)计算到由网格实例的顶点形成的表面的最短距离,并对3D图像数据中的所有顶点或点的计算距离进行平均,以生成扫描到网格的距离。图像处理系统100然后可以将针对网格结果230、网格结果232和网格结果234的计算的扫描到网格距离进行比较,并选择具有最短距离的网格结果作为最终网格240。图像处理系统100可以基于所选择的最终网格240来确定最终模型参数250。
在一些示例中,图像处理系统100可以基于以下等式1计算扫描到网格的距离(例如,扫描顶点到网格表面的距离):
其中S表示扫描顶点(例如,3D图像数据的顶点),β表示形状参数,θ表示姿态参数,表示由网格顶点形成的曲面,并且ρ表示误差函数,例如German-McClure鲁棒误差函数。
图3A是示出用于实现优化阶段并生成如先前关于图2所描述的3D网格的示例优化系统300的图。优化系统300可以在第一优化阶段、第二优化阶段和/或任何其他优化阶段期间迭代地实现。
在该示例中,模型310可以基于输入模型参数305生成3D网格315。3D网格315可以包括在3D图像数据320中捕获的可变形物体的可变形模型。模型参数305可以控制3D网格315的姿态和形状。在一些示例中,模型参数305可以包括旋转参数、平移参数、姿态参数和形状参数。在一些情况下,如果模型参数305是第一优化阶段的一部分,则模型参数305可以包括用于初始化的3D网格的初始模型参数。如果模型参数305是第二优化阶段的一部分,则模型参数305可以包括一个或多个优化的模型参数。
在一些示例中,模型310可以由图1中所示的建模引擎122来实现。模型310可以包括可变形的模型。在一些示例中,模型310可以包括蒙皮模型。蒙皮模型的说明性示例包括具有关节和非刚性变形的手模型或MANO模型,如Javier Romero等人在以下文献中描述的:“Embodied Hands:Modeling and Capturing Hands and Bodies Together”,ACMTransactions on Graphics,Vol.36,No.6,Article 245(2017年11月),该文献的全部内容通过引用并入本文并用于所有目的。
优化系统300然后可以基于3D图像数据320和与3D网格315相关联的模型参数305中的至少一些来计算损失330。在一些示例中,在第一优化阶段,用于确定损失330的模型参数可以包括旋转和平移参数。在其他示例中,在第二优化阶段,用于确定损失330的模型参数可以包括旋转和平移参数,以及任何其他参数,例如姿态和形状参数。在一些示例中,可以使用附加参数325来确定损失330。
在一些情况下,附加参数325可以在第二(和/或附加)优化阶段实现。在一些示例中,附加参数325可以包括域特定参数。例如,在手建模用例中,附加参数325可以包括手中的一个或多个关节的关节运动或旋转范围(和/或最大值)、手和/或手指的尺寸范围(和/或最大值)等。关节运动或转动范围可以排除被确定为在物理上不可能或不可能的连接关节运动或旋转的量或程度。关节运动或旋转范围可用于惩罚不太可能的关节运动或旋转。手部和/或手指的尺寸范围可以排除超过手和/或手指类型可能或可以的最大尺寸的手和/或手指尺寸(例如,人手和/或手指、特定动物的手部/或手指等)。尺寸范围可用于惩罚不太可能的手和/或手指尺寸。
在一些示例中,附加参数325可以包括姿态先验损失(例如,惩罚不太可能的姿态的概率损失)的高斯分布参数(例如,均值和协方差)。在一些情况下,附加参数325可以是相机固有的或相机外在的,这取决于3D图像数据320包括相机图像数据还是多视图图像数据。
在一些示例中,可以基于扫描到网格的距离和/或基于3D网格315和3D图像数据320计算的网格到扫描的距离来确定损失330。在一些情况下,扫描到网格的距离可以基于前面描述的等式(1)来计算。在一些情况下,可以通过针对3D网格315中的每个顶点计算到由3D图像数据320形成的表面的最短距离,并计算3D网格315的所有顶点或点的距离的平均值来确定网格到扫描的距离。在一些示例中,可以根据下面的等式(2)来计算网格到扫描的距离:
其中,C表示由扫描的顶点形成的表面(例如,3D图像数据320),β表示形状参数,θ表示姿态参数,表示3D网格315的顶点,并且ρ表示误差函数,例如German-McClure鲁棒误差函数。
在一些示例中,在第一优化阶段中,损失330可以基于所确定的扫描到网格的距离和网格到扫描的距离。在一些情况下,在第二(或附加)优化阶段中,损失330可以基于确定的扫描到网格的距离、网格到扫描的距离以及其他损失。例如,在第二(或附加)优化阶段中,损失330可以基于扫描到网格的距离、网格到扫描的距离和物理约束损失、姿态/形状正则化和/或姿态先验损失。
当3D网格315的姿态参数超过定义的范围(例如,最大和最小范围)以阻止姿态参数超过物理约束时,物理约束损失可以受到惩罚。物理约束损失的示例如下:
姿态正则化可以包括强制执行更真实或可能的姿态的范数正则化损失,并且形状正则化可以是强制执行更现实或可能的形状的范数正规化损失。一个示例范数正则化损失可以如下:
姿态先验损失可以包括惩罚不太可能的姿态的概率损失。在一些示例中,可以通过使姿态参数通过学习的多元高斯分布来计算似然值。高斯分布参数(例如,均值和协方差)可以从具有配准的姿态参数的现有扫描中学习/估计。现有的扫描可以包括由3D图像数据320捕获的对象的扫描。可以利用S形函数进一步处理负对数似然值,以产生指示姿态参数是真实的可能性的概率得分。姿态先验损失的示例如下:
Lθ=σ(-log(N(θμθ,∑θ))) 等式5
其中σ是S形函数,N是正态分布,μθ是姿态均值,∑θ是姿态协方差。上面描述的物理约束损失、姿态/形状正则化和姿态先验损失可以变化和/或取决于特定的用例和/或领域。例如,在某些用例和/或领域中,上述物理约束损失、姿态/形状正则化和姿态先验损失可以被设计和/或实现为不同于上述说明性示例。
一旦已经计算出损失330,优化器340就可以使用损失330来生成更新的参数345。更新的参数345可以包括优化的旋转和平移参数。在一些情况下,在第二(或附加)优化阶段,更新的参数345可以包括其他优化的模型参数,例如姿态和/或形状参数。在一些情况下,优化器340可以是二阶优化器。在一些示例中,优化器340可以实现用于解决无约束非线性优化问题的迭代方法。例如,优化器340可以实现Broyden–Fletcher–Goldfarb–Shanno(BFGS)算法或有限内存BFGS(L-BFGS)方法。
在一些示例中,更新后的参数345可用于更新模型参数305和/或可输入到模型310中(例如,单独或与其他模型参数组合),以执行另一优化迭代,用于生成网格、确定损失和生成更新后的参数。优化系统300可以实现n次迭代作为优化阶段的一部分。在一些示例中,优化系统300可以实现多个优化阶段,并且可以针对每个优化阶段实现n次迭代。
图3B是图示示例优化系统(例如图3A中所示的优化系统300)的示例多级实现的图。在该示例中,优化系统实现第一优化阶段350A和第二优化阶段350B,每个优化阶段包括一个或多个迭代。
在第一优化阶段350A,初始模型参数355A和355B被输入到模型360中以生成网格364。在一些示例中,模型360可以由图1中所示的建模引擎122来实现。模型360可以包括可变形的模型。在一些示例中,模型360可以包括蒙皮模型,例如MANO模型。模型360可以基于初始模型参数355A和355B来生成网格364。
网格364可以包括在输入3D图像数据366中捕获的可变形物体的可变形模型。模型参数355A和355B可以控制网格364的姿态和形状。在一些示例中,模型参数355A和355B可以包括旋转参数、平移参数、姿态参数和形状参数。例如,模型参数355A可以包括平移和旋转参数,并且模型参数355B可以包括姿态和形状参数。
来自网格364的平移和旋转参数(例如,模型参数355A)和3D图像数据366可用于确定损失370A。在第一优化阶段350A中,损失370A可以基于基于以上等式1和2计算的扫描到网格的距离和网格到扫描的距离。
优化器372可以使用损失370A来计算更新的模型参数374。更新的模型参数374可以包括优化的旋转和平移参数。在一些情况下,优化器372可以是二阶优化器。在一些示例中,优化器372可以实现用于解决无约束非线性优化问题的迭代方法。例如,优化器372可以实现BFGS或L-BFGS算法。
在一些示例中,更新后的模型参数374可用于更新模型参数355A和/或可与模型参数355B一起输入到模型360中,以执行用于生成网格、确定损失和生成更新后的参数的另一优化迭代。第一优化阶段350A可以包括任意数量的迭代。例如,第一优化阶段350A可以包括单个迭代或多个迭代。
在第二优化阶段350B,将模型参数380输入到模型360中以生成网格382。模型参数380可以包括旋转参数、平移参数、姿态参数和形状参数。在一些示例中,网格382可以包括在第一优化阶段350A中生成的网格364的修改版本。例如网格382可以包括与3D图像数据366不同的姿态和/或不同的对准。
网格364的3D图像数据366和模型参数380可用于确定损失370B。例如,3D图像数据366和网格364的旋转、平移、姿态和形状参数可以用于确定损失370B。在一些示例中,损失370B可以进一步基于附加参数384。在一些示例中,附加参数384可以包括姿态先验损失(例如,惩罚不太可能的姿态的概率损失)的高斯分布参数(例如,均值和协方差)。在一些情况下,附加参数384可以是相机固有的或相机外在的,这取决于3D图像数据366包括相机图像数据还是多视图图像数据。
损失370B可以基于基于以上等式1和2计算的扫描到网格的距离和网格到扫描的距离。损失370B也可以基于物理约束损失、姿态/形状正则化和/或姿态先验损失,如前所述。
优化器372可以使用损失370B来计算更新的模型参数390。更新的模型参数390可以包括优化的旋转参数、平移参数、姿态参数和/或形状参数。在一些示例中,更新的模型参数390可以用于更新模型参数380和/或可以被输入到模型360中以执行另一个第二阶段优化迭代,用于生成网格、确定损失和生成更新的参数。第二优化阶段350B可以包括任意数量的迭代。例如,第二优化阶段350B可以包括单个迭代或多个迭代。
在一些示例中,第一优化阶段350A和第二优化阶段350B可用于生成具有不同操作(例如,不同姿态或旋转)的多个网格实例。例如,第一优化阶段350A可以用于在图2中所示的优化阶段204处生成网格实例210、212、214,并且在图2中示出的优化阶段222和224的第一优化阶段处优化网格实例212和214。第二优化阶段350B可用于在图2中所示的第二优化步骤220处生成网格结果230,并用于在图2所示的优化步骤220、222、224中的第二个优化阶段处生成网格结果230、232、234。
图4是示出在来自第一优化阶段(例如,优化阶段204、第一优化阶段350A)的全局平移和旋转参数的初始估计之后生成的手网格模型的多个示例实例的图。在该示例中,手网格模型实例包括手反转实例400和410、内转到仰转实例420以及仰转到内转实例430。
手反转实例400示出了在全局平移和旋转参数的初始估计之后生成的手网格实例402。然后将手网格实例402反转以生成手网格实例404。在图4中,手网格实例404被示出为覆盖在手网格实例402上。如图所示,手网格实例404已经相对于手网格实例402反转(例如,旋转),使得手网格实例404中的手指与手网格实例402中的手指面向相反的方向。
手反转实例410示出了在全局平移和旋转参数的初始估计之后生成的另一个手网格实例412。手网格实例412具有与来自手反转实例400的手网格实例402不同的全局旋转(以及可选地不同的全局平移)。手网格实例412可以类似地反转以生成手网格实例414。在图4中,手网格实例414被示出为覆盖在手网格实例412上。如图所示,手网格实例414已经相对于手网格实例412反转(例如,旋转),使得手网格实例414中的手指面向与手网格实例412中的手指相反的方向。
内转到仰转实例420示出了在全局平移和旋转参数的初始估计之后生成的另一个手网格实例422。手网格实例422具有与来自手反转实例400和410的手网格实例402和412两者不同的全局旋转(以及可选地不同的全局平移)。手网格实例422处于内转位置。手网格实例422可以从内转位置旋转以生成仰转位置的手网格实例424。在图4中,手网格实例424被示出为覆盖在手网格实例422上。如图所示,手网格实例424已经相对于手网格实例422仰转,使得与朝向向下方向的手网格实例422中的手掌相反的,手网格实例424中的手掌面向向上方向。
仰转转内转实例430示出了在全局平移和旋转参数的初始估计之后生成的另一个手网格实例432。手网格实例432具有与来自手反转实例400和410以及内转到仰转实例420的手网格实例402、412和422不同的全局旋转(以及可选地不同的全局平移)。手部网状物实例432处于仰卧位置。手部网格实例432可以从仰卧位置旋转,以产生处于内转位置的手部网格示例434。在图4中,手网格实例434被示出为覆盖在手网格实例432上。如图所示,手网实例434已经相对于手网实例432旋入,使得手网实例438中的手掌面向向下的方向,而手网实例432中的手掌朝向向上的方向。
在一些示例中,手网格实例402、412、422和432可以在第一优化阶段(例如,第一优化阶段350A)中或之后生成。在一些示例中,手网格实例404、414、424和434可以在任何优化阶段(例如,第一优化阶段350A、第二优化阶段350B)中或之后生成。在一些情况下,手网格实例402、412、422和432以及手网格实例404、414、424和434可以在相同的优化阶段或任何其他优化阶段中或之后生成。
可以在配准过程中使用多个实例,例如手反转实例400和410、内转到仰转实例420、仰转到内转实例430和/或其他实例,以将3D网格配准到3D图像数据。例如,图4中的一些或全部实例可以在图2中所示的配准过程200中实现。
配准过程中使用的多个实例可以帮助提高配准或对准性能,可以解决对准中的局部最小问题,并且可以对输入图像数据中的噪声和遮挡具有鲁棒性。通常,输入的3D图像数据中的顶点或点的数量是任意的或未知的,并且顶点或点与3D图像数据所捕获的目标的部分之间的对应关系可能是未知的或不能直接学习。例如,3D手扫描中的顶点或点的数量可以是任意的。系统可能不知道或不了解特定顶点或点属于手的哪个部分。此外,在许多情况下,3D手扫描中的原始数据可能缺少信息,可能有噪声等。多个实例可以实现不同的旋转和/或其他操作,这些操作可以在配准过程中使用,以解决上述挑战,提高配准性能,并且防止系统陷入局部极小值。
图5是示出在示例配准过程中实现的不同实例的示例的图。在该示例中,在第一优化阶段510使用模型参数502来优化旋转和平移参数并生成不同的网格实例520、522、524和526。不同的网格实例520、522、524和526可以具有不同的旋转和/或平移参数。不同的网格实例520、522、524和526被示出为覆盖在由3D图像数据捕获的扫描物体575上。如图所示,不同的网格实例520、522、524和526相对于扫描物体575具有不同的方向、平移、位置和/或对准。
图像处理系统100可以将第二优化阶段540应用于网格实例520,以基于网格实例520生成网格结果550。在第二优化阶段540,图像处理系统100可以优化网格实例520的模型参数中的至少一些。例如,图像处理系统100可以优化网格实例520的旋转、平移、姿态和/或形状参数,以生成网格结果550。如图5所示,在第二优化阶段220,与网格实例520相比,图像处理系统100可以优化(例如,改进)网格结果550相对于扫描物体575的对准。
图像处理系统100还可以将第一优化阶段510应用于网格实例522、524、526。在第一优化阶段510,图像处理系统100可以优化网格实例522、524、526的旋转和平移参数,并基于优化的旋转和平移参数生成修改的网格实例530、532、534。
然后,图像处理系统100可以将第二优化阶段540应用于修改的网格实例530、532、534。在第二优化阶段540,图像处理系统100可以优化网格实例530、532、534的旋转、平移和任何其他参数。例如,图像处理系统100可以优化修改的网格实例530、532、534的平移、旋转、形状和姿态参数。图像处理系统可以基于优化的参数生成网格结果552、554、556(例如,最终的网格实例)。在一些示例中,与修改的网格实例530、532、534相比,第二优化阶段540处的优化可以改善网格结果552、554、556中的一些或全部相对于扫描物体575的对准。
图像处理系统100可以基于网格结果550、552、554、556来选择最终网格实例560。为了选择最终网格实例560,图像处理系统100可以针对每个网格结果计算网格结果与扫描对象575之间的距离,并选择具有最小距离的网格结果。例如,在一些情况下,如前所述,图像处理系统100可以计算网格结果550、552、554、556的扫描到网格的距离。图像处理系统100然后可以选择具有最小距离或最小平均距离的网格结果作为最终网格实例560。所选择的最终网格实例560可以包括为扫描物体575确定的最终模型参数570。
图6是示出配准处理的高级示例的图。如图所示,相机系统102可以生成3D可变形物体的捕获扫描602。配准系统604可以接收所捕获的扫描602,并实现与优化系统(例如,优化系统300)的配准过程(例如,配准过程200),以生成用于所捕获扫描602的配准扫描606。配准扫描606可以包括所捕获扫描602的3D网格。配准扫描606可以与所捕获扫描602对准。
如前所述,为了生成配准扫描606,配准系统604可以使用多个优化阶段来实现多个网格实例。配准系统604可以从多个网格实例中选择网格实例。所选择的网格实例可以是被确定为所捕获扫描602的最佳拟合(例如,最接近匹配、对准、表示等)的网格实例。所选择的网格实例可以用于配准扫描606。
图7是示出3D扫描物体720、730、740和相应的配准722、732、742的示例的图。在该示例中,3D扫描物体720、730、740是具有不同姿态和/或手势的手。相应的配准722、732、742是基于不同的相应实例以及本文所述的配准和多级优化技术产生的示例配准。
这里,3D扫描物体720是一只很大程度上扁平的手。对应的配准722是很大程度上扁平的手的3D网格。3D扫描物体730是无名指弯曲的手。对应的配准732是类似地具有弯曲的无名指的3D网格。3D扫描物体740是具有向上/延伸的三个手指并且拇指和小指弯曲的手。对应的配准742是类似地具有向上/延伸的三个手指以及拇指和小指弯曲的3D网格。
图8A是示出用于与可变形模型进行3D图像配准的示例过程800的流程图。在方框802,过程800可以包括基于目标的图像和与该图像相关联的深度信息(例如,3D图像数据320)来确定目标的3D网格模型(例如,3D网格315)。
在一些示例中,图像和深度信息可以包括3D图像和/或3D扫描。例如,图像和深度信息可以包括RGB-D图像或3D扫描。在一些示例中,3D网格可以包括可变形模型。在一些示例中,目标可以包括可变形物体和/或可变形躯体。例如,目标可以包括人、动物、躯体部位、操纵机器人、具有关节的工具等。可变形物体和/或可变形躯体可以包括具有关节的物体和/或者躯体。
在方框804,过程800可以包括确定调整后的旋转和平移参数(例如,更新的参数345、更新的参数374)的不同集合。调整后的旋转和平移参数的不同集合可以基于对3D网格模型的旋转和平移参数(例如,模型参数305的旋转和平移参数)的修改(例如,优化)。
在一些示例中,确定调整后的旋转和平移参数的不同集合可以包括确定3D网格模型的旋转和平动参数中的估计损失(例如,扫描到网格的损失和/或网格到扫描的损失),以及至少部分地基于估计损失来确定调整后的旋转和平移参数的不同集合。
在一些情况下,确定3D网格模型的旋转和平移参数中的估计损失可以包括,对于与图像和深度信息相关联的3D点云中的每个顶点,确定3D点云中每个顶点到由3D网格模型形成的表面的最短距离;基于3D点云中每个顶点的最短距离的平均值来确定扫描到网格的距离;对于所述3D网格模型中的每个顶点,确定所述3D模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及基于3D网格模型中每个顶点的最短距离的平均值来确定网格到扫描的距离。在一些示例中,可以使用上述等式1来确定扫描到网格的距离,并且可以使用上述等式2来确定网格到扫描的距离。
在框806处,过程800可包括基于经调整的旋转和平移参数的不同集合来生成不同的3D网格模型(例如,不同的网格实例520、522、524、526)。在一些情况下,生成不同的3D网格模型可以包括生成多个操作和/或实例,例如图4中所示的实例400、410、420和/或430。不同的3D网格模型相对于图像中的目标可以具有不同的方向、不同的姿态和/或不同的对准。在一些示例中,不同的3D网格模型可以包括不同的旋转和/或平移参数。
在一些示例中,生成不同的3D网格模型可以包括基于调整后的旋转和平移参数的不同集合来确定3D网格模型的不同方向、3D网格模型不同姿态和/或3D网格模型相对于图像中的目标的不同对准;以及生成3D网格模型的不同实例。在一些情况下,3D网格模型的每个实例可以包括来自不同方向的不同方向、来自不同姿态的不同姿态和/或来自不同对齐的不同对齐。
在方框808,过程800可以包括确定与不同3D网格模型相关联的不同模型参数集(例如,更新的参数390)。不同的模型参数集合可以基于对调整后的旋转和平移参数的不同集合的修改(例如,优化)。在一些示例中,来自不同模型参数集合的每个模型参数集合可以包括不同的旋转参数、不同的平移参数、不同的姿态参数和/或不同的形状参数。
在某些情况下,不同模型参数集合中的每个模型参数集合可以基于为来自调整后的旋转和平移参数的不同集合的调整后的旋转和平移参数集合计算的估计损失来确定。在一些示例中,估计损失可以基于针对不同的3D网格模型中的相应3D网格模型计算的扫描到网格的距离、针对相应的3D网格模型计算的网格到扫描的距离、物理约束损失、姿态先验损失、姿态正则化损失和/或形状正则化损失。在一些示例中,可以使用上述等式1来确定扫描到网格的距离,可以使用以上等式2来确定网格到扫描的距离,使用以上等式3来确定物理约束损失,使用以上等式4来确定姿态正则化损失,并且使用以上等式5来确定姿态先验损失。
在一些示例中,扫描到网格的距离可以包括基于与图像和深度信息相关联的3D点云中的每个顶点到由相应3D网格模型形成的表面的最短距离确定的平均距离。在一些示例中,网格到扫描的距离可以包括基于各个3D网格模型中的每个顶点到由3D点云形成的表面的最短距离而确定的平均距离。
在某些情况下,可以基于一系列姿态参数和/或形状参数来确定物理约束损失。在一些情况下,姿态正则化损失和/或形状正则化损失可以与姿态和/或形状参数的大小(例如,L2范数正则化)成比例,以便抑制姿态和/或者形状参数增长得过大超过某些和/或阈值数值。在一些情况下,姿态先验损失可以基于指示姿态的可能性的概率得分。
在框810,过程800可以包括基于不同的模型参数集生成不同的附加3D网格模型(例如,不同的网格实例或结果550、552、554、556)。不同的附加3D网格模型相对于图像中的目标可以具有不同的方向、不同的姿态和/或不同的对准。在一些示例中,不同的附加3D网格模型可以具有不同的旋转参数、平移参数、姿态参数和/或形状参数。
在框812,过程800可以包括从不同的附加3D网格模型中选择目标的最终3D网格模型(例如,最终网格240、最终网格实例560)。在一些示例中,最终的3D网格模型可以包括可变形模型。在一些情况下,可以基于与图像和深度信息相关联的3D点云与来自不同的附加3D网格模型的每个特定3D网格模型之间的相应距离来选择最终3D网格模型。
在一些示例中,相应的距离可以包括相应的扫描到网格的距离。在一些情况下,相应的扫描到网格的距离可以包括基于3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离确定的平均距离。在一些示例中,可以使用上面的等式1来确定扫描到网格的距离。在一些情况下,最终3D网格模型可以包括具有最短扫描到网格距离的特定3D网格模型。
在一些情况下,选择最终3D网格模型可以包括将最终3D网格模型与来自图像和深度信息的3D点云对准和/或拟合。3D点云可以对应于目标。例如,3D点云可以是目标的点云扫描。
在一些情况下,可以在一个或多个第一优化阶段(例如,第一优化阶段350A)确定调整后的旋转和平移参数的不同集合,并且可以在一个或多个第一优化阶段之后执行的一个或多个第二优化阶段(如,第二优化步骤350B)确定模型参数的不同集合。在一些示例中,可以在第一优化阶段中确定调整后的旋转和平移参数的每个集合,并且在第二优化阶段中从模型参数的不同集合中确定模型参数的每个集合。
图8B是示出用于与可变形模型进行3D图像配准的另一示例过程820的流程图。在框822,过程820可以包括基于目标的图像和与该图像相关联的深度信息(例如,3D图像数据320)来确定目标的3D网格模型(例如,3D网格315)。
在一些示例中,图像和深度信息可以包括3D图像和/或3D扫描。例如,图像和深度信息可以包括RGB-D图像或3D扫描。在一些示例中,3D网格可以包括可变形模型。在一些示例中,目标可以包括可变形物体和/或可变形躯体。例如,目标可以包括人、动物、躯体部位、操纵机器人、带有关节的工具等。可变形物体和/或可变形躯体可以包括带有关节的物体和/或者躯体。
在框824,过程820可以包括基于与3D网格模型相关联的多个旋转和平移参数(例如,模型参数305、更新参数345、更新参数374、更新参数390的旋转和平移的参数)和/或3D网格模型的不同实例(例如,不同的网格实例520、522、524、526)中的一个或多个估计损失来生成修改的3D网格模型的集合(例如,不同的网格实例或结果550、552、554、556)。
在一些示例中,3D网格模型的修改的集合是基于与3D网格模型的不同实例相关联的模型参数的不同集合(例如,更新的参数390)生成的,并且来自模型参数的不同集合的每个模型参数集合可以包括不同的旋转参数、不同的平移参数、不同的姿态参数和/或不同的形状参数。在一些情况下,可以基于针对来自与3D网格模型相关联的调整后的旋转和平移参数的不同集合的调整后的转动和平移参数的集合(例如,更新参数345、更新参数374)计算的一个或多个估计损失的估计损失来确定模型参数的不同集合中的模型参数的每个集合。在一些示例中,调整后的旋转和平移参数的不同集合可以基于对3D网格模型的旋转和平移参数的修改。
在一些情况下,估计损失可以基于为3D网格模型的不同实例的相应3D网格模型计算的扫描到网格的距离、为相应3D网格模型计算的网格到扫描的距离、物理约束损失、姿态先验损失、姿态正则化损失和/或形状正则化损失。在一些情况下,扫描到网格的距离可以包括基于与图像和深度信息相关联的3D点云中的每个顶点到由相应的3D网格模型形成的第一表面的最短距离确定的第一平均距离,并且网格到扫描的距离可以包括基于各个3D网格模型中的每个顶点到由3D点云形成的第二表面的最短距离而确定的第二平均距离。在一些情况下,可以基于姿态参数和形状参数中的至少一个的范围来确定物理约束损失,并且姿态正则化损失和/或形状正则化损失可以与姿态参数和/或形状参数的大小成比例。在一些情况下,姿态先验损失可以基于指示姿态的可能性的概率得分。
在框826,过程820可以包括从3D网格模型的修改的集合中选择目标的最终3D网格模型(例如,最终网格240、最终网格实例560)。在一些示例中,最终的3D网格模型可以包括可变形模型。在一些情况下,可以基于与图像和深度信息相关联的3D点云与来自3D网格模型的修改的集合的每个特定3D网格模型之间的相应距离来选择最终3D网格模型。
在一些示例中,相应的距离可以包括相应的扫描到网格的距离。在一些情况下,相应的扫描到网格的距离可以包括基于3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离确定的平均距离。在一些示例中,可以使用上面的等式1来确定扫描到网格的距离。在一些情况下,最终3D网格模型可以包括具有最短扫描到网格距离的特定3D网格模型。
在某些情况下,选择最终的3D网格模型可以包括将最终的3D网格模型与图像和深度信息中的3D点云对齐和/或拟合。3D点云可以对应于目标。例如,3D点云可以是目标的点云扫描。
在一些示例中,图像和深度信息可以包括3D图像和/或3D扫描,并且最终的3D网格模型可以包括可变形模型。在一些情况下,目标可以包括可变形物体和/或可变形躯体。
在一些示例中,过程820可以包括确定调整后的旋转和平移参数的不同集合(例如,更新的参数345、更新的参数374)。调整后的旋转和平移参数的不同集合可以基于来自一个或多个估计损失的估计损失和/或对来自多个旋转和平移参数的旋转和平移参数(例如,模型参数305的旋转和平移参数)的修改(例如,优化)。旋转和平移参数可以对应于3D网格模型。在一些示例中,过程820可以包括基于经调整的旋转和平移参数的不同集合来生成不同的3D网格模型(例如,不同的网格实例520、522、524、526)。不同的3D网格模型相对于图像中的目标可以具有不同的方向、不同的姿态和/或不同的对准。在一些情况下,不同的3D网格模型可以包括3D网格模型的不同实例。
在一些情况下,过程820可以包括确定与不同3D网格模型相关联的模型参数的不同集合(例如,更新的参数390)。在一些示例中,模型参数的不同集合可以基于对调整后的旋转和平移参数的不同集合的修改(例如,优化)。在一些示例中,可以基于与不同的3D网格模型相关联的模型参数的不同集合来生成修改的3D网格模型的集合。
在一些情况下,可以在一个或多个第一优化阶段(例如,第一优化阶段350A)确定调整后的旋转和平移参数的不同集合,并且可以在一个或多个第二优化阶段(如,第二优化阶段350B)确定模型参数的不同集合。在一些示例中,可以在第一优化阶段中确定调整后的旋转和平移参数的每个集合,并且在第二优化阶段中从模型参数的不同集合中确定模型参数的每个集合。
在一些示例中,过程820可以包括根据一个或多个估计损失来确定估计损失。在一些情况下,确定估计损失可以包括,对于与图像和深度信息相关联的3D点云中的每个顶点,确定3D点云中每个顶点到由3D网格模型形成的表面的最短距离;基于3D点云中每个顶点的最短距离的平均值来确定扫描到网格的距离;对于所述3D网格模型中的每个顶点,确定所述3D模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及基于3D网格模型中每个顶点的最短距离的平均值来确定网格到扫描的距离。
在一些示例中,过程820可以包括基于调整后的旋转和平移参数的不同集合来确定3D网格模型的不同方向、3D网格模型的不同姿态和/或3D网格模型相对于图像中的目标的不同对准;以及生成不同的3D网格模型。在一些情况下,不同的3D网格模型中的每个可以包括来自不同方向的不同方向、来自不同姿态的不同姿态和/或来自不同对齐的不同对齐。
在一些示例中,本文描述的过程(例如,过程200、800、820和/或本文描述的任何其他过程)可以由计算设备或装置执行。在一个示例中,过程800和/或过程820可以由图1的图像处理系统100执行。在另一示例中,过程800和/或过程820可以由具有图9中所示的计算设备架构900的计算系统来执行。例如,具有图9中所示的计算设备架构900的计算设备可以实现图8A、图8B的操作和/或本文中关于图1至图8B中的任何一个所描述的组件和/或操作。
计算设备可以包括任何合适的设备,例如移动设备(例如,移动电话)、桌面计算设备、平板计算设备、可穿戴设备(例如VR头戴式耳机、AR头戴式耳麦、AR眼镜、网络连接手表或智能手表或其他可穿戴设备)、服务器计算机、自动驾驶汽车或自动驾驶汽车的计算设备,机器人设备、膝上型计算机、智能电视、相机和/或具有执行本文所述过程的资源能力的任何其他计算设备,包括本文所述的过程200、800、820和/或任何其他过程。在一些情况下,计算设备或装置可以包括各种组件,例如一个或多个输入设备、一个或多个输出设备、一种或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或被配置为执行本文所述的过程的步骤的其他组件。在一些示例中,计算设备可以包括显示器、被配置为通信和/或接收数据的网络接口、其任意组合和/或其他组件。网络接口可以被配置为通信和/或接收基于因特网协议(IP)的数据或其他类型的数据。
计算设备的组件可以在电路中实现。例如,这些组件可以包括和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括和/或使用计算机软件、固件或其任何组合来实现,以执行本文所述的各种操作。
过程200、800和820被示为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实现的操作序列。在计算机指令的上下文中,所述操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行地组合以实现过程。
此外,本文所述的过程200、800、820和/或其他过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序),或其组合。如上所述,代码可以存储在计算机可读或机器可读存储介质上,例如,以包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂时性的。
图9示出了示例计算设备的示例计算设备架构900,其可以实现本文所述的各种技术。例如,计算设备架构900可以实现图1中所示的图像处理系统100的至少一些部分。计算设备架构900的组件被示为使用诸如总线的连接905彼此电通信。示例计算设备架构900包括处理单元(CPU或处理器)910和计算设备连接905,该计算设备连接将包括计算设备存储器915(例如只读存储器(ROM)920和随机存取存储器(RAM)925)的各种计算设备组件耦合到处理器910。
计算设备架构900可以包括与处理器910直接连接、紧邻处理器910或集成为处理器910的一部分的高速存储器的高速缓存。计算设备架构900可以将数据从存储器915和/或存储设备930复制到高速缓存912以供处理器910快速访问。以这种方式,高速缓存可以提供避免处理器910在等待数据时延迟的性能提升。这些模块和其他模块可以控制或被配置为控制处理器910执行各种动作。其他计算设备存储器915也可以用于使用。存储器915可以包括具有不同性能特性的多种不同类型的存储器。处理器910可以包括任何通用处理器和存储在存储设备930中并被配置为控制处理器910的硬件或软件服务(例如,服务1 932、服务2934和服务3 936)以及其中软件指令被结合到处理器设计中的专用处理器。处理器910可以是包含多个核或处理器、总线、存储器控制器、高速缓存等的自包含系统。多核处理器可以是对称的或非对称的。
为了实现与计算设备架构900的用户交互,输入设备945可以表示任意数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备935也可以是本领域技术人员已知的多个输出机构中的一个或多个,例如显示器、投影仪、电视、扬声器设备。在一些情况下,多模式计算设备可以使用户能够提供多种类型的输入以与计算设备架构900进行通信。通信接口940通常可以支配和管理用户输入和计算设备输出。在任何特定的硬件布置上操作都没有限制,因此这里的基本特征可以很容易地随着发展被替换为改进的硬件或固件布置。
存储设备930是非易失性存储器,可以是硬盘或其他类型的计算机可读介质,其可以存储计算机可访问的数据,例如磁带盒、闪存卡、固态存储设备、数字多功能光盘、磁带盒、随机存取存储器(RAM)925、只读存储器(ROM)920及其混合。存储设备930可以包括用于控制处理器910的服务932、服务934和服务936。可以考虑其他硬件或软件模块。存储设备930可以连接到计算设备连接905。在一个方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与执行该功能所需的硬件组件(例如处理器910、连接905、输出设备935等)相结合。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据并且不包括无线地或通过有线连接传播的载波和/或暂时性电子信号的非暂时性介质。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如压缩光盘(CD)或数字多功能光盘(DVD)的光学存储介质、闪存、存储器或存储设备。计算机可读介质可以具有存储在其上的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以通过任何合适的方式传递、转发或发送,包括存储器共享、消息传递、令牌传递、网络传输等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身的介质。
以上描述中提供了具体细节,以提供对本文提供的实施例和示例的全面理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,该功能块包括以软件或硬件和软件的组合体现的方法中的设备、设备组件、步骤或例程。除了图中所示和/或本文中所述的部件之外,还可以使用其他部件。例如,电路、系统、网络、过程和其他组件可以以框图的形式示出为组件,以便不以不必要的细节模糊实施例。在其他情况下,为了避免混淆实施例,可以在没有不必要的细节的情况下示出公知的电路、过程、算法、结构和技术。
以上可以将各个实施例描述为流程、流程图、数据流程图、结构图或框图所示的过程或方法。尽管流程图可以将操作描述为顺序过程,但许多操作可以并行或并发执行。此外,可以重新安排操作的顺序。进程在其操作完成时终止,但可能有未包括在图中的附加步骤。进程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可以对应于函数返回调用函数或主函数。
根据上述示例的过程和方法可以使用存储的或以其他方式可从计算机可读介质获得的计算机可执行指令来实现。例如,这样的指令可以包括使通用计算机、专用计算机或处理设备执行特定功能或功能组的指令和数据,或者以其他方式配置这些指令和数据。所使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、固件、源代码。可用于存储指令、使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、联网存储设备等。
实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用各种形式因素中的任何形式因素。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。外形因素的典型示例包括笔记本电脑、智能手机、移动电话、平板电脑或其他小型个人电脑、个人数字助理、机架安装设备、独立设备等。本文所述的功能也可以体现在外围设备或附加卡中。通过进一步的示例,这种功能也可以在单个设备中执行的不同芯片或不同处理之间的电路板上实现。
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其他结构是用于提供本公开中描述的功能的示例装置。
在前述描述中,参考本申请的具体实施例描述了本申请的各方面,但本领域技术人员将认识到,本申请不限于此。因此,尽管本文已经详细描述了本申请的说明性实施例,但是应当理解的是,本发明的概念可以以其他方式被不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变化,除非受到现有技术的限制。上述应用的各种特征和方面可以单独使用或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以用于本文所描述的环境和应用之外的任何数量的环境和用途。因此,说明书和附图应视为说明性的,而非限制性的。为了便于说明,按特定顺序对方法进行了说明。应当理解,在替代实施例中,可以以与所描述的不同的顺序来执行所述方法。
本领域普通技术人员将理解,在不脱离本说明书的范围的情况下,本文中使用的小于(“<”)和大于(“>”)的符号或术语可以分别用小于或等于(“≤”)和大于或等于(“≥”)的符号替代。
在组件被描述为“被配置为”执行某些操作的情况下,这种配置可以通过设计电子电路或其他硬件来执行操作,通过编程可编程电子电路(例如微处理器或其他合适的电子电路)来执行操作或其任何组合来实现。
短语“耦合到”是指直接或间接物理连接到另一组件的任何组件,和/或直接或间接与另一组件通信的任何组件(例如,通过有线或无线连接和/或其他合适的通信接口连接到该另一组件)。
记载集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其他语言表示该集合的一个成员或该集合的多个成员(以任何组合)满足权利要求。例如,记载“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言是指A、B或A和B。在另一个例子中,记载“A、B和C中的至少一个”或“A、B或C中的至少一个”的权利要求语言是指A、B、C或A和B、或A和C、或B和C、或者A和B和C。语言集合中的“至少一个”和/或集合中的“一个或多个”并不将集合限制为集合中列出的项目。例如,记载“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以表示A、B或A和B,并且可以另外包括A和B集合中未列出的项目。
结合本文所揭示的示例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种互换性,上文已经就其功能性大体上描述了各种说明性组件、块、模块、电路和步骤。这种功能是实现为硬件还是实现为软件取决于特定的应用和施加在整个系统上的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能,但此类实施决策不应被解释为导致偏离本申请的范围。
本文所述技术也可在电子硬件、计算机软件、固件或其任何组合中实现。这些技术可以在各种设备中的任何设备中实现,例如通用计算机、无线通信设备手持机或具有多种用途的集成电路设备,包括在无线通信设备手持机和其他设备中的应用。任何被描述为模块或组件的特征都可以在集成逻辑设备中一起实现,或者单独地实现为离散但可互操作的逻辑设备。如果以软件实现,则该技术可以至少部分地通过包括程序代码的计算机可读数据存储介质来实现,该程序代码包括当被执行时执行上述方法、算法和/或操作中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(RAM),例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM),电可擦可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,这些技术可以至少部分地通过计算机可读通信介质来实现,该计算机可读通信介质携带或传送指令或数据结构形式的程序代码,并且可以由计算机访问、读取和/或执行,例如传播的信号或波。
程序代码可由处理器执行,处理器可包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路。这样的处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器;但在替代方案中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核心结合,或者任何其他这样的配置。因此,如本文所使用的术语“处理器”可指任何前述结构、前述结构的任何组合、或适用于实现本文所述技术的任何其它结构或装置。
本公开的说明性方面包括:
方面1:一种装置,包括:存储器;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:基于目标的图像和与所述图像相关联的深度信息,确定所述目标的三维(3D)网格模型;基于与3D网格模型和3D网格模型的不同实例中的至少一个相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及从修改的3D网格模型的集合中选择目标的最终3D网格模型。
方面2:根据方面1所述的装置,所述一个或多个处理器被配置为:至少部分地基于来自所述一个或多个估计损失的估计损失来确定调整的旋转和平移参数的不同集合,所述调整的旋转和平移参数的不同集合基于对来自所述多个旋转和平移参数的旋转和平移参数的修改,所述旋转和平移参数对应于所述3D网格模型;以及基于调整的旋转和平移参数的不同集合生成不同的3D网格模型,其中,不同的3D网格模型包括3D网格模型的不同实例,不同的3D网格模型具有相对于图像中的目标的不同取向、不同姿态和不同对准中的至少一个。
方面3:根据方面2所述的装置,所述一个或多个处理器被配置为:确定与所述不同3D网格模型相关联的模型参数的不同集合,所述模型参数的不同集合基于对所述调整的旋转和平移参数的不同集合的修改,其中所述修改的3D网格模型集合是基于与所述不同3D网格模型相关联的模型参数的不同集合生成的。
方面4:根据方面2或3中任一项所述的装置,其中,为了根据所述一个或多个估计损失来确定所述估计损失,所述一个或多个处理器被配置为:对于与所述图像和所述深度信息相关联的3D点云中的每个顶点,确定所述3D点云中每个顶点到由所述3D网格模型形成的表面的最短距离;基于3D点云中每个顶点的最短距离的平均值来确定扫描到网格的距离;对于所述3D网格模型中的每个顶点,确定所述3D网格模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及基于3D网格模型中每个顶点的最短距离的平均值来确定网格到扫描的距离。
方面5:根据方面2至4中任一项所述的装置,其中,为了生成所述不同的3D网格模型,所述一个或多个处理器被配置为:基于所述调整的旋转和平移参数的不同集合,确定相对于图像中的目标的所述3D网格模型的不同方向、所述3D网格模型的不同姿态、以及3D网格模型的不同对准中的至少一个;以及生成所述不同的3D网格模型,所述不同的3D网格模型中的每个包括来自所述不同方向的不同方向、来自所述不同姿态的不同姿态以及来自所述不同对准的不同对准中的至少一个。
方面6:根据方面1至5中任一项所述的装置,其中所述修改的3D网格模型集合是基于与所述3D网格模型的所述不同实例相关联的模型参数的不同集合生成的,并且其中来自模型参数的不同集合的每个模型参数集合包括不同旋转参数、不同平移参数、不同姿态参数和不同形状参数中的至少一个。
方面7:根据方面6所述的装置,其中,所述模型参数的不同集合中的每个模型参数集合是基于针对来自与所述3D网格模型相关联的调整的旋转和平移参数的不同集合的调整的旋转和平移参数的集合计算的一个或多个估计损失中的估计损失来确定的,所述调整的旋转和平移参数的不同集合基于对所述3D网格模型的旋转和平移参数的修改。
方面8:根据方面7所述的装置,其中,所述估计损失基于针对所述3D网格模型的不同实例的相应3D网格模型计算的扫描到网格距离、针对所述相应3D网格模型计算的网格到扫描距离、物理约束损失、姿态先验损失、姿态正则化损失和形状正则化损失中的至少一个。
方面9:根据方面8所述的装置,其中,所述扫描到网格的距离包括第一平均距离,所述第一平均距离基于与所述图像和深度信息相关联的3D点云中的每个顶点到由相应3D网格模型形成的第一表面的最短距离来确定,并且其中所述网格到扫描的距离包括基于所述相应3D网格模型中的每个顶点到由所述3D点云形成的第二表面的最短距离而确定的第二平均距离。
方面10:根据方面8或9中任一项所述的装置,其中所述物理约束损失是基于姿态参数和形状参数中的至少一个的范围来确定的,并且其中所述姿态正则化损失和形状正则化损失中的至少一者与所述姿态参数和所述形状参数中的至少一者的大小成比例。
方面11:根据方面8至10中任一项所述的装置,其中,所述姿态先验损失基于指示姿态的可能性的概率得分。
方面12:根据方面1至11中任一项所述的装置,其中,基于与所述图像和所述深度信息相关联的3D点云与所述修改的3D网格模型集合中的每个特定3D网格模型之间的相应距离来选择所述最终3D网格模型。
方面13:根据方面12所述的装置,其中,所述相应距离包括相应扫描到网格的距离,其中,相应扫描到网络的距离包括基于所述3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离来确定的平均距离,并且其中所述最终3D网格模型包括具有最短扫描到网格距离的所述特定3D网格模型。
方面14:根据方面1至13中任一项所述的装置,其中,所述图像和所述深度信息包括3D图像和3D扫描中的至少一个,其中,最终3D网格模型包括可变形模型,并且其中,目标包括可变形物体和可变形躯体中的至少一者。
方面15:根据方面1至14中任一项所述的装置,其中,为了选择所述最终3D网格模型,所述一个或多个处理器被配置为将所述最终3D网格模型与来自所述图像和所述深度信息的3D点云对准和拟合中的至少一个,所述3D三维点云对应于所述目标。
方面16:根据方面1至15中任一项所述的装置,所述一个或多个处理器被配置为生成所述3D网格模型的所述不同实例,其中所述多个旋转和平移参数对应于所述3D网格模型的不同实例,并且其中所述修改的3D网格模型集合是基于对所述3D网格模型的不同实例的所述多个旋转和平移参数的修改而生成的。
方面17:根据方面1至16中任一项所述的装置,其中,所述装置包括相机设备和移动设备中的至少一个。
方面18:一种方法,包括:基于目标的图像和与所述图像相关联的深度信息,确定所述目标的三维(3D)网格模型;基于与3D网格模型和3D网格模型的不同实例中的至少一个相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及从修改的3D网格模型的集合中选择目标的最终3D网格模型。
方面19:根据方面18所述的方法,还包括:至少部分地基于来自所述一个或多个估计损失的估计损失来确定调整的旋转和平移参数的不同集合,所述调整的旋转和平移参数的不同集合基于对来自所述多个旋转和平移参数的旋转和平移参数的修改,所述旋转和平移参数对应于所述3D网格模型;以及基于调整的旋转和平移参数的不同集合生成不同的3D网格模型,其中,不同的3D网格模型包括3D网格模型的不同实例,不同的3D网格模型具有相对于图像中的目标的不同取向、不同姿态和不同对准中的至少一个。
方面20:根据方面19所述的方法,还包括:确定与所述不同3D网格模型相关联的模型参数的不同集合,所述模型参数的不同集合基于对所述调整的旋转和平移参数的不同集合的修改,其中所述修改的3D网格模型集合是基于与所述不同3D网格模型相关联的模型参数的不同集合生成的。
方面21:根据方面19或20中任一项所述的方法,还包括根据所述一个或多个估计损失确定所述估计损失,其中确定所述估计损失包括:对于与所述图像和所述深度信息相关联的3D点云中的每个顶点,确定所述3D点云中每个顶点到由所述3D网格模型形成的表面的最短距离;基于3D点云中每个顶点的最短距离的平均值来确定扫描到网格的距离;对于所述3D网格模型中的每个顶点,确定所述3D网格模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及基于3D网格模型中每个顶点的最短距离的平均值来确定网格到扫描的距离。
方面22:根据方面19至21中任一项所述的方法,其中,生成所述不同的3D网格模型包括:基于所述调整的旋转和平移参数的不同集合,确定相对于图像中的目标的所述3D网格模型的不同方向、所述3D网格模型的不同姿态、以及3D网格模型的不同对准中的至少一个;以及生成3D网格模型的不同实例,所述3D网格模型中的每个实例包括来自所述不同方向的不同方向、来自所述不同姿态的不同姿态以及来自所述不同对准的不同对准中的至少一个。
方面23:根据方面18至22中任一项所述的方法,其中所述修改的3D网格模型集合是基于与所述3D网格模型的所述不同实例相关联的不同模型参数集合生成的,并且其中来自模型参数的不同集合的每个模型参数集合包括不同旋转参数、不同平移参数、不同姿态参数和不同形状参数中的至少一个。
方面24:根据方面23所述的方法,其中所述模型参数的不同集合中的每个模型参数集合是基于针对来自与所述3D网格模型相关联的调整的旋转和平移参数的不同集合的调整的旋转和平移参数的集合计算的一个或多个估计损失中的估计损失来确定的,所述调整的旋转和平移参数的不同集合基于对所述3D网格模型的旋转和平移参数的修改。
方面25:根据方面24所述的方法,其中所述估计损失基于针对所述3D网格模型的不同实例的相应3D网格模型计算的扫描到网格距离、针对所述相应3D网格模型计算的网格到扫描距离、物理约束损失、姿态先验损失、姿态正则化损失和形状正则化损失中的至少一个。
方面26:根据方面25所述的方法,其中,所述扫描到网格的距离包括第一平均距离,所述第一平均距离基于与所述图像和深度信息相关联的3D点云中的每个顶点到由相应3D网格模型形成的第一表面的最短距离来确定,并且其中所述网格到扫描的距离包括基于所述相应3D网格模型中的每个顶点到由所述3D点云形成的第二表面的最短距离而确定的第二平均距离。
方面27:根据方面25或26中任一项所述的方法,其中所述物理约束损失是基于姿态参数和形状参数中的至少一个的范围来确定的,其中所述姿态正则化损失和形状正则化损失中的至少一者与所述姿态参数和所述形状参数中的至少一者的大小成比例。
方面28:根据方面25至27中任一项所述的方法,其中,所述姿态先验损失基于指示姿态的可能性的概率得分。
方面29:根据方面18至28中任一项所述的方法,其中,基于与所述图像和所述深度信息相关联的3D点云与所述修改的3D网格模型集合中的每个特定3D网格模型之间的相应距离来选择所述最终3D网格模型。
方面30:根据方面29所述的方法,其中,所述相应距离包括相应扫描到网格的距离,其中,相应扫描到网络的距离包括基于所述3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离来确定的平均距离,并且其中所述最终3D网格模型包括具有最短扫描到网格距离的所述特定3D网格模型。
方面31:根据方面18至30中任一项所述的方法,其中,所述图像和所述深度信息包括3D图像和3D扫描中的至少一个,其中,最终3D网格模型包括可变形模型,并且其中,目标包括可变形物体和可变形躯体中的至少一者。
方面32:根据方面18至31中任一项所述的方法,其中,选择所述最终3D网格模型包括将所述最终3D网格模型与来自所述图像和所述深度信息的3D点云对准和拟合中的至少一个,所述三维点云对应于所述目标。
方面33:根据方面18至32中任一项所述的方法,还包括生成所述3D网格模型的所述不同实例,其中所述多个旋转和平移参数对应于所述3D网格模型的不同实例,并且其中所述修改的3D网格模型集合是基于对所述3D网格模型的不同实例的所述多个旋转和平移参数的修改而生成的。
方面34:一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行根据方面1至33的操作。
方面35:一种包括一个或多个用于执行根据方面1至33的操作的单元的装置。

Claims (30)

1.一种装置,包括:
存储器;以及
耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:
基于目标的图像和与所述图像相关联的深度信息,确定所述目标的三维(3D)网格模型;
基于与所述3D网格模型和所述3D网格模型的不同实例中的至少一者相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及
从所述修改的3D网格模型的集合中选择所述目标的最终3D网格模型。
2.根据权利要求1所述的装置,所述一个或多个处理器被配置为:
至少部分地基于来自所述一个或多个估计损失的估计损失来确定调整的旋转和平移参数的不同集合,所述调整的旋转和平移参数的不同集合基于对来自所述多个旋转和平移参数的旋转和平移参数的修改,所述旋转和平移参数对应于所述3D网格模型;以及
基于所述调整的旋转和平移参数的不同集合生成不同的3D网格模型,其中,所述不同的3D网格模型包括所述3D网格模型的所述不同实例,所述不同的3D网格模型具有相对于所述图像中的所述目标的不同取向、不同姿态和不同对准中的至少一者。
3.根据权利要求2所述的装置,所述一个或多个处理器被配置为:
确定与所述不同的3D网格模型相关联的模型参数的不同集合,所述模型参数的不同集合基于对所述调整的旋转和平移参数的不同集合的修改,其中,所述修改的3D网格模型的集合是基于与所述不同的3D网格模型相关联的所述模型参数的不同集合生成的。
4.根据权利要求2所述的装置,其中,为了从所述一个或多个估计损失确定所述估计损失,所述一个或多个处理器被配置为:
对于与所述图像和所述深度信息相关联的3D点云中的每个顶点,确定所述3D点云中的每个顶点到由所述3D网格模型形成的表面的最短距离;
基于所述3D点云中的每个顶点的所述最短距离的平均值来确定扫描到网格的距离;
对于所述3D网格模型中的每个顶点,确定所述3D网格模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及
基于所述3D网格模型中的每个顶点的所述最短距离的平均值来确定网格到扫描的距离。
5.根据权利要求2所述的装置,其中,为了生成所述不同的3D网格模型,所述一个或多个处理器被配置为:
基于所述调整的旋转和平移参数的不同集合,确定相对于所述图像中的所述目标的所述3D网格模型的不同方向、所述3D网格模型的不同姿态、以及所述3D网格模型的不同对准中的至少一者;以及
生成所述不同的3D网格模型,所述不同的3D网格模型中的每个不同的3D网格模型包括来自所述不同方向的一不同方向、来自所述不同姿态的一不同姿态以及来自所述不同对准的一不同对准中的至少一者。
6.根据权利要求1所述的装置,其中,所述修改的3D网格模型的集合是基于与所述3D网格模型的所述不同实例相关联的模型参数的不同集合生成的,并且其中,来自所述模型参数的不同集合的每个模型参数集合包括不同旋转参数、不同平移参数、不同姿态参数和不同形状参数中的至少一者。
7.根据权利要求6所述的装置,其中,所述模型参数的不同集合中的每个模型参数集合是基于针对来自与所述3D网格模型相关联的调整的旋转和平移参数的不同集合的调整的旋转和平移参数的集合计算的一个或多个估计损失中的估计损失来确定的,所述调整的旋转和平移参数的不同集合基于对所述3D网格模型的旋转和平移参数的修改。
8.根据权利要求7所述的装置,其中,所述估计损失是基于针对所述3D网格模型的所述不同实例的相应3D网格模型计算的扫描到网格的距离、针对所述相应3D网格模型计算的网格到扫描的距离、物理约束损失、姿态先验损失、姿态正则化损失和形状正则化损失中的至少一者的。
9.根据权利要求8所述的装置,其中,所述扫描到网格的距离包括第一平均距离,所述第一平均距离是基于与所述图像和所述深度信息相关联的3D点云中的每个顶点到由所述相应3D网格模型形成的第一表面的最短距离来确定的,并且其中,所述网格到扫描的距离包括第二平均距离,所述第二平均距离是基于所述相应3D网格模型中的每个顶点到由所述3D点云形成的第二表面的最短距离来确定的。
10.根据权利要求8所述的装置,其中,所述物理约束损失是基于姿态参数和形状参数中的至少一者的范围来确定的,并且其中,所述姿态正则化损失和所述形状正则化损失中的至少一者与所述姿态参数和所述形状参数中的至少一者的大小成比例。
11.根据权利要求8所述的装置,其中,所述姿态先验损失基于指示姿态的可能性的概率得分。
12.根据权利要求1所述的装置,其中,所述最终3D网格模型是基于与所述图像和所述深度信息相关联的3D点云与所述修改的3D网格模型的集合中的每个特定3D网格模型之间的相应距离来选择的。
13.根据权利要求12所述的装置,其中,所述相应距离包括相应扫描到网格的距离,其中,所述相应扫描到网络的距离包括基于所述3D点云中的每个顶点到由特定3D网格模型形成的表面的最短距离来确定的平均距离,并且其中,所述最终3D网格模型包括具有最短扫描到网格的距离的所述特定3D网格模型。
14.根据权利要求1所述的装置,其中,所述图像和所述深度信息包括3D图像和3D扫描中的至少一者,其中,所述最终3D网格模型包括可变形模型,并且其中,所述目标包括可变形物体和可变形躯体中的至少一者。
15.根据权利要求1所述的装置,其中,为了选择所述最终3D网格模型,所述一个或多个处理器被配置为将所述最终3D网格模型与来自所述图像和所述深度信息的3D点云对准和拟合中的至少一者,所述3D点云对应于所述目标。
16.根据权利要求1所述的装置,所述一个或多个处理器被配置为生成所述3D网格模型的所述不同实例,其中,所述多个旋转和平移参数对应于所述3D网格模型的所述不同实例,并且其中,所述修改的3D网格模型的集合是基于对所述3D网格模型的所述不同实例的所述多个旋转和平移参数的修改生成的。
17.根据权利要求1所述的装置,其中,所述装置包括相机设备和移动设备中的至少一者。
18.一种方法,包括:
基于目标的图像和与所述图像相关联的深度信息,确定所述目标的三维(3D)网格模型;
基于与所述3D网格模型和所述3D网格模型的不同实例中的至少一者相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及
从所述修改的3D网格模型的集合中选择所述目标的最终3D网格模型。
19.根据权利要求18所述的方法,还包括:
至少部分地基于来自所述一个或多个估计损失的估计损失来确定调整的旋转和平移参数的不同集合,所述调整的旋转和平移参数的不同集合基于对来自所述多个旋转和平移参数的旋转和平移参数的修改,所述旋转和平移参数对应于所述3D网格模型;以及
基于所述调整的旋转和平移参数的不同集合生成不同的3D网格模型,其中,所述不同的3D网格模型包括所述3D网格模型的所述不同实例,所述不同的3D网格模型具有相对于所述图像中的所述目标的不同取向、不同姿态和不同对准中的至少一者。
20.根据权利要求19所述的方法,还包括:
确定与所述不同的3D网格模型相关联的模型参数的不同集合,所述模型参数的不同集合基于对所述调整的旋转和平移参数的不同集合的修改,其中,所述修改的3D网格模型的集合是基于与所述不同的3D网格模型相关联的所述模型参数的不同集合生成的。
21.根据权利要求19所述的方法,还包括从所述一个或多个估计损失确定所述估计损失,其中,确定所述估计损失包括:
对于与所述图像和所述深度信息相关联的3D点云中的每个顶点,确定所述3D点云中的每个顶点到由所述3D网格模型形成的表面的最短距离;
基于所述3D点云中的每个顶点的所述最短距离的平均值来确定扫描到网格的距离;
对于所述3D网格模型中的每个顶点,确定所述3D网格模型中的每个顶点到由所述3D点云形成的表面的最短距离;以及
基于所述3D网格模型中的每个顶点的所述最短距离的平均值来确定网格到扫描的距离。
22.根据权利要求19所述的方法,其中,生成所述不同的3D网格模型包括:
基于所述调整的旋转和平移参数的不同集合,确定相对于所述图像中的所述目标的所述3D网格模型的不同方向、所述3D网格模型的不同姿态、以及所述3D网格模型的不同对准中的至少一者;以及
生成所述3D网格模型的所述不同实例,所述3D网格模型中的每个实例包括来自所述不同方向的一不同方向、来自所述不同姿态的一不同姿态以及来自所述不同对准的一不同对准中的至少一者。
23.根据权利要求18所述的方法,其中,所述修改的3D网格模型的集合是基于与所述3D网格模型的所述不同实例相关联的模型参数的不同集合生成的,并且其中,来自所述模型参数的不同集合的每个模型参数集合包括不同旋转参数、不同平移参数、不同姿态参数和不同形状参数中的至少一者。
24.根据权利要求23所述的方法,其中,所述模型参数的不同集合中的每个模型参数集合是基于针对来自与所述3D网格模型相关联的调整的旋转和平移参数的不同集合的调整的旋转和平移参数的集合计算的一个或多个估计损失中的估计损失来确定的,所述调整的旋转和平移参数的不同集合是基于对所述3D网格模型的旋转和平移参数的修改的。
25.根据权利要求24所述的方法,其中,所述估计损失是基于针对所述3D网格模型的所述不同实例的相应3D网格模型计算的扫描到网格的距离、针对所述相应3D网格模型计算的网格到扫描的距离、物理约束损失、姿态先验损失、姿态正则化损失和形状正则化损失中的至少一者的。
26.根据权利要求25所述的方法,其中,所述扫描到网格的距离包括第一平均距离,所述第一平均距离是基于与所述图像和所述深度信息相关联的3D点云中的每个顶点到由所述相应3D网格模型形成的第一表面的最短距离来确定的,并且其中,所述网格到扫描的距离包括第二平均距离,所述第二平均距离是基于所述相应3D网格模型中的每个顶点到由所述3D点云形成的第二表面的最短距离来确定的。
27.根据权利要求25所述的方法,其中,所述物理约束损失是基于姿态参数和形状参数中的至少一者的范围来确定的,其中,所述姿态正则化损失和所述形状正则化损失中的至少一者与所述姿态参数和所述形状参数中的至少一者的大小成比例,并且其中,所述姿态先验损失基于指示姿态的可能性的概率得分。
28.根据权利要求18所述的方法,其中,所述最终3D网格模型是基于与所述图像和所述深度信息相关联的3D点云与所述修改的3D网格模型的集合中的每个特定3D网格模型之间的相应距离来选择的,其中,所述相应距离包括相应扫描到网格的距离,并且其中,所述最终3D网格模型包括具有最短扫描到网格的距离的所述特定3D网格模型。
29.根据权利要求18所述的方法,其中,所述最终3D网格模型包括可变形模型,其中,所述目标包括可变形物体和可变形躯体中的至少一者,并且其中,选择所述最终3D网格模型包括将所述最终3D网格模型与来自所述图像和所述深度信息的3D点云对准和拟合中的至少一者,所述3D点云对应于所述目标。
30.一种其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:
基于目标的图像和与所述图像相关联的深度信息,确定所述目标的三维(3D)网格模型;
基于与所述3D网格模型和所述3D网格模型的不同实例中的至少一者相关联的多个旋转和平移参数中的一个或多个估计损失来生成修改的3D网格模型的集合;以及
从所述修改的3D网格模型的集合中选择所述目标的最终3D网格模型。
CN202180088752.6A 2021-01-07 2021-12-27 基于可变形模型的三维扫描配准 Pending CN116686006A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/144,102 US11769263B2 (en) 2021-01-07 2021-01-07 Three-dimensional scan registration with deformable models
US17/144,102 2021-01-07
PCT/US2021/073120 WO2022150252A1 (en) 2021-01-07 2021-12-27 Three-dimensional scan registration with deformable models

Publications (1)

Publication Number Publication Date
CN116686006A true CN116686006A (zh) 2023-09-01

Family

ID=79730243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088752.6A Pending CN116686006A (zh) 2021-01-07 2021-12-27 基于可变形模型的三维扫描配准

Country Status (6)

Country Link
US (1) US11769263B2 (zh)
EP (1) EP4275176A1 (zh)
KR (1) KR20230128284A (zh)
CN (1) CN116686006A (zh)
BR (1) BR112023012802A2 (zh)
WO (1) WO2022150252A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117057206B (zh) * 2023-10-11 2024-01-26 深圳市常丰激光刀模有限公司 一种三维模具的智能建模方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2734143C (en) * 2008-08-15 2021-08-31 Brown University Method and apparatus for estimating body shape
US10984609B2 (en) * 2018-11-21 2021-04-20 Electronics And Telecommunications Research Institute Apparatus and method for generating 3D avatar

Also Published As

Publication number Publication date
BR112023012802A2 (pt) 2023-10-31
WO2022150252A1 (en) 2022-07-14
EP4275176A1 (en) 2023-11-15
KR20230128284A (ko) 2023-09-04
US20220215564A1 (en) 2022-07-07
US11769263B2 (en) 2023-09-26

Similar Documents

Publication Publication Date Title
US20240013526A1 (en) Depth and motion estimations in machine learning environments
US10755425B2 (en) Automatic tuning of image signal processors using reference images in image processing environments
US10110881B2 (en) Model fitting from raw time-of-flight images
EP2880633B1 (en) Animating objects using the human body
TW202119199A (zh) 虛擬鍵盤
US10037624B2 (en) Calibrating object shape
JP2015153046A (ja) 画像処理装置、画像処理方法およびプログラム
US11244506B2 (en) Tracking rigged polygon-mesh models of articulated objects
US11748913B2 (en) Modeling objects from monocular camera outputs
US20160086349A1 (en) Tracking hand pose using forearm-hand model
CN110069125B (zh) 虚拟对象的控制方法和装置
CN116848556A (zh) 使用多视图细化来增强三维模型
US10304258B2 (en) Human feedback in 3D model fitting
US20190096073A1 (en) Histogram and entropy-based texture detection
CN116686006A (zh) 基于可变形模型的三维扫描配准
US10867441B2 (en) Method and apparatus for prefetching data items to a cache
EP4327242A1 (en) Systems and methods for gaze-tracking
Jáuregui et al. Real-time 3D motion capture by monocular vision and virtual rendering

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