基于侧影和末端节点的视频人体三维运动恢复方法

文档序号:6556641阅读:145来源:国知局
专利名称:基于侧影和末端节点的视频人体三维运动恢复方法
技术领域
本发明涉及多媒体人体三维动画领域,尤其涉及一种基于侧影和末端节点的视频人体三维运动恢复方法。
背景技术
基于视频的人体运动3维重建有着广泛的应用领域,在很多场合可以起到光学3维人体运动捕获的作用,也能在很多光学人体捕获系统无法应用的情况下发挥作用。
当前,基于视频/图像序列的人体姿态/运动3维重建方法主要有两大方向基于学习的方向。
一是基于学习的方向。这一方向内的方法的学习输入是一系列的姿态矢量,和它们对应的2维图像(一般来说是从2维图像中抽取的某些特征)。通过学习获得2维图像和姿态矢量的对应函数。之后,新的不在训练集之内的2维图像提供给系统,系统根据学习获得的知识来生成一个和此图象相对应的姿态矢量。通过这种方式,系统可以对视频的每帧都生成一个姿态矢量,然后把姿态矢量连接成3维运动序列。比如2006年在IEEE Transactions onPattern Analysis and Machine Intelligence上发表的文章《Recovering 3D Human Pose fromMonocular Images》就属于这种方法,在该文章中,从训练侧影样本中提取出形状上下文,然后用相关向量机进行训练,拟合出一个从侧影形状上下文到姿态矢量的一个复杂函数,然后用这个函数来预测新的侧影样本所对应的姿态矢量,从而实现姿态的三维恢复。基于学习的这类方法的一个共同难点是,由于2维图像到姿态矢量的函数非常复杂,基于学习的方法一般都假定姿态矢量属于某一类型,也就是说,这一类方法一般只对走路,跑步,打球等某一种特定的运动有效,同时,它一般需要一个符合这一特定运动的先验数据库,以及往往需要一个计算量巨大的训练过程。
令一个方向是基于人体模型的方向。这一方向内的方法的特征是,系统内部有一个3维人体模型,系统寻找一个最佳的姿态矢量,使得这个姿态矢量能够最好的解释提供的2维图像。很多情况下,这一类的方法都可以归结成为一个最优化问题。比如2005年在ComputerGraphics International上发表的文章《Markerless Monocular Motion Capture Using ImageFeatures and Physical Constraints》就属于这种方法,在该文章中,将预置人体3维模型在各种不同姿态下渲染,然后将渲染的结果和和从视频帧中提取出的信息进行比较,通过设计一个合适的目标函数来描述渲染的结果和视频帧提取出的信息的匹配程度,这样也就归结为一个最优化问题。基于人体模型的方法往往存在两个难题。一是这类方法大多将一个完整的人体面片模型投影回2维平面再和2维图像进行比较,这样势必导致目标函数计算量巨大,使得三维重建的过程效率很低;二是,由于从姿态矢量到2维图像的函数非常复杂,导致最优化过程容易被困于局部最小值。
另外,大多数人体运动三维恢复方法难以解决误差累积和传递的问题。如果某一帧的重建结果出错,那么接下来的帧的重建结果都将出错,很难从错误中自动的恢复。

