CN113762068A - 用于估计手的当前姿势的方法和电子装置 - Google Patents

用于估计手的当前姿势的方法和电子装置 Download PDF

Info

Publication number
CN113762068A
CN113762068A CN202110829328.4A CN202110829328A CN113762068A CN 113762068 A CN113762068 A CN 113762068A CN 202110829328 A CN202110829328 A CN 202110829328A CN 113762068 A CN113762068 A CN 113762068A
Authority
CN
China
Prior art keywords
hand
pose
pixels
electronic device
candidate
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
CN202110829328.4A
Other languages
English (en)
Inventor
乔纳森·詹姆斯·泰勒
弗拉迪米尔·坦科维奇
唐丹航
塞姆·克斯金
阿达尔什·普拉卡什·穆尔蒂·寇德莱
菲利普·L·戴维森
沙赫拉姆·伊扎迪
戴维·金
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.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/994,563 external-priority patent/US10614591B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of CN113762068A publication Critical patent/CN113762068A/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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/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/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • 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

Abstract

本发明涉及用于估计手的当前姿势的方法和电子装置。电子装置(100)通过使用蒙皮四面体网格(410)使有符号距离场(330)在体积上变形来估计手(120)的姿势,以定位能量函数(810)的局部最小值,其中所述局部最小值与手的姿势相对应。电子装置通过将手的隐式表面模型(305)拟合到与手相对应的深度图像(115)的像素(320)来识别手的姿势。电子装置使用蒙皮四面体网格将空间从基本姿势扭曲到变形姿势,以定义明确表达的有符号距离场,手跟踪模块由该明确表达的有符号距离场得出手的候选姿势。然后,电子装置基于每个相应像素的距离使能量函数最小化,以识别最接近手的姿势的候选姿势。

Description

