基于栅格粒子滤波的人体头肩三维姿态估计

2010-11-16 08:08刘晨光刘家锋黄剑华唐降龙
哈尔滨工业大学学报 2010年3期
关键词:模型库栅格肩部

刘晨光,刘家锋,黄剑华,唐降龙

(哈尔滨工业大学,计算机科学与工程系,哈尔滨15001,liu.cg@live.cn)

目前基于单目视频的三维人体姿态估计方法主要分为两类:1)使用三维人体模型、人体约束与运动学(Kinematics)过程相结合的方法[1-2].此类方法将人体在图像平面上的投影与三维人体模型进行相似性匹配,并结合人体约束,使用运动学过程计算三维人体姿态.由于人体运动的复杂性,该类方法通常需要大量不同姿态的三维人体模型,具有一定的局限性.2)使用人体运动学和形状信息估计人体肢体三维姿态并进行“组装”的方法[3-7].此类方法由于独立地跟踪不同的肢体,能够更好地适应人体运动的复杂性.而人体头肩的跟踪和三维姿态获取,为其他肢体的跟踪和姿态获取提供了前提条件.文献[6,7]首先使用Adaboost 方法检测到头部位置,并以此位置作为初始值,使用若干二维头-肩轮廓模型作为候选匹配,然后估算出图像中人体肩部位置.

为此本文提出了一种新的粒子滤波方法,使用三维头肩模型来描述人体头肩三维姿态,利用了粒子滤波的多模特性使得头部位置、肩部位置以及头肩部的三维姿态参数可以同时被估算出来.在跟踪人体头部和两肩的位置的同时,估计出人体头肩部三维姿态.不仅为分析人的行为提供了基础,还为人体三维姿态估计方法中其他肢体的运动信息获取提供了前提.

1 基于三维模型的栅格粒子滤波器

如图1 所示,首先建立一个三维头-肩模型集合,然后将所有的三维模型向图像平面投影获得相应的二维模板集合.在输入的视频图像中,通过背景减除和边缘检测获得图像的观测.从二维模板集合中逐一取出二维模板并在观测图像中进行匹配操作计算相似度.找出相似度最大的二维模板,其位置作为跟踪到的头部位置,与之一一对应的三维模型作为头肩三维姿态估计结果.显然,这一过程由于穷尽了模板集合中的所有模板来搜索最优结果,当模板集合较大时将非常耗时.

图1 未优化的算法流程图

为了避免穷尽所有模板的搜索过程,提出了基于三维模型的栅格粒子滤波方法.该方法利用了人体姿态在连续两帧间变化不大的特点,在离散的状态空间中跟踪人体头肩的姿态变化轨迹.它保留了典型粒子滤波的非高斯、非线性且多模的特点,没有使用任何运动模型,而是在一个离散化的状态空间内,以上一时刻的系统状态为中心,取得一个超椭球体并取其内部包含的粒子作为当前时刻的新粒子,每一个新粒子都和三维模型库中的一个头-肩三维模型相对应.通过限定超椭球体的体积就可以将粒子数限制在一个合理的范围内,优化了粒子的搜索空间,提高了执行效率.

1.1 头-肩三维模型

与文献[6]中使用的头-肩、头-背部二维模型相比,头-肩三维模型更好地描述了人体的生理结构特征,因而在跟踪过程中能够提供更为可靠的三维信息.本文使用两个相互连接的椭球体构 造 了 人 体 头-肩 三 维 模 型 ψ(ν,θy,θz)(图2),两椭球的参数由人体固有的比例关系确定,它们在三维空间中的相对位置关系保持不变.模型ψ 具有3 个自由度,ν 为缩放尺度,θy为模型绕YW轴旋转角度,θz为模型绕ZW轴旋转角度.

模型所在的三维空间坐标系W 与图像坐标系F 间的关系如图3 所示,W 中的XwOwYw坐标平面与F 中的XFOFYF平面是平行的.这样,就可以通过将三维模型ψ(ν,θy,θz)向图像平面投影得到图像平面内的二维模板κ(x,y,ν,θy,θz),其中,x 和y 分别为模板κ 在图像中位置的横、纵坐标,ν,θy,θz为模板κ 对应的三维模型ψ 的3 个自由度.

于是,可以定义5 维状态空间中的粒子φ(x,y,ν,θy,θz,ω),其中,ω 为该粒子的权重(通过粒子滤波的测量过程被赋值),向量(ν,θy,θz)对应一个三维模型ψ,而(x,y)为ψ 对应的二维模板在图像中的位置.头部和肩部的位置在二维模板中的坐标是已知的,因此跟踪结果的(x,y)分量确定后便可以计算出头部和肩部在原图像中的二维坐标.

图2 人体头-肩三维模型

由头-肩三维模型的建立过程可见,通过改变模型ψ(ν,θy,θz)3 个自由度的值获得模型在三维空间中的不同姿态,所有不同的姿态的集合构成了一个三维模型库S.缩放尺度ν、角度θy和角度θz的采样率分别为Δν、Δθy和Δθz,模型库S 为

式中:P,G 和Q 分别为相应自由度的取值集合,共有N=NP×NG×NQ个头-肩三维模型.

模型库S 的建立优化了粒子滤波中粒子的搜索空间,为状态空间离散化为栅格状态空间提供了前提条件.为了避免动态地生成二维模板图像,提高系统运行速度,将模型库S 中每个三维模型对应的二维投影模板图像都存放在外存中并进行索引,每次系统启动时读入内存中备用.

图3 三维模板空间坐标系W 与图像平面坐标系F 关系图

1.2 栅格粒子滤波器

栅格粒子滤波器将粒子φ(x,y,ν,θy,θz,ω)所在的五维状态空间进行离散化后作为粒子的搜索空间.状态空间中每一个离散化的点都对应了一个粒子,在各维度上等间隔排列的N 个点对应了N 个粒子.这样,连续的五维状态空间就离散化成为栅格状态空间,离散化程度取决于各维度上间隔(采样率)的大小.离散化程度越大,粒子滤波所需的粒子数越少,系统的运行效率越高,而三维姿态估计的精度越低,反之亦然.

本文方法不需要人工初始化过程,而是使用基于分层次搜索的方法获得第一帧图像的系统状态.首先进行背景减除操作以获得人体位置所在的矩形区域作为粒子φ(x,y,ν,θy,θz,ω)对应的二维模板位置(x,y)的搜索区域.(ν,θy,θz)在整个3 维模型库S 中取值;最后在相应的取值范围内应用粒子滤波的测量过程获得第一帧图像的系统状态,并以此作为后续粒子滤波过程的初始状态.

栅格粒子滤波器在t 时刻包括下述3 个主要步骤(图4):

1)选择过程.在上一个时间步(t-1 时刻)产生的粒子集Φt-1中选择权重最大的M 个粒子.

2)预测过程.t-1 时刻的跟踪过程结束后,通过该时刻的测量过程可以得到t-1 时刻的最优粒子.考虑到两帧图像间的人体姿态变化很小,使用来预测t 时刻粒子状态.方法是在五维栅格状态空间中,以粒子为中心取得一个五维的超椭球体Ω.该超椭球体包围的Nt个粒子作为新粒子,其体积决定了Nt的大小,而该体积是由Ω 在各个维度上的宽度决定的.通过设置各维度宽度来限定粒子数量,以提高计算效率.

式中:η 为某一维度上的取值,Ω 在该维度上的宽度为2w+1,状态空间离散化时各粒子间的间隔为Δη.

3)测量过程.每个新粒子φt(x,y,ν,θy,θz,ω)都唯一地与一个二维模板κt(x,y,ν,θy,θz)相对应.以t-1 时刻获得头部位置为中心取得一个矩形区域作为t 时刻二维模板κt的搜索区域,该区域的大小由缩放尺度ν 来进行调整.在此搜索区域内滑动二维模板κt,并计算二维模板κt对应粒子φt的权重.当Nt个粒子的权重都计算完成,便形成了t 时刻的粒子集Φt.通过计算Φt中权重最大的M个粒子的均值获得t 时刻的系统状态.

图4 栅格粒子滤波器的执行过程

1.3 相似性度量

在t 时刻图像中,令φt(x,y,ν,θy,θz,ω)为一个新粒子,其对应的二维模 板为κt(x,y,ν,θy,θz).根据文献[8]中介绍的方法,将粒子滤波的测量过程中二维模板κt搜索区域对应的图像转换为距离变换图(图5),然后计算该二维模板边缘图像的Chamfer 距离,以该距离的倒数作为粒子φt的权重:

式中:n 为二维模板κt边缘图像边缘像素点个数;Vi为二维模板κt边缘图像上第i 个边缘像素点对应的距离变换图上相应位置像素点值.

图5 生成距离变换图

2 头肩三维姿态估计

根据人体结构特征,人体的两肩姿态能够反映人体上半身即头肩部的姿态.经过栅格粒子滤波过程,获得了第t 帧图像的系统状态向量().其中,向量)为当前人体头-肩结构的空间姿态.头-肩三维模型向图像平面投影生成相应的二维模板时,由于深度歧义性,会发生两个三维模型对应同一个二维模板的情况(图6).为了不引起混淆,本文使用的头-肩三维模型库中不包括含有人体背部信息的模型(θy[-90,90]).

考虑到人头部前后颜色差异比较明显,本文使用颜色信息来解决这一问题.具体方法为:通过学习获得人脸和后脑的HSV 颜色空间中S-V 二维颜色直方图和.经过粒子滤波过程可以获得头部和肩部的位置,同时计算出头部区域的S-V 二维颜色直方图Hhead.然后使用Bhattacharyya 距离[9]计算Hhead与两直方图间的距离B(Hhead,)和B(Hhead).最 后 对系统状态向量进行更正(图6).

图6 深度歧义性示意图(摄像机拍摄方向与Zw 轴方向相同)

3 实验结果与分析

使用本文方法对布朗大学的人体姿态数据库[10]中的部分数据进行了实验.选取数据库中视频集S2 内包括行走(walking)、慢跑(jog)、挥手(gestures)和拳击(box)等4 段视频进行了头部、肩部的二维跟踪和人体头肩三维姿态估计.本文的目标是依据单目摄像机的视频序列进行跟踪,因此只选择了摄像机C1 拍摄的彩色图像序列进行实验.

在生成三维模型库时,取ν ∈[0.9,1.9],θy∈[-90,90]和θz∈[-20,20],相应采样率的取值分别为Δν=0.1,Δθy=45 和Δθz=5,这样三维模型库中共有450 个模型.在进行粒子滤波的预测过程时,各维度上的取值如表1 所示.

实验中使用的真值是通过在测试视频上进行手工标记获得的.表2 为使用本文方法进行头部和肩部二维跟踪的误差均值和标准差.

文献[6]中,对头部跟踪的平均误差为9.28 像素(约为3.3 mm),对肩部跟踪的平均误差为9.09 像素(约为3.2 mm),在Intel-Xeon 2.8 GHz计算机上的处理速度>2 s/帧(只是确定人体位置和方向所用时间,未计算头部和肩部跟踪所用时间).而本文的相应平均误差分别为7.80 像素(约为2.7 mm)和11.60 像素(约为4.1 mm),头-肩二维跟踪在Intel Core2 2.0 GHz计算机上平均处理速度为0.17 s/帧.可见本文方法与文献[6]相比具有近似的结果但具有更好的运行效率.

本文实验过程所使用的平台为Intel Core2 2.0GHz CPU,对每一段视频进行头-肩二维跟踪的平均处理速度如表2 所示.图7 显示了对“慢跑”视频片段中人体头肩部分三维姿态估计的结果.从图7 中可以看出,即使当肩部被完全遮挡,本文方法仍能够正确跟踪到头部和肩部的位置,并进行比较精确的三维姿态估计.另外,本文方法还具有较强的鲁棒性——当由于严重的遮挡而出现跟踪失败时能够在遮挡消失后迅速恢复(图8).

表1 粒子滤波预测过程中t 时刻各维度上的取值

表2 二维跟踪的误差及计算速度统计表

图7 “慢跑”视频片段的实验结果

图8 “拳击”视频片段的实验结果

4 结 论

1)建立了一个头肩三维模型;通过调整该模型的参数,并向图像平面投影,获得不同尺度下的若干二维模板,用来进行边缘相似性匹配;应用栅格粒子滤波搜索状态空间,获得视频数据中人体头肩位置和三维姿态.

2)从实验结果可以看出,本文方法具有较高的效率和较强的鲁棒性.该算法不需要任何人工初始化过程,有效降低了跟踪过程中使用的粒子数量,实现了快速的跟踪和姿态估计.

[1]WACHTER S,NAGEL H H.Tracking persons in monocular image sequences[J].Computer Vision and Image Understanding,1999,74(3):174-192.

[2]SMINCHISESCU C,TRIGGS B.Kinematic jump processes for monocular 3D human tracking[C]//Proceedings 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.[s.l.]:[s.n.],2003:16-22.

[3]LEE M W,COHEN I.Proposal maps driven MCMC for estimating human body pose in static images[C]//Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Washington:IEEE Xplore,2004.

[4]NAVARATNAM R,THAYANANTHAN A,TORR P H S,et al.Hierarchical part-based human body pose estimation[C]//In the 16th British Machine Vision Conference.[s.l.]:[s.n.],2005.

[5]MOESLUND T B.Pose estimating the human arm using kinematics and the sequential monte carlo framework[C]//Chapter 4 in part IX of Cutting Edge Robotics.KORDIC V,LAZINICA A,MERDAN M.Published by Pro Literatur Verlag,2005.

[6]LEE M W,NEVATIA R.Body part detection for human pose estimation and tracking[C]//Proceedings of the IEEE Workshop on Motion and Video Computing.Washington:IEEE Computer Society,2007:23.

[7]LEE M W,COHEN I.A model-based approach for estimating human 3D poses in static images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2006,28(6):905-916.

[8]BORGEFORSG.Hierarchical chamfer matching:A parametric edge matching algorithm[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1988,10(6):849-865.

[9]AHERNE F,THACKER N,ROCKETT P.The bhattacharyya metric as an absolute similarity measurefor frequency coded data[J].Kybernetika,1998,34(4):363-368.

[10]SIGAL L,BLACK M J.Humaneva:Syncronized video and motion capture dataset for evaluation of articulated human motion[R].Providence:Brown Univertsity TR,2006.

猜你喜欢
模型库栅格肩部
基于邻域栅格筛选的点云边缘点提取方法*
基于Creo参数化建模的设备模型库建立方法
四个小窍门轻松缓解肩部疲劳
四个小窍门轻松缓解肩部疲劳
基于模型库系统的金融体系流动性风险预警机制研究
儿童乒乓球启蒙训练中肩部损伤与预防
不同剖面形状的栅格壁对栅格翼气动特性的影响
肩部巨大包块同时伴毛鞘癌及鳞癌1例
基于模型库的现代成本会计计量系统研究
基于CVT排布的非周期栅格密度加权阵设计