发明内容
本发明的目的在于提供一种基于侧影和末端节点的视频人体三维运动恢复方法。
包括以下步骤(1)基于背景模型和颜色信息,用RGB颜色空间中色品和亮度分离的颜色模型为视频的每帧提取其侧影;(2)在每帧的侧影上根据曲率信息来检测和标注末端关节点,包括头、双手、和双脚的位置;(3)根据已检测出的双手位置处的颜色信息,对双手皮肤颜色进行动态建模,然后利用动态构建出的颜色判别器去加强检测被步骤(2)中曲率检测器遗漏的双手;(4)对每帧,利用其侧影和侧影上检测出的末端节点位置,构造一个自变量为姿态矢量,值为匹配程度的目标函数,目标函数为姿态矢量与侧影和末端节点的匹配程度施加核心区域惩罚、末端关节点惩罚和平滑性惩罚三项惩罚;(5)根据检测出的末端节点的数量对视频进行分段为可靠区域和不可靠区域。然后,对不同区域采取不同的方法,利用模拟退火算法进行三维恢复,获取每帧的三维姿态矢量。
所述的基于背景模型和颜色信息,用RGB颜色空间中色品和亮度分离的颜色模型为视频的每帧提取其侧影用基于色品和亮度分离的颜色模型为视频的每帧提取侧影;提取侧影的基本思路是逐像素比较当前帧和背景模型的颜色差异,并以此确定各个像素属于前景还是背景;在比较中,使用RGB颜色空间中色品和亮度分离的颜色模型,每个颜色在RGB空间中为一从原点出发的矢量,其色品用该矢量的方向来表征,其亮度用该矢量的长度来表征;于是,比较两个颜色的差异时,不是直接比较它们在RGB三维空间中的距离,而是分别比较它们的色品和亮度,色品和亮度差异的计算式为D1=cos-1(||C1·C2||||C1||·||C2||)---1]]>D2=||||C1||-||C2||||max(||C1||,||C2||)---2]]>其中,C1和C2是RBG空间中待比较的两种颜色从原点出发的矢量;D1是两种颜色的色品差异,D2是两种颜色的亮度差异。在确定某个像素是前景还是背景时,如果该像素的颜色和背景模型上对应像素颜色的D1超过一定阈值,则认为该像素为前景像素,否则,则认为该像素为背景,只是这时如果D2也超过一定阈值,说明该像素为背景的阴影或高光部分。
所述的在每帧的侧影上根据曲率信息来检测和标注末端关节点,包括头、双手、和双脚的位置提取出侧影后,利用曲率信息在侧影上检测末端关节点的位置;首先计算侧影边缘每一点的曲率,该曲率用该点和它两侧沿侧影边缘滑动各n个点的两个点组成的角度来确定,曲率计算公式为c=((P1-P)·(P2-P)||P1-P||·||P2-P||+1)/2---3]]>其中,P是当前计算曲率的点的坐标,P1和P2是P沿着侧影边缘向两侧滑动各n个点后得到的两个点的坐标;这里计算出的曲率c在0到1之间,为正值,为了反映出侧影在P点的凸凹,还需要判断P1和P2连线中点处是否在侧影前景上,如果否,则需要把c变号为负数作为最终的曲率;侧影边缘上每个点的曲率都计算出之后,将所有曲率大于某一阈值的点标出,然后对标出的点进行聚类,抛弃包含的点过少的类之后,剩下的类的质心就是末端关节点的位置;末端节点的标注方法,采取用户标注首帧,利用时序的平滑性和卡尔曼滤波预测相结合的方法进行后续自动标注。
所说的根据已检测出的双手位置处的颜色信息,对双手皮肤颜色进行动态建模,然后利用动态构建出的颜色判别器去加强检测被步骤(2)中曲率检测器遗漏的双手利用基于曲率的末端节点检测所检测出的准确但不完全的双手位置,动态的建立双手皮肤颜色高斯模型,然后利用该颜色模型在原始帧图像上进行针对双手的二次检测,检测基于曲率的检测中遗漏的双手。
所说的对每帧,利用其侧影和侧影上检测出的末端节点位置,构造一个自变量为姿态矢量,值为匹配程度的目标函数,目标函数为姿态矢量与侧影和末端节点的匹配程度施加三项惩罚核心区域惩罚、末端关节点惩罚和平滑性惩罚为每帧构造一个自变量为姿态矢量p,值为姿态矢量和当前帧的侧影及末端节点位置的匹配程度E的目标函数E(p),该函数包含3项惩罚,通过3个惩罚项分别考察以下3项匹配程度一是核心区域惩罚Ecore-area,即关节骨架模型在姿态矢量状态下的的二维投影应当落在该帧侧影的核心区域内,其中核心区域由侧影的欧氏距离变换来强调;二是覆盖度惩罚Ecorerage,即关节骨架模型在姿态矢量状态下的二维投影的末端节点位置应靠近侧影上检测出的相应末端节点;三是平滑性惩罚Esmoothness,即当前姿态矢量应当和前面帧的姿态矢量保持平滑,避免突变,以上三项惩罚项的计算式分别为Ecore-area=-Σms'(t)(point(m)·T(t,p))/M---4]]>核心区域惩罚Ecore-area的计算过程中,在姿态为p的人体骨架上均匀采样一系列的点,上式中,s’(t)为当前帧的侧影的距离变换,point(m)为在骨架上均匀采样的第m个点,p是姿态矢量,T(t,p)是和t与p相关的变换矩阵,它将被采样的点的坐标从三维局部坐标系转换到侧影平面上来,M为采样点总数;Ecoverage=∑‖ps(i)-pc(p,i)‖/I,对于每个被检出的末端关节点5上式中Ecoverage为覆盖度惩罚,ps(i)为当前帧在侧影上被检测出的第i个末端关节点位置,Pc(p,i)为人体骨架按照姿态p投影到侧影平面后第i个末端关节点的位置,I为当前帧所有被检出的末端关节点的数目;Esmoothness=‖p(t-1)-2p+p(t-2)‖6上式中Esmoothness为平滑性惩罚,p(t-1)和p(t-2)分别为当前帧之前的一帧和两帧的姿态矢量;将上面三项惩罚相加,即得到目标函数E(p)=αEcore-area+βEcoverage+γEsmoothness7所说的根据检测出的末端节点的数量对视频进行分段为可靠区域和不可靠区域,然后,对不同区域采取不同的方法,利用模拟退火算法进行三维恢复,获取每帧的三维姿态矢量根据检测出的末端节点的数量对每帧分类,即所有5个末端节点都检测出的帧作为可靠帧,其余为非可靠帧,可靠帧和不可靠帧趋向于聚集,于是整个视频被分割为互相交错的可靠区域和不可靠区域,并按如下步骤对每帧的姿态矢量进行三维重建从每个可靠区域中选择一帧作为基准帧;对于基准帧,采用完全模拟退火对目标函数E(p)进行最优化以寻找最佳匹配的姿态矢量p;然后从基准帧出发,依次对前后的帧采用不完全模拟退火进行最优化以寻找姿态矢量,从每个基准帧出发所恢复的帧限于基准帧所在的可靠区域和其前后相岭的两个不可靠区域;对于可靠区域中的帧,上述三维重建获得一个姿态矢量作为该帧的姿态三维重建结果,对于不可靠区域中的帧,每帧获得两个姿态矢量,将这两个姿态矢量按照所在帧距离前后可靠区域边界的距离的倒数为权值进行混合作为该帧的姿态三维重建结果;将每帧姿态3维重建的结果连接,进行后期处理后,形成连贯的3维运动序列。
本发明具有的有益的效果是通过色品与亮度分离的颜色模型进行的侧影提取,有效的避免了由于光照变化和阴影问题所引起的提取失误,背景的阴影和高光部分被正确的理解而没有被错误的当成前景。通过基于动态颜色模型的二次检测使得双手检测达到了很高的查准率和查全率。由于目标函数E(p)计算量较小,计算量问题的解决又进一步使得相对计算复杂的模拟退火算法得以应用,从而又解决了受困于局部最小值的问题。算法在每个可靠区域上选择基准帧自动重启动,摆脱了误差累积和错误传递的问题。实验效果显示,在少量的用户交互下,本方法可以鲁棒和准确的恢复长时间的人体运动视频,达到了令人满意的结果。
该方法除了解剖学和物理限制外,不对人体运动类型作任何先验性的假设,不需要先验数据库的支持。该方法属于技术背景中所描述的基于人体模型的方向,但是通过对目标函数计算量大和受困局部最小值的两个问题的解决,避免同类方法的问题,达到优秀的结果。


