二, 人体运动模型的表达 - 卡耐基梅隆大学

1运动图象序列的人体三维运动骨架重建
庄越挺刘小明潘云鹤杨骏
(浙江大学人工智能研究所杭州  310027)
摘要在计算机视觉领域,人体运动分析的研究具有相当广泛的应用前景。由于人体运动的复杂性,已有的研究方法都对研究对象—人体,加上了许多限制条件。本文中提出了一种新的方法来获得各类人体运动的信息。本文主要论述了该方法中对人体三维运动骨架的重建部分,其基本思想是在摄相机定标的基础上,应用三维人体模型知识和运动连续性依次建立每个图象的人体运动骨架。最后给出了实验结果。
关键词图象序列运动骨架摄相机定标
中图法分类号TP391.4
Human Three Dimension Motion Skeleton Reconstruction
of Motion Image Sequence
ZHUANG Yue-Ting  LIU Xiao-Ming  PAN Yun-He  YANG Jun        (Institute of  AI, Zhejiang University,Hangzhou 310027)
Abstract In the domain of computer vision, there is a very wide application for the research of human motion analysis. For the complexity of human motion, the existing research methods lay much limitation on human. This paper proposes a new approach to obtain the information of human motion. It focuses on the human three dimension motion skeleton reconstruction. The main scheme is to establish the human motion skeleton of every image in turn using three dimension human model knowledge and motion continuity on the basis of camera calibration. The final result is presented at the end of the paper.
Keywords  Image sequence, Motion skeleton,  Camera calibration
1.引言
人体运动分析,就是从图象序列或视频中获取人体的运动信息,并对它进行分析,识别等工作。由于这一研究具有相当广泛的应用前景,它正越来越受到研究者的重视。如在图象中分割出人体的各个部分,并在图象序列中跟踪关节的运动,以至恢复相应的三维人体结构,在运动员的动作分析,医学分析,动画制作等方面非常有用。另外,自动化地识别,理解人体运动能够广泛地应用于监视,人机交互,视频检索等领域。
传统的人体运动分析方法一般分为两种。一是在人体的各个关节部位分别加上传感器。在人体运动过
程中,传感器会不断地将各关节在空间中的位置返回给计算机,这样计算机就可以精确获得人体在各个时刻的运动信息。二是针对图象序列进行分析。图象序列可以是单个相机拍下的,也可以是多个相机同时从各个视角拍下的。这一般分三步顺序完成。首先从图象帧中提取低层特征,如各关节的位置,并对之进行识别;然后是在各个帧的特征间建立对应关系;最后是从特征对应中恢复三维人体结构与运动信息。在这方面,O’Rouke与
1本文得到国家自然科学基金资助. 庄越挺, 男, 1965年6月生,博士,副教授, 主要研究方向为多媒体数据库,智能CAD. 刘小明, 男, 1975年3月生,硕士研究生,主要研究方向为多媒体技术,视频检索. 潘云鹤, 男, 1946年11月生,教授,博士导师,院士,主要研究方向为计算机美术,形象思维,智能CAD系统,GIS,计算机动画,多媒体技术等. 杨骏, 男, 1978年9月生,本科生,主要研究方向为计算机视觉.
Badler[1]采用将图象与一个方块模型进行映射的方法进行研究。Hogg[2],Rohr[3]的系统仅针对自由度为一的人体行走模型。他们从图象中提取了边特征与角特征,并与一个三维圆柱人体模型进行匹配。Chen 与Lee[4]用17条线段和14个关节组成了一个骨架模型来表示人体,并在分析过程中加入了多种约束。Bharatkumar et al[5]也用骨架模型描述人体下肢,但他们试图建立一个通用模型,以用于人体行走的步态分析。由于人体运动的特殊复杂性,几乎所有这些方法都加上了许多限制[6]。如要求背景单一甚至不动,人体运动方向与投影平面平行,人体穿紧身衣裤等;另外,加上传感器后人体运
动不可避免地变得不自然。
我们提出了一种新方法来获取人体运动信息。该方法分为两个部分。第一部分是二维图象序列的特征点跟踪[7]:给定一个包含被分析人体的图象帧序列,用户先在第一帧上标注人体各个关节点,然后系统跟踪出后续帧中人体各个关节点的位置。这样就获得了人体经投影后的二维运动骨架序列。第二部分是三维人体运动骨架重建:针对这一骨架序列,我们应用计算机视觉的方法进行摄像机定标,最后恢复了相应的透视投影下三维人体运动骨架序列。也即在三维空间中,人体各关节点在各个时刻的空间坐标。这样,该人体模型就能用于人体动画,虚拟现实等各类需建立三维场景的应用中。 该过程的整体框架如图1所示:
图1. 系统整体框架
本文将专门介绍第二部分的具体实现。第二节将介绍本文所用的三维人体骨架模型,第三节介绍三维人体运动骨架重建的具体算法,第四节给出实验的结果,最后对文章进行总结并探讨未来的工作方向。
2. 三维人体骨架模型
我们将人体看成一个由关节点
连接的刚体的集合[4]。如上肢是由
超低碳钢
肘关节连接的上下臂两个刚体组成
的,上臂与躯干是由肩关节连接的。
我们以一条线段来表示一个刚体,
将人体运动简化为人体骨架的运
动,这样就得到了一个三维人体骨
架模型。如图2所示。该人体模型
共包含16个人体的关节点, 本文中
称它们为三维特征点。
图2.    人体三维骨架模型
由于特征点之间的线段是代表刚体,因此它们在任何时刻都不会形变。同时我们假设各
个线段(即人体骨架)之间的长短比例关系并不因人而异,这一比例可以从解剖学中获得。本文把三维特征点在投影平面中的投影点称为二维特征点。在前面的工作——二维图象序列的特征点跟踪[7]中,已经得到了每帧中人体各个二维特征点的位置。下面我们就开始讨论在此前提下,如何运用计算机视觉的方法来恢复相应的三维人体骨架的运动信息。
3. 三维人体运动骨架重建的实现
为了在透视投影下重建三维人体运动骨架,我们必须先获得摄像机参数。通过三维模型和二维图象上的线对应关系,本文采用牛顿方法来进行摄像机定标。然后,利用透视投影关系和人体骨骼的比例关系,我们求解了人体模型中各个三维特征点的坐标。在帧序列中,我们利用运动连续性来有效地消除了三维运动信息的二义性。
3.1基于线性模型的摄像机定标
我们知道, 世界坐标系中的任何一点经过以下两个变换都可以转化为投影平面上的点P(u,v)[8]:首先是世界坐标系中的点P w (X w ,Y w ,Z w )通过旋转和平移变换得到该点在摄像机坐标下的坐标P c (X c ,Y c ,Z c ),用矩阵表示如(1)。其中R 为旋转变换矩阵,t 为三维平移矢量。其次是通过透视投影将摄像机坐标下的点P c (X c ,Y c ,Z c )投影为投影平面上的点P(u,v),如(2)所示,其中f 为焦距。这两次变换如图3:
褐煤干燥(1)          −
=        t Zw Yw Xw R Zc Yc Xc          ()
••=Zc Yc f Zc Xc f v u ,,                  (2)
我们要解决的问题是:给定一些三维人体模
型上的特征对象和与其对应的二维图象上的特
征对象,求得投影参数R ,t 以及f 。在我们的
方法中,f 为已知。在上两式中,计算u,v 相对
于未知参数的偏导数较困难,因此将(1)和(2)进
行变化得到如下形式:                          (3)
=        Zw Yw Xw R Z Y X '''
++•++•=Dy Dz Z Y f Dx Dz Z X f v u '',''),(    (4)
图3. 投影变换示意图
此两式中参数R 和f 的意义与式(1)和式(2)相同, 而将平移矢量t 用参数Dx ,Dy ,Dz 代替, 其中P′=(X′,Y′,Z′)为三维点。当下式成立时上述两种表示方法等同:
(5) ],/)'(,/)'([1Dz f Dz Z Dy f Dz Z Dx R t T −+−+−•=−    本文用旋转向量表示法来表示旋转参数R 。即由一个三维向量r=(Wx,Wy,Wz)T 来定义一个旋转,它的方向就是旋转轴的方向,它的模等于旋转角。至此,投影参数可以用矢量(Dx,Dy,Dz,Wx,Wy,Wz )来表示,可以方便地求得u 和v 对于Dx,Dy,Dz,Wx,Wy,Wz 这六个投影参数的偏导数。在我们计算投影参数时, 用于对应的特征对象是图像与三维模型之间的对应
线而不是对应点。我们将通过点(u ,v )的直线方程用如下形式表示:  d v m u m m
=+++−11
122                          (6)
其中d 为原点到该直线的垂直距离, m 为该直线的斜率。由该式可得d 对u,v 的偏导数,再结合前面的计算,可以得到d 对于Dx,Dy,Dz,Wx,Wy,Wz 的偏导数。这样, 我们就可以使用牛顿迭代法来计算投影参数。具体的做法为:首先从一组投影参数(Dx,Dy,Dz,Wx,Wy,Wz )的初值出发(f 作为已知值设为1), 按目前的参数估计将三维模型上的线段投影到二维投影平面上, 然后计算投影直线与实际的二维特征线段之间的误差偏离, 于是有以下的方程: Ed Wz Wz
d Wy Wy d Wx Wx d Dz Dz d Dy Dy d Dx Dx d =∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂        (7)  方程中的Ed 为二维特征线段的端点到投影直线的垂直距离。由于一条线段有两个端点, 因此对于任何一对对应线,都能列出两个象(7)这样的方程。所以只要有三对不共线的对应线就可以有六个方程组成线性方程组, 求解该方程组得到修正矢量h=[∆Dx, ∆Dy, ∆Dz, ∆Wx, ∆Wy, ∆Wz],然后将h 的各个分量分别与当前的投影参数相加。修正投影参数后,再重新计算线性方程组。这样经过有限次的迭代, 方程组中所有的Ed 值都将小于预设的一个阈值。这样就求得了六个投影参数。
应用牛顿方法至少需要三对对应线。在三维模型中, 我们选择了人体左右肩部之间的一条线段,左右肩部与胸部之间的两条线段。这三条线段组成了人体上身的一个稳固的等边三角形。这种选择是基于在人体运动中该三角形最不易发生形变的考虑。对于该三角形的各个特征对象,本文在以后的表述中分别称为关键节点, 关键线段与关键三角形。
由于首帧的二维特征点是由用户标注的,因此关键节点在二维平面上的投影是已知的。关键节点在世界坐标系中位置是由系统来指定的。因为只要关键三角形各个边的比例符合人体解剖学,那么我们总是能在世界坐标系中确定摄像机的位置和方向,使得关键三角形的透视投影与二维图象帧上躯干上部三角形重合。由于人体其他部分的骨架长度是通过关键线段的长度按比例得到的,所以关键三角形的大小表示了整个人体模型的大小。事实上, 我们也可以使用多于三对的对应线段。这样就能用最小二乘法减少定标的误差。
3.2首帧图像对应三维人体模型的建立排水帽
从3.1的工作中, 已经求得了六个投影参数。但此时除了三个关键节点之外,人体模型的三维特征点中都不可知,下一步就是从已知的一个二维特征点坐标(U,V)出发,求出与该点对应的人体模型上三维特征点的空间坐标P c (X c ,Y c ,Z c )。但从透视投影的针孔模型可以看到, 连接摄像机光心和成像点得到一条直线,该直线上的所有点在投影平面上都成像于同一点。为了在这条直线上到三维特征点,
本文利用人体骨骼长度知识,从一个与所求点相邻的已知三维点出发,寻该直线上的一个点,使得该点到已知三维点的距离等于两点间相应骨骼长度。
假设右肩部点P c ′已知,要求出未知的右肘部点P c ,以它为例来说明本文的算法。设P c (X c ,Y c ,Z c )为右肘部点在摄像机坐标系中的坐标, (u,v)为P c 在投影平面中的坐标。则有如下关系:
Len P P d c c =),'(                                  (8)
其中d(P c ′,P c )表示求点P c ′与P c 之间的距离。Len 为人体模型中上臂的长度。结合上式与(2),可以得到仅含有未知量Zc 的方程。该方程可以形象地表示为求投影直线与以P c ′为球心,Len 为半径的球面的交点。根据空间直线与球面可能出现的相交,相切,相离三种可能, 此方程的解也有下列三种可能情况:
1)有两个解,即对应于直线与球面相交,有两个交点的情况。这说明肘部有两种可能位置。这种从二维向三维建模时产生的二义性是由于该问题本身的病态性造成的。本文通过两种方法来消除二义性。首先是利用人体解剖学中的各种人体约束。如当上臂前伸时,小臂不可能向后伸等。其次是利用颜信息。通过本文的方法解出的两个点总是一个离摄像机光心较近,一个较远。本文假设离摄像机光心较近的图象区域亮度较高,反之则较低。因此,先在肩部与肘部分别以相应特征点为中心选择一小块区域。然后将两个区域中点的RGB颜模型转化为HLS颜模型,分别计算出两区域中点的L分
量的均值。最后,如果肘部区域的L分量均值大于肩部区域的相应值,则选择离摄像机光心较近的点为最终解,反之则选择离摄像机光心较远的点。实验表明,结合这两种方法能有效地消除首帧骨架的二义性。但当有些情况下,由于光照等因素而使亮度假设不成立时,我们也提供了用户辅助的手段来消除二义性。 2)只有一个解,对应于直线和球面相切的情况。此时该切点就是所求的三维右肘部节点。3)无解,对应于直线和球面相离的情况。产生的原因有两个:作为已知条件的二维特征点坐标存在误差,或是作为先验知识的人体骨骼长度过短,系统会适当调整骨骼长度之后再进行计算。
至此,通过上述的从已知二维点计算未知三维特征点的方法,按图4所示的扩展顺序就可以求出所有的三维特征点。
右肩(指定) 右肘  右腕
左肩(指定) 左肘
左腕
头部
右臀 右膝 右踝
左臀 左膝
图4. 人体运动模型三维特征点求解顺序
3.3 各后续帧中三维人体运动模型的对应
在3.2中,我们已经对第一个图像帧建立了相应的三维人体模型。事实上,对任一帧只要知道三个人体关键节点的三维坐标,就可以用3.2中所述方法求出该帧所对应的三维人体模型。三个关键节点的坐标在首帧中是由系统确定的,下面讨论在后续帧中如何确定它们的坐标[9]。
设第n帧中三个关键节点在摄像机坐标系中的坐标为P i′(X i′,Y i′,Z i′) (i =1~3)是已知的, 要计算第n+1帧中三个相应的三维关节点的摄像机坐标P i(X i,Y i,Z i) (i =1~3) 。P i在投影平面中对应的二维点坐标为(U i,V i)(i=1~3),则由式(2)可知Pi与(U i,V i)的换算关系为:
抗生素制作方法
=i
i
i
i
i
i Z
电磁
f
Z
V
f
Z
U
P,
,(i=1~3)(9) 同时,由刚体的属性可知,人体模型中各骨骼的长度保持不变,则有下式:
(10)
=
=
=
)
,
(
)'
,'
(
)
,
(
)'
,'
(
)
,
(
)'
,'
(
1
3
1
3
3
2
3
2
2
1
2
1
P
P
d
P
P
d
P
P
d
P
P
d
P
P
d
P
P
d
将P i′和(9)代入(10)后可得一个非线性方程组。它有三个未知数,用上一帧关键节点的Z值做初值,通过梯度法来迭代求出一组解。这样就得到了本帧中三个关键节点的摄像机坐标P c。
此时再利用3.2中所述的扩展方法,
我们就能求出该帧对应的人体模型中的
全部三维特征点的坐标。本文假设人体
运动具有连续性,在出现二义性时计算
两个可能坐标到上一帧中该三维特征点
的距离, 并取距离较短的点作为该匹配
点的最终位置。实验表明, 这种消除二
义性的方法有很出的效果, 在一个长
序列的人体运动模型中充分体现了运动
的连贯性与真实性。如图5中,加粗的
三角形为人体的关键三角形在投影平面
中的位置, 当匹配右肘部节点出现P1和
P2两个可能的位置时,利用图中虚线所
示的上一帧右肘部节点P ′位置,选取
离P ′较近的点P1为此帧中右肘部的位
置。        图5. 后续帧中二义性的自动消除
4. 实验结果
按上文所述算法, 我们用VC++6.0与OpenGL 实现了能从一个图象序列中生成三维人体运动模型的原型程序Human Animation, 在PENTIUM Ⅱ微机上运行通过。我们从电影《MASK 》中截取了一段长为2秒共48帧的图像序列,图6显示的就是该系统对其作用并生成三维人体运动模型的结果。最上面的一行分别显示了图像序列中的第1,5,17,39,48帧图象。其中,用户手工标注了第1帧图象中的16个特征点,另外四帧图像上的特征点是由程序[7]跟踪得到的。我们还定义了一个虚拟相机以模拟拍摄图象序列时所用的相机,中间一行是虚拟相机拍摄的透视投影图,它们与原相机采用同样的视角。最下面的一行显示了从不同角度面对人体三维模型得到的透视投影图。它们分别是将相机右转30度,左转30度,右转20度,左转150度,右转15度得到的投影图。从图中可以看到,下面两行生动地反映了从各个角度看到的人体形态。除了《MASK 》之外, 我们还进行了许多组实验,结果发现有两个因素会影响最终三维模型的真实程度。首先,如果二维图象序列的特征点跟踪有较大误差的话, 重建的三维模型会受很大影响。其次,某些人骨架的长短比例与解剖学的数据有一定差异. 因此当我们以一个短
跑运动员作为分析对象时,对骨架比例作了调整后才获得了很好的效果. 但相对前者,这一因素较少发生,影响也小.
多媒体教学讲台

本文发布于:2024-09-24 00:17:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/100854.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:人体   运动   投影   模型   特征   图象   骨架
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议