用于估计手的当前姿势的方法和电子装置
分案说明
本申请属于申请日为2018年7月27日的中国发明专利申请201880036103.X的分案申请。
背景技术
手跟踪允许将明确表达的手势用作虚拟现实和增强现实系统的输入机制,从而支持更加身临其境的用户体验。生成式手跟踪系统捕捉用户的手的图像和深度数据,并将生成式模型拟合到捕捉的图像或深度数据。为了将模型拟合到所捕捉的数据,手跟踪系统定义并优化能量函数,以找到与正确的手姿势相对应的最小值。然而,传统的手跟踪系统通常具有准确性和等待时间问题,这能够带来不满意的用户体验。
附图说明
通过参考附图,可以更好地理解本公开,并使其众多特征和优点对于本领域技术人员而言显而易见。在不同附图中使用相同的附图标记表示相似或相同的项目。
图1是示出根据本公开的至少一个实施例的基于深度图像估计手的当前姿势的手跟踪系统的示意图。
图2是示出根据本公开的至少一个实施例被配置为基于深度图像估计手的当前姿势的图1的手跟踪系统的手跟踪模块的示意图。
图3是示出根据本公开的至少一个实施例对预先计算的有符号距离的栅格进行插值以生成用于估计从点到模型的距离的平滑有符号距离场的示意图。
图4是示出根据本公开的至少一个实施例的蒙皮四面体体积网格的基本姿势的示意图。
图5是示出根据本公开的至少一个实施例的四面体体积网格的变形姿势的示意图。
图6是示出根据本公开的至少一个实施例的包含在三角形网格内处于基本姿势的手指的端部的二维截面的示意图。
图7是示出根据本公开的至少一个实施例的包含在变形的三角形网格内处于查询姿势的手指的端部的二维截面的示意图。
图8是根据本公开的至少一个实施例的基于深度图像的三维(3D)点云的每个点与候选姿势之间的距离的能量函数的示意图。
图9是示出根据本公开的至少一个实施例的基于捕捉的深度图像估计手的当前姿势的方法的流程图。
图10是示出根据本公开的至少一个实施例的通过使用来自前一帧的姿势和从粗略总体预测姿势导出的一个或多个姿势进行初始化来最小化能量函数的方法的流程图。
图11是示出根据本公开的至少一个实施例的预测手的粗略总体预测姿势的方法的流程图。
具体实施方式
以下描述旨在通过提供许多具体实施例和细节来传达对本公开的透彻理解,这些具体实施例和细节包括基于蒙皮四面体网格通过使有符号距离场在体积上变形来估计手的姿势。然而应当理解,本公开不限于仅作为示例的这些具体实施例和细节,并且本公开的范围因此旨在仅由后附权利要求书及其等同物限制。还应当理解,根据已知的系统和方法,本领域技术人员将根据特定的设计和其它需要,在任何数量的替代性实施例中为其预期目的和益处使用本公开。
图1至图11示出通过使用蒙皮四面体网格来使有符号距离场在体积上变形以定位能量函数的局部最小值来估计至少一只手的姿势的技术,其中局部最小值与手姿势相对应。手跟踪模块从深度相机接收手的深度图像,并通过将定义为明确表达的有符号距离函数的零交叉的手的隐式表面模型拟合到与手相对应的深度图像的像素,来识别手的姿势。手跟踪模块通过首先将像素在体积上扭曲到基本姿势中,然后对预先计算的有符号距离值的3D栅格进行插值,以估计与隐式表面模型的距离,而将模型拟合到像素。使用蒙皮四面体网格执行体积扭曲。手跟踪模块使用蒙皮四面体网格将空间从基本姿势扭曲到变形姿势,以定义明确表达的有符号距离场,手跟踪模块从中得出手的候选姿势。然而,通过将像素从变形姿势扭曲到基本姿势,避免了显式生成明确表达的有符号距离函数,其中,能够通过对预先计算的有符号距离值的3D栅格进行插值来估计与表面的距离。然后,手跟踪模块基于每个对应像素的距离使能量函数最小化,以识别最接近的手的姿势的候选姿势。
在一些实施例中,手跟踪模块使用来自前一帧的姿势(即,紧接在当前深度图像之前的深度图像)来初始化候选姿势。手动跟踪系统利用具有极高帧频的深度相机将前一帧的真实姿势与当前帧的真实姿势之间的差异最小化。在一些实施例中,手跟踪模块还通过预测姿势来初始化候选姿势。为了预测姿势,手跟踪模块基于代表左手、右手或背景的每个像素的概率来分割深度图像的像素。手跟踪模块基于对应像素生成左手和右手中的至少一只手的三维(3D)点云,并基于3D点云与多个已知姿势的比较来预测手的总体定向,以生成预测的当前姿势。
图1示出根据本公开的至少一个实施例的手跟踪系统100,该手跟踪系统100被配置为使用深度传感器数据来支持AR/VR应用的手跟踪功能。手跟踪系统100能够包括用户便携式移动装置,诸如平板计算机、具有计算能力的蜂窝电话(例如“智能电话”)、头戴式显示器(HMD)、笔记本计算机、个人数字助理(PDA)、游戏系统遥控器、电视遥控器、有屏幕或没有屏幕的相机附件等。在其它实施例中,手跟踪系统100能够包括另一种类型的移动装置,诸如汽车、机器人、遥控无人机或其它机载装置等。为了便于说明,本文一般在诸如平板计算机或智能电话之类的移动装置的示例性背景下描述手跟踪系统100;然而,手跟踪系统100不限于这些示例性实施方式。根据本公开的至少一个实施例,手跟踪系统100包括手跟踪模块110,该手跟踪模块110基于由深度相机105所捕捉的深度图像115来估计手120的当前姿势140。在该示例中,手120是做出点击手势的右手,其中拇指和食指伸出,并且其余手指向下弯曲到手掌。
在一个实施例中,深度相机105使用调制光投影仪(未示出)来将调制光图案投射到局部环境中,并使用一个或多个成像传感器106来捕捉调制光图案从局部环境112中的对象反射回来的反射光。这些调制光图案能够是空间调制光图案,也能够是时间调制光图案。所捕捉的调制光图案的反射在本文中被称为“深度图像”115。在一些实施例中,深度相机105基于深度图像115的分析来计算对象的深度,即,对象与深度相机105的距离。
手跟踪模块110从深度相机105接收深度图像115,并通过将手模型拟合到与手120相对应的深度图像115的像素来识别手120的姿势。在一些实施例中,通过28个值将模型参数化(例如,五个手指中的每个手指的四个关节连接,手腕处的两个自由度和总体定向的六个自由度)。在一些实施例中,手跟踪模块110使用四元数将模型的总体旋转参数化,使得姿势矢量θ为29维。手跟踪模块110从深度图像115中分割出与手120相对应的一组3D数据点并回投。然后,手跟踪模块110将参数化隐式表面模型
Figure BDA0003174910380000041
(被公式化为明确表达的有符号距离函数的零交叉)拟合到3D数据点的集合
Figure BDA0003174910380000042
手跟踪模块110通过使能量最小化来使从每个3D数据点到表面的距离最小化
Figure BDA0003174910380000043
其中,Edata(θ)是姿势θ的能量,D(xn,θ)是从每个3D数据点xn到姿势θ中表面模型的最近点y的距离,N是集合中3D数据点的数量。
为了有助于将能量最小化的更高准确性和效率,手跟踪模块110以相对容易且快速计算的方式来定义到手模型的隐式表面的距离D(x,θ)。手跟踪模块110构建四面体网格(未示出),并将顶点蒙皮到骨架(未示出)。通过在网格的四面体中定义与其重心坐标相关的x,手跟踪模块110定义了将空间从基本姿势扭曲到变形姿势的函数,如下文更详细所述。基于变形姿势,手跟踪模块110定义明确表达的有符号距离场。能够将当前姿势的空间中的一个点扭曲回到基本姿势,其中,能够通过对有符号距离的预先计算3D栅格进行插值来有效地估计到表面的距离。手跟踪模块110将其用作其处理的一部分,以快速估计手120的当前姿势140。
在一些实施例中,手跟踪模块110使用当前姿势估计140来更新显示器130上的图形数据135。在一些实施例中,显示器130是物理表面,例如平板电脑、移动电话、智能装置、显示器监视器、显示器监视器的一个或多个阵列、笔记本电脑、标牌等,或者是在物理表面上的投影。在一些实施例中,显示器130是平面的。在一些实施例中,显示器130是曲面的。在一些实施例中,显示器130是虚拟表面,诸如包括虚拟现实和增强现实的空间中的对象的三维投影或全息投影。在显示器130是虚拟表面的一些实施例中,在用户的HMD内显示虚拟表面。虚拟表面的位置可以是相对于用户的本地环境112内的静止对象(诸如墙壁或家具)。
图2是示出根据本公开的至少一个实施例的图1的手跟踪系统100的手跟踪模块110的示意图。手跟踪模块110包括存储器205、像素分割器210、重新初始化器215、插值器220和体积变形器225。这些模块中的每个模块代表被配置为执行本文所述操作的硬件、软件或其组合。手跟踪模块110被配置为从深度相机(未示出)接收深度图像115,并基于深度图像115生成当前姿势估计140。
存储器205是通常被配置为存储数据的存储器装置,并且因此可以是随机存取存储器(RAM)存储器模块、非易失性存储器装置(例如闪存)等。存储器205可以形成手跟踪系统100的分级存储器体系的一部分,并且可以包括其它存储器模块,诸如图1处未示出的附加缓存。存储器205被配置为从深度相机(未示出)接收并存储深度图像115。
像素分割器210被配置为将深度图像115的像素分割成与左手、右手和背景相对应的像素。在一些实施例中,像素分割器210将深度图像115的每个像素分配为与左手pleft、右手pright和背景pbg∈[0,1]相对应的概率,以产生概率图P。在一些实施例中,像素分割器210将具有高值ηhigh∈[0,1]的P阈值化,将输出与大带宽高斯滤波器进行卷积,并且然后找到最大值的位置(手分割器210将其分配为手位置)。然后,手分割器210将具有较小值ηlow的P阈值化,并将其与半径为
Figure BDA0003174910380000061
的球面相交,以分割手像素。
在一些实施例中,像素分割器210还训练随机决策森林(RDF)分类器,以产生P。RDF分类器(未示出)采用深度和平移不变特征,这些特征在围绕中心像素的深度标准化偏移处将两个像素的深度差阈值化。对于深度图像I上的坐标(u,v)处的每个像素p而言,树中的每个分裂节点评估以下函数:
Figure BDA0003174910380000062
其中,Γ是I(u,v)、Δui和Δvi是两个偏移,τ是所述分裂节点的阈值。在一些实施例中,为了增强用于使不变的子任务旋转的特征池,诸如单只伸出的手,像素分割器210引入新的旋转不变的特征族,其将两个同心环的平均深度阈值化:
Figure BDA0003174910380000063
其中,R(u,v,r,I)是在围绕中心像素的深度缩放半径r的环上找到的K个深度像素的总和。在一些实施例中,像素分割器210用固定数量的点k来逼近该环:
Figure BDA0003174910380000064
在一些实施例中,像素分割器210还将所述特征的一元版本额外地定义如下:
Figure BDA0003174910380000071
在训练时,像素分割器210基于所学习的先前姿势从二元和一元旋转相关和不变特征池中采样。在一些实施例中,对于每个所考虑的特征而言,像素分割器210从固定范围均匀地采样多个τ值,并选择使信息增益最大化的值。像素分割器210每只手输出分割的深度图像R。
在一些实施例中,像素分割器210使用卷积神经网络(CNN)或随机决策森林(RDF)或以上两者来产生为每个像素编码的概率图,像素的概率分别属于左手、右手和背景。为了检测右手,像素分割器210将概率图Pright的所有值临时设定为零,这些值低于高值ηhigh∈[0,1]。像素分割器210用大带宽高斯滤波器对输出进行卷积,并且然后使用最大值的位置。然后,像素分割器210通过将概率小于ηlow∈[0,ηhigh]或3D位置不包含在围绕手检测的半径
Figure BDA0003174910380000072
的球体中的任何像素的值设置为零,从原始分割Pright中移除异常值。像素分割器210因此在允许机器学习方法丢弃被识别为不属于手的附近像素(例如,用户的胸部的像素)的同时确保远离最突出的手的像素(例如,背景中其它人的手上的像素)不会污染分割。手分割器210使用深度相机105参数将通过测试的像素回投到3D空间中,以形成点云
Figure BDA0003174910380000073
从而定义能量
Figure BDA0003174910380000074
重新初始化器215从像素分割器210接收分割的深度图像R。当手跟踪模块110失去对图1的手120的跟踪时,重新初始化器215通过生成粗略总体预测姿势来重置手跟踪模块110。在一些实施例中,手跟踪模块110将粗略总体预测姿势用作手的候选姿势。在一些实施例中,重新初始化器215通过在假定为平面的手掌上定位三个关节来使用RDF估计六个自由度(6DOF)的手姿势。这三个关节是腕关节qw、掌指(MCP)关节qi的基部和小指MCP qp的基部。重新初始化器215通过评估R中的每个像素p来定位三个关节,以针对每个关节的相对于p三维(3D)偏移产生单个选票。用回归目标训练RDF的树,以使叶子中的选票差异最小化。每个像素为所有关节投票,它们分别汇总,以形成每个关节的选票分布。重新初始化器215选择分布的模式,作为三个关节的最终估计。在一些实施例中,重新初始化器215通过将总体平移设定为qw并通过找到由三个关节定义的三维三角形的定向来导出总体定向,从而将三个关节转换到重新初始化姿势。然后,重新初始化器215从先前姿势中随机采样一组手指姿势,以生成粗略总体预测姿势。
插值器220以基本姿势θ0预先计算有符号距离值的3D栅格,并使用三次插值为任意点
Figure BDA0003174910380000081
定义到表面的有符号距离
Figure BDA0003174910380000082
三次插值可以访问关于x的平滑一阶和二阶导数。因此,有符号距离场使用三次插值平滑地捕捉模型的细节。
体积变形器225使用线性蒙皮四面体网格将有符号距离场定义到任意姿势θ中,作为插值器220的有符号距离场的体积扭曲。体积变形器225能够有效地将当前姿势中的点扭曲回到基本姿势中,而不是显式生成变形的有符号距离函数,因此,通过插值器能够快速估计到隐式表面的距离及其导数。体积变形器225经由线性混合蒙皮来定义四面体网格的顶点的变形。
严格而言,四面体网格实际上定义了从基本姿势到变形姿势的扭曲y=W(x,θ)。该函数在很大程度上是可逆的,使得基本姿势中的变形到当前姿势中的点的点集通常为1,除非变形导致四面体自相交。在后一种情况下,通过简单地拾取基本姿势中与由插值器220定义的隐式表面相比具有更小绝对距离的点来解决歧义。因此,这定义了将空间从变形姿势扭曲到基本姿势的函数W-1(x,θ)。因此,对于任意姿势θ而言,将到表面D(x,θ)的距离定义为
Figure BDA0003174910380000083
这能够容易地评估,而无需在变形姿势中显式生成密集有符号距离场。因此,四面体网格将有符号距离场的细节变换到不同的姿势。四面体网格扭曲仅在连接点处引入伪像,这能够通过仅在连接点处压缩四面体网格来解决。
手跟踪模块110将来自插值器220的预先计算的有符号距离场
Figure BDA0003174910380000091
和来自蒙皮体积四面体网格的体积变形W(x,θ)合成,以定义明确表达的有符号距离场
Figure BDA0003174910380000092
其得出到估计姿势中的点x的表面的估计距离。手跟踪模块110使用明确表达的有符号距离场D(x,θ)来定义能量函数
Figure BDA0003174910380000093
尽管编码在先知识的其它术语能够被并入。
在一些实施例中,手跟踪模块110首先使用从前一帧中的系统输出的姿势θprev来初始化候选姿势θ。在一些实施例中,手跟踪模块110通过使用由重新初始化器215生成的粗略总体预测姿势θpred来初始化其它候选姿势θ。在一些实施例中,深度相机(未示出)采用高帧频,使得前一帧中的姿势θprev与当前帧中的真实姿势之间的差异最小。通过使能量函数最小化,手跟踪模块110生成当前姿势估计140。
在一些实施例中,手跟踪模块110通过联合优化姿势Θ={θleftright}和一组右手分配
Figure BDA0003174910380000094
来跟踪两只手,
Figure BDA0003174910380000095
隐式定义了一组左手分配
Figure BDA0003174910380000096
然后手跟踪模块110将待优化的全部能量公式化为
Figure BDA0003174910380000097
其中,
Figure BDA0003174910380000098
Figure BDA0003174910380000099
是从分割森林输出的惩罚,用于将数据点n分别分配到右手姿势和左手姿势。为了优化该函数,手跟踪模块110执行Θ和Υ之间的交替,用Levenberg更新来更新Θ,并通过离散考虑将数据点分配到左手还是右手将会降低能量来更新Υ。
图3示出根据本公开的至少一个实施例,基于预先计算的距离函数对深度图像的像素320进行插值,以生成平滑的有符号距离场(SDF)330,该平滑的有符号距离场用于估计在基本姿势θ0中从像素320到模型305的距离325。图2的插值器220预先计算在基本姿势θ0中有符号距离315的密集栅格310。然后,插值器220使用三次插值来定义中性或基本姿势中任意点
Figure BDA0003174910380000101
到表面的有符号距离函数
Figure BDA0003174910380000102
预先计算和插值有符号距离315的网格减轻了评估距离D(x,θ)的计算负担,并平滑地捕捉模型305的高频细节。
图4示出根据本公开的至少一个实施例,图2的体积变形器225的四面体体积网格410的基本姿势400,其中将顶点蒙皮到图3的密集SDF330。蒙皮四面体网格410将密集SDF330的细节变换到不同的姿势。蒙皮四面体网格410仅在连接点处引入伪像。在一些实施例中,蒙皮四面体网格410例如在连接点415、420、425处被压缩,而密集SDF 330表示其它区域中姿势的几何形状。在一些实施例中,体积变形器(未示出)应用任意网格蒙皮技术来使单个SDF 330变形。因此,将变形函数和细节表示解耦,从而允许粗略四面体网格被用于传递由SDF330表示的详细的静态几何形状。这也可以存在在线修改SDF 330中的静态几何形状的可能性,而不必修改变形函数。
图5示出根据本公开的至少一个实施例的图4的四面体体积网格410的变形姿势500。图2的体积变形器225使用四面体体积网格410将点x扭曲到W(x,θ)。因此,体积变形器225使用四面体体积网格410来提供函数y=W(x,θ),该函数将空间从基本姿势扭曲到变形姿势。该函数在很大程度上是可逆的,因此也可以定义一个函数x=W-1(y,θ),该函数将空间从变形姿势扭曲到基本姿势。这允许手跟踪模块110避免在新姿势中显式扭曲并密集生成有符号距离函数,在寻找正确姿势的同时连续执行该有符号距离函数将会非常昂贵。相反,手跟踪模块110能够通过将x扭曲回到基本姿势中来估计在任意姿势θ中点x到隐式表面的距离D(x,θ),其中能够通过对有符号距离值的预先计算的3D栅格进行插值来快速估计到表面的距离。此外,因为扭曲和有符号距离场几乎在任何地方都是可区分的,所以手跟踪模块110还能够快速查询导数,以使得能够快速本地搜索根据到表面的距离定义的能量函数。
图6示出根据本公开的至少一个实施例的包含在三角形网格610内的基本姿势中的手指605末端的二维(2D)截面。将图4和图5的四面体体积网格410描绘为2D等效三角形网格610,以便于参考。三角形网格610包括三角形614、616、618、620、622、624、626和628。
图7示出根据本公开的至少一个实施例的包含在变形三角形网格710内的查询姿势θ中的图6的手指605的末端的2D截面。2D中的三角形网格与3D中的四面体网格相类似,并且因此被用于更简单地说明该技术。四面体网格(示为三角形网格710)包括四面体(示为三角形714、716、718、720、722、724、726和728),它们分别与图6的四面体(或三角形)614、616、618、620、622、624、626和628相对应。当网格710变形时,每个四面体(或三角形)714、716、718、720、722、724、726和728定义图6的基本姿势与查询姿势θ之间的仿射变换。这定义了从基本姿势到查询姿势的体积扭曲W(x,θ)。使用每个四面体(或三角形)的仿射逆变换,能够尝试定义反扭曲W-1(x,θ)。使用该方法,图2的体积变形器225隐式定义有符号距离场D(x,θ),如本文中进一步所述的。对于落入变形网格710内的查询点x(例如点730),包含该点的四面体(或三角形)τ能够使用其逆仿射变换将查询点发送到Bτ(x,θ),其中到隐式编码表面的距离能够被查询为
Figure BDA0003174910380000111
对于落在变形网格710外的点y(例如点732),体积变形器225首先测量到包含在四面体网格中的最接近点的距离。然后,针对该距离,体积变形器225添加通过使用前述技术评估最接近点到表面的距离而获得的距离。
更详细而言,对于任何点x而言,体积变形器225使用最接近点
Figure BDA0003174910380000112
其中τ是包含最接近点的四面体(或三角形),并且
Figure BDA0003174910380000113
(或
Figure BDA0003174910380000114
)是矩阵,其中将四面体τ的四个顶点(或三角形τ的三个顶点)在姿势θ中的位置存储在其列中,且
Figure BDA0003174910380000115
(或
Figure BDA0003174910380000116
)是姿势θ下的四面体(或三角形)τ中最接近点的重心坐标。在一些实施例中,体积变形器225将最接近点扭曲回到基本姿势,即
Figure BDA0003174910380000121
以查询其到隐式编码表面的距离。当查询点x位于四面体网格中时,qτ(x,θ)=x,而当x位于四面体网格之外时(例如,点732),体积变形器占据qτ(x,θ)与x之间的附加距离。在某些情况下,四面体网格的变形导致查询点x落入多个重叠的四面体中,从而导致体积扭曲严格不可逆。因此,体积变形器225通过将包含x的四面体(或三角形)的集合定义如下来解决此问题。
Figure BDA0003174910380000122
然后,体积变形器225选择将用于将点扭曲回到基本姿势中的四面体(或三角形)τ*(x,θ),即
Figure BDA0003174910380000123
第一种情况选择包含在基本姿势中将点向后扭曲到表面的最小绝对距离的四面体(或三角形)。第二种情况选择当前姿势中与所述点最接近的四面体(或三角形)。然后,体积变形器225将到表面的明确表达的有符号距离函数定义为
Figure BDA0003174910380000124
其中,第一项测量到所选四面体(或三角形)中最接近点的距离,并且第二项将所述最接近点扭曲回到基本姿势,以评估有符号距离,从而评估它到表面的距离。
因此,随着τ*(x,θ)从一个四面体(或三角形)跳到另一个四面体(或三角形),体积变形器225将空间分成单元的离散集。当x落入至少一个四面体(或三角形)中时,体积变形器225使用由所选四面体(或三角形)定义的仿射变换将当前姿势中的空间映射回到基本姿势,用于SDF评估。当x落在四面体网格510(或三角形网格710)外部时,体积变形器225选择最接近的四面体(三角形),并类似地使用仿射变换将最接近四面体的边界上的最接近点扭曲到基本姿势中,用于SDF评估。体积变形器225将从x到四面体边界上的最接近点的距离加入到该值,以补偿四面体网格之外的查询点。在一些实施例中,体积变形器225添加更多的四面体(或三角形),以平滑关节周围的突起。
图8是根据本公开的至少一个实施例的基于图1的深度图像115的三维(3D)点云的每个点与基于明确表达的有符号距离函数的候选姿势之间的距离的能量函数810的示意图。图1和图2的手跟踪模块110生成能量函数810,以评估由候选手姿势θ对3D点云的点的解释程度。手跟踪模块110将能量函数定义为
Figure BDA0003174910380000131
所定义的明确表达的有符号距离场允许快速查询D(x,θ)的距离和导数。结果,能够快速查询上述能量函数的值和下降方向两者,使得能够从初始化姿势执行快速局部搜索。
在一些实施例中,手跟踪模块110通过由来自图1的深度相机105的先前帧820的姿势约束的候选姿势来进行局部搜索,以使能量最小化。在一些实施例中,深度相机105是高帧频深度相机,使得由于帧之间的时间间隔短而导致前一帧825中的姿势极有可能接近当前帧中的真实姿势。快速最小化前述能量函数有助于以高帧速率处理深度帧。在一些实施例中,手跟踪模块110还通过重新初始化器215所生成的粗略总体预测姿势830来初始化候选姿势。通过利用由先前帧的姿势和粗略总体预测姿势830中的一个或兼用两者来初始化候选姿势,手跟踪模块110避免了能量函数810的局部最小值。
图9是示出根据本公开的至少一个实施例的基于所捕捉的深度图像来估计手的当前姿势的方法900的流程图。在步骤902处,图1的深度相机105捕捉手120的深度图像115。在步骤904处,手跟踪模块110的插值器220基于深度图像115定义密集有符号距离场330。在步骤906处,体积变形器225基于四面体网格510在体积上定义密集有符号距离场330。在步骤908处,体积变形器225基于密集有符号距离场330的体积变形来定义明确表达的有符号距离函数。在步骤910处,手跟踪模块110使能量函数810最小化,以通过利用变形器和插值器来估计当前姿势140,所述变形器和插值器允许在任意姿势中极其快速地查询到隐式表面的距离以及对应的导数。
图10是示出根据本公开的至少一个实施例的使通过先前帧825中的姿势和粗略总体预测姿势830初始化的候选姿势的能量函数810最小化的方法1000的流程图。在步骤1002处,手跟踪模块110将来自先前帧825的姿势设定置为候选姿势的第一初始化。在步骤1004处,手跟踪模块110将粗略总体预测姿势830设定为候选姿势的第二初始化。在步骤1006处,手跟踪模块110利用明确表达的有符号距离函数来提供从每个初始化的快速本地搜索。在步骤1008处,手跟踪模块110利用最小能量函数810将当前姿势140估计为候选姿势。
图11是示出根据本公开的至少一个实施例的生成手120的粗略总体预测姿势830的方法1100的流程图。在步骤1102处,存储器205接收深度图像115。在步骤1104处,像素分割器210将深度图像115的像素分割到与左手、右手以及背景相对应的像素。在步骤1106处,每个被分割像素投票给手120的手掌上的位置,以生成点云。在步骤1108处,重新初始化器215找到每个点云的中心,以生成手120的粗略总体预测姿势830。
在一些实施例中,上述技术的某些方案可通过执行软件的处理系统的一个或多个处理器来实现。所述软件包括在非暂时性计算机可读存储介质上存储或以其它方式有形体现的一组或多组可执行指令。所述软件能够包括指令和某些数据,在通过一个或多个处理器执行时,所述指令和某些数据操纵一个或多个处理器执行上述技术的一个或多个方面。非易失性计算机可读存储介质例如能够包括磁盘或光盘存储装置、诸如闪存的固态存储装置、高速缓存、随机存取存储器(RAM)或其它非易失性存储装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释或能够以其它方式执行的其它指令格式。
计算机可读存储介质可以包括在使用期间能够由计算机系统访问的任何存储介质或存储介质的组合,以向该计算机系统提供指令和/或数据。这样的存储介质能够包括但不限于光学介质(例如,压缩盘(CD)、数字通用盘(DVD)、蓝光光盘),磁介质(例如,软盘、磁带或硬盘驱动器),易失性存储器(例如,随机存取存储器(RAM)或高速缓存),非易失性存储器(例如,只读存储器(ROM)或闪存),或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以被嵌入在计算系统(例如,系统RAM或ROM)中,以固定的方式附接到计算系统(例如,硬盘驱动器),以可移除的方式附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存,或经由有线或无线网络(例如,网络可访问存储(NAS))联接到计算机系统。
注意,一般描述中的上述所有活动或元素并非都是必需的,特定活动或设备的一部分可能不是必需的,并且除了上述内容之外,还可以执行一个或多个其它活动或所包括的元素。更进一步,列出活动的顺序不一定是执行这些活动的顺序。而且,已经参考特定实施例描述了概念。然而,本领域的普通技术人员将理解,在不脱离如下文所附权利要求书中阐述的本公开的范围的情况下能够进行各种修改和改变。因此,说明书和附图应被认为是说明性的而不是限制性的,并且所有这样的修改旨在被包括在本公开的范围内。
上面已经关于特定实施例描述了益处,其它优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案出现或变得更加明显的任何一个或多个特征都不应解释为权利要求书的任何一项或全部的关键,必需或必要特征。此外,上面公开的特定实施例仅是说明性的,这是因为所公开的主题可以以不同但等同的方式进行修改和实践,这些方式对本领域技术人员来说是显而易见的,并且具有本文所述教导的优点。除了在下面的权利要求书中描述的以外,没有意图限制本文所示的构造或设计的细节。因此,显而易见的是,以上公开的特定实施例可以被改变或修改,并且所有这样的变化都被认为在所公开的主题的范围内。因此,本文所寻求的保护如以下权利要求书所述。