图1是基于侧影和末端节点的视频人体三维运动恢复方法的流程图;图2是本发明的颜色RGB空间中色品和亮度分离的模型示意图;图3是本发明使用的人体关节骨架模型示意图;图4是本发明的视频分段示意图;图5(a)是本发明的目标函数的核心区域惩罚项侧影示意图;图5(b)是本发明的目标函数的核心区域惩罚项示意图;图6是本发明的击剑比赛视频恢复实施例示意图。
具体实施例方式
本发明提出的基于侧影和末端节点的视频人体三维运动恢复方法,在具体方案实施之前,要确定骨架模型。我们采用如图2所示的骨架模型,其包括16个可转动的关节点,除根节点(图中的关节点0)外,每个关节点可以以最多3个自由度转动,根节点则包括3个转动自由度和3个位移自由度。在恢复姿态过程中,我们不考虑根节点的位移自由度,因为其描述的是整个模型在世界坐标系的位移,而不是模型的姿态本身。我们把根节点的位移自由度推迟到后期处理时进行。这样,每个姿态矢量p是一个48维矢量。
下面介绍本发明的具体技术方案和实施步骤1.侧影的提取为视频的每一帧提取其侧影。提取方案基于逐像素的比较。本方法假定相机固定且背景颜色模型已知(一般可以通过拍摄若干帧纯背景图像来得到),对于待提取侧影的一帧图像,逐像素比较其颜色和背景模型对应像素上的颜色,若两者相差大于某一阈值,则认为该帧该像素为前景。注意在比较两个颜色时,我们采用在RGB空间中将色品和亮度分离的模型。形式化地,要比较两个颜色C1和C2,色品和亮度差异的计算公式为D1=cos-1(||C1·C2||||C1||·||C2||)]]>D2=||||C1||-||C2||||max(||C1||,||C2||)]]>其中,C1和C2是RBG空间中待比较的两种颜色从原点出发的矢量;D1是两种颜色的色品差异,D2是两种颜色的亮度差异。
举例来说,如图3所示,要比较RGB空间中两个颜色Ei和Ii,连接OEi,从Ii向OEi作垂线,则Ii到垂足的距离CDi与OIi长度的比值表征了Ei和Ii色品的区别,垂足在OEi上的位置(比例)表征了Ei和Ii在亮度上的区别。在比较时,如果两色的色品相差较大,则无论如何都认为该像素为前景,否则,如果两色色品相差很小,但是亮度有差别,则依然把该像素视为背景,只是认为这是阴影或高亮的结果。该模型可以较好的处理光照变化和阴影会导致背景被误分类为前景问题。
2.基于曲率的末端节点检测和标注在每帧侧影的轮廓线上,计算各点的曲率,曲率由该点和沿侧影边缘向两侧分别滑动到第n个点得到的两点构成的角度来近似,计算公式为c=((P1-P)·(P2-P)||P1-P||·||P2-P||+1)/2]]>其中,P是当前计算曲率的点的坐标,P1和P2是P沿着侧影边缘向两侧滑动各n个点后得到的两个点的坐标;这里计算出的曲率c在0到1之间,为正值。注意上式计算出的c实际上是真实曲率的绝对值,因为不管侧影在此处是凸是凹计算出的c都是正的,而实际上,如果侧影在此处是凹的,曲率要设置为负。判断的依据就是将P1和P2点相连,取其中点,如果其中点在侧影的前景上,则侧影在此处是凸的,曲率为正,否则,就需要把计算出的c加上负号,成为负值。
然后我们设置一个阈值,轮廓上所有曲率为正且高于该阈值的点被标出并进行简单的非监督聚类,注意由于一般来说被标出的点已经很明显的聚集成几个类,很简单的基于距离的聚类方法就可以了。聚类后,包含点的个数过小的聚类被抛弃,余下的每个聚类的质心作为一个末端节点的位置。
至此只是找出了末端节点的位置,还没有对它们进行标注,即,区分手和脚,区分左和右。我们采用基于时序平滑性和卡尔曼滤波预测的末端节点标注方法。即,由用户手工标注第一帧各个检出的末端节点是什么末端节点,由于人体运动的连续性和平滑性,系统自动根据时序信息,利用卡尔曼滤波预测下一帧中各个末端节点的位置,然后和下一帧实际检出的末端节点位置进行确认,从而渐进的标注其他的帧上检出的末端节点。遇有歧义的情况,则交用户作出决定。
3.基于动态颜色模型的双手检测上一步基于曲率的末端节点检测对于头部和脚部效果很好,但是对于双手,其查准率很高但查全率一般,原因在于有时候双手放置于身体主要部分和像机之间,于是在侧影中双手被身体部分所包含无法辨识。我们采用基于动态颜色模型的双手检测来解决这个问题。既然基于曲率的双手检测准确率很高,那么我们根据曲率检测的结果,采集双手处的颜色,在运行时训练一个双手皮肤颜色高斯模型,然后再用该颜色模型去原始的帧图像上寻找遗漏的双手。注意这次基于动态颜色模型的双手检测是在原始的帧图像上进行的,但是搜索范围被限定在侧影所对应的前景内,这样一方面减少了搜索空间,一方面减少了由于背景的颜色带来的潜在的鲁棒性问题。
4.目标函数设计目标函数以姿态矢量p为自变量,值为p和侧影之间的匹配度E,E越小越好。通过对目标函数的最小化,就可以找出最优的姿态矢量。目标函数通过3个惩罚项来衡量匹配。这三项分别是核心区域惩罚Ecore-area位于姿态p的骨架模型投影到2维平面,经平移和缩放后,四肢应处在侧影的核心区域内。所谓核心区域就是指靠近四肢的轴线的地方,见图5。为了衡量这一点,我们首先对侧影做欧氏距离变换,骨架的四肢应该尽量处于距离变换后值较大的部分。为了量化起见,我们在骨架模型上均匀的采样出一些点,考察这些点经投影变换后位于侧影的距离变换上的距离平均值。这一惩罚可以数学地表达为Ecore-area=-Σms'(t)(point(m)·T(t,p))/M]]>其中s’(t)为当前帧的侧影的距离变换,point(m)为在骨架上均匀采样的第m个点,T(t,p)是和t与p相关的变换矩阵,它将被采样的点的坐标从3维局部坐标系转换到侧影平面上来,M为采样点总数。
末端节点位置惩罚Ecoverage姿态p的骨架模型投影到2维平面,经平移和缩放后,骨架上的头、手、脚末端节点的位置应当和侧影上检测出的末端节点位置尽量接近,即Ecoverage=∑‖ps(i)-pc(p,i)‖/I,对于每个被检出的末端关节点ps(i)为当前帧在侧影上被检测出的第i个末端关节点位置,Pc(p,i)为人体骨架按照姿态p投影到侧影平面后第i个末端关节点的位置,I为当前帧所有被检出的末端关节点的数目。
平滑性惩罚Esmoothness当前帧的姿态p应当保持运动的平滑性。我们利用已经恢复的前两帧来量化平滑性,即Esmoothness=‖p(t-1)-2p+p(t-2)‖其中p(t-1)和p(t-2)分别为当前帧之前的一帧和两帧的姿态矢量。
将上面三项惩罚相加,即得到目标函数E(p)=αEcore-area+βEcoverage+γEsmoothness5.视频的分段和分段三维恢复根据检出的末端节点数量对帧进行分类所有5个末端节点都被检出的帧称为可靠帧,其他的称谓不可靠帧。可靠帧序列组成可靠区域,不可靠帧序列组成不可靠区域。由于运动的连续性,可靠帧和不可靠帧聚集,从而视频被分割成一系列交错的可靠区域和不可靠区域,如图4所示(图中下部用数字标出了一个真实的视频分段后区域分界处的帧号码)。不可靠帧由于其信息不足,重建时时序信息占有更大的比重。而且,由于时序信息的利用,不可靠区域内靠近区域边界的帧由于更靠近可靠帧,被正确重建的可能性较远离区域边界的帧要大一些。我们设定一个阈值1,如果某一不可靠区域长度超过1,则其成为危险区域,危险区域意味着其中心部分的帧的重建可靠度相当低,因此,需要用户手工的为危险区域处于中点的那一帧手工指定各个关节点的位置。这时,这个被手工指定的帧升级为可靠帧,原先的危险区域被分割,视频进行重新分段,直到不再存在危险区域。
分段恢复步骤首先,系统在每个可靠区域中选取一帧作为基准帧,对于每一个基准帧,利用完全的模拟退火算法,不利用任何时序信息(也即目标函数第三项平滑惩罚设为0),寻找最佳匹配的姿态矢量。然后,在每个基准帧周围,渐进的进行3维重建。从每个基准帧出发,重建它所在的可靠区域和包含它的前后两个不可靠区域中的帧。这样,对于每个可靠区域中的帧,有一个重建结果;对于每个不可靠区域中的帧,有两个重建结果p1和p2,对于p1和p2进行混合,取该帧距离前后两个可靠区域的距离的倒数作为权值,得到最终的姿态矢量p。
6.后期处理至此,视频的每一帧都有一个重建的姿态矢量。后期处理把这些姿态矢量连接。然后作两项后期处理。一是平滑,对姿态矢量序列作高斯低通滤波达到平滑效果。二是确定每帧中根节点的位置。由于前述各步骤中都没有考虑根节点的位移,所以在这一步要确定根节点位移,使得着地的脚不打滑地固定在地面上。如果已知运动中任何时刻都不会双脚离地而且不存在滑动,那么可以利用恢复出来的双脚的高度来确定每帧里每只脚是着地还是离地,从而确定根节点位移可以自动地进行。如果运动中某时刻双脚都会离地,或者存在滑动(比如跳跃、滑冰),那么根节点的位移要由用户手工确定。
经过后期处理之后,即生成连续的、平滑的、符合视频的3维运动序列。
实施例要对2004年雅典奥运会的一段击剑比赛视频进行三维恢复,如图6所示为视频中的一帧以及恢复出的三维运动在该帧的姿态。下面结合前面所述的具体技术方案说明该实例实施的步骤,如下(1)利用前面描述的基于色品和亮度分离的颜色模型,抽取出视频中各帧的侧影。具体来说,假定相机固定且背景颜色模型已知(一般可以通过拍摄若干帧纯背景图像来得到),对于待提取侧影的一帧图像,逐像素比较其颜色和背景模型对应像素上的颜色,若两者相差大于某一阈值,则认为该帧该像素为前景。注意在比较两个颜色时,我们采用在RGB空间中将色品和亮度分离的模型。形式化地,要比较两个颜色C1和C2,色品和亮度差异的计算公式为D1=cos-1(||C1·C2||||C1||·||C2||)]]>D2=||||C1||-||C2||||max(||C1||,||C2||)]]>
其中,C1和C2是RBG空间中待比较的两种颜色从原点出发的矢量;D1是两种颜色的色品差异,D2是两种颜色的亮度差异。在比较时,如果D1相差较大,则无论如何都认为该像素为前景,否则,如果D1相差很小,但是D2有差别,则依然把该像素视为背景,只是认为这是阴影或高亮的结果。
(2)在每帧侧影的轮廓线上,计算各点的曲率,曲率由该点和沿侧影边缘向两侧分别滑动到第n个点得到的两点构成的角度来近似,计算公式为c=((P1-P)·(P2-P)||P1-P||·||P2-P||+1)/2]]>其中,P是当前计算曲率的点的坐标,P1和P2是P沿着侧影边缘向两侧滑动各n个点(本例中计算曲率时的参数n取20)后得到的两个点的坐标;这里计算出的曲率c在0到1之间,为正值。注意上式计算出的c实际上是真实曲率的绝对值,因为不管侧影在此处是凸是凹计算出的c都是正的,而实际上,如果侧影在此处是凹的,曲率要设置为负。判断的依据就是将P1和P2点相连,取其中点,如果其中点在侧影的前景上,则侧影在此处是凸的,曲率为正,否则,就需要把计算出的c加上负号,成为负值。
然后我们设置一个阈值(本例采用曲率阈值0.8),轮廓上所有曲率为正且高于该阈值的点被标出并进行简单的非监督聚类,注意由于一般来说被标出的点已经很明显的聚集成几个类,很简单的基于距离的聚类方法就可以了。聚类后,包含点的个数过小的聚类被抛弃,余下的每个聚类的质心作为一个末端节点的位置。
至此只是找出了末端节点的位置,还没有对它们进行标注,即,区分手和脚,区分左和右。我们采用基于时序平滑性和卡尔曼滤波预测的末端节点标注方法。即,由用户手工标注第一帧各个检出的末端节点是什么末端节点,由于人体运动的连续性和平滑性,系统自动根据时序信息,利用卡尔曼滤波预测下一帧中各个末端节点的位置,然后和下一帧实际检出的末端节点位置进行确认,从而渐进的标注其他的帧上检出的末端节点。遇有歧义的情况,则交用户作出决定。
(3)上一步基于曲率的末端节点检测对于头部和脚部效果很好,但是对于双手,其查准率很高但查全率一般,原因在于有时候双手放置于身体主要部分和像机之间,于是在侧影中双手被身体部分所包含无法辨识。我们采用基于动态颜色模型的双手检测来解决这个问题。既然基于曲率的双手检测准确率很高,那么我们根据曲率检测的结果,采集双手处的颜色,在运行时训练一个双手皮肤颜色高斯模型,然后再用该颜色模型去原始的帧图像上寻找遗漏的双手。注意这次基于动态颜色模型的双手检测是在原始的帧图像上进行的,但是搜索范围被限定在侧影所对应的前景内,这样一方面减少了搜索空间,一方面减少了由于背景的颜色带来的潜在的鲁棒性问题。
(4)目标函数以姿态矢量p为自变量,值为p和侧影之间的匹配度E,E越小越好。通过对目标函数的最小化,就可以找出最优的姿态矢量。目标函数通过3个惩罚项来衡量匹配。这三项分别是核心区域惩罚Ecore-area位于姿态p的骨架模型投影到2维平面,经平移和缩放后,四肢应处在侧影的核心区域内。所谓核心区域就是指靠近四肢的轴线的地方,见图5。为了衡量这一点,我们首先对侧影做欧氏距离变换,骨架的四肢应该尽量处于距离变换后值较大的部分。为了量化起见,我们在骨架模型上均匀的采样出一些点,考察这些点经投影变换后位于侧影的距离变换上的距离平均值。这一惩罚可以数学地表达为Ecore-area=-Σms'(t)(point(m)·T(t,p))/M]]>其中s’(t)为当前帧的侧影的距离变换,point(m)为在骨架上均匀采样的第m个点,T(t,p)是和t与p相关的变换矩阵,它将被采样的点的坐标从3维局部坐标系转换到侧影平面上来,M为采样点总数。
末端节点位置惩罚Ecoverage姿态p的骨架模型投影到2维平面,经平移和缩放后,骨架上的头、手、脚末端节点的位置应当和侧影上检测出的末端节点位置尽量接近,即Ecoverage=∑‖ps(i)-pc(p,i)‖/I,对于每个被检出的末端关节点ps(i)为当前帧在侧影上被检测出的第i个末端关节点位置,Pc(p,i)为人体骨架按照姿态p投影到侧影平面后第i个末端关节点的位置,I为当前帧所有被检出的末端关节点的数目。
平滑性惩罚Esmoothness当前帧的姿态p应当保持运动的平滑性。我们利用已经恢复的前两帧来量化平滑性,即Esmoothness=‖p(t-1)-2p+p(t-2)‖其中p(t-1)和p(t-2)分别为当前帧之前的一帧和两帧的姿态矢量。
将上面三项惩罚相加,即得到目标函数E(p)=αEcore-area+βEcoverage+γEsmoothness本实施例中上式的目标函数E(p)的参数取α=0.4,β=0.4,γ=0.2;(5)按照技术方案的描述对视频进行分段,同时进行分段三维恢复。具体来说根据检出的末端节点数量对帧进行分类所有5个末端节点都被检出的帧称为可靠帧,其他的称谓不可靠帧。可靠帧序列组成可靠区域,不可靠帧序列组成不可靠区域。由于运动的连续性,可靠帧和不可靠帧聚集,从而视频被分割成一系列交错的可靠区域和不可靠区域,如图4所示(图中下部用数字标出了一个真实的视频分段后区域分界处的帧号码)。不可靠帧由于其信息不足,重建时时序信息占有更大的比重。而且,由于时序信息的利用,不可靠区域内靠近区域边界的帧由于更靠近可靠帧,被正确重建的可能性较远离区域边界的帧要大一些。我们设定一个阈值1,如果某一不可靠区域长度超过1,则其成为危险区域,危险区域意味着其中心部分的帧的重建可靠度相当低,因此,需要用户手工的为危险区域处于中点的那一帧手工指定各个关节点的位置。这时,这个被手工指定的帧升级为可靠帧,原先的危险区域被分割,视频进行重新分段,直到不再存在危险区域。
分段恢复步骤首先,系统在每个可靠区域中选取一帧作为基准帧,对于每一个基准帧,利用完全的模拟退火算法,不利用任何时序信息(也即目标函数第三项平滑惩罚设为0),寻找最佳匹配的姿态矢量。然后,在每个基准帧周围,渐进的进行3维重建。从每个基准帧出发,重建它所在的可靠区域和包含它的前后两个不可靠区域中的帧。这样,对于每个可靠区域中的帧,有一个重建结果;对于每个不可靠区域中的帧,有两个重建结果p1和p2,对于p1和p2进行混合,取该帧距离前后两个可靠区域的距离的倒数作为权值,得到最终的姿态矢量p。
(6)在后期处理过程中,由于击剑运动存在双脚离地的情况,故需要用户手工调整运动中的根节点在世界坐标系中的位置。
本实施例中,通过以上步骤,获得了一段平滑的连续的击剑运动三维序列。附图6显示了其中的一帧的效果。图上方是原始视频的帧,下方是本方法得到的两个运动员在该帧的三维姿态。
权利要求
1.一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于包括以下步骤(1)基于背景模型和颜色信息,用RGB颜色空间中色品和亮度分离的颜色模型为视频的每帧提取其侧影;(2)在每帧的侧影上根据曲率信息来检测和标注末端关节点,包括头、双手、和双脚的位置;(3)根据已检测出的双手位置处的颜色信息,对双手皮肤颜色进行动态建模,然后利用动态构建出的颜色判别器去加强检测被步骤(2)中曲率检测器遗漏的双手;(4)对每帧,利用其侧影和侧影上检测出的末端节点位置,构造一个自变量为姿态矢量,值为匹配程度的目标函数,目标函数为姿态矢量与侧影和末端节点的匹配程度施加核心区域惩罚、末端关节点惩罚和平滑性惩罚三项惩罚;(5)根据检测出的末端节点的数量对视频进行分段为可靠区域和不可靠区域,然后,对不同区域采取不同的方法,利用模拟退火算法进行三维恢复,获取每帧的三维姿态矢量。
2.根据权利要求1所述的一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于,所述的基于背景模型和颜色信息,用RGB颜色空间中色品和亮度分离的颜色模型为视频的每帧提取其侧影用基于色品和亮度分离的颜色模型为视频的每帧提取侧影;提取侧影的基本思路是逐像素比较当前帧和背景模型的颜色差异,并以此确定各个像素属于前景还是背景;在比较中,使用RGB颜色空间中色品和亮度分离的颜色模型,每个颜色在RGB空间中为一从原点出发的矢量,其色品用该矢量的方向来表征,其亮度用该矢量的长度来表征;于是,比较两个颜色的差异时,不是直接比较它们在RGB三维空间中的距离,而是分别比较它们的色品和亮度,色品和亮度差异的计算式为D1=cos-1(||C1·C2||||C1||·||C2||)---1]]>D2=||||C1||-||C2||||max(||C1||,||C2||)---2]]>其中,C1和C2是RBG空间中待比较的两种颜色从原点出发的矢量;D1是两种颜色的色品差异,D2是两种颜色的亮度差异。在确定某个像素是前景还是背景时,如果该像素的颜色和背景模型上对应像素颜色的D1超过一定阈值,则认为该像素为前景像素,否则,则认为该像素为背景,只是这时如果D2也超过一定阈值,说明该像素为背景的阴影或高光部分。
3.根据权利要求1所述的一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于,所述的在每帧的侧影上根据曲率信息来检测和标注末端关节点,包括头、双手、和双脚的位置提取出侧影后,利用曲率信息在侧影上检测末端关节点的位置;首先计算侧影边缘每一点的曲率,该曲率用该点和它两侧沿侧影边缘滑动各n个点的两个点组成的角度来确定,曲率计算公式为c=((P1-P)·(P2-P)||P1-P||·||P2-P||+1)/2---3]]>其中,P是当前计算曲率的点的坐标,P1和P2是P沿着侧影边缘向两侧滑动各n个点后得到的两个点的坐标;这里计算出的曲率c在0到1之间,为正值,为了反映出侧影在P点的凸凹,还需要判断P1和P2连线中点处是否在侧影前景上,如果否,则需要把c变号为负数作为最终的曲率;侧影边缘上每个点的曲率都计算出之后,将所有曲率大于某一阈值的点标出,然后对标出的点进行聚类,抛弃包含的点过少的类之后,剩下的类的质心就是末端关节点的位置;末端节点的标注方法,采取用户标注首帧,利用时序的平滑性和卡尔曼滤波预测相结合的方法进行后续自动标注。
4.根据权利要求1所述的一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于,所述的根据已检测出的双手位置处的颜色信息,对双手皮肤颜色进行动态建模,然后利用动态构建出的颜色判别器去加强检测被步骤(2)中曲率检测器遗漏的双手利用基于曲率的末端节点检测所检测出的准确但不完全的双手位置,动态的建立双手皮肤颜色高斯模型,然后利用该颜色模型在原始帧图像上进行针对双手的二次检测,检测基于曲率的检测中遗漏的双手。
5.根据权利要求1所述的一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于,所述的对每帧,利用其侧影和侧影上检测出的末端节点位置,构造一个自变量为姿态矢量,值为匹配程度的目标函数,目标函数为姿态矢量与侧影和末端节点的匹配程度施加核心区域惩罚、末端关节点惩罚和平滑性惩罚三项惩罚为每帧构造一个自变量为姿态矢量p,值为姿态矢量和当前帧的侧影及末端节点位置的匹配程度E的目标函数E(p),该函数包含3项惩罚,通过3个惩罚项分别考察以下3项匹配程度一是核心区域惩罚Ecore-area,即关节骨架模型在姿态矢量状态下的的二维投影应当落在该帧侧影的核心区域内,其中核心区域由侧影的欧氏距离变换来强调;二是覆盖度惩罚Ecoverage,即关节骨架模型在姿态矢量状态下的二维投影的末端节点位置应靠近侧影上检测出的相应末端节点;三是平滑性惩罚Esmoothness,即当前姿态矢量应当和前面帧的姿态矢量保持平滑,避免突变,以上三项惩罚项的计算式分别为Ecore-area=-Σms′(t)(point(m)·T(t,p))/M---4]]>核心区域惩罚Ecore-area的计算过程中,在姿态为p的人体骨架上均匀采样一系列的点,上式中,s’(t)为当前帧的侧影的距离变换,point(m)为在骨架上均匀采样的第m个点,p是姿态矢量,T(t,p)是和t与p相关的变换矩阵,它将被采样的点的坐标从三维局部坐标系转换到侧影平面上来,M为采样点总数;Ecoveroge=∑‖ps(i)-pc(p,i)‖/I,对于每个被检出的末端关节点5上式中Ecoverage为覆盖度惩罚,ps(i)为当前帧在侧影上被检测出的第i个末端关节点位置,Pc(p,i)为人体骨架按照姿态p投影到侧影平面后第i个末端关节点的位置,I为当前帧所有被检出的末端关节点的数目;Esmoothness=‖p(t-1)-2p+p(t-2)‖6上式中Esmoothness为平滑性惩罚,p(t-1)和p(t-2)分别为当前帧之前的一帧和两帧的姿态矢量;将上面三项惩罚相加,即得到目标函数E(p)=αEcore-area+βEcoverage+γEsmoothness7
6.根据权利要求1所述的一种基于侧影和末端节点的视频人体三维运动恢复方法,其特征在于,所述的根据检测出的末端节点的数量对视频进行分段为可靠区域和不可靠区域,然后,对不同区域采取不同的方法,利用模拟退火算法进行三维恢复,获取每帧的三维姿态矢量根据检测出的末端节点的数量对每帧分类,即所有5个末端节点都检测出的帧作为可靠帧,其余为非可靠帧,可靠帧和不可靠帧趋向于聚集,于是整个视频被分割为互相交错的可靠区域和不可靠区域,并按如下步骤对每帧的姿态矢量进行三维重建从每个可靠区域中选择一帧作为基准帧;对于基准帧,采用完全模拟退火对目标函数E(p)进行最优化以寻找最佳匹配的姿态矢量p;然后从基准帧出发,依次对前后的帧采用不完全模拟退火进行最优化以寻找姿态矢量,从每个基准帧出发所恢复的帧限于基准帧所在的可靠区域和其前后相岭的两个不可靠区域;对于可靠区域中的帧,上述三维重建获得一个姿态矢量作为该帧的姿态三维重建结果,对于不可靠区域中的帧,每帧获得两个姿态矢量,将这两个姿态矢量按照所在帧距离前后可靠区域边界的距离的倒数为权值进行混合作为该帧的姿态三维重建结果;将每帧姿态3维重建的结果连接,进行后期处理后,形成连贯的3维运动序列。
全文摘要
本发明公开了一种基于侧影和末端节点的视频人体三维运动恢复方法。它采用基于模型的方式,系统内部包含一个3维人体关节骨架模型,方法寻找能够和视频达到最佳符合的关节模型姿态序列。首先从视频中提取各帧的侧影;之后,在侧影上进行末端节点检测;之后,对每帧通过模拟退火算法寻找能够解释该帧侧影和末端节点位置的最佳姿态;最后,将每帧的姿态相连,经过后期处理后形成连贯的3维运动序列。本方法通过设计出一个快速的目标函数,减小了最优化算法的计算量;通过动态双手皮肤颜色建模,使得双手的检测更加精确;通过对视频的分段恢复和算法的自动重启动,解决了误差累积和传递问题,使得恢复过程更加鲁棒。
文档编号G06T15/70GK101075351SQ20061005340
公开日2007年11月21日 申请日期2006年9月14日 优先权日2006年9月14日
发明者庄越挺, 肖俊, 陈成, 吴飞 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1