双目视觉下人体运动的三维模型描述方法研究*

2011-02-28 05:10董小铨申媛媛
网络安全与数据管理 2011年11期
关键词:极线关节点光流

魏 玮,董小铨,申媛媛

(河北工业大学 计算机科学与软件学院,天津 300130)

人体的运动包含了相当丰富的信息,如从人体运动当中可以看出其动作、姿态;根据目前的运动可以推测它在未来某个时刻的位置、速度;可以看出它的表情、神态;可以了解一个人的个性等。正因为如此,对人体运动的研究有着相当广阔的应用空间,如视频监控、运动分析检测、虚拟现实、动画制作等。而其中关于人体关节点的运动跟踪检测以及人体运动姿势的三维重建更是其研究的热门话题。人体姿势的三维重建可以按照视点的个数分为基于单视点的三维重建[1]和基于多视点的三维重建。基于单视点三维重建的优点在于它使用方便,可以在大多数的场合中使用,限制的条件较少,只需要一个摄像机或其他输入设备。缺点是由于只有一个视点,得不到相应的深度信息,所以当有自遮挡的情况时会产生匹配的模糊性问题。而基于多视点的三维重建可以部分解决这个问题。与单视点相比,多视点易于进行三维重建,但多视点的跟踪同样存在特征对应及自遮挡等难点,而且多视点的自动对应也是目前比较有难度的一个课题。其中对于基于多视点的人体姿势三维重建,大体上可以分为利用机器学习的方法和目标跟踪的方法两种。通过机器学习的方法,可以利用大量的先验知识来获得更加准确的有关三维人体姿势的估计。然而,该方法需要大量的样本数据,使用起来十分不方便而且费时,在一定程度上限制了它的应用。目标跟踪的方法主要由两个步骤组成:首先是在每一帧中为每一个特征点定位,并且在每一帧中跟踪相应的特征点;然后是通过获得特征点来对人体姿势进行三维重建。本文提出一种在两个摄像机的条件下,利用金字塔光流的方法对关节点进行跟踪检测,并利用极线约束进行三维重建,对运动过程中被遮挡的关节点进行预测处理,最后将求出的关节点三维坐标转化成模型中的旋转角,通过层次化的描述,用人体模型来显示相应的动作姿态。

1 算法主要思想

1.1 三维人体模型

将人体看成是由关节点及其连接线段所组成的刚体的集合。如下肢是由膝关节连接的大腿和小腿两个刚体。以一条线段来表示一个刚体,将人体的运动简化为人体框架的运动,这样就得到一个三维人体框架模型[2],如图1、图2所示。该人体模型共包含16个人体关节点,其中所有关节点之间的线段在任何时刻都不会发生形变,而且各个线段之间的长短比例关系可以事先根据个体情况进行适当调整[3]。

图1 三维人体模型

图2 人体关节点对应关系

1.2 光流金字塔跟踪算法

传统的Lucas-Kanade的光流算法[4]主要基于以下三个假设:(1)亮度恒定,即图像场景中目标的像素在帧间运动时外观上保持不变。对于灰度图像,需要假设像素被逐帧跟踪时其亮度不发生变化。(2)时间连续或运动是“小运动”,即图像的运动随时间的变化比较缓慢。在实际应用中指的是时间变化相对图像中目标运动的比例要足够小,这样目标在帧间的运动就比较小。(3)空间一致,即一个场景中同一表面上邻近的点具有相似的运动,它们在图像平面的投影也在邻近区域。但是由于受人体运动和图像噪声的影响,前后帧中对应的特征点的亮点完全相等几乎是不可能的,一方面是人体的运动往往幅度较大,光线难以保证均匀。另一方面由于运动会产生不可避免的遮挡,亮度甚至还会发生突变,因此传统的方法在人体跟踪中受到一定的局限。

本文将对传统的光流方法进行改进,使用一种基于图像金字塔的角点梯度光流计算方法对图像序列中的角点进行亚像素级跟踪[5]。该方法的基本思想是:首先构造如图3所示的图像序列的金字塔,金字塔中较高的层是下层图像向下降采样后的图像,原始图像的层数为零。当图像分解到一定的层后,相邻帧的图像间运动幅度就变得足够小,就会满足光流的几个约束条件,此时便可进行光流计算。由高层向低层进行计算,当某一级的光流增量计算出来后,将加到其初始值上,作为其下一层的光流计算初值。这一过程持续进行直到估计出原始图像的光流。

图3 图像序列金字塔

设 I0为原始图像(w×h)的灰度表示,位于金字塔的第0层,并依次生成n层高斯图像金字塔的第1,2…,n-1 层,分别表示为 I1,I2…In-1。对其中的第 L(0

对于图像I0中的特征点 x(x,y),有第 L层中的图像IL的 xL(xL,yL)点与之对应,其中 xL=x/2L。 由于高层上的误差将向下层传播和放大,因此层数不宜过多。一般地,3≤n≤5。对于给定的两幅连续图像 I(x,y)、J(x,y),特征跟踪的目标是找到 I(x,y)上一点 u=(ux,uy),在 J(x,y)上对应具有相似图像强度的另一点 u+d=(ux+dx,uy+dy),其中d为u点的平移量。将光流定义为使不同时刻图像区域之间产生最佳拟合的位移,以u点为中心,在 I(x,y)、J(x,y)分别建立(2wx+1,2wy+1)的对应区域窗口,并假设对应窗口内的像素具有相同的运动位移矢量d。定义窗口内像素的灰度方差和跟踪残差E(d)为:

式中,gL为L层对应的初始光流估计值,由N-1层到L+1层的递推计算得到,最顶层的初始光流估计值gN-1=0;dL为L层计算得到的光流结果,上下层间的光流计算传递过程为:

对于运动过程中被遮挡而消失的特征点,本文采用图像特征点预测方法,选择不同的位置坐标加权系数,可以预测出不同的特征点位置。然后根据两个视图中的对应特征点位置重建三维坐标[6],并利用预测的三维特征点与重建的三维点进行匹配,从而解决暂时消失的特征的跟踪问题。

由于消失特征随时可能从视域中出现,因此,向周围的邻八域搜索是否存在再次出现的人体关节点特征,一旦出现新的特征,即修改特征的位置和运动属性以指导下一帧的跟踪,并再次利用金字塔光流方法进行跟踪重建。

1.3 极线约束

通过立体标定,可以求出两个摄像机之间的相对位置,即用 R、T表示旋转位移的关系[7],由此便可以使用极线约束来描述投影点m、m′之间的关系。极线约束原理示例图如图4所示。在图4中,o、o′与两个平面相交于 e、e′,三角形(o,M,o′)确定的平面与两个图像平面相交于两条直线 l(m,e),l′(m′,e′)。 称 l′为平面 I′上的极线,l为平面 I上的极线。 可以看出 o、o′、m、m′、M、e、e′这些点在同一个极平面上,所以m的对应点m′一定位于极线 l′上。同理,m′的对应点m一定位于极线l上,这就是极线约束。利用极线几何约束可大大减少在两幅图像间匹配对应点的计算量。由于I中点m在I′中的对应点在由m′决定的极线上,因此搜索空间的维数由二维降为一维,从而降低了搜索空间。

图4 极线约束原理示例图

1.4 层次化描述

对于运动描述,本文使用一种层次化的运动描述方法[8],把人体模型看成是类似树的结构,如图5所示。树的根节点是Root点,其他子节点对应人体模型中的各个关节点。整个人体的运动可以看成是由平移和旋转组成的,Root点的旋转决定人体模型所对应的方向,人体的平移即为Root点的位移量,其他各节点的旋转是在以父节点为坐标原点的相对坐标系下的旋转。各个关节点的位置可以根据各个关节点间的线段长度和旋转向量求出,而关节点间的线段长度可作为先验知识获得。图中的节点R_ankle,其位置与旋转平移向量的对应关系为:

图5 人体关节的层次关系

根据上述方法可求得各关节点的旋转和节点的平移向量。将视频序列中人体运动描述为:

其中,T(t)表示 t时刻点 Root的平移向量,Ri(t)表示t时刻第i个关节点的旋转向量。

在已经知道每个关节点的运动除了包括绕父节点旋转外,还包括随父节点绕祖父节点旋转和平移。因此,三维数据向旋转平移数据转化的关键是在各个非叶子节点处建立以该非叶子节点为原点的参考坐标系。以人体上臂为例来说明旋转数据的计算方法。由于三维数据中没有考虑扭矩的作用,可假设绕轴的运动分量为0;假设旋转方向为先绕z轴旋转β,再绕y轴旋转θ。然后,将三维数据(x,y,z)变换到上臂参考坐标系下,其坐标为 (m1,m2,m3), 则参考坐标系下的三维数据(m1,m2,m3)与参考坐标系下的上臂初始位置(-l,0,0)之间的关系可以描述为[10]:

以此类推,可以计算出人体各个关节点的旋转分量,其实现效果如图6所示。

图6 人体各个关节点的旋转分量实现效果

2 实验结果

根据本文提出的算法,使用VC++开发一个人体运动跟踪描述系统,可运行在Windows平台上。实验中的视频是使用两个具有平行光轴的摄像机拍摄而成。图7是拍摄的一段图像序列的跟踪结果以及恢复出的三维骨架序列。

图7 拍摄的一段图像序列的跟踪结果

本文提出一种双目视觉下的三维人体运动描述算法。该算法鲁棒性较高,因为除利用贴在人体关节处的用于构建三维标记点的白色标记点之外,没有利用图像上的其他特征。实验结果表明,该算法能有效地对人体运动进行描述,并且当有比较大幅度的运动及遮挡的情况时,依然可以较好地跟踪和预测关节点位置,并进行重建显示。未来的工作是要加入更多的人体约束和运动学约束以消除动作的多义性,进一步提高描述的准确性和鲁棒性。

[1] Zou Beiji, Chen Shu, Cao Shi, et al. Automatic reconstruction of 3D human motion pose from uncalibrated monocular video sequences based on markerless human motion tracking[J].Pattern Recognition, 2009,42:2.

[2]刘小明,庄越挺,潘云鹤.基于模型的人体运动跟踪[J].计算机研究与发展,1999,36:10.

[3]SHEN B C, SHIH H C, HUANG C L.Real-time human motion capturing system[C].Proceedings of IEEE International Conference on Image Processing, 2005:11-14.

[4]张永亮,卢焕章,高劼,等.一种改进的 Lucas-Kanade光流估计方法 [J].海军航空工程学院学报,2009,24(4):444-445.

[5]陈乐,吕文阁,丁少华.角点检测技术研究进展[J].自动化技术与应用,2005,24(5):1-4.

[6]张娟,潘建寿,吴亚鹏,等.基于双目视觉的运动目标跟踪与测量 [J].计算机工程与应用,2009,45(25):191-193.

[7]蔡涛,李德华,朱洲,等.基于彩色图像序列的特征检测和跟踪[J].计算机工程,2005,31(8):12-13.

[8]Chen Yisheng, LEE J, PARENT R, et al.Markerless monocular motion capture using image features and physical constraints [C]. Proceedings of Computer Graphics International.Washington DC: IEEE ComputerSociety,2005:36-43.

[9]KIM S M, PARK C B, LEE S W.Tracking 3D human body using particle filter in moving monocular camera[C].Proceedings of the 18th International Conference on Pattern Recognition.2006:805-808.

[10]SILAGHI M,PLAENKERS R,BOULIC R,et al.Local and global skeleton fitting techniques for optical motion capture [C].ProceedingsofInternationalWorkshop on Modelling and Motion Capture Techniques forVirtual Environments.London: Spirnger-Verlag,1998:26-40.

猜你喜欢
极线关节点光流
利用掩膜和单应矩阵提高LK光流追踪效果
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
破解定值有妙法,极点极线显神威
关节点连接历史图与卷积神经网络结合的双人交互动作识别
一道高考试题的背景简介
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法
利用PSO估算Lucas-Kanade光流模型的参数