Claims (20)

1.一种用于估计手的当前姿势的方法,包括:
在深度相机处捕捉用户的至少一只手的深度图像,所述深度图像包括多个像素;以及
通过将所述手的隐式表面模型拟合到所述多个像素的子集来识别所述至少一只手的当前姿势,所述拟合包括:
对预先计算的有符号距离的密集栅格进行插值,以定义第一有符号距离函数;
基于与候选姿势相关联的蒙皮四面体网格使所述有符号距离函数在体积上变形,以定义明确表达的有符号距离场;以及
基于所述明确表达的有符号距离场来估计所述手的当前姿势。
2.根据权利要求1所述的方法,其中,通过将所述深度图像的每个像素分配为与右手、左手或背景相对应的概率以产生概率图,来识别所述像素的子集。
3.根据权利要求1所述的方法,还包括:通过第一姿势和第二姿势来初始化所述候选姿势。
4.根据权利要求3所述的方法,其中,所述第一姿势基于来自先前帧的姿势。
5.根据权利要求4所述的方法,其中,所述第二姿势基于粗略总体预测姿势。
6.根据权利要求5所述的方法,其中,基于以下来生成所述粗略总体预测姿势:
基于所述多个像素的所述子集来生成所述手的三维(3D)点云;以及
基于所述3D点云与多个已知姿势的比较来预测所述手的总体方位。
7.根据权利要求6所述的方法,其中,生成所述3D点云包括:通过所述多个像素的所述子集的每个像素对所述手的手掌上的位置进行投票。
8.一种用于估计手的当前姿势的方法,包括:
在深度相机处捕捉手的深度图像的多个连续帧,每个深度图像包括多个像素;
基于所述多个像素的子集生成三维(3D)点云;
基于所述3D点云的每个点与候选姿势中的所述手的隐式定义表面之间的距离,使能量函数最小化,其中,基于以下来生成所述候选姿势:
将手的参数化隐式表面模型拟合到所述3D点云的一组点,以通过使从所述一组点中的每个点到所述表面的距离最小化,来预先计算有符号距离函数;
使用蒙皮四面体网格将明确表达的有符号距离函数定义为在体积上扭曲;以及
评估点到所述手的所述隐式定义表面的距离和导数;以及
计算所述能量函数的下降方向,所述能量函数基于点的评估出的距离和导数来测量所述候选姿势的拟合;以及
基于产生所最小化的能量函数的所述候选姿势来估计所述手的当前姿势。
9.根据权利要求8所述的方法,其中,通过第一初始化和第二初始化将所述候选姿势初始化。
10.根据权利要求9所述的方法,其中,所述第一初始化是基于针对紧接在当前帧之前的帧估计的所述手的姿势。
11.根据权利要求10所述的方法,其中,所述第二初始化是基于粗略总体预测姿势。
12.根据权利要求11所述的方法,其中,基于所述手的总体方位的预测来生成所述粗略总体预测姿势,所述手的总体方位的预测是基于所述3D点云与多个已知姿势的比较。
13.根据权利要求8所述的方法,其中,生成所述3D点云包括:通过所述多个像素的所述子集中的每个像素对所述手的手掌上的位置进行投票。
14.一种电子装置,包括:
面向用户的深度相机,所述面向用户的深度相机用于捕捉用户的至少一只手的深度图像的多个连续帧,每个深度图像包括多个像素;以及
处理器,所述处理器被配置为:
通过将候选姿势中的所述手的隐式定义表面模型拟合到所述多个像素的子集来识别所述至少一只手的当前姿势,所述拟合包括:
对预先计算的有符号距离值的密集3D栅格进行插值,以定义第一有符号距离函数;
使用蒙皮四面体网格将明确表达的有符号距离函数定义为在体积上扭曲;
评估所述点到所述手的所述隐式定义表面的距离和导数;
基于所述点的距离和导数,计算测量候选姿势的拟合的能量函数的下降方向,使得能够执行本地搜索;以及
基于所述明确表达的有符号距离函数来估计所述当前姿势。
15.根据权利要求14所述的电子装置,其中,所述处理器还被配置为:通过对所述深度图像的每个像素编码所述像素属于右手、左手或背景中的一个的概率以产生概率图,来识别所述像素的子集。
16.根据权利要求14所述的电子装置,其中,所述处理器还被配置为:通过第一姿势和第二姿势来初始化所述候选姿势。
17.根据权利要求16所述的电子装置,其中,所述第一姿势基于紧接在当前帧之前的帧的姿势。
18.根据权利要求17所述的电子装置,其中,所述第二姿势基于粗略总体预测姿势。
19.根据权利要求18所述的电子装置,其中,所述处理器还被配置为:
基于所述多个像素的所述子集来生成所述手的三维(3D)点云;以及
基于所述3D点云与多个已知姿势的比较来预测所述手的总体方位,以生成所述粗略总体预测姿势。
20.根据权利要求19所述的电子装置,其中,所述处理器还被配置为:通过所述多个像素的所述子集的每个像素对所述手的手掌上的位置进行投票来生成所述3D点云。
CN202110829328.4A 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置 Pending CN113762068A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/994,563 2018-05-31
US15/994,563 US10614591B2 (en) 2017-05-31 2018-05-31 Hand tracking based on articulated distance field
CN201880036103.XA CN110800024B (zh) 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880036103.XA Division CN110800024B (zh) 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置

Publications (1)

Publication Number Publication Date
CN113762068A true CN113762068A (zh) 2021-12-07

Family

ID=69425354

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110829328.4A Pending CN113762068A (zh) 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置
CN201880036103.XA Active CN110800024B (zh) 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880036103.XA Active CN110800024B (zh) 2018-05-31 2018-07-27 用于估计手的当前姿势的方法和电子装置

Country Status (1)

Country Link
CN (2) CN113762068A (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110289455A1 (en) * 2010-05-18 2011-11-24 Microsoft Corporation Gestures And Gesture Recognition For Manipulating A User-Interface
US9020187B2 (en) * 2011-05-27 2015-04-28 Qualcomm Incorporated Planar mapping and tracking for mobile devices
US20160086349A1 (en) * 2014-09-23 2016-03-24 Microsoft Corporation Tracking hand pose using forearm-hand model
CN105654492B (zh) * 2015-12-30 2018-09-07 哈尔滨工业大学 基于消费级摄像头的鲁棒实时三维重建方法
CN107992858A (zh) * 2017-12-25 2018-05-04 深圳市唯特视科技有限公司 一种基于单一rgb帧的实时三维手势估计方法

Also Published As

Publication number Publication date
CN110800024A (zh) 2020-02-14
CN110800024B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
US11030773B2 (en) Hand tracking based on articulated distance field
CN111328396B (zh) 用于图像中的对象的姿态估计和模型检索
CN109643368B (zh) 检测视频数据中的对象
EP3304492B1 (en) Modelling a three-dimensional space
Sridhar et al. Fast and robust hand tracking using detection-guided optimization
Čehovin et al. Robust visual tracking using an adaptive coupled-layer visual model
US8849017B2 (en) Image processing apparatus, image processing method, program, and recording medium for learning from moving images
Holte et al. View-invariant gesture recognition using 3D optical flow and harmonic motion context
US20170024893A1 (en) Scene analysis for improved eye tracking
US11348314B2 (en) Fast and deep facial deformations
US8994652B2 (en) Model-based multi-hypothesis target tracker
JP2023549821A (ja) 変形可能なニューラル放射輝度場
Chang et al. Visual tracking in high-dimensional state space by appearance-guided particle filtering
CN110800024B (zh) 用于估计手的当前姿势的方法和电子装置
EP3593323B1 (en) High speed, high-fidelity face tracking
CN114489341A (zh) 手势的确定方法和装置、电子设备和存储介质
Shimada et al. Decaf: Monocular deformation capture for face and hand interactions
Cristina et al. Model-free non-rigid head pose tracking by joint shape and pose estimation
Chun et al. 3D star skeleton for fast human posture representation
Ravikumar Lightweight Markerless Monocular Face Capture with 3D Spatial Priors
Muenkelt et al. STABIL: A system for monitoring persons in image sequences
Malik Deep Learning-based 3D Hand Pose and Shape Estimation from a Single Depth Image: Methods, Datasets and Application
Zhu et al. Hand detection and tracking in an active vision system
Liu et al. Realtime dynamic 3D facial reconstruction for monocular video in-the-wild
CN116391208A (zh) 使用场景流估计的非刚性3d物体建模

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