基于多模态融合的实时人体三维姿态恢复的方法

文档序号:6372876阅读:640来源:国知局
专利名称:基于多模态融合的实时人体三维姿态恢复的方法
技术领域
本发明涉及一种实时人体三维姿态恢复的方法,尤其涉及利用深度图以及色标对人体三维姿态实时地进行恢复的方法。
背景技术
人体三维姿态恢复是指通过设备获取现实中人体的运动数据,包括各主要关节点的三维空间坐标信息等;再对这些运动数据进行计算与渲染,从而建立虚拟场景中角色的运动姿态。通过这样的技术,可以将现实中人体的运动与虚拟世界中角色的运动绑定起来,从而驱动虚拟角色的运动。目前,人体的三维姿态恢复技术广泛地应用在电影、动画拍摄以及游戏制作等领域中,该技术相较于传统计算机动画的建模技术,效率更高,可以做到实时性。 实现人体三维姿态恢复的技术有很多种,主要分为光学系统和非光学系统。非光学设备一般通过重力加速器或者辅助的机械设备来获取人体的运动数据,使用的并不是很广泛。而目前光学系统中,大多通过近红外设备为主,即由多个红外线摄像头识别出标记点(由反光率较高的材质制成)的位置,再通过定标算法,将标记点坐标转换为三维空间内的坐标。这种技术的优点是恢复出来的姿态比较精确,系统的鲁棒性比较高,而缺点是进行运动捕获的流程较为复杂,成本较高。也有人使用多个普通摄像头提供多视角信息,再提取每个视角侧影的特征值后,从数据库中找出相似的姿态。这种技术优点是硬件成本较低,但是需要有特定数据集的支持,而且对于所要捕获的动作也有较大的限制。随着微软推出新一代的交互设备Kinect,人体三维姿态恢复的技术又有了新的突破。Kinect设备可以捕获场景的深度图,深度图中每个像素与其在场景中的位置相对应并具有表示从每个参考位置到其场景位置的距离的像素值(换言之,深度图具有图像的形式,其中,像素值指出场景中的物体的形貌信息,而不是亮度或颜色)。Jamie Shotton等人在他们的论文“Real-Time Human Pose Recognition in Parts from Single Depth Images,,中,描述了一种基于机器学习的方法来恢复人体姿态。以色列一家公司Prime Sense也开发出了一种基于启发式方法的技术,通过对深度图进行背景减除、场景重建的方法,恢复出人体三维骨架信息。在以上方法中,只需要通过一台kinect设备,不需要任何的标记点即可实时地恢复出人体的运动姿态,这与传统的光学系统相比,有了很大的提升。同时,这种技术也大大降低了人体三维姿态恢复的成本,使得该技术可以进入家庭娱乐领域。然而,上述方法在稳定性上,与传统光学设备仍然有一定差距,且实现难度较大。

