CN102855470B - 基于深度图像的人体姿态估计方法 - Google Patents
基于深度图像的人体姿态估计方法 Download PDFInfo
- Publication number
- CN102855470B CN102855470B CN201210271289.1A CN201210271289A CN102855470B CN 102855470 B CN102855470 B CN 102855470B CN 201210271289 A CN201210271289 A CN 201210271289A CN 102855470 B CN102855470 B CN 102855470B
- Authority
- CN
- China
- Prior art keywords
- depth image
- virtual human
- model
- iteration
- cut
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000001514 detection method Methods 0.000 claims abstract description 9
- 238000001914 filtration Methods 0.000 claims abstract description 6
- 238000013519 translation Methods 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 19
- 238000005070 sampling Methods 0.000 claims description 15
- 230000009466 transformation Effects 0.000 claims description 14
- 230000007115 recruitment Effects 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 210000000988 bone and bone Anatomy 0.000 claims description 3
- 238000009499 grossing Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims description 2
- 230000033001 locomotion Effects 0.000 abstract description 23
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种人体姿态估计方法,该方法根据人体的深度图像进行人体姿态的估计,以通过虚拟人体模型来模拟该图像中的人体,该深度图像包括多个帧,该方法包括如下步骤:建立虚拟人体模型,该人体模型由骨骼模型和皮肤模型组成;对所述虚拟人体模型的参数进行初始化;对所述深度图像的当前帧进行滤波;对所述虚拟人体模型和深度图像进行对应点检测;对于所述深度图像的当前帧,根据所述对应点检测的结果建立并优化目标函数,该目标函数用于描述所述虚拟人体模型和所述深度图像之间的姿势差异的大小,通过最小化目标函数的值更新所述虚拟人体模型的当前姿态。本发明建立的虚拟人体模型自由度高,皮肤变形效果好,姿态估计收敛速度快且误差小,同时利用深度摄像机获取深度图像使得人体运动姿态估计***装置简便,便于推广应用。
Description
技术领域
本发明属于图像处理、计算机图形学、人体运动学、最优化理论及计算机应用领域,具体涉及基于深度图像的人体姿态方法。
背景技术
人体姿态估计是人体运动捕捉的核心问题。所谓人体姿态估计是指将抽象层次特征与人体模型进行匹配,从而得到不同时刻目标所处的姿态。人体的姿态表达包括两个方面,一是整个人体在世界坐标的位置和方向;二是身体各部分关节的角度及受关节角影响的皮肤变形。人体运动姿态估计的主要应用领域可以分为三大方向:监控、控制、分析。
在监控应用方面,一些传统的应用包括在机场或地铁中自动检测并定位行人、人数统计或人群流动、拥塞分析等等。随着安全意识的提高,近年来出现了一些新型的应用——个人或人群的行为和动作的分析。比如在排队和购物中,检测不正常的行为或进行身份识别等。
在控制应用方面,人们利用运动估计结果或姿态参数来对目标进行控制。这在人机交互方面的应用最多。在娱乐产业如电影和游戏动画等,应用也越来越广。人们可以利用捕捉到的人的形状、外表和动作,来制作3D电影或重建游戏中的人的三维模型。
在分析应用方面,包括对外科病人的自动诊断、对运动员动作的分析和改进等。在视觉媒体方面,有基于内容的视频检索、视频压缩等应用。此外,在汽车产业方面也得到了相关的应用,比如安全气囊的自动控制、睡眠检测和行人检测等。
目前市场上比较成熟的人体运动捕捉***有基于电动机械的,电磁的和特殊光学标志等类型。磁性或者光学的标记被附在人的肢体上,它们的三维轨迹被用来描述目标运动,这些***是自动的,但是其设备非常笨重,且价格昂贵,无法得到广泛的应用。因此,基于计算机视觉人体运动捕捉技术已经成为研究热点。它利用计算机视觉的基本原理,从视频中直接提取三维人体运动序列.这种方法不需要在人体关节上附加任何传感器,保证了人体运动不受限制,而且造价低,效率高。当前流行的方法大多采用基于人体模型的匹配技术。这种方法的目标是在状态空间中找到一组姿态参数,使得对应这个参数的人体姿态与从观测图像中提取的底层特征最为符合。
在基于计算机视觉的运动跟踪这一领域,一般采用的研究方法是,在跟踪的开始确定图像序列中首帧的人***置,后续序列中人体目标的确定依赖于人体运动的连续性和运动学约束条件。确定首帧人***置有两种方法:一是人为规定目标的首个姿态或者将人体模型设定为首帧的近似姿态,这不利于人体跟踪的自动化。二是去除人体以外的背景后,使用部位检测方法确定身体的各个部位,这种方法可部分实现自动化,但需要人景分割的严格保证。在后续人体跟踪和三维姿态估计中,有基于模型和无模型的方法。基于模型的一般方法是事先建立人体的3D模型,将模型与运动序列的首帧匹配,在后续跟踪中,利用运动参数限制等条件,采用梯度下降或随机采样等优化方法进一步估计每一帧的模型参数,从而得出模型运动序列。这种方法的缺点是后续帧的跟踪存在累积误差,长时间跟踪容易出错。无模型方法不需要建立人体模型,而是根据人体运动呈现的几何、纹理、色彩等信息,采用学习或基于样本的方法来估计人体运动姿态。其缺点在于人体运动姿态难以用有限个状态描述,依赖于先验知识,且只能跟踪特定的动作集。这两种跟踪方法都可采用单目摄像机或多目摄像机实现。
由于不具有深度信息的普通图像在重建中存在从三维到二维映射的歧义性,且对于复杂运动姿态估计非常困难,因此在过去十多年的研究中,大多数人体运动跟踪技术的都是基于多摄像机条件下实现的,以此获得深度信息。然而,多摄像机的条件需要定标且不方便在普通家庭中布置,不利于运动捕捉技术的应用普及到千家万户中。近两年随着深度摄像机的出现,人们可以利用单个摄像机获得深度图像,基于单个深度摄像机的人体姿态估计技术成为了研究热点。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是提出一种基于深度图像的人体姿态估计方法,以解决现有的人体姿态估计必需多个摄像机,设备复杂,难于实现的缺点。
(二)技术方案
为解决上述技术问题,本发明提出一种人体姿态估计方法,该方法根据人体的深度图像进行人体姿态的估计,以通过虚拟人体模型来模拟该图像中的人体,该深度图像包括多个帧,该方法包括如下步骤:
S1、建立虚拟人体模型,该人体模型由骨骼模型和皮肤模型组成;
S2、对所述虚拟人体模型的参数进行初始化;
S3、对所述深度图像的当前帧进行滤波;
S4、对所述虚拟人体模型和深度图像进行对应点检测;
S5、对于所述深度图像的当前帧,根据所述对应点检测的结果建立并优化目标函数,该目标函数用于描述所述虚拟人体模型和所述深度图像之间的姿势差异的大小,通过最小化目标函数的值更新所述虚拟人体模型的当前姿态。
(三)有益效果
本发明建立的虚拟人体模型自由度高,皮肤变形效果好,姿态估计收敛速度快且误差小,同时利用深度摄像机获取深度图像使得人体运动姿态估计***装置简便,便于推广应用。本发明在人体运动捕捉领域应用前景广泛,也为人机交互、游戏开发、电影制作提供了应用趋势。
附图说明
图1示出了本发明的各个模块的总体流程图;
图2示出了本发明的参数初始化模块的流程图;
图3示出了本发明的深度图像滤波模块的流程图;
图4示出了本发明的分层姿态估计模块的主流程图;
图5示出了本发明的分层姿态估计模块中的平移和旋转参数估计的流程图;
图6示出了本发明的分层姿态估计模块中的关节角参数估计的流程图;
图7示出了本发明的分层姿态估计模块中的平移和旋转参数估计及关节角参数估计中的黄金分割法求迭代步长的流程图;
图8示出了本发明的人体骨骼模型。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明是利用深度摄像机获取的深度图像进行人体姿态估计方法,并将姿态估计结果以虚拟人体模型展现出来。本发明所基于的深度图像即是通过单个深度摄像机获得的,深度图像具有深度信息,可以获得场景中的三维坐标,因此对运动估计起到非常重要的作用。
如图1所示,本发明的方法根据人体的深度图像进行人体姿态的估计,以通过虚拟人体模型来模拟该图像中的人体,该深度图像包括多个帧,该方法包括以下个步骤:
1)虚拟人体模型建立步骤S1。虚拟人体模型建立步骤S1的目的是建立一个非刚性的可变形的人体运动模型,用于模拟人体实际的皮肤变形并展现人体姿态估计的结果。
2)参数初始化步骤S2。参数初始化步骤S2包括读取虚拟人体模型的三维坐标随机采样、初始化姿态参数、获取坐标变换矩阵和关节角变换矩阵等。
3)深度图像滤波模块步骤S3。深度图像滤波步骤S3是对读入的一帧深度图像进行采样、量化和平滑滤波处理的过程。
4)对应点检测步骤S4。对应点检测步骤S4用于寻找模型点集和随机采样得到的深度图像点集的对应关系,对应点是指每个模型点集中的点都有一个随机采样得到的深度图像点集的点与之对应。本发明中使用基于多维搜索树的对应点检测方法。
5)分层姿态估计步骤S5。分层姿态估计步骤S5将分层估计的方法和最速下降法结合起来对每一帧的姿态参数进行迭代优化,得出当前帧的人体估计姿态。
6)步骤S6判断是否有图像流输入,如果还有图像数据输入,则转到深度图像滤波步骤S3,继续处理下一帧图像,以保证姿态估计的连续性;若没有,则处理结束。
下面对各个主要步骤进行详细描述。
S1、建立虚拟人体模型,人体模型由骨骼模型和皮肤模型组成。
如图8所示,人体模型的骨骼模型由21个关节和20个关节连接构成,其中7个关节具有三个自由度,6个关节具有两个自由度,2个关节具有一个自由度,6个关节无自由度。因此,关节角总共有35个自由度。每个关节都有唯一的ID。在图8中的关节ID、该关节的自由度、该关节的父关节的ID如下表所示:
在该表中,比如第二行表示ID为0的关节,关节自由度为3,父关节ID为0,即0是自己的父关节;第三行表示ID为1的关节,关节自由度为3,父关节ID为0,即关节0是关节1的父关节,依此类推。
另外,骨骼模型整体还有三个平移自由度和三个旋转自由度。
皮肤模型采用网格状结构,网格的节点即为皮肤节点。非刚性的皮肤变形原理是:每个皮肤节点的坐标变换不仅受离该皮肤节点最近的关节影响,还受其它关节的影响,将皮肤节点在每个关节的局部坐标系中的变换以一定的权重相加就得到新的坐标。
S2、对虚拟人体模型的参数进行初始化。
参数初始化是为姿态估计做准备。如图2所示,具体实现过程为如下步骤:
S21、读取虚拟人体模型的点集,所谓点集是指人体模型的三维坐标信息、法向量信息、皮肤节点的三维坐标信息和骨骼节点对皮肤节点的权重分配信息。在本发明的一个实施例中,人体模型的点集是通过读取后缀名为.mesh网格文件获得的,该网格文件中包含了上述点集信息。在这一步骤,以二进制的方式读取网格文件中的三维坐标信息,并将坐标存储成三维向量链的结构。
S22、对人体模型的皮肤模型进行随机采样得到用于姿态估计的模型点集。从步骤S21获得皮肤模型的三维坐标信息后,由于网格文件中皮肤节点坐标数目很多,而我们用于姿态估计并不需要那么多点,且为了保证估计算法的速度,点集的规模应该适中。因此,在这一步骤中,对皮肤模型进行随机采样得到用于姿态估计的模型点集。在一个实施例中,采样点数目取500。
S23、初始化虚拟人体模型的姿态参数。这一步是对人体模型的姿态参数进行初始化,姿态参数是指骨骼模型的参数和经过随机采样的皮肤模型的参数,包括人体模型的空间变换参数以及每个皮肤节点的平移、旋转和关节角的参数。我们设平移量和旋转量的初始值为0,各关节角的初始值也为0。
S24、获取虚拟人体模型的骨骼模型的关节变换矩阵。关节变换矩阵是指从子关节自身的局部坐标系到其父关节的局部坐标系的变换矩阵。从子关节局部坐标系到父关节局部坐标系的变换矩阵由平移矩阵和旋转矩阵组成。从每个关节的局部坐标系到世界坐标系的变换矩阵可以将多个子父坐标系变换矩阵级联得到。
根据本发明的一种实施方式,该步骤需从.skeleton骨骼信息文件(.skeleton文件由Maya模型导出,包含人体骨骼关节的坐标和变换向量)读出三维平移向量和旋转四元组并将它们转换成四阶的矩阵形式,这样平移变换和旋转变换都可以采用矩阵相乘的形式来实现。
步骤S25、获取骨骼模型的关节角变换矩阵。关节角变换矩阵是以关节角为变量的从子关节到父关节的旋转矩阵。在本步骤中,先定义出每个子关节到父关节的旋转矩阵,然后求出每个旋转矩阵对关节角的导数,为姿态估计中计算目标函数的梯度做准备。
S3、对深度图像的当前帧进行滤波,所述深度图像是通过深度摄像机拍摄得到的深度图像,是需要进行人体姿态估计的图像。得到本发明的估计姿态后就可以模拟出该图像中的虚拟人体模型。
深度图像滤波步骤是对深度图像的当前帧进行处理以用于姿态估计。如图3所示,具体实现过程为:
S31、获取深度图像的当前帧。根据本发明的一个实施例,深度图像的数据源是一个dat文件和一个分割后的人体轮廓图像,dat文件存储了深度图像的数据。先将dat文件里的灰度值以二进制的形式读出,即得完整的深度图像。然后将深度图像和人体轮廓图像做像素级的与运算,即可得到人体部分的深度信息。具体来说,人体轮廓图像中的人体区域像素值为1,非人区域像素值为0,深度图像和人体轮廓图像相与后得到人体部分的深度值,而非人体部分为0。
S32、对深度图像中的人体部分的深度信息进行随机采样得到深度图像点集。步骤S31获得的是像素点,而姿态估计并不需要所有的像素点,因此需要进行随机采样。对人体部分的深度信息进行随机采样得到深度图像点集。根据本发明的一个实施例,采样数目为500。
S33、对随机采样后得到的深度图像点集进行平滑处理。由于实际拍摄的图像可能因为光照发射等原因出现一些不真实的深度信息,我们称为深度噪声。因此对随机采样后得到的深度图像点集,我们使用5像素×5像素大小的模板对其进行高斯平滑滤波处理。
S34、将深度图像点集的灰度值量化到人体模型的深度范围以内。初始的深度信息是取值例如是在0-10000的灰度值,为了用灰度值来表示深度信息,我们需要将深度图像点集的灰度值量化到合理的人体深度范围以内,具体的范围与人体模型的深度范围一致。
S4、对人体模型和深度图像进行对应点检测。
对应点检测是预处理的关键过程。主要分两步:
S41、对从步骤S3获得的深度图像点集建立多维搜索树。多维搜索树是一种二叉树结构,每个结点是深度图像点集的一个点,每层按照分辨器决定的一个维度对点集进行划分。划分的规则是:对于每一层,取该层选定的维度分量的中位数作为该层的结点,小于该中位数的数据划分为左子树,大于该中位数的数据划分为右子树,这样每次划分保证左右子树的数据量几乎相等。采用的分辨器为:n mod k(n表示树的第n层,k表示维数)。
S42、根据所述多维搜索树,采用最近点搜索和法向量差异最小的原则寻找人体模型点集和深度图像点集的对应关系。给定人体模型的一个点,深度图像中与其对应的点要满足:1)距离和最近距离的比小于给定的阈值;2)两个点的法向量的夹角的平方小于给定的阈值。
S5、对于所述深度图像的当前帧,根据所述对应点检测的结果建立并优化目标函数,该目标函数用于描述所述虚拟人体模型和所述深度图像之间的姿势差异的大小,通过最小化目标函数的值更新所述虚拟人体模型的当前姿态。
本发明采用分层姿态估计法进行姿态估计,分层姿态估计是整个本发明的方法的核心。传统的姿态估计方法是对所有参数同时进行估计,这样可能导致目标函数落入局部最小值的问题。为了避免这个问题,我们采用分层估计的方法来对目标函数进行优化,即在每一步迭代中,先对平移和旋转参数进行估计,然后再对关节角参数进行估计。如图4所示,具体实现过程为:
S51、对于所述深度图像的每一帧,获取所述虚拟人体模型的上一帧姿态估计结果。对于第一帧图像,即获取初始的姿态参数,对于第二帧以后的图像,获取前一帧的姿态参数估计结果。
S52、建立用于姿态估计的目标函数,计算所述虚拟人体模型的当前姿态下的目标函数值。此步骤记录目标函数在本次迭代的初始值。
S53、对于深度图像的每一帧,估计虚拟人体模型的平移和旋转参数。此步骤为使用最速下降法对平移和旋转参数进行估计,然后更新姿态参数和目标函数,再继续后续的参数估计。如图5所示,具体实现过程为:
S531、计算平移梯度。先计算均方误差对每个平移分量的梯度,利用基于洛伦兹分布建模的梯度公式计算出目标函数对平移参数的梯度向量并归一化。
S532、计算旋转梯度。先计算均方误差对每个旋转分量的梯度,利用基于洛伦兹分布建模的梯度公式计算出目标函数对旋转参数的梯度向量并归一化。
S533、黄金分割法求迭代步长。取步骤S531和步骤S532得出的平移和旋转梯度的负梯度方向作为迭代方向,然后以当前姿态参数为起点沿迭代方向进行一维搜索,得出迭代步长。黄金分割法求迭代步长步骤会在后面进行详细描述。
S534、更新平移和旋转参数。将上一步计算得到的迭代步长和迭代方向相乘得到平移和旋转参数的增加量,然后在原姿态参数的基础上加上此增加量。
S535、计算当前姿态下的目标函数值以更新目标函数,为下一步的姿态参数估计做准备。
S54、对于深度图像的每一帧,估计虚拟人体模型的关节角参数。在对模型整体的平移和旋转参数估计完毕后,再对关节角参数进行估计,且按照从躯干到四肢的顺序依次进行估计。如图6所示,具体实现过程为:
S541、选择第一个关节角。第一个关节角取骨骼模型的根关节,即ID为0的关节。
S542、计算当前关节角的梯度。关节角的梯度计算需要用到步骤S25中关节旋转矩阵对关节角分量的导数。由于从每个关节的局部坐标系到世界坐标系的变换需要多个子父关节的坐标变换矩阵级联来实现,因此计算关节角的梯度可以使用递归的算法来实现,分别计算出目标函数对关节角各自由度分量的梯度,从而得到梯度向量并,然后归一化处理。
S543、黄金分割法求迭代步长。取步骤S542的关节角梯度向量的负方向为迭代方向,以当前姿态参数为起点沿迭代方向进行一维搜索,得到迭代步长。黄金分割法求迭代步长步骤会在后面进行详细描述。
S544、更新当前关节角。将上一步计算得到的步长和迭代方向相乘得到当前关节角参数的增加量,然后在原姿态参数的基础上加上此增加量。
S545、计算当前姿态下的目标函数值。更新目标函数,为下一个关节角参数估计做准备。
S546、判断是否所有的关节角都估计完毕。如果还有关节角没有估计,则选择下一个关节角,一直循环下去,直到所有关节角估计完毕;如果所有关节角估计完毕,则结束关节角参数估计步骤。
S547、选择下一个关节角。选择关节角的原则是按照从躯干到四肢由里向外的顺序进行选择的。这样保证分层估计的效果最佳。
S548、判断目标函数差值是否满足误差要求,此步骤决定是否继续进行优化迭代。如果最新的目标函数值与本次迭代初始的目标函数值,即步骤S52记录的目标函数值的差小于给定的阈值,则将本次迭代得到的姿态参数作为结果,并更新人体运动模型,结束分层姿态估计步骤;如果大于给定的阈值,则转到步骤S52,继续进行下一次迭代。
S549、输出所述虚拟人体模型。此步是在一帧图像姿态估计完毕后更新当前帧最终的模型姿态并输出显示。
黄金分割法求迭代步长步骤S533和步骤S543
黄金分割法求迭代步长步骤在平移和旋转参数估计步骤S53及关节角参数估计步骤S54中都被用到。黄金分割法是收敛速度较快且精度较高的一维搜索算法,每次搜索以黄金分割点作为区间断点,逐步缩短搜索区间,从而找到最小点的数值近似解。如图7所示,具体实现过程为:
S5331、输入迭代方向。在平移和旋转参数估计步骤S53,迭代方向为归一化的平移和旋转梯度向量的负方向。在关节角参数估计步骤S54,迭代方向为归一化的关节角梯度向量的负方向。
S5332、确定初始搜索区间。初始分割区间的左边界为0,右边界为允许的最大的迭代步长,即要满足:迭代步长乘以迭代方向得到的向量各分量大小不能超过允许的取值范围。
S5333、取两分割点。此步为确定初始的分割点。假设初始搜索区间为[a,b],则初始分割点为r1=a+0.382(b-a)和r2=a+0.618(b-a)。
S5334、判断两分割点之差是否满足精度,如果满足精度,则转步骤S5335;如果不满足,则转步骤S5336,继续进行迭代搜索。两分割点之差即分割区间的长度,精度预先设定。
S5335、取两分割点的中点为步长。一维搜索收敛到误差范围内后,取最终两个分割点的中点作为迭代步长,结束黄金分割法求迭代步长模块。
S5336、计算以两分割点为步长的目标函数值,即计算E(r1)和E(r2)的值,为下一步判决做准备。
S5337、更新搜索区间和两分割点。假设当前搜索区间为[a,b],分割点为r1、r2,已知步骤S5336计算出的两分割点为步长的目标函数值E(r1)和E(r2),更新分割区间和两分割点的具体实现方法如下:
S53371、判断E(r1)是否小于E(r2),如果小于,则令b=r2,r2=r1,r1=a+0.382(b-a),转第四步。如果不小于,则转第二步。
S53372、判断E(r1)是否大于E(r2),如果大于,则令a=r1,r1=r2,r2=a+0.618(b-a),转第四步。如果不大于,则转第三步。
S53373、这是E(r1)等于E(r2)的情况,令a=r1,b=r2,r1=a+0.382(b-a),r2=a+0.618(b-a),转第四步。
S53374、更新搜索区间和分割点完毕,转到步骤S5334,继续进行分割搜索不断缩短搜索区间,直至收敛到误差范围内。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种人体姿态估计方法,该方法根据人体的深度图像进行人体姿态的估计,以通过虚拟人体模型来模拟该图像中的人体,该深度图像包括多个帧,其特征在于,该方法包括如下步骤:
S1、建立虚拟人体模型,该人体模型由骨骼模型和皮肤模型组成;
S2、对所述虚拟人体模型的参数进行初始化;
S3、对所述深度图像的当前帧进行滤波;
S4、对所述虚拟人体模型和深度图像进行对应点检测;
S5、对于所述深度图像的当前帧,根据所述对应点检测的结果建立并优化目标函数,该目标函数用于描述所述虚拟人体模型和所述深度图像之间的姿势差异的大小,通过最小化目标函数的值更新所述虚拟人体模型的当前姿态;其中
所述步骤S2包括:
S21、读取虚拟人体模型的点集,所谓点集是指该虚拟人体模型的三维坐标信息、法向量信息、皮肤节点的三维坐标信息和骨骼节点对皮肤节点的权重分配信息;
S22、对所述虚拟人体模型的皮肤模型进行随机采样得到用于姿态估计的模型点集;
S23、初始化所述虚拟人体模型的姿态参数;
S24、获取所述虚拟人体模型的骨骼模型的关节变换矩阵;
所述步骤S3包括:
S31、获取深度图像的当前帧;
S32、对所述深度图像中的人体部分的深度信息进行随机采样得到深度图像点集;
S33、对所述随机采样后得到的深度图像点集进行平滑处理;
S34、将所述深度图像的点集的灰度值量化到所述虚拟人体模型的深度范围以内;
所述步骤S4包括:
S41、对所述深度图像点集建立多维搜索树;
S42、根据所述多维搜索树,采用最近点搜索和法向量差异最小的原则寻找所述虚拟人体模型点集和所述深度图像点集的对应关系;
所述步骤S5包括:
S51、对于所述深度图像的每一帧,获取所述虚拟人体模型的上一帧姿态估计结果;
S52、建立用于姿态估计的目标函数,计算所述虚拟人体模型的当前姿态下的目标函数值;
S53、对于深度图像的每一帧,估计虚拟人体模型的平移和旋转参数;
S54、对于深度图像的每一帧,估计虚拟人体模型的关节角参数;
并且,所述步骤S53进一步包括:
S531、计算所述虚拟人体模型的平移梯度,即先计算均方误差对每个平移分量的梯度,利用基于洛伦兹分布建模的梯度公式计算出目标函数对平移参数的梯度向量并归一化;
S532、计算所述虚拟人体模型的旋转梯度,即先计算均方误差对每个旋转分量的梯度,利用基于洛伦兹分布建模的梯度公式计算出目标函数对旋转参数的梯度向量并归一化;
S533、取所述步骤S531和步骤S532得出的平移和旋转梯度的负梯度方向作为迭代方向,然后以当前姿态参数为起点沿迭代方向进行一维搜索,得出迭代步长;
S534、将所述步骤S533计算得到的迭代步长和迭代方向相乘得到平移参数和旋转参数的增加量,然后在原姿态参数的基础上加上此增加量;
S535、计算当前姿态下的目标函数值以更新所述目标函数。
2.如权利要求1所述的人体姿态估计方法,其特征在于,步骤S54包括:
S541、选择第一个关节角;
S542、计算当前关节角的梯度;
S543、取步骤S542的关节角梯度向量的负方向为迭代方向,以当前姿态参数为起点沿迭代方向进行一维搜索,得到迭代步长;
S544、更新当前关节角,将步骤S543计算得到的步长和迭代方向相乘得到当前关节角参数的增加量,然后在原姿态参数的基础上加上此增加量;
S545、计算当前姿态下的目标函数值以更新目标函数;
S546、判断是否所有的关节角都估计完毕,如果还有关节角没有估计,则选择下一个关节角,一直循环下去,直到所有关节角估计完毕;如果所有关节角估计完毕,则结束关节角参数估计步骤;
S547、选择下一个关节角;
S548、如目标函数值与初始的目标函数值的差小于给定的阈值,则将姿态参数作为结果,并更新所述虚拟人体模型,否则转到步骤S52;
S549、输出所述虚拟人体模型。
3.如权利要求2所述的人体姿态估计方法,其特征在于,步骤S533包括:
S5331、输入迭代方向,所述迭代方向为归一化的平移和旋转梯度向量的负方向;
S5332、确定初始搜索区间,使迭代步长乘以迭代方向得到的向量各分量大小不能超过允许的取值范围;
S5333、确定初始的分割点;
S5334、判断两分割点之差是否满足精度,如果满足精度,则转步骤S5335;如果不满足,则转步骤S5336;
S5335、取两分割点的中点为步长,一维搜索收敛到误差范围内后,取最终两个分割点的中点作为迭代步长;
S5336、计算以两分割点为步长的目标函数值;
S5337、更新搜索区间和两分割点。
4.如权利要求2所述的人体姿态估计方法,其特征在于,步骤S543包括:
S5431、输入迭代方向,所述迭代方向为迭代方向为归一化的关节角梯度向量的负方向;
S5432、确定初始搜索区间,使迭代步长乘以迭代方向得到的向量各分量大小不能超过允许的取值范围;
S5433、确定初始的分割点;
S5434、判断两分割点之差是否满足精度,如果满足精度,则转步骤S5435;如果不满足,则转步骤S5436;
S5435、取两分割点的中点为步长,一维搜索收敛到误差范围内后,取最终两个分割点的中点作为迭代步长;
S5436、计算以两分割点为步长的目标函数值;
S5437、更新搜索区间和两分割点。
5.如权利要求3所述的人体姿态估计方法,其特征在于,步骤S5337为:假设当前搜索区间为[a,b],分割点为r1、r2,已知步骤S5336计算出的两分割点为步长的目标函数值E(r1)和E(r2),更新分割区间和两分割点的步骤包括:
S53371、判断E(r1)是否小于E(r2),如果小于,则令b=r2,r2=r1,r1=a+0.382(b-a),转到步骤S53374;如果不小于,则转到步骤S53372;
S53372、判断E(r1)是否大于E(r2),如果大于,则令a=r1,r1=r2,r2=a+0.618(b-a),转到步骤S53374;如果不大于,则转到步骤S53373;
S53373、当E(r1)等于E(r2),令a=r1,b=r2,r1=a+0.382(b-a),r2=a+0.618(b-a),转到步骤S53374;
S53374、更新搜索区间和分割点完毕,转到步骤S5334。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271289.1A CN102855470B (zh) | 2012-07-31 | 2012-07-31 | 基于深度图像的人体姿态估计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271289.1A CN102855470B (zh) | 2012-07-31 | 2012-07-31 | 基于深度图像的人体姿态估计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102855470A CN102855470A (zh) | 2013-01-02 |
CN102855470B true CN102855470B (zh) | 2015-04-08 |
Family
ID=47402048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210271289.1A Active CN102855470B (zh) | 2012-07-31 | 2012-07-31 | 基于深度图像的人体姿态估计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102855470B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600626A (zh) * | 2016-11-01 | 2017-04-26 | 中国科学院计算技术研究所 | 三维人体运动捕获方法与*** |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366505B (zh) * | 2013-06-26 | 2016-06-22 | 安科智慧城市技术(中国)有限公司 | 一种睡姿识别方法及装置 |
CN104424650B (zh) * | 2013-08-21 | 2017-11-21 | 中国人民解放军第二炮兵工程大学 | 一种光学式人体运动捕捉中手臂信息补偿方法 |
CN103735268B (zh) * | 2013-09-29 | 2015-11-25 | 沈阳东软医疗***有限公司 | 一种***检测方法及*** |
CN103559505A (zh) * | 2013-11-18 | 2014-02-05 | 庄浩洋 | 一种3d骨架建模与手检测方法 |
CN104978583B (zh) * | 2014-04-11 | 2018-07-03 | 北京数码视讯科技股份有限公司 | 人物动作的识别方法及装置 |
CN104951081B (zh) * | 2015-07-09 | 2016-04-13 | 李乔亮 | 自动识别读写姿势的方法及其智能预警装置 |
CN106473738A (zh) * | 2015-08-31 | 2017-03-08 | 通用电气公司 | 图像识别方法、磁共振成像方法和成像设备 |
CN105225270B (zh) * | 2015-09-28 | 2019-06-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN106599762A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 动作信息识别方法和*** |
CN105389569B (zh) * | 2015-11-17 | 2019-03-26 | 北京工业大学 | 一种人体姿态估计方法 |
CN106250808A (zh) * | 2016-06-02 | 2016-12-21 | 上海弘视通信技术有限公司 | 基于三维相机的双人值岗检测方法及*** |
JP6520831B2 (ja) | 2016-06-07 | 2019-05-29 | オムロン株式会社 | 表示制御装置、表示制御システム、表示制御方法、表示制御プログラム、記録媒体 |
CN108335328B (zh) * | 2017-01-19 | 2021-09-24 | 富士通株式会社 | 摄像机姿态估计方法和摄像机姿态估计装置 |
CN106952334B (zh) * | 2017-02-14 | 2019-08-30 | 深圳奥比中光科技有限公司 | 人体净模型的创建方法与三维试衣*** |
CN106952302B (zh) * | 2017-02-14 | 2019-12-13 | 深圳奥比中光科技有限公司 | 人体模型自动创建方法及三维试衣*** |
CN107038430B (zh) * | 2017-05-05 | 2020-09-11 | 成都通甲优博科技有限责任公司 | 一种构造人体姿态数据样本的方法及其装置 |
CN106981075A (zh) * | 2017-05-31 | 2017-07-25 | 江西制造职业技术学院 | 仿人运动拟态的人体骨骼点参数采集装置及其识别方法 |
CN107273677A (zh) * | 2017-06-08 | 2017-10-20 | 中国科学院软件研究所 | 一种多通道神经功能定量评价*** |
CN107491506B (zh) * | 2017-07-31 | 2020-06-16 | 西安蒜泥电子科技有限责任公司 | 批量模型姿势变换方法 |
CN108510594A (zh) * | 2018-02-27 | 2018-09-07 | 吉林省行氏动漫科技有限公司 | 虚拟试衣方法、装置及终端设备 |
CN108345869B (zh) * | 2018-03-09 | 2022-04-08 | 南京理工大学 | 基于深度图像和虚拟数据的驾驶人姿态识别方法 |
CN108830150B (zh) * | 2018-05-07 | 2019-05-28 | 山东师范大学 | 一种基于三维人体姿态估计方法及装置 |
CN109191593A (zh) * | 2018-08-27 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 虚拟三维模型的运动控制方法、装置及设备 |
CN110097639B (zh) * | 2019-03-18 | 2023-04-18 | 北京工业大学 | 一种三维人体姿态估计方法 |
CN110515709B (zh) * | 2019-07-25 | 2022-06-10 | 北京达佳互联信息技术有限公司 | 任务调度***、方法、装置、电子设备及存储介质 |
CN111260762B (zh) | 2020-01-19 | 2023-03-28 | 腾讯科技(深圳)有限公司 | 一种动画实现方法、装置、电子设备和存储介质 |
CN113203416B (zh) * | 2021-03-19 | 2022-07-12 | 电子科技大学 | 一种针对摆臂行人的行人航位推算方法 |
CN113421286B (zh) * | 2021-07-12 | 2024-01-02 | 北京未来天远科技开发有限公司 | 一种动作捕捉***及方法 |
CN113808239A (zh) * | 2021-08-18 | 2021-12-17 | 北京艺旗网络科技有限公司 | 一种用于美术作品在线教育的身体捕捉方法及装置 |
CN115222871B (zh) * | 2021-08-31 | 2023-04-18 | 达闼科技(北京)有限公司 | 模型评估方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215618A2 (en) * | 2000-12-14 | 2002-06-19 | Eastman Kodak Company | Image processing method for detecting human figures in a digital image |
CN1725246A (zh) * | 2005-07-14 | 2006-01-25 | 中国科学院计算技术研究所 | 一种基于视频内容的人体姿态变形方法 |
CN102074034A (zh) * | 2011-01-06 | 2011-05-25 | 西安电子科技大学 | 多模型人体运动跟踪方法 |
CN102184541A (zh) * | 2011-05-04 | 2011-09-14 | 西安电子科技大学 | 多目标优化人体运动跟踪方法 |
-
2012
- 2012-07-31 CN CN201210271289.1A patent/CN102855470B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215618A2 (en) * | 2000-12-14 | 2002-06-19 | Eastman Kodak Company | Image processing method for detecting human figures in a digital image |
CN1725246A (zh) * | 2005-07-14 | 2006-01-25 | 中国科学院计算技术研究所 | 一种基于视频内容的人体姿态变形方法 |
CN102074034A (zh) * | 2011-01-06 | 2011-05-25 | 西安电子科技大学 | 多模型人体运动跟踪方法 |
CN102184541A (zh) * | 2011-05-04 | 2011-09-14 | 西安电子科技大学 | 多目标优化人体运动跟踪方法 |
Non-Patent Citations (1)
Title |
---|
基于视频的人体运动捕捉综述;李豪杰等;《计算机辅助设计与图形学学报》;20061130;第18卷(第11期);1645-1651页 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600626A (zh) * | 2016-11-01 | 2017-04-26 | 中国科学院计算技术研究所 | 三维人体运动捕获方法与*** |
CN106600626B (zh) * | 2016-11-01 | 2020-07-31 | 中国科学院计算技术研究所 | 三维人体运动捕获方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN102855470A (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102855470B (zh) | 基于深度图像的人体姿态估计方法 | |
CN108830150B (zh) | 一种基于三维人体姿态估计方法及装置 | |
CN110097639B (zh) | 一种三维人体姿态估计方法 | |
CN106803267B (zh) | 基于Kinect的室内场景三维重建方法 | |
CN104268138B (zh) | 融合深度图和三维模型的人体运动捕捉方法 | |
CN108898676B (zh) | 一种虚实物体之间碰撞及遮挡检测方法及*** | |
US10510187B2 (en) | Method and system for virtual sensor data generation with depth ground truth annotation | |
CN105378796B (zh) | 可伸缩体积3d重构 | |
CN102789568B (zh) | 一种基于深度信息的手势识别方法 | |
CN111325843A (zh) | 一种基于语义逆深度滤波的实时语义地图构建方法 | |
CN110660017A (zh) | 一种基于三维姿态识别的舞谱记录与演示方法 | |
CN111368759B (zh) | 基于单目视觉的移动机器人语义地图构建*** | |
CN110390685B (zh) | 一种基于事件相机的特征点跟踪方法 | |
CN109460267A (zh) | 移动机器人离线地图保存与实时重定位方法 | |
CN109446952A (zh) | 一种钢琴监督方法、装置、计算机设备及存储介质 | |
CN102663779A (zh) | 基于随机高斯隐变量的人体运动跟踪方法 | |
CN111340881A (zh) | 一种动态场景下基于语义分割的直接法视觉定位方法 | |
CN112017188B (zh) | 一种空间非合作目标语义识别与重构方法 | |
CN105243375A (zh) | 一种动作特征提取方法及装置 | |
CN113808047A (zh) | 一种人体运动捕捉数据去噪方法 | |
Xiao et al. | Monocular scene flow estimation via variational method | |
CN112308110A (zh) | 一种能够实现人机交互的手部运动识别方法及*** | |
CN115393538A (zh) | 基于深度学习的室内动态场景的视觉slam方法及*** | |
Li et al. | Video-based table tennis tracking and trajectory prediction using convolutional neural networks | |
Xia et al. | [Retracted] Gesture Tracking and Recognition Algorithm for Dynamic Human Motion Using Multimodal Deep Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |