人体动作识别(精选6篇)
人体动作识别 篇1
摘要:人体动作识别是计算机视频和图像方面的一个热点问题,为了解决识别率不高、识别速度不快、不能实时识别,以及不同的人摆出相同动作时出现的识别误差,提出了一种能有效解决该问题的方法,该方法分析计算匹配视频帧序列,然后分类匹配后的视频帧,达到识别的目的。
关键词:动作识别,关键姿势,视频帧分类,轮廓表示
1 人体动作识别
人体动作识别在计算机视觉方面已经成为了一个流行的话题。在如此多的视频监控和人机交互系统中,一个可靠有效的解决方法显得尤为重要。
现在有很多方法来表示动作和提取动作特征,例如基于运动的方法[1]、空间—时间的兴趣点[2,3]、空间—时间分割[4]。相对于以上复杂的识别方法,对于给定的动作,人脑可以很快地识别出这个人在干什么,这是因为人脑可以根据这个人的姿势,不需要看完这个动作过程就可以做出判断。在人脑识别动作的过程中,不需要任何的时间信息,而是需要去挖掘用姿势来进行动作识别的潜力。
本文提出一种基于关键姿势的简单方法,类似于人脑识别方式来识别动作。通过提取人体轮廓,再对轮廓进行线条化处理。对于一个动作,能提取出带有这个动作特征的几个或十几个关键姿势。对于给定的动作帧序列,每一帧中的动作都会被提取出来线条化并与线条化后关键姿势对比,计算相似度。最后,分类动作的帧序列,分类数最多的就是识别结果。
2 关键动作的提取
对每个帧提取动作的步骤(图1)为:首先利用基于序列图像的人体跟踪算法[5],然后在每一帧中用方框框出人的图像,接着利用背景减除法提取人像的边缘信息。为了消除由杂乱背景所产生的噪声的影响,滞后阈值将在下一个步骤添加。在这点就可以从一个给定的帧序列中发现最佳的高和低的阈值,步骤如下:从一个动作序列选择一个随机帧,用一个多边形手动画出人体图像的边缘,在所选区域的边缘值变化范围可以用来确定低和高的阈值。为了消除残留的噪声,边缘像素投射到x轴和y轴,则不属于最大连接组件的像素被去除。之后,剩下的像素点用带有方向的信息链连接起来。这些链结构可用来构建一个轮廓段的网络(CSN)[6]。最后用k邻接轮廓段(kAdjacent Segments,k-AS)描述CSN网络,这也是在物体识别领域里比较流行的做法。
在CSN网中,如果k条线段是按序连接的,即第i条线段与第(i+1)条线段连接(i∈(1,k-1)),则称这k条线段组成一个k邻接轮廓线段组,k为其度。随着k的增长,k-AS能够描述越来越复杂的局部形状结构。人类的姿势,特别是肢体运动,可以用L-shapes来描述。因此,选择k=2,即2-AS直线对。这样每个线对由直线段S1和直线段S2组成,即
式中:向量(r2x,r2y)中,r2x是S1中点,r2y是S2中点;θi是方向;li是长度;Nd是两个中点的距离(i∈(1,2)),也作为归一化因子。
3 计算姿势之间的相似性
用线对的集合来描述给定每一帧的姿势。两个线对描述(va,vb)的相似性计算为
式(2)的第一部分是计算两个线对的位置差异,第二部分是计算方向差异,最后一个是计算长度差异,每项的权重wr=4,wθ=2。式(2)只能比较两个线对的相似性,下文将介绍一种可以计算比较两帧里多个线对的方法。
在任何由线对组成的两帧中,把这两个帧中的线对当成是两个集合X,Y,为了匹配这两个集合中的元素,线对的匹配必须要满足一对一和多对一的模式,所以集合X中的每一个线对元素和集合Y中的每一个线对元素对应。
在f1,f2两帧中,包含了两个线对的集合φ1={v1,v2,…,vi,…,vn}和φ2={v1,v2,…,vk,…,vm},f1中有n个线对,f2中有m个线对。用φ1中每一个vi和φ2中每一个vk做比较,找出匹配线对,只有在φ2中vk对于vi有最小相似距离和φ1中对于vk有最小相似距离时,vk和vi相似,图2是相对匹配事例。
当满足这种一对一的匹配属性时,就可以求出平均的线对匹配距离davg。sim(f1,f2)是f1,f2的相似度计算公式
式中:match(f1,f2)表示匹配成功的线对数量,经过实验发现,p=2是最优值。
4 关键姿势的提取
关键姿态序列一般可以表示一种特殊的动作。直观地说,视频中一个关键姿势序列合理地分布在视频帧中,这个关键姿势序列很好地再现了这个动作形态。用K中心点聚类算法[7]来提取关键姿势,因为聚集的中心点能很好地提取每个动作的姿态。但是,直接用中心点作为关键姿势并不能保证和另一个动作区分开,因为一系列的姿势可能属于多个动作。例如,挥手和拍手的动作共享几个姿势,都是人在挥动手臂。因此本文采用下文算法来把关键的姿势(能区分开来和其他动作)分类。最后,给每一个动作关键姿势的帧排序,根据其识别度给出分数,然后把分数最高的作为关键姿势。图3是KTH数据集中6种动作的关键姿势[8]。
提取关键姿势算法具体如下:
1)K=(1,N),K是关键姿势的数量。
(1)每一个动作ai∈A,A={a1,a2,…,aM},M是不同动作的数量。用K中心点聚类算法来提取ai中的关键姿势,数量为K;从ai动作提取出来的候选关键姿势序列为ci={ci1,ci2,…,ciK}。
(2)将上述样本的动作视频按一帧分开,f为一帧。用f和关键姿势序列匹配ci={ci1,ci2,…,ciK};ciK和视频中所有的帧f匹配的i∈[1,M],k∈[1,K];对每个关键姿势设定个值,如果匹配成功,就给这个关键姿势的值增加1。
2)对每组动作中的关键姿势按他值排序,把值最高的几个作为这个动作的关键姿势。
5 动作识别
为了分类给定的动作序列,首先每一帧要和所有动作的所有关键姿势对比,把给定视频中的动作序列和关键姿势进行相似分类计数,就是视频帧中有多少和给定的关键姿势序列1相似,统计出来,以此类推。图4说明了分类计数的过程。
6 实验结果
用KTH[8]和Weizmann[9]的数据集来测试本文的动作识别算法。选取了Weizmann 7个动作(蹲、起立、跳、快跑、侧面、走、挥手),这些动作由9个不同的人来演示。选取KTH的6个动作(拳击、拍手、挥手、慢跑、跑、走),这些动作由25个不同的人在4个场景下进行表演:室外(s1)、室外不同的地方(s2)、室外穿不同的衣服(s3)、室内(s4)。
对于选用Weizmann数据集合的6个动作样本,本文在对轮廓进行线对描述,忽略其噪声。为了评估分类性能,本文采用留一交叉验证[10]。
对于KTH,认为它是一个单一的大集合,但是其中的样本在边缘检测的结果中有大量的噪声。为了评估分类性能,采用十倍交叉验证然后求平均结果。因为计算开销较大,随机选择了一半的数据集,用十倍交叉验证对75%的样本进行训练,剩下的25%在每次测试中运行。在KTH数据集中,每个动作序列帧速率是不一样的。为了保持一致,把每个动作的帧限定到20~50之间,能使动作流畅地演示一次。
在K=47时获得了92.6%的识别率,K=78时也获得了91.5%的识别率,对于KTH的数据集,K是每个动作的关键姿势。对于Weizmann的数据集,还可以提高识别率到95.06%,采用严格的几何约束,对每个帧放到一个二维坐标中,只在同一坐标内线对做匹配。但是,对于一部分KTH的数据集,人的图像并不完整(例如缺少头、腿等),对图像进行边缘检测和对图像帧进行几何约束的匹配时,这样的图像不能被很好地识别。图5是平均分类的准确率和关键姿势数量的关系。本文方法需要大量的K值,以达到良好的分类性能,因为不同表演者对同一个动作的演示也是不同的。
在识别结果方面,局部时空特征的动作识别[11]方法基于Weizmann数据集的识别率是75%~87%(表1),局部时空特征的动作识别方法基于KTH数据集的识别率是59%~100%(表2)。因为本文中的测试数据和基于局部时空特征的动作识别方法采用的数据一致(Weizmann数据集和KTH数据集),所以从实验结果看,基于Weizmann数据集大部分动作关键姿势的识别率比局部时空特征高(表3)。在基于KTH数据集,关键姿势的识别方法对比局部时空特征在跑、慢跑、挥手、走的动作识别方面也有一定的优势(表4)。
此外,对于KTH的数据集,一部分的错误分类也是由于场景(s3)中表演者穿不同的衣服,拿不同的东西,在提取轮廓的时候产生额外的线对。
7 总结
本文引入一个新方法———提取动作的关键姿势,试验这种方式在动作识别方面的准确度。用线对(包含位置、方向、长度信息)来描绘每一帧动作姿势的形状特征。因此,把姿势信息放到直方图上,该方法可以很好地保存线对(表示姿势)的空间信息。通过匹配算法,比较两帧中的线对集合。关键姿势描绘动作的识别上也能明显区别于其他动作。但是本文方法对边缘检测有很强的依赖性,对背景的噪声也十分敏感,有待进一步研究。
参考文献
[1]LU G.Motion-based region growing segmentation of image sequences[J].Journal of Electronics,2000,17(1):53-58.
[2]李永浩,张西红,彭涛,等.基于视觉注意力模型的红外人体图像兴趣区域提取[J].计算机应用研究,2008,28(12):94-96.
[3]支俊.车辆检测中一种兴趣区域提取方法[J].计算机工程与设计,2007,28(12):3013-3015.
[4]BLANK M,GORELICK L,SHECHTMAN E,et al.Actions as space-time shapes[C]//Proc.ICCV 2005.[S.l.]:IEEE Press,2005:2247-2253.
[5]范新南,丁朋华,刘俊定,等.基于序列图像的人体跟踪算法研究综述[J].计算机工程与设计,2012,33(1):278-282.
[6]FERRARI V,FEVRIER L,JURIE F,et al.Groups of adjacent contour segments for object detection[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2008,30(1):36-51.
[7]谢娟英,郭文娟,谢维信.基于邻域的K中心点聚类算法[J].陕西师范大学学报,2012,40(4):16-23.
[8]SCHULDT C,LAPTEV I,CAPUTO B.Recognizing human actions:A local SVM approach[C]//Proc.ICPR 2004.[S.l.]:IEEE Press,2004:32-36.
[9]BLANK M,GORELICK L,SHECHTMAN E,et al.Actions as spacetime shapes[C]//Proc.ICCV 2005.[S.l.]:IEEE Press,2005:2247-2253.
[10]刘学艺,李平,郜传厚.极限学习机的快速留一交叉验证算法[J].上海交通大学学报,2011,45(8):1140-1146.
[11]雷庆,李绍滋.动作识别中局部时空特征的运动表示方法研究[J].计算机工程与应用,2010,46(34):7-10.
基于多示例多特征的人体动作识别 篇2
当前随着计算机技术,互联网的飞速发展,图像和视频的数据量呈现出爆炸式的增长,进入了大数据时代。面对海量的图像视频数据,如何借助计算机辅助人类快速高效地获取有用的视觉信息已经成为了一个迫切需要解决的问题。在此时代背景下,计算机视觉领域的相关技术以及机器学习算法在人们日常生活起到日益重要的作用,成为了近年来的研究热点领域[1,2]。在这其中,基于视频和图像序列的人体动作识别的研究十分重要同时又具有很大的挑战性[3,4,5]。人体动作识别的研究涉及到了人们日常生活中的很多活动,包括基于内容的视频检索、智能视频监控,虚拟现实,数字娱乐,人机交互等,具有广阔的应用前景。当前很多研究工作都采用了单一的人体动作特征对视频进行描述和分析,但由于人体间的个体差异,动作的多样性以及复杂背景等问题的存在,单一的特征表征已经不能够很好地解决现实生活中的动作的多样性。本文首先介绍了人体动作识别的框架以及发展现状,然后介绍了动作中常用的特征,以及对特征进行再表征的方法-词袋模型,最后介绍了一种基于多示例学习方法的联合多特征对动作样本进行表征,识别的方法,最后在常用人体动作数据库上进行了验证实验。
1 人体动作识别框架及发展现状
研究者Johansson[6]最早通过运用人体关节的运动特征来描述人体动作,对人体动作进行了分析。随着机器学习方法以及计算机视觉的发展,产生了越来越多的研究成果。人体动作识别主要分为四个部分,如图1所示,首先是对原始数据进行特征提取。特征的提取至关重要,它是将从像素级可视化的信息转换为具有一定特性的特征级信息,因此特征的提取直接决定着提到的信息量。特征的表征是通过模型的搭建例如词袋模型,对特征进行再表征,最终生成样本的描述子。当得到所有样本的描述子后,基于训练数据通过分类器学习所需的分类参数。最后运用学习到的分类器参数对测试数据进行预测,判断测试样本的类别。
在人体动作中,对视频提取的特征,Laptve等[7]提出了STIP特征,他们将二维图像中Harris角点检测算法[8]扩展到了三维时空中,直接对视频提取特征,有效地避免了其他需要预处理方法带来的干扰。该特征是通过对视频序列进行三维空间的高斯滤波,然后计算视频序列中每一点对应的二阶矩矩阵,最终将在响应函数中取得局部最大值的点作为检测到的时空兴趣点。Cuboids特征是由Dollar等人[9]提出的基于Gabor滤波器的特征点检测算法。它在空间域上采用了高斯滤波,在时间域上采用了两个正交的一维Gabor滤波器来检测运动特征,可以获得更多的时空特征点。Improved Dense trajectory[10]是根据不同的尺度下长度为L的轨迹,在视频的每一帧长以轨迹点为中心选取W×H一个图像块,通过光流轨迹的追踪,最终会得到一个W×H×L的随机弯曲的立方体,然后对这个立方体进行描述,得到最后的特征。
在对特征进行表征的模型搭建中,由于很多特征都是局部性的特征点,同时视频样本的帧数各不相同,所以如何对视频样本进行统一表征一直是学术界的研究热点。在众多模型中,词袋模型(bagof-words)在图像检索,动作识别中有广泛的应用。词袋模型将特征通过词典的映射,最终生成基于统计的样本描述子。不同于BOW的低级特征,Liu[11]等人提出了Attribute模型,通过对样本赋予高层次的语义信息来丰富特征的表征,取得了良好的识别效果,以及采用分块的局部Attribute表征动作,通过充分利用局部的动作信息,增加了对动作的细节描述,得到了良好的效果。分类方法是人体动作识别中的最后一步,但是发挥的作用非常重要,分类器有决策树,K近邻,支持向量机等,其中由于支持向量机中核函数的应用使得在求解分类问题中可以将低维特征映射到高维空间中更好地进行分类同时计算的复杂度较低等特点,应用最为广泛。
2 词袋模型
词袋模型(Bag-of-Word)是一种基于统计的概率直方图模型,如图2所示,首先通过机器学习算法对训练空间中的特征进行学习,例如常用的K均值[12]算法。首先它通过聚类的方法对特征数据的分布进行学习,然后找到能够代表周围特征点信息的K个聚类中心,作为词袋中的词。假设有N个特征点,每个特征点是d维的向量,K均值方法步骤如下:
①从N个特征点中随机初始化K个聚类中心
②计算每个点到这K个聚类中心的距离,通常用欧氏距离作为度量:
③将每个特征点归类于最近的那个中心点,通过所属同一个中心点的特征点计算均值,更新中心点,如式(2)所示:
④重复步骤②和③直到达到收敛条件。
在编码的过程中,计算每个视频样本中的所有的特征点与有K个聚类中心的词典之间的距离,通过矢量化方法将距离最近的词的维度上赋值为1,其余为0,这样生成了N×K维的矩阵,最后通过池化以及归一化的方法将每个特征点的表征融合起来,对整个样本进行表征,最后生成一个K维向量。通过分类器对这些训练样本的向量的学习得到分类器的参数,对预测样本进行分类。
3 多示例学习方法
多示例学习的问题最早是Dietterich[13]等人在研究药物分子的活性问题时提出的。研究者通过机器学习方法学习分类器,用分类器从大量的备选合成分子中选出最具活性的分子,这样可以把有限的资源集中于研究这些具有开发价值的合成分子,节省开支。药物分子活性预测的目的是让学习系统通过对已知适于或不适于制药的分子进行分析学习。在研究药物活性预测问题的过程中,他们将药物分子所有低能形状看作是一个集合,称之为包(Bag),而分子的每一种低能形状被抽象为集合中的一个元素,称为包中的示例。
在多示例学习模型中,若某个包中含有至少一个正示例,则包被标记为正(Positive)包,否则被标记为负(Negative)包。多示例学习的最终目标是通过对训练样本集进行学习,得到能够正确预测标签的目标函数。本文采用了Andrews[14]等提出的通过将多示例学习的问题应用到SVM的目标函数中,提出了基于SVM的多示例学习算法:基于包的算法MI-SVM。该算法的核心思想是首先从每个正包中选出一个“最正的”样本,将其作为正样本,并将选出来的正样本与负包中的所有示例一起组成训练集,然后在训练集上进行SVM训练。其目标函数如下:
在本文的算法中,将同一个样本的不同特征表征的集合视为一个包,将当前的动作的包视为正包,剩余动作的包视为负包,通过公式(3)去求解对于当前动作来说的最优超平面,这样做的意义在于,当在学分类超平面时,多示例学习可以对多种特征的特性进行隐性的学习,利用当前样本中最有利的特征进行学习,这样就能使得在学习模型的同时,对样本的特征取长补短,辅助学习。
在基于SVM的多事例学习中,目前用得最多的核函数主要有下面四个:
①线性核
②q阶多项式核函数:
③高斯径向基核函数
④Sigmoid核函数:
在以上四种常用的核函数中,RBF核函数因其适用于低维、高维、小样本、大样本等情况而使用的最广泛,RBF核函数具有较宽的收敛域,是较为理想的分类依据函数。除了上述几种常见的核函数外,还可以在试验中根据具体问题构造相应的核函数。
4 实验设置与分析
4.1 实验数据库
KTH[7]视频库包含了6类人体动作,分别为Boxing,Hand clapping,Handwaving,Jogging,Walking,Running,每种动作由25个人在四种场景下拍摄得到,场景1为户外环境,场景2为伴随尺度变化的户外环境,场景3为不同着装的户外环境,场景4为室内环境。KTH库中共有598个人体动作视频,视频分辨率为160×120帧率为25帧/秒。
3M TJU[12]数据库是由天津大学多媒体实验室用两个Kinect摄像头采集的多视角多人物多模态的数据库,采用了其中的视角1下的数据,视频的分辨率为480×320,帧率为25帧/秒。该数据库包含了单人动作以及两人交互的动作,动作有Walk Together,Cross,Wait,Chat,Hug,Handshake,High Five,Bow,Box,Play Football,Pass Basketball,Carry Box,Throw Basketball,Bounce Basketball,Hula Hoop,Tennis Swing,Call Cellphone,Drink,Take photo,Sweep Floor,Clean Desk,Play Guitar,22类不同的人体动作,共595个动作样本。该数据库不同于KTH数据库,加入了多人交互的动作,使得问题更复杂,也更贴合实际中的应用。
4.2 实验设置
对两个数据库提取了STIP、Cuboids、IDT三种常用的人体动作特征,并且利用词袋模型构建样本描述子。在词袋模型中,采用了K均值的聚类方法以及矢量化的编码方法(K=1000),最终每个样本都由一个K维的特征向量表征。最终用支持向量机分别对3个特征进行训练,识别,得到每个单独的特征在两个数据库下的预测结果。
在运用多事例学习方法对多特征进行学习时,由于每个特征提到的特征维数不同所以在进行多示例学习前,应用词袋模型,将特征映射为具有相同维数的表征。将同一个样本的不同的特征表征作为一个包中的不同的事例,将当前动作的所有包作为正包,其它动作的包作为负包,进行分类学习,判断测试样本的类别时,采用以下准则:
式中,P(xli)代表样本x中的特征表征i被预测为动作被预测为l的概率,由径向基核函数的支持向量机预测得到。i代表特征的种类,m为采用的特征的个数,在本实验中,采用3种特征,m=3。l代表动作的类别,n为动作的类别数。最终预测样本的类别取使得上式概率值最大的动作类别。
4.3 实验结果与分析
4.3.1 KTH数据库实验
在KTH数据库上的实验结果如表1所示,每一行是不同的动作,最后一行是所有动作的平均值,在列中,Cuboids,STIP,IDT对应着运用不同的特征,用词袋模型对样本进行表征,最后用x2核的支持向量机(SVM)进行分类得到的结果。最后一列本文代表运用本文的多示例学习方法对多特征进行学习后得到的结果。
从表1中可以看出,在前三种特征的结果中,不同的特征对于不同的动作具有不同的表现情况。例如对于动作击掌(handclapping)来说,特征STIP表征结果最好,而在跑(running)的动作来说,IDT的结果最好。这说明不同的特征在提取特征的过程中,提取到的信息有一定的差异性。运用多事例进行学习结合多种特征的特性,可以在上表中本文的算法结果看出,它保留了特征中的一些特性,通过多示例融合多种特征学习,对数据中本来在单一特征下结果不好的动作起到了辅助学习作用。
4.3.2 3M-TJU数据库实验
在3M-TJU数据库上的实验结果如表2所示,第二列到第四列是三种不同的特征单独表征的结果,最后一列是由本文算法得到的实验结果,可以看到,相同的特征以及实验设置,实验结果在KTH数据库上能达到90%以上,而在3M-TJU数据库上只有70%左右,由此可见多人的数据要比单人根据挑战性,复杂性更高,同时在实验结果中可以看到,不管是单人动作还是多人动作,动作在运动剧烈时更容易区分,这是因为当动作持续时间长,幅度较大时,提到的特征信息更加充分,可以更好地去描述动作的信息。在表2中的最后一列的实验结果可以看出,融合多种特征的信息后,对于一些动作都起到了很好的识别效果,这也证明了实验算法的可行性。
5 结束语
本文提出了一种运用多实例学习的方法将多种特征融合起来识别人体动作。在特征上选取了现在最为常用的STIP,Cuboids和IDT特征对KTH数据库和3M-TJU数据库的视频样本进行描述,并且通过对单一特征的实验以及多特征融合后的实验结果进行了对比。通过实验可以看到应用多事例学习在对多特征进行融合学习时,综合了三种特征的信息,对于动作的识别起到了辅助效果,取得了良好的实验结果。
在当前随着数据的高速增长,数据的多样性以及数据的复杂性,单一的特征信息已经不能很好地满足现实中的问题,研究机器学习中的模型,如何将多种不同的特征信息融合,取其精华更好地理解现实中的动作越来越重要。随着更多的研究人员参与以及计算机技术和机器学习方法的发展,相信多特征融合在未来能够取得更好的进展,从而更加成熟地将动作识别技术应用于现实生活中。
摘要:随着视频数据的海量增长,在人体动作识别领域,单一特征的运用已经不能满足现有的对复杂动作,复杂环境的识别问题。基于此,提出了一种利用多示例将多种动作特征融合来识别人体动作的方法,通过利用传统的多示例学习中包的概念,将同一个样本的不同的特征表征作为在同一个包下的示例.将同一类动作的所有包作为正包,其它种类的动作作为负包,来学习模型进行分类。通过在常用数据库上的测试取得了较好的结果。
人体动作识别 篇3
人体动作识别主要涉及到三个相互关联问题:身体骨架、身形分析以及特征提取。骨架的提取比较容易, 是一种有效的形状压缩表示方法。文献[3]提出采用骨架提取法分析动作。该方法生成身体轮廓的骨架, 用以辨别行走、奔跑和步态。Ziaeefard和Ebrahimnezhad对该方法进行了改进, 他们介绍了一种规格化极性直方图, 该直方图从“星”骨架获得, 对应于一个动作周期的累积骨架。特别是他们对比了几种骨架提取方法, 并提出了一种支持向量机 (SVM) 分类技术用于动作识别。文献[5]采用不同的骨骼提取方法, 在同样的数据集上取得了更好的效果。但是由于他们采用极性直方图代替基于时间的直方图, 因此时态信息会丢失。文献[6]提出了基于动作捕捉技术的解决方案, 其动作行为是通过虚拟关键姿态建模而成, 类似于绘制代表重要动作的关键姿态或者动作各部分之间的转换。该方法受到关键姿态数量的限制, 且计算复杂。文献[7]解决了利用运动模板进行动作识别的问题。他们从一个序列的动画中提取模式来识别动作, 将识别问题转化为易于解决的模式识别问题。文献[1]在游戏应用中利用关节角度作为特征来识别舞蹈动作。该方法受到动作数量的限制, 当不同动作数量很大时, 识别错误率会显著提高。文献[2]提出actionlet的概念, 将关节和相邻深度聚类使之更容易被辨识。然而, 运动捕捉数据必须总是包括深度信息, 这是不可能的。文献[8]依据运动历史图像 (MHI) 引出运动模板的概念, 将识别问题变为匹配问题。尽管该方法比经典的机器学习法更快, 但对扩展数据库来说仍然是耗时的且不够灵活。文献[9]采用轮廓的“样例”范式解决数据库的有效性问题。尽管该方法在增加新动作时有效果, 但仍然存在轮廓固有的视野依赖问题。与“复杂”的动作识别相比, 这种解决方案更适合“简单”的手势识别。文献[10]提出圆柱直方图的概念, 是采用多视点构建的三维立体直方图。文献[11]采用三维直方图处理样本范式, 依据多视点实现不依赖视野的学习方法。文献[12]提出了一种复合方法, 对轮廓的各部分作标签。尽管该方法对于步态分析很有效果, 但是对一般的动作识别会受标签方法的限制。文献[13]采用轮廓的马尔科夫模型识别主要的简单动作。文献[14]将轮廓作为二维表面, 通过一系列时空剪影构建三维曲面。然后, 从三维曲面提取兴趣点, 生成了类似动作轨迹线的图像。但是该方法不是实时的, 需要花费大量的时间建立三维曲面。此外, 获取的轨迹图取决于三维曲面的质量, 而这很容易产生误差。文献[15]提出了一种运动历史图像 (MHI) 的扩展, 使用支持向量机 (SVM) 聚类动作行为。由于在系统中使用的参数太多, 很难从他们的结果得出强有力的结论。文献[16]开发了剪影为基础的方法, 以轮廓作为特征向量。该方法使用降维方法聚类动作, 然后采用识别阶段的时序图设计了K邻近算法。因为他们的解决方案取决于所提取轮廓的质量, 识别成功率受此影响。
提出了一种新的基于范例策略的人体动作识别系统, 以动态捕捉的姿态数据作为输入。首先, 将直方图的概念扩展到姿态, 然后, 聚类各种时空姿态建立动作的统计表示。为了识别持续的动作, 引入了增量及有效内存的结构———积分直方图。最后, 根据动态时间规整 (DTW) 方法设计了动态程序算法, 并用于分解的动作比较以及多人动作实例中的识别能力计算。直方图的有效规划能够使其在进行过程中学习并识别动作。在著名的基准数据集上对提出的方法进行了广泛的验证测试, 并与几种先进的方法进行了比较, 结果表明, 即使在有噪声或类似行为的数据集中, 提出的方案仍然有效。
1 基于直方图的比较
介绍基于直方图的方法, 用于从动态捕捉数据中进行动作分类。设P为从视频中提取的所有姿态集合。使A= (p0, …, pN) 为一组时间序列姿态组成的动作, 假定A从时间t0开始, 到时间tN结束。不失一般性, 设定t0=0。一个姿势可以有简单的人体骨架几何表示, 包含一系列三维关节及其之间的层次关系。由于运动中的噪声扰动以及速度变化, 不同的动作可能获得完全相同的姿势, 而相同的动作会稍有不同。为了解决这个问题, 把一个动作的所有姿势分组, 基于相似性判据将姿势分到一组聚类集合中。然后, 每个聚类用一个代表性的元素定义, 用p~表示, 称为代表。采用已知的Hausdorff距离定量表示两个姿态p1和p2之间的相似度, 用Dp表示。为了实现姿势的聚类, 还要定义ε为两个姿势之间的等效阈值。
定义1:用Dp表示两个姿态p1和p2的距离, ε为两个姿势之间的已知等效值。
式 (1) 中, p1, p2∈P2。
式中, |·|是基础姿势。
注意当t≤tN时, 动作A的时间区间为[0, t]。在全部动作完成之前进行动作识别时, 这个区间的限制很有用。要这么做, 需要评估随时间推移的动态捕捉数据是预先学习过动作的可能性, 定义了基于姿态的积分直方图, 用以计算识别决策进程的可能性。
定义2:动作A的基于姿态的积分直方图H, 有
采用巴氏距离x测量两个直方图的相似性, 用DH表示动作A和B直方图距离。
式 (5) 中
根据式 (5) 可以推出评估动作A和B相似性的费用函数。
式 (7) 中, TA和TB分别表示动作A和B的时间长度。
2 在线识别
2.1 分段动作比较
由于积分直方图缺少时态信息, 因此将动作分解为时间序列的分动作。对于动作A, 定义一组时间序列姿势 (p0, …, pn) , 对于所有的分解可能, 其长度范围从1到n+1, 可有下面递归算法定义。
A只有1个姿势:A= (p0) 。
A有2个姿势:A= (p0, p1) 。
A有3个姿势:A= (p0, p1, p3) 。
A有n+1个姿势:A= (p0, …, pn) 。
式 (11) 中,
式 (12) 中, 0≤a≤b≤n-1, 对于A= (p0, …, pn) , (pi) *表示序列 (pi) 重复0到N次, 如式 (13) 表示。
在对动作A和B比较时, 根据式 (7) , 可以找到最优分解方法以获得最小费用值。为了这个目的, 将每个分解动作建立直方图, 可获得整个动作的直方图时间序列。例如, 动作A包含4个姿势, 可分为3个分解动作, 可用3个直方图的时间序列表示
因此, 一个动作的分解可以看作是时间序列的子积分直方图, 用长度不超过N的矢量 (h0, …, hN) 表示。
采用动态编程范式计算动作的最优分解, 这是最好的选择。为了比较两个动作A和B, 对所有可能的分解进行评估并选取最好的费用值 (Cost*) , 通过下式计算
式 (15) 中, (h0A, …, hNA) 和 (h0B, …, hMB) 分别适用于A和B。
2.2 多重假设
每个动作使用只含一个样例的训练集不能获取较高的识别率。这是由于人体活动是多样化的, 导致不同的身体比例和运动模式, 同样动作的两个样例可能稍有不同。为了解决这个问题, 每个动作的训练集需要包含同一动作的多个样例, 这些多个实例被翻译成多个直方图。使用多个直方图来表示一个动作, 而不是把多个直方图结合到一个直方图里。将这些表示一个动作的多个直方图称为假设。尽管使用相同动作的n个范例作为训练集, 但最终生成少于n的假设量。因此, 需要将非常相似的样例聚类打包到一个假设中。通过实验, 采用K-medoids算法成功实现了这个聚类处理, K-medoids算法与K-means算法有许多相似之处。这两种算法的不同处在于中间值的选取。K-means算法中, 中间值为聚类集合的重心元素, K-medoids算法中, 其中间值为重心最近的元素。
算法1:K-medoids。找到分割成K组的最佳方案, 返回每个中心最近的元素。
K-medoids算法中的distance函数由式 (7) 定义, 每个medoid就是一个辨识单个假设的直方图。
换句话说, 假如“非常相似”的直方图不如单独一个好, 那就只要保留描述相同动作的“不同”样例的直方图。这些“不同”直方图的集合用HA表示, 用于描述识别阶段中相同动作的多重假设。因此, 识别得分可用式 (16) 计算
式 (16) 中, HA是关于动作A的多种假设集合, hB是正在识别的动作的直方图。
3 实验
通过HDM、CMU、TUM和MSR Action3D数据集对上述的方法进行测试。HDM和CMU都是用于游戏方向的, 其动作是为了电脑动画而设计。这两种数据集主要由容易定义的短动作组成, 很容易评估识别成绩。TUM和MSR Action3D数据集更真实, 是由复杂自然环境下的真人动作组成的。通过这两个数据集, 可以测试所提方法的健壮性, 并和其他解决方案进行对比。
3.1 游戏性数据集
在HDM数据集上对本文设计的系统进行了测试。该数据集包含130类, 2 337个动作 (从较长的动作捕捉数据中截取) , 这些动作分别由5个表演者完成。可以分为两种情况考虑:单一假设和多重假设。针对第一种情况, 从每个类 (随机执行, 随机表演者) 中随机选取一个动作样例, 作为训练集。针对第二种情况, 从每个类中随机选取几个动作样例, 只用三个样例描述一个动作。同时构建另一个数据集, 包括9类53个动作 (表1) , 这些数据从大而复杂的CMU数据集中提取。
文献[8]使用了一个CMU数据集的类似子集, 识别率在75%左右。与其结果相比, 本文提出的解决方案的效果更好, 单一假设和多重假设情况下识别率分别是86.63%和90.92%。
图1中 (a) 和 (b) 所示为通过混淆矩阵计算ε=1.0时单一假设的结果, 这两个图表明本位方法对于不同动作具有很高的辨别能力, 同时也突出相似动作, 例如“拳击”, “喝水”和“吃东西”, 这3个动作均涉及手部活动。图1中的 (c) 和 (d) 显示多重假设解决方案, 显然具备更高的辨识力, 这正是因为其允许更多的类内变化。注意在多重假设解决方案下, 为了在语义上与处理2D动作的通常方法相一致, 将最初的130类手动减少到33个的类。由此产生的数据集实际上对基于范例的方法而言更具挑战性。事实上, 33类比最初的130类反而有更多的类内变化。本文使用每类3个实例用于训练, 在类内变化上的任何增加都会给识别方法添加额外的难度。事实上, 如果简单添加一些训练样本, 保留所有初始的130级, 那任务会更容易。难度增加来自额外的类内变化 (如行走时左/右起步次数) , 这对于任意基准范例识别方法来说都是更具挑战性的环境。另一方面, 传统的机器学习方法使用更大的训练集, 本文的方法使得在类的数量较小时能具备更好的辨识能力, 如图2所示。
表4列出了更多量化成绩, 与其他方法相比, 本文的方法显然具有更出色的效果。单一假设的识别率超过三分之二先前的研究工作, 在一对一策略时效果不理想。然而, 全自动多重假设解决方案在类似的环境下优于所有三种方法。例如, 文献[8]提出的方法有80%的平均识别率, 而多重假设方案在同一数据集取得了96.67%的识别率。还要注意, 文献[8]中用于查询的关键帧需要手动选择。
3.2 活动数据集
3.2.1 TUM
为了将提出的解决方案与活动识别方法进行比较, 实验使用TUM数据集, 它是由20个按表中设定的人物序列组成, 并制成表。与文献[14]相似, 应用两种不同的策略:使用一组序列{0-2, 0-4, 0-6, 0-8, 0-10, 0-11, 1-6}作为测试集, 而其他则用于训练。为与文献[6, 7, 14]的方法一致, 使用10个不同的类, 并用“站立”和“行走”划分。如表2所示, 文献[14]的方法使用TUM数据集中的2D特征和动态捕捉信息, 取得很好的比较结果, 识别率为81.5%。其结果也好于文献[7]的方法, 由于只使用了2D特征信息, 识别率仅为67%。最后, 方案的结果优于文献[6]的62.77%的识别率, 即使该方法有额外为门使用了传感器。
a:CMU行走, b:HDM躺下, c:CMU奔跑, d:HDM座椅子, e:CMU跳, f:HDM肘碰膝
本文还实验了一对一情况或一次训练情况, 将训练集中每个动作的第一个实例用于训练。将结果与其他三种经典机器学习算法进行比较:基于径向基核的支持向量机 (SVM) 、K近邻算法 (k NN) 、树分类算法 (Tree) 。训练集与文献[6, 7, 14]的一致。表3中一对一的项表示的是全序列0-2的识别得分, 使用了序列0-12的活动。虽然该数据集模糊少, 但由于其执行的复杂性和类内变化信息的缺乏, 有些行为不能设别。
在表2中对比较结果进行的汇总, 一对一学习时, 本方案的结果比SVM、k NN和Tree这三种方法稍好, 多重假设学习时, 结果显著好于所有六种方法 (SVM、k NN、Tree和文献[6, 7, 14]) 。
注:“-”表示未公布结果。
3.2.2 MSR Action3D
MSR Action3D是一个新数据库, 在2010年由微软亚洲研究院 (Microsoft Research) , 其设计目标是为动作识别提供三维数据。该数据集是由10个表演者完成的20个动作构建的, 每个表演者有3个范例。数据集包含以下动作:高挥臂 (high arm wave) 、低挥臂 (horizontal arm wave) 、敲打 (hammer) 、手抓 (hand catch) 、冲拳 (forward punch) 、高抛 (high throw) 、画X (draw x) 、画勾 (draw tick) 、画圆 (draw circle) 、拍手 (hand clap) 、双手挥 (two hand wave) 、侧拳 (side boxing) 、弯腰 (bend) 、向前踢 (forward kick) 、侧踢 (side kick) 、慢跑 (jogging) 、网球挥拍 (tennis swing) 、网球式发球 (tennis serve) 、高尔夫挥杆 (golf swing) 、捡起 (pick up) 和扔 (throw) 。动作中只需要一只手臂或一条蹆时, 只用右边完成动作。这些动作的深度图通过微软体感传感器获得, 骨架有文献[5]的方法提取, 如图3所示。该数据的难度在于所提取骨骼存在噪声干扰。骨骼所含噪声比TUM数据集更多, 甚至比HDM和CMU数据集的也多。
使用这些数据集, 将本文的方案与最先进的五种算法进行比较。除了文献[9]使用深度图作为输入, 其他四种方法和本文一样, 使用视频中提取的骨骼作为输入, 通过动作图像模拟动态行为。本文使用了文献[11, 13, 15]在MSR Action3D数据集上的测试结果, 该结果发表在文献[10]中。表3总结了这些比较结果, 并列出了详细数据。本文的多重假设结果明显好于其他五种方法。甚至在使用一对一策略时, 本文的方法仍然表现良好。
在表4中总结了所有数据集的结果, 概括了本文与其他方法比较的性能。这些结果表明, 当动态捕捉数据 (三维骨骼) 有效时, 本文的方法是最适合动作识别的方案。此外, 由于本文的方法是基于样例的, 当具有小训练集或者在线快速训练效果满意时, 本文的方法是更好的。
(“-”表示未公布结果)
3.3 早期识别
本文的方法在动作完成之前进行识别很有潜力, 现在就给出早期识别的结果。图4列出了所有数据集上的识别率, 分通常和一对一的学习情况, 其中动作完成的范围为50%~100%。
TUM数据集的动作比较复杂, 从图4可以看出, 动作全部完成的识别率与动作完成50%时相比没有显著增加。其主要原因是该数据集中大部分辨别信息包含在动作的早期阶段。然而, CMU数据的动作更长且迥然不同, 其识别精度随时间推移而增加。HDM数据的动作较短, 动作进程为50%时识别准确率已经很高。对于动态编程方法执行的匹配过程来说这是一个重要结论, 短动作能几乎完全匹配, 导致类似的极高的得分。
3.4 讨论参数设定
与其他动作识别方法类似, 本文方法取决于两个参数:两个姿势间的距离临界值ε (式 (1) ) 和动作的假设数, 影响结果如图5所示。
第一个参数ε是距离临界值, 决定了典型姿势 (代表) 的数量。该参数直接影响了识别进程的计算时间, 如图5。后者表明本文方法是总是实时的, 除了ε的取值小于1 mm。可是, 1 mm的距离临界值太小, 导致太多的代表数, 例如在TUM训练集中, 其代表数为26 046。此外, 动态捕捉数据的准确度大致为几厘米[6]。本文对所有测试取ε为20 mm, 既超过了数据误差, 又确保识别进程总是实时的。例如, ε为20 mm, 对TUM数据集, 有5 799个代表。从后者选取一个特定动作, 例如序列0-2, 共有957个姿势, 识别进程花费12.075 6 s, 不到39 s长度序列的1/3。
第二个重要参数是每个动作的假定数量。距离临界值用于确定两个直方图是否不同, 影响了一个动作的假定数。使用“行走”实验来研究该参数的影响, 选用“行走”是因为它比较短且是多变的, 对假设分割具有高可能性。结果发现, 当距离阈值低于0.5时, 假定数仍然很高且不变。相反, 距离阈值超过0.5时, 假定数快速减小。因此, 距离阈值取值应在0.5~0.9, 取决于所需的粒度级别。本文中对所有测试, 该参数设为0.5, 以保持大部分类内变化。
4 结束语
提出了一种持续行为识别的新技术, 采用一种新的直方图表示法识别动作捕捉数据中的姿势流, 相比大多数现有的方法, 就所需空间和计算时间来说, 使用直方图可以使本文的解决方案更为有效。提出将经典直方图拓展到积分直方图, 并且运用实例模式作为一种学习方法, 积分直方图和实例模式的结合应用便于扩展训练数据集, 甚至可在识别过程中进行。这种持续识别方法开辟了动作识别领域新的可能性, 特别是在人机交互新的应用方面, 用户可以通过运行时的新姿态自由地扩展其应用程序。针对简单设置下的人类典型行为, 诸如走、跑、跳等等, 基于不同数据集进行了广泛的测试, 验证了本文的方法。结果表明, 与很多已知的先进的方法相比, 本文的方法针对四个不同的数据集取得了更好的识别率。当三维动态捕捉数据有效时, 基于多假设范例的方法是最适用的, 因为其更准确、更具时效性。
未来工作将致力于将该方法向多用户的语义法延伸, 通过每个用户动作的交叉验证, 提高系统的动作识别能力。
摘要:针对现有持续人体动作识别算法实时性不高的问题, 提出了一种基于动态时间规整 (DTW) 积分直方图的动态捕捉方法。首先, 利用积分直方图对原始动作进行分类;然后, 聚类各种时空姿态建立动作的统计表示, 并采用巴氏距离测量两个直方图的相似性;最后, 根据动态时间规整方法设计了动态程序识别算法。通过大型数据集的测试以及与几种最新方法的比较证明了方法的高效性, 即使在数据库包含噪声和相似动作的情况下, 方法仍然取得了很好的识别效果。
人体动作识别 篇4
人体运动姿态分析引起了动作捕捉技术领域中越来越多学者的关注, 成为研究的热点, 其应用涵盖了教育教学、医学研究、动画制作、智能监控和虚拟现实等领域。目前, 学者们在人体运动姿态方面的研究主要包括对人体上肢[1]、下肢[2]的运动分析 (步态分析) , 还有人体表情[3]的运动分析等, 并将其实验结果应用于医学、教学和动画制作当中。
本文利用惯性动作捕捉设备3D Suit获取数据, 利用最小二乘法, 从运动学和时空学角度对人体运动姿态进行分析, 得出人体运动姿态曲线参数, 从而为后期的人体运动姿态模拟分析系统、编辑人体运动姿态提供依据。
1 人体运动姿态特征参数
人体运动姿态参数[4]主要包括运动学参数、时空参数、动力学参数和人体测量学参数。通过对这些参数进行分析以达到对人体运动姿态的分析。本文主要从运动学参数和时空学参数两方面对人体运动姿态进行分析。
1.1 运动学参数
运动学[5]是通过描述和研究物体的位置随时间变化的规律的一门学科。运动学分为正向运动学 (Forward Kinematics, 简称FK) 和逆向运动学 (Inverse Kinematics, 简称IK) 。
1.1.1 正向运动学 (Forward Kinematics)
正向运动学使用的是自上而下的方法, 通过给定父对象的位置、旋转角度、位移和速度等相关参数, 计算出子对象的位置和相关信息。例如, 根据肘关节的旋转角度和平移量, 利用正向运动学原理, 腕关节的旋转角度和平移量等信息就可以计算出来。
1.1.2 逆向运动学 (Inverse Kinematics)
逆向运动学通过子节点或叶子节点的旋转角度和位移量信息来计算父节点的相关参数, 在求解的过程中, 根据人体运动规律, 逐步求出中间节点的相关信息, 进而得出所需父节点的相关信息。
1.2 时空参数
时空参数[6]是指物体运动时的时间和距离参数, 通过时空参数的变化能够监测人体运动姿态变化的异常。时空参数主要包括: (1) 步频:每分钟行走的步数。 (2) 步行速度:每秒行走的距离。 (3) 步长:行走时左右脚跟或脚尖先后着地时两点间的纵向距离。 (4) 跨步长:指同一侧脚跟前后连续两次着地点间的纵向直线距离。 (5) 步宽:指左右两脚间的横向距离。 (6) 足偏角:指贯穿过一侧脚底的中心线与前进方向所成的夹角。
根据这些时空参数之间的定义, 绘出人体运动时的时空关系如图一所示。
2 数据分析
人体运动姿态参数处理的过程就是从.bvh文件中提取各关节点的偏移量和旋转角度信息, 从时空学和运动学角度, 利用最小二乘法拟合曲线, 分析人体的运动姿态, 得出人体运动参数, 进而得到人体运动规律。
2.1 数据提取
通过惯性动作捕捉设备3D Suit获取到的数据, 是以.bvh格式进行存储, 而.bvh格式文件数据是按树形结构形式存储, 所以人体运动姿态的分析转换为对.bvh关节数据的分析。因此, 在对人体运动姿态进行分析前需提取所需的人体关节数据, 即人体运动姿态参数数据提取的思路为:首先, 从.bvh文件中分别提取人体四肢关节点数据, 根据自己的需要选择合理的保存方式。本实验将捕捉的人体运动姿态数据以全局形式, 即各关节相对于根节点的信息形式进行保存;再分别取人体运动过程中坐标位置信息及旋转角度信息, 利用Matlab绘出人体四肢关节点离散数据的运动轨迹、线速度曲线、线加速度曲线、角速度曲线、角加速度曲线;利用最小二乘法分别拟合曲线以重现人体四肢关节点的连续运动轨迹;最后, 通过数学方法来计算, 即通过对多项式的连续运动轨迹进行求导获得人体运动姿态参数。该人体运动姿态参数提取流程图如图二所示。
2.2 曲线拟合
.bvh文件数据主要是关于人体关节旋转角度和偏移量信息的一个文件, 通过提取关节数据对人体运动姿态进行分析, 从人体运动姿态时空学和运动学参数对人体运动姿态进行分析。动作捕捉设备3D SUIT获取人体各关节点数据是一系列离散的变化数据, 并不能良好地描述人体各关节的运动变化规律, 因此, 需用数学方法对人体运动姿态进行描述。本文主要采用最小二乘法来实现数据的分析。
2.2.1 最小二乘法
对给定数据 (xi, yi) (i=0, 1, …, m) , 在取定的函数类φ中, 求p (x) ∈φ, 使误差ei=p (xi) -yi (i=0, 1, …, m) 的平方和最小, 即:
从几何意义上讲, 就是寻求与给定点 (xi, yi) (i=0, 1, …, m) 的距离平方和为最小的曲线y=p (x) 。
函数p (x) 称为拟合函数或最小二乘解, 求拟合函数p (x) 的方法称为曲线拟合的最小二乘法。如图三所示。
2.2.2 曲线拟合
通过.bvh文件获得一系列离散数据 (xi, yi, zi) , 这些离散的数据随时间的变化而变化。一般情况下, 需要求得这些数据点与时间的一个近似关系, 我们采用曲线拟合的方法来实现。
假设已经知道f (x) 的具体形式, 知道在一些节点x0, x1, x2, …, xm处对应的函数值f (x0) , f (x1) , …, f (xm) , 进而知道了f (x) 对应曲线的大致趋势。假设函数系φ0 (x) , φ1 (x) , …φn (x) 所产生的空间φ=span{φ0 (x) , φ1 (x) , …φn (x) }中的函数曲线较适合f (x) , 现期望从φ中找一个最适合的f (x) 的函数s (x) =a0φ0 (x) +a1φ1 (x) +…anφn (x) 。所谓最适合就是曲线的δi=s (ti) -f (ti) (i=1, 2, 3, …, n) 在每一点Xi都很小, 采用“偏差的平方和为最小”的原则选择f (x) 的近似函数s (x) 。
根据上述运动轨迹曲线拟合的思路, 绘制曲线拟合的流程图如图四所示。
2.3 实验结果
.bvh数据是一些离散点数据, 使用Matlab工具绘制三维点后, 利用曲线拟合的方法重现人体各关节点的运动轨迹, 并用函数表示, 找出各关节不同运动姿态的连续运动变化规律。从保存的人体动画文件中提取所需关节的运动数据, 一个关节的.bvh格式文件如下:
提取出来的数据包括各关节相对于父节点偏移量数据及相对于父节点的旋转角度数据, 通过求导运算, 计算人体运动的线加速度和角加速度, 从而提取出人体的运动姿态参数。本实验人体运动姿态参数主要采取的是人体四肢运动数据, 将其分为上半身运动和下半身运动两部分。上半身关节点主要包括左右腕关节、左右肘关节、左右肩关节六个关节点的坐标位置数据信息, 对于上半身的运动从运动学参数进行分析, 以肘关节为例。下半身运动从时空参数以踝关节为例进行分析。
2.3.1 肘关节运动轨迹分析
(1) 每一关节点数据用X、Y、Z轴三个方向上的偏移量和旋转角度表示, .bvh文件数据可以保存为全局数据和局部数据2种形式, 全局数据是相对于初始位置的变化量, 而局部数据则是相对于父节点的信息。因此, 在将数据保存为局部数据信息时发现其偏移量并没有变化。全局数据的偏移量和旋转角度数据信息随着人体运动姿态的变化而变化, 包括的主要内容为Xposition、Yposition、Zposition、Zrotation、Xrotation、Yrotation。本实验采取将数据保存为全局数据信息形式。
本实验获取的数据是从一个23岁男性学生, 无病史, 在室内正常行走的一段数据进行分析, 从运动学上分析人体肘关节的运动。
惯性动作捕捉3D Suit获取的数据采样频率为0.0333333, 旋转角度和位置信息是通过动作捕捉设备直接获取得到, 其是跟随时间的变化而变化, 加速度和角加速度是对偏移量和旋转角度变化曲线的求导获得。
人体肘关节运动轨迹如图五所示。
对获取的数据进行求导运算, 绘制曲线如图六所示。6个曲线图分别表示的是x、y、z线加速度和x、y、z角加速度。
从肘关节旋转角度在X、Y、Z三个方向上的分量来看, 他们的运动是周期性的。从肘关节的运动轨迹来看, 它的曲线规律并不明显, 但从中可以看出, 肘关节做的是曲线运动, 而且在做运动过程中, 还存在一些不流畅。
(2) 肘关节最小二乘拟合结果
本实验将人体运动姿态参数设置为多项式:
设定n为10, 通过Matalb绘制曲线如图七所示, 计算得出系数结果如表一所示。
2.3.2 踝关节运动轨迹分析
人体下肢的分析在运动学上的分析和人体上肢的分析是一致的, 因此, 对于下肢的分析选取踝关节, 从时空学上对惯性动作捕捉获取的数据进行分析。人体时空学参数主要有:步速、步频、步长、步宽、跨步长和足偏角等。从保存的动画文件.fbx分别获取leftfoot和rightfoot关节数据, 以.bvh文件形式保存。 (1) 步频:计算1秒内yposition与起始位置相同的次数。 (2) 步速:计算在yposition与起始位置相同的情况下, 计算xposition相差的距离dx, 利用距离除以时间就是行走的速度。 (3) 步长:在yposition与起始位置相同的情况下, 计算xposition相差的距离dx。 (4) 步宽:在yposition与起始位置相同的情况下, 计算zposition相差的距离dz。通过Matlab绘制出曲线, 这样更直观地计算出时空参数。如图八所示。
从图八中可以看出, 人体的运动是周期性运动, 横坐标代表采取数据的帧数, 将每一帧的数据分离出xpostion, yposition, zposition., 计算出时空参数, 左脚的dx=28.6359, dy=20.8046, dz=47.8499, 右脚的dx=35.2851, dy=19.2189, dz=35.3078。图八表明, 人体进行的是周期性运动, 刚开始的数据为直线, 表明物体开始处于静止状态。将这些数据与人体正常范围进行对比, 可以判断此人的步态是否需要调整。综合考虑人体的时空参数, 此人的运动正常。
3 结论与展望
人体运动姿态分析是人体运动姿态模拟的前期工作, 只有人体运动姿态分析得到了较好的成果, 模拟出来的动画才够逼真。惯性运动捕捉设备获取数据应用到人体运动姿态分析中具有效率高、操作简便等特点, 因而人体运动姿态分析和模拟等领域获得了广泛的应用。本论文介绍了人体运动姿态常用的特征参数, 从.bvh文件中提取了人体的相关数据信息, 根据最小二乘法理论, 利用Matlab仿真了人体的运动姿态曲线, 计算了人体关键节点的线速度、加速度、角速度和角加速度, 并利用Matlab绘制出了线速度、线加速度、角速度和角加速度的曲线轨迹图, 从运动学参数和时空参数分析人体运动姿态。在此研究基础上, 可以对采用其他的函数来拟合人体曲线, 如指数曲线, 提高人体运动曲线拟合的精度。这也将是作者在今后要进一步研究的内容。
摘要:人体运动姿态编辑的自由性是以人体运动规律为依据, 利用最小二乘法数学理论对获取到的动画数据.bvh格式文件, 从运动学和时空学两方面进行分析, 通过拟合人体运动曲线, 得到人体运动规律参数。实验证明, 该方法可以精确地分析人体的三维运动姿态, 并可将其结果应用于医学研究、视频监控和体育教学研究等领域。
关键词:惯性动作捕捉,运动学参数,时空学参数,最小二乘法,曲线拟合,人体运动姿态分析
参考文献
[1]IlariaRenna, Ryad Chellali, Catherine Achard.Realanad simulated upper body tracking with annealing particle filter and belief propagation for human-robot interaction[J].International Journal of Humanoid Robotics, 2011, 8 (01) :127-146.
[2]K.L.CHAN.Video-Based gait analysis by silhouette chamfer distance and kalman filter[J].International Journal of Image and Graphics, 2008, 8 (03) :383-418.
[3]常江龙.三维人脸表情合成研究[D].合肥:中国科学技术大学, 2009.
[4]桂彦.基于人体运动跟踪技术的步态分析系统的设计与实现[D].长沙:中南大学, 2008.
[5]何凯, 姜昱明.基于逆运动学的虚拟人行走[J].系统仿真学报, 2004, 16 (06) :1343-1345.
[6]黄燕平, 范昕.谈步态分析[J].中华医药杂志, 2009, 9 (03) :145-146.
[7]徐跃良.数值分析[M].成都:西南交通大学出版社, 2005.
人体动作识别 篇5
个体拥有一定的生理和心理基础是特定行为发展的必要条件, 机体只有具备一种准备性状态才能有效应对外界刺激, 才能达到预期的训练效果。
尽管在有关如何确定动作发展的准备性特征上上存在很大的争论, 但是, 人们较为一致地认为, 动作训练必须基于儿童的发展水平。
2、动作发展的顺序和方向
从20世纪二三十年代以来, 专家学者对个体动作发展的一般进程进行了大量的研究, 取得了多层次、多角度的常模资料。研究发现, 虽然不同个体的发展存在一定的差异性, 但从先天就具备的无条件反射到实现有目的的复杂动作技能的进程趋势来看, 个体的动作发展过程均遵循一定的顺序原则。有关研究对动作发展的顺序规律进行了概括, 并不断地补充和完善, 使人们对动作领域的发展规律的认识日益加深。
人体动作发展的顺序可归纳为:整分、首尾、大小三个原则。整分原则即个体最初对刺激做出的反射是整体的, 而后慢慢分化。具体来讲, 即个体刚开始的动作是整个身体性的, 模糊的, 而后才慢慢分化为具体的、精确的动作。首尾原则即个体动作发展的顺序及方向是至上而下的。具体来说是:头部———上肢和躯体———下肢。个体的动作总是由上至下, 沿着抬头———翻身———坐———爬———站———行走的顺序发展和逐渐成熟。大小原则即首先发展起来并发挥重要作用的是个体的大肌群动作, 以后小肌群动作才日趋成熟。最先发生动作的部位是躯体的大肌群, 比如上下肢的协调活动等, 较晚才发展起来的是四肢部位小肌群的动作, 更晚发展起来的是手、脚动作和感知觉之间的协调配合活动, 比如凌空踢球动作、我国儿童的筷子使用技能等。
3、动作发展的动力学系统分析
在人类对个体动作发展的认识不断深入的同时, 也提出了更多的问题, 其中关于动作发展的具体过程和机制问题的分析日益成为专家学者关注的焦点。从成熟论、学习论到认识发展理论, 众多研究者对此做出了不同解释。
首先, 多个相关系统的相互作用致使动作行为发生质变。其次, 多个系统自组织的同时就促进了个体动作的发展。最后, 个体动作协调性及控制性的提高是通过各个子系统相互作用来实现的。综上所述, 动作的发展是在协调和控制这两个基本过程的共同作用下实现的。
由此可见, 在动力学系统论中, 协调的活动 (例如, 够物) 被看做是由各个子系统的协同活动的复杂过程产生的, 而不是源于成熟论的先天装置“告诉系统怎么做”, 也不是认知发展理论认为的“动作的发展水平由认知结构的发展水平决定”。个体动作发展的独特性由协调和控制过程的差异性决定。
4、动作发展中的协调与控制
协调及控制过程的发展程度显示着动作发展是否完善。同时, 动作的发展与协调和控制过程的提高也是同步的。
4.1、协调———模式灵活性的增加
学者认为, 个体直接控制的变量数量的直接减少原因是个体动作灵活性的增加。其结果是个体会产生适应特定任务的单元。这些单元通常被称为协调结构。如射击手将抢瞄准目标物进行射击时, 手腕或肩部的任何变化都会导致子弹偏离目标, 但是对于手枪射击能手, 可以用肩部处大小相同方向相反的力, 来补偿和平衡手腕部位的力的变化。这种补偿是经过练习得来的, 手腕和肩部处的关节和肌肉通过经验使之在功能上互相联系, 以整体的形式发挥作用。协调度的增高实质上是各部位之间相互配合的一定时间模式的完善。
4.2、控制———协调的限制因素
虽然个体的动作通过练习变得更加协调, 但是这种模式的灵活性的增加不是无限度的。从总体而言, 机体状态、环境和任务三者的交互作用决定了某项能达到的最佳协调模式。第一, 机体状态的限制包括神经和解剖学的限制, 如神经冲动模式、身高、体重以及肌肉力量的变化等。第二, 环境的限制分为物理和文化两种限制, 比如自主位移的动作模式会受到物体表面特性的限制。最后, 任务的限制是与动作目标相关的限制因素, 个体为了使动作表现达到最优, 会以特定模式组织肢体运动, 以最快、最节省能量的方式进行活动。
4.3、协调和控制的整合
协调和控制这两个过程的整合使某个动作的发展呈现出不同的形式。使之具有更大的灵活性, 即综合协调和控制过程形成一个协同结构。这意味着同时形成了关于肢体运动的特定模式的一系列变式, 以适应现实环境的需要。许多特定模式的控制和协调是由系统自动完成的, 比如感受器的自动反馈可以表明肢体现在的状态并按照模式进行一定调整。另一方面, 虽然这种调整是自动完成的, 但是达到最优化表现的参数设置还是通过练习和经验而习得的。从这个角度看, 技巧动作就代表了协调结构的最佳参数设置, 而练习和训练则代表了设置动作参数的过程。综上所述, 协调和控制的协调过程是个体动作发展所具备的一种自组织功能。
参考文献
[1]董奇, 淘沙.动作与心理发展[M].北京, 北京师范大学出版社, 2004, (6) .
[2]李建.婴幼儿动作技能培养[J].北京教育学院学报, 2011, (6) .
人体动作识别 篇6
“人物动态速写”是指在极短的时间内画下人物的动作和姿态,是一种非常重要的造型艺术基础。传统的教学方法强调运用人体解剖知识来捕捉人体的动态线,然后利用复杂的线和面来进行“动态速写”。学生必须记住很多的概念和知识点,在短时间内很难提高人物动态速写水平。
Vicon三维动作捕捉系统利用摄像机捕捉粘贴在人物模特身体上的红外线点来构建动作模型。红外线点根据人体的运动特点和框架粘贴上去,并会随着模特的运动而变化。通过专门的软件将摄像机捕捉到的点连接成线,再把线转换成面,最后放到一个做好的三维模型里,模型就可以根据所捕捉的动作进行相同的运动。
“人物动态速写”本质上也就是瞬间动作捕捉过程,只不过Vicon三维动作捕捉系统用的是摄像机,而“人物动态速写”用的则是人眼。笔者尝试将借鉴Vicon三维动作捕捉的,将其运用到“人体动态速写”的教学中,取得了良好的效果。在此对这种教学方法进行详细的介绍。
2. 点的确定
“人物动态速写”的对象是随时变化的,无法反复观察,因此学生要在很短的时间内将人物的动态捕捉到,并立刻纪录下来。但是面对复杂的线和面,学生的视觉敏锐感很容易被削弱,所以笔者要求学生抛弃所有的外形,重点跟踪“动态点”。
2.1 选取动态点
Vicon动作捕捉系统中粘贴在人物模特身体上的红外线点可以作为“人物动态速写”重点跟踪的“动态点”。人物动态的变化是通过人体的骨骼结构的关节处的运动而变化的。根据这个原理我们可以找出2个肩关节、2个肘关节、2个腕关节、2个髋关节、2个膝关节、2个踝关节、颈、腰和头部共15个“动态点”,这些动态点就构成了人物的一个基本架构。
2.2 定位动态点
在画“点”时,不必考虑构图,不必讲究完整效果,“点”的大小只要学生本人可以在纸上能辨认出来就行了。但要注意“点”与“点”之间的距离和位置,因为人物动态速写中,最重要的就是结构,所以学生要花多点时间反复练习,通过由慢转快的练习,牢牢记住人物动态的关键点所在,从而能在很短的时间内根据具体的位置和比例将这些“动态点”表现出来。定点快速完成的特性正好符合学生初期阶段对绘画不能深入刻画、没有耐心的特点,从而增强了学生的自信心和学习的兴趣。
3. 线的构建
“动态点”定好位置后,如何使它们联系起来?在Vicon动作捕捉系统中,扫描好点后,用Vicon IQ软件将扫描到的点从头到脚连接起来。在人物动态速写中我们可以采用相同的原理。
3.1 确定“线”的表情
在“线”的两种表情中,“直线”比较简洁概括,同时在比较确定的方向和走势表现上,直线带有一定的肯定色彩,并且还具备人体框架所需要的稳定关系。用去曲取直的方法对人体动态趋势表现有利于学生对人体动态的概括。因此我选择了“直线”作为表现形态。
3.2 绘制结构线
用直线把15个“动态点”从头到脚地连接起来,同时在腕关节和踝关节的点处,分别画出符合模特手、脚方向和长短的4条线。在连线的过程中要注意头到脚跟的联线趋势、手臂的伸向、腰的扭动角度等。共18条线的点连接和延伸构成的就是我们常说的“人体动态速写”最关键的“动态结构线”。
3.3 默记连线位置
从点到线的过程所涉及的位置和线条很少,看似很简单,就像儿童画简笔画一样,但不能掉以轻心。在连线的时候不要单纯从上到下,笔到哪个位置都要默记一下,如:这是头部、这是肩关节、这是肘关节等。慢慢地,学生会对人体结构了然于胸。这种简单有效的方法,能提高学生的积极性,加强学生对人体结构的理解和概括能力的提升,同时能增强学生对人体结构的记忆和速写的默写能力。
4. 面的表现
有了准确的动态结构线,接着就是如何去表现人物的外形和特征。Vicon动作捕捉系统通过软件连好线后,就将人物框架扩充,变成立体的三维模型。“人体动态速写”在画好框架后也要扩充,只是它是二维的。
4.1 绘制轮廓
根据已画好的人体动态结构线向两边扩充,在扩充时我们要强调大形态、大感受。首先,分别用不同的圆从头到脚把动态结构线按照其大小比例和位置关系框出来,框画时要注意圆的透视关系。接着,沿着圆的外形,画出表现动态的衣纹轮廓线。在画衣纹轮廓线时要注意15个点的位置,因为转折点和跨度大的曲线均在这些点的位置,如:肩、肘、腰、膝、腕、踝等处。最后,根据表现情绪和对象的不同选择不同的性格线,如:女性多用曲线,男性多用直线等。
4.2 填补细节
首先,加强头、五官、手、脚的刻画。其次,加强人体结构和形式节奏刻画,着重表现主要轮廓线的趋势、起伏和人体动态的基本特征。再次,根据具体的人物把其神韵刻画出来。最后,在刻画细节时根据人体外形要注意线条的穿插、对比关系,处理线条的起伏、虚实、长短、粗细、聚散、前后,等等。
5. 整理画面
从整体上检查画面中人体比例、人物动态、透视关系是否准确,人物动态的节奏感表现是否正确,画面的空间关系和虚实关系是否恰当,画面中的局部会不会跳出来,整体性强不强,等等。总之,将检查—调整—修改贯穿始终,通过这个过程取得一个生动、丰富的形象效果。
6. 结语
借助Vicon动作捕捉原理,笔者系统分析了“人体动态速写”的组织规律,并运用到教学实践中,使得学生能够快速掌握“人体动态速写”技能,实现有效教学的目的。同时在整个教学过程培养了学生的观察、分析和判断能力,拓宽了其思维,为将来进一步提高学生的速写水平打下了良好的基础。
摘要:本文作者根据教学实践, 认为在教学中借助Vicon三维动作捕捉原理, 从确定动态点出发, 然后进行线和面的完善, 能够降低“人体动态速写”学习的复杂性, 快速有效地提高学生的速写技巧。