发明内容
本发明的目的是提供一种基于多模态融合的实时人体三维姿态恢复的方法。基于多模态融合的实时人体三维姿态恢复的方法,它的步骤如下I)以不小于25帧每秒的帧速同步接受包含人体在内的场景深度图序列以及场景彩色图序列,所述场景深度图序列中的每一帧场景深度图由像素矩阵组成,像素矩阵中的每个像素点的值表示该像素点所对应场景中的位置到参考位置的距离,即该像素点的深度值;所述场景彩色图序列中的每一帧图片由像素矩阵组成,像素矩阵中的每个像素点的值表示该像素点所对应场景中的位置所表示的颜色信息,由RGB颜色值表示;2)分割所述场景深度图的背景与前景像素,获得场景深度图中表述人体部位的区域,即前景像素;3)处理场景深度图中的前景像素,标注出场景深度图中表示人体躯干、头部以及四肢的像素点;4)通过人脸检测,识别出场景彩色图中的人脸位置,通过场景彩色图与场景深度图的映射得到人体头部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标,所述投影坐标为三维向量(X,Y,Z),其中(X,Y)具体地指向场景深度图的某个像素点,Z为该像素点的深度值; 5 )根据头部在场景深度图中的投影坐标,计算颈部与肩部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标;6)通过四肢端点佩戴的带有颜色的标记物,获取手部及脚部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标;7)通过手部和肩膀的三维坐标,计算出肘关节在场景深度图中的投影坐标,并转换为现实世界中的三维坐标;8)通过脚部和臀部的三维坐标,计算出膝关节在场景深度图中的投影坐标,并转换为现实世界中的三维坐标;9)按照步骤2)至8)处理场景深度图序列及场景彩色图序列中的每一帧,并将每一帧捕获到的人体各部位的三维坐标依据人体结构组成并输出骨架模型,设置每个捕获的人体部位的三维坐标的约束空间和可信度,对骨架模型进行平滑处理,所述约束空间表示了每个捕获的人体部位在相邻两巾贞内所允许最大的位移范围。所述5)中的计算方法a)在获取头部的三维坐标后,根据预设的颈部参考长度Lmdt、颈部的参考深度Dmdt以及头部的实际深度Dhead,通过下列公式计算得到颈部的实际长度L_Realmc;k L_Realneck = Dhead*Lneck/Dneck在头部与躯干连接的线段上,根据颈部的实际长度L_RealMdt获得人体颈部的位置;b)在获取颈部的三维坐标之后,本方法根据预设的肩部参考宽度Wshwlte、肩部的参考深度Dshwlte以及颈部的实际深度Rmdt,通过下列公式计算得到肩部的实际宽度W_
Re& I shouider ·ff_Re a Ishoulder — Rneck*Wshoulder/Dshoulder在颈部所处的水平线段上,根据肩部实际宽度W_Realsh()Ul(to获得人体左右肩膀的位置;c)在计算肩部位置时,需要注意用户有时候会采取侧身的姿态,在这种情况下,需要调整侧身时肩膀投影的宽度;该步骤需要计算出左右肩膀所在位置的深度Dleft、Dright以及肩膀的预设长度Wshwldw,那么变化后的肩膀宽度WPM_tral应为[ 26] Wpio|gctgi = Jw8beuMsr* — ( — .通过WPM_ted,按照步骤b)计算左右肩部的位置;d)通过局部搜索的方法,确保上述a),b),c)步骤得到的肩膀坐标处于前景像素中;以左肩为例,该局部搜索方法在探测左肩膀时,如果估测的左肩部像素点(x,y)处于背景像素中,那么在搜索该估测像素点右侧的像素(x+t,y+t),其中t为搜索范围阈值,在该范围内的像素点中找出距离该估测像素点最近的前景像素,如果未能找到处于前景像素的点,那么递进式地增加t的值以扩大搜索范围,直至找到最邻近的前景像素为止。
所述6)中的获取方法a)用户需要在手部和脚部佩戴带有颜色的标记物来辅助识别手部和脚部位置,所描述标记物的颜色应区分于用户身体其它部位的颜色;b)将彩色图由RBG颜色空间转换为HSV颜色空间,并提取手部和脚部标记物的HSV颜色特征作为阈值,再对每一帧场景彩色图,使用该阈值对其进行滤波,将不符合该颜色特征的像素点移除,获得颜色阈值图,并通过图像的腐蚀和膨胀操作,去除颜色阈值图中的噪点;c)经过以上处理,得到一张二值图像,其中手部和脚部标记物的部位会由相应的斑块(Blob)表述,以该斑块的中心点作为四肢端点的位置,再通过坐标转换,分别获得手部和脚部在现实世界中的三维坐标。所述7)中的计算方法a)在计算时,需要在场景深度图中的前景像素中标注属于手臂部位的像素点;先分别通过左右肩膀的位置标注出场景深度图中表示躯干部位的像素点,再将场景深度图中与躯干连接的其余部位分别标注为表示四肢及头部的像素点;当手臂在正前方遮挡住躯干时,需要计算躯干“质心”的深度值,并将躯干上每一像素点的深度值与躯干“质心”的深度值比较,如果深度差大于某一阈值,则标注该像素属于手臂区域,反之,该像素点属于躯干区域;某个区域的“质心”指该区域的平均深度,为此,可以通过计算该区域深度值的直方图,并将具有最高频率的深度值或具有最高频率的两个或多个深度值的平均值设为该区域质心的深度值;b)成功标注出手臂区域的像素点后,以手部为起点,遍历深度图中所有标注为手臂的像素,如果该像素点与手部的距离满足小臂长度的约束条件,则将其标记为潜在的肘部区域;之后再以肩部为起点,再次在手臂上搜索到肩部距离符合大臂长度约束的像素点,将这些点与之前标注出肘部的点取交集即可得到肘部的估测范围,再将这些点的中点标记为人体肘部位置。所述8)中的计算方法a)在计算时,需要在场景深度图中的前景像素中标注出属于腿部部位的像素点,先分别通过左右肩膀的位置标注出场景深度图中表示躯干部位的像素点,再将场景深度图中与躯干连接的其余部位分别标注为表示四肢及头部的像素点;b)成功标注出腿部区域的像素点后,以脚部为起点,遍历深度图中所有标注为腿部的像素点,如果该像素点与脚部的距离满足小腿长度的约束条件,则将其标记为潜在的膝盖点;之后再以臀部为起点,再次在腿部上搜索到臀部距离符合大腿长度约束的像素点,将这些点与之前标注出膝盖的点取交集即可得到膝盖的估测范围,再将这些点的中点标记为人体膝盖位置。所述9 )中的处理方法a.针对每一个人体部位定义一个约束长度D以及可信度C,约束长度D可以描述约束范围;约束范围是指一个以该人体部位为球心,D为半径的球体,该球体描述了该人体部位在相邻两帧的时间内,所允许的最大位移范围,不同人体部位的约束空间大小会不一样,手部的约束空间相比肩部会大一些;b.可信度表示了该人体部位目前坐标值的准确程度,C的值越高,则该人体部位的位置越准确;初始时每个人体部位的可信度都设置为0,在新的一帧中,如果该人体部位新的位置处于前一帧该人体部位的约束空间内,则该人体部位的可信度增加一点,若该人体部位的可信度已达到最大值,则不需要改变;反之,若该人体部位新的位置在上一帧中该人体部位的约束空间之外,则只需向新的位置移动Length/C的距离,其中Length为该部位 原来的位置和新位置所表示线段的长度,随后再将该部位的可信度降低一点。本发明利用深度图解析、颜色识别、人脸检测等多种技术,来实时地获取人体主要关节点在现实世界中的坐标,从而恢复出人体的三维骨架信息,相较于传统的利用近红外设备对人体进行三维姿态恢复的技术,提高了恢复的稳定性,降低了使用成本,也使人体运动捕获过程更为简便,为人体三维姿态恢复技术走进家庭娱乐提供了新的解决方案。


下面结合附图和具体实施方式
对本发明作进一步的说明。图I为基于多模态融合的实时人体三维姿态恢复的方法流程图;图2为本发明所使用的场景深度图;图3为本发明所恢复的人体三维骨架效果图。
具体实施例方式结合附图1,基于多模态融合的实时人体三维姿态恢复的方法,它的步骤如下I)获取场景深度图像及场景彩色图像本方法以不小于25帧每秒的帧速获取长度为640、宽度为480像素的场景深度图像和场景彩色图像序列,所述场景深度图序列中的每一帧场景深度图(如图2所示)由像素矩阵组成,像素矩阵中的每个像素点的值表示该像素点所对应场景中的位置到参考位置的距离,即该像素点的深度值;其中场景深度图和场景彩色图在每一时刻都是同步的,场景深度图像和场景彩色图像的每一个像素也是经过对齐的。2)对深度图像进行背景剪除分割所述场景深度图的背景与前景像素,获得场景深度图中表述人体部位的区域,即前景像素。在实现人体姿态跟踪的时候,我们只对前景像素(用户)感兴趣,所以需要去除掉背景像素。在实际实现过程中,有很多不同的背景去除方法。本发明实现的方法是在深度图中先确定一个斑块(Blob)作为对象的身体,然后从斑块中去除具有明显不同深度值的其它斑块。这种方式需要首先确定某个具有最小尺寸的斑块,确定该尺寸涉及到现实世界的坐标系与投影坐标系之间的转换。由深度图可以获得的物体的投影坐标,为了确定物体的实际坐标,需要使用下面的公式将物体的(x,y,深度值)坐标转换为“现实世界”坐标(Xr,Yr,深度值)Xr = (X-fovx/2) *像素尺寸*深度/参考深度Yr = (Y-fovy/2) *像素尺寸*深度/参考深度这里,fovx和fovy为X和y方向上的深度图的视野(以像素为单位)。像素尺寸为,在摄像头给定距离(参考深度)处像素所对着的长度。随后,我们就可以利用物体在现实世界中的坐标来计算其欧几里得距离,从而避免由于近大远小所造成的误差。在由现实世界坐标确定出斑块的尺寸后,即可筛选出离摄像头最近的,而且尺寸最大的斑块,并设定其为人体区域。
另外一种更为简洁的方法是通过试探性地设置阈值,将深度值大于某一阈值的像素全部设置为背景像素,将尺寸小于某一阈值的斑块,设置为背景像素,这样实现更为简便,但准确性也更低。3)在场景深度图中标注人体各区域处理场景深度图中的前景像素,标注出场景深度图中表示人体躯干、头部以及四肢的区域;4)通过人脸检测的方法,计算人体头部位置在这一步中,本发明使用OpenCV提供的哈尔分类器(Haar Cascade Classifier)进行人脸检测,从场景彩色图中实时地获取用户头部所在的像素点,通过场景彩色图与场景深度图的映射得到人体头部在场景深度图中的投影坐标,并通过步骤2中描述的坐标转换方法将其转换为现实世界中的三维坐标,所述投影坐标为三维向量(X,Y,Z),其中(X,Y)具体地指向场景深度图的某个像素点,Z为该像素点的深度值。5)根据头部位置,计算肩膀坐标a)在获取头部的三维坐标后,本方法根据预设的颈部参考长度Lmdt、颈部的参考深度Dmdt以及头部的实际深度Dtead,通过下列公式计算得到颈部的实际长度L_RealMdt L_Realneck = Dhead*Lneck/Dneck在头部与躯干连接的线段上,根据颈部的实际长度L_RealMdt获得人体颈部的位置;b)在获取颈部的三维坐标之后,本方法根据预设的肩部参考宽度Wshwlte、肩部的参考深度Dshwlte以及颈部的实际深度Rmdt,通过下列公式计算得到肩部的实际宽度W_
Re& I shouider ·ff_Re a Ishoulder — Rneck*Wshoulder/Dshoulder在颈部所处的水平线段上,根据肩部实际宽度W_Realsh()Ul(to获得人体左右肩膀的位置;c)在计算肩部位置时,需要注意用户有时候会采取侧身的姿态,在这种情况下,需要调整侧身时肩膀投影的宽度;该步骤需要计算出左右肩膀所在位置的深度Dleft、Dright以及肩膀的预设长度Wshwldw,那么变化后的肩膀宽度WPM_tral应为
权利要求
1.一种基于多模态融合的实时人体三维姿态恢复的方法,其特征在于它的步骤如下 O以不小于25帧每秒的帧速同步接受包含人体在内的场景深度图序列以及场景彩色图序列,所述场景深度图序列中的每一帧场景深度图由像素矩阵组成,像素矩阵中的每个像素点的值表示该像素点所对应场景中的位置到参考位置的距离,即该像素点的深度值;所述场景彩色图序列中的每一帧图片由像素矩阵组成,像素矩阵中的每个像素点的值表示该像素点所对应场景中的位置所表示的颜色信息,由RGB颜色值表示; 2)分割所述场景深度图的背景与前景像素,获得场景深度图中表述人体部位的区域,即前景像素; 3)处理所述场景深度图中的前景像素,标注出场景深度图中表示人体躯干、头部以及四肢的像素点; 4)通过人脸检测,识别出场景彩色图中的人脸位置,通过场景彩色图与场景深度图的映射得到人体头部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标,所述投影坐标为三维向量(X,Y,Z),其中(X,Y)具体地指向场景深度图的某个像素点,Z为该像素点的深度值; 5)根据头部在场景深度图中的投影坐标,计算颈部与肩部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标; 6)通过四肢端点佩戴的带有颜色的标记物,获取手部及脚部在场景深度图中的投影坐标,并转换为现实世界中的三维坐标; 7)通过手部和肩膀的三维坐标,计算出肘关节在场景深度图中的投影坐标,并转换为现实世界中的三维坐标; 8)通过脚部和臀部的三维坐标,计算出膝关节在场景深度图中的投影坐标,并转换为现实世界中的三维坐标; 9)按照步骤2)至8)处理场景深度图序列及场景彩色图序列中的每一帧,并将每一帧捕获到的人体各部位的三维坐标依据人体结构组成并输出骨架模型,设置每个捕获的人体部位的三维坐标的约束空间和可信度,对骨架模型进行平滑处理,所述约束空间表示了每个捕获的人体部位在相邻两巾贞内所允许最大的位移范围。
2.根据权利要求I所述的基于多模态融合的实时人体三维姿态恢复的方法,其特征在于,所述5)中的计算方法 a)在获取头部的三维坐标后,根据预设的颈部参考长度Lmdt、颈部的参考深度Dmdt以及头部的实际深度Dhead,通过下列公式计算得到颈部的实际长度L_Realmc;k L—ReBlnec^ Dhead 木 Lneck/Dneck 在头部与躯干连接的线段上,根据颈部的实际长度L_Realmc;k获得人体颈部的位置; b)在获取颈部的三维坐标之后,根据预设的肩部参考宽度Wslmiltto、肩部的参考深度Dshoulder以及颈部的实际深度Rmdt,通过下列公式计算得到肩部的实际宽度W_Realsh()Ul(to W Rpol=R >kW/n π_ivv^ctj-Shoulder lvneck n shoulder7 1^shoulder 在颈部所处的水平线段上,根据肩部实际宽度W_Realsh(MldOT获得人体左右肩膀的位置; c)在计算肩部位置时,在用户采取侧身的姿态情况下,需要调整侧身时肩膀投影的宽度;该调整步骤需要计算出左右肩膀所在位置的深度Dleft、Dright以及肩膀的预设长度Wshoulder,那么变化后的肩膀宽度wPM_ted应为
3.根据权利要求I所述的基于多模态融合的实时人体三维姿态恢复的方法,其特征在于,所述6)中的获取方法 a)用户需要在手部和脚部佩戴带有颜色的标记物来辅助识别手部和脚部位置,所描述标记物的颜色应区分于用户身体其它部位的颜色; b)将彩色图由RBG颜色空间转换为HSV颜色空间,并提取手部和脚部标记物的HSV颜色特征作为阈值,再对每一帧场景彩色图,使用该阈值对其进行滤波,将不符合该颜色特征的像素点移除,获得颜色阈值图,并通过图像的腐蚀和膨胀操作,去除颜色阈值图中的噪占. c)经过以上处理,得到一张二值图像,其中手部和脚部标记物的部位会由相应的斑块(Blob)表述,以该斑块的中心点作为四肢端点的位置,再通过坐标转换,分别获得手部和脚部在现实世界中的三维坐标。
4.根据权利要求I所述的基于多模态融合的实时人体三维姿态恢复的方法,其特征在于,所述7)中的计算方法 a)在计算时,需要在场景深度图中的前景像素中标注属于手臂部位的像素点;先分别通过左右肩膀的位置标注出场景深度图中表示躯干部位的像素点,再将场景深度图中与躯干连接的其余部位分别标注为表示四肢及头部的像素点;当手臂在正前方遮挡住躯干时,需要计算躯干“质心”的深度值,并将躯干上每一像素点的深度值与躯干“质心”的深度值比较,如果深度差大于某一阈值,则标注该像素属于手臂区域,反之,该像素点属于躯干区域;某个区域的“质心”指该区域的平均深度,为此,可以通过计算该区域深度值的直方图,并将具有最高频率的深度值或具有最高频率的两个或多个深度值的平均值设为该区域质心的深度值; b)成功标注出手臂区域的像素点后,以手部为起点,遍历深度图中所有标注为手臂的像素,如果该像素点与手部的距离满足小臂长度的约束条件,则将其标记为潜在的肘部区域;之后再以肩部为起点,再次在手臂上搜索到肩部距离符合大臂长度约束的像素点,将这些点与之前标注出肘部的点取交集即可得到肘部的估测范围,再将这些点的中点标记为人体肘部位置。
5.根据权利要求1所述的基于多模态融合的实时人体三维姿态恢复的方法,其特征在于,所述8)中的计算方法 a)在计算时,需要在场景深度图中的前景像素中标注出属于腿部部位的像素点,先分别通过左右肩膀的位置标注出场景深度图中表示躯干部位的像素点,再将场景深度图中与躯干连接的其余部位分别标注为表示四肢及头部的像素点; b)成功标注出腿部区域的像素点后,以脚部为起点,遍历深度图中所有标注为腿部的像素点,如果该像素点与脚部的距离满足小腿长度的约束条件,则将其标记为潜在的膝盖点;之后再以臀部为起点,再次在腿部上搜索到臀部距离符合大腿长度约束的像素点,将这些点与之前标注出膝盖的点取交集即可得到膝盖的估测范围,再将这些点的中点标记为人体膝盖位置。
6.根据权利要求I所述的基于多模态融合的实时人体三维姿态恢复的方法,其特征在于,所述9)中的处理方法 c)针对每一个人体部位定义一个约束长度D以及可信度C,约束长度D可以描述约束范围;约束范围是指一个以该人体部位为球心,D为半径的球体,该球体描述了该人体部位在相邻两帧的时间内,所允许的最大位移范围,不同人体部位的约束空间大小会不一样,手部的约束空间相比肩部会大一些; d)可信度表示了该人体部位目前坐标值的准确程度,C的值越高,则该人体部位的位置越准确;初始时每个人体部位的可信度都设置为O,在新的一帧中,如果该人体部位新的位置处于前一帧该人体部位的约束空间内,则该人体部位的可信度增加一点,若该人体部位的可信度已达到最大值,则不需要改变;反之,若该人体部位新的位置在上一帧中该人体部位的约束空间之外,则只需向新的位置移动Length/C的距离,其中Length为该部位原来的位置和新位置所表示线段的长度,随后再将该部位的可信度降低一点。
全文摘要
本发明公开了一种基于多模态融合的实时人体三维姿态恢复的方法。利用深度图解析、颜色识别、人脸检测等多种技术,来实时地获取人体主要关节点在现实世界中的坐标,从而恢复出人体的三维骨架信息。基于每一时刻同步获取得到的场景深度图像及场景彩色图像,利用人脸检测的方法获得人体头部位置信息,利用颜色识别的方法获得佩戴有色标的四肢端点位置信息,再通过四肢端点的位置信息,利用彩色图与深度图的映射关系计算出肘部与膝部的位置信息,最终利用时域信息对获取的骨架进行平滑处理,实时地重建出人体的运动信息。本发明相较于传统的利用近红外设备对人体进行三维姿态恢复的技术,提高了恢复的稳定性,也使人体运动捕获过程更为简便。
文档编号G06T17/00GK102800126SQ201210230898
公开日2012年11月28日 申请日期2012年7月4日 优先权日2012年7月4日
发明者肖俊, 刘彬, 庄越挺 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1