专利名称:基于多目相机的三维人体运动跟踪的方法
技术领域:
本发明涉及一种电信技术领域的方法,具体是一种基于多目相机的三维人体运 动跟踪的方法。
技术背景三维人体运动跟踪是当前计算机视觉领域研究的一个热点和难点。从视频数据 当中抽取人体骨架模型是一个很有效的监控和跟踪方法。从三维体素数据得到的人 体骨架主要应用领域有监控系统,虚拟现实,高级用户接口,智能环境,娱乐,运动分析,医学,教育等。三维体素英文单词为voxel,是Volume Element两个单 词的縮写,把Voxel叫做"体素",它就相当于二维图像中的"pixel"——"像 素",是三维空间中的基本小方块,包含每个点的X、 Y和Z三个坐标等信息,通 过多目相机来获取三维的人体体素数据来进行姿态估计和人体运动跟踪是一种很新 颖的方法。然而仅仅有了三维人体的体素数据还不能足以解决许多实际问题。通过 多目相机得到的体素数据直接进行重建并对其跟踪,由于相机数量的不同导致结果 参差不齐,数据量总体来说很大,运算速度慢且不易进行数据实时传输和网络发布, 达不到跟踪和监控的效果。人体运动跟踪既有二维人体运动跟踪,也有三维人体运 动跟踪。三维人体运动跟踪相对于二维的要复杂得多。通过体素数据来分析人体运 动已经很普遍,但是通过体素数据来得到准确的人体骨架从而对人体运动进行跟踪 却很少有人涉及。这个工作意义比较特殊,既可以将得到的跟踪结果用于监控系统, 又可以当作中间结果来进行人体姿势和动作的识别,作进一步的研究。总的来说, 人体运动的准确跟踪意义重大,是整个计算机视觉领域的难题。经对现有技术文献的检索发现,Caillette, F.等人于2004年在《Third IEEE and ACM International Symposium on Mixed and Augmented Reality》(IEEE禾口 ACM第
三届关于混合和扩展现实的国际研讨会)上发表的论文"Real-time markerless human body tracking using colored voxels and 3D blobs",(用彩色体素禾口三 维模块实时跟踪无标记的人体)论文中用带有颜色的体素信息来对人体进行跟踪, 该方法需要被跟踪目标和场景有比较好的颜色对比差,这就大大限制了它在工程当 中的应用。 发明内容本发明的目的在于克服现有技术中的不足,提供一种基于多目相机的三维人体 运动跟踪的方法,使其具有稳定性好,快速性好,精度性高,输出文件小,易于保 存和传输的特点。本发明通过对人体运动的跟踪,准确地判断和预测人体的姿态、 动作等,从而可以让计算机进行自行分析和判断,在一个监控系统当中,可以将此 信息实时地传送到监控终端,从而可以实时发现异常情况并及时采取相应措施。本发明是通过以下技术方案实现的,包括以下步骤第一,提取人体表面的体素数据点,对体素数据进行处理,得到最外层的点;第二,在抽取骨架对人体运动进行跟踪之前构建一个标准的三维人体骨架模型,用于在跟踪的过程当中对其进行动态的姿势调整,以实现它和原始三维图像的拟合; 第三,构建人体骨架抽取方法,根据在三维人体骨架模型中每段骨头套筒内的体素点个数是否为最大调整骨架模型姿态;第四,构建最优匹配骨架的实现方法,通过改变三维人体骨架模型中根节点的空间位置和每段骨头绕其父节点的旋转角度来判断当前人体骨架姿态是否已经达到跟踪要求。所述提取人体表面的体素数据点,对体素数据进行处理,得到最外层的点,是 指采用16个摄像机得到三维人体体素数据之后,为了减小数据、提升处理速度, 把人体最外面的体素寻找出来。有了三维体素数据,把所有体素都用计算机显示出 来就可以得到三维图像。为了得到三维图像最外层的点,本发明设计了 3X3X3的 图像模板。其中3X3X3是指在三维空间中每个体素(包括它本身)的前、后、左、 右、上、下六个方向组成立方体模板的共计27个点。不同于二维图像,这个模板是何一个体素,对上、下、左、右、前、后和它欧式距离小于或者 等于VJ的点全部算作是该点的邻域点,共计26个。在判断过程当中判断该点的邻 域点是否有背景点,若有则为最外层点。所述构建一个标准的三维人体骨架模型,是指在进行骨架抽取对人体运动进 行跟踪之前,设计一个标准的三维人体骨架模型。在这个骨架模型当中,定义若干 个节点,定义一个根节点,控制整个骨架的空间旋转和空间平移。每一个节点定义 一个父节点,每段骨架都绕着它的父节点在局部坐标系内做旋转和平移,最后可以 得出每个节点相对于根节点的空间位置的改变,从而可以确定每个节点在三维空间 的坐标,进而确定每帧的骨架姿势。对于每段骨头,它有若干参数来确定,例如ID 号、父节点、长度等。每根骨头定义唯一的ID号,通过ID号可以将当前节点和父 节点连接起来;每段骨头的长度均不相同,可以通过设定或者机器学习来获得。所述构建人体骨架抽取方法,是指通过人体模型和骨架观测特征的匹配程度 来判断人体运动跟踪的效果。通过前帧的跟踪结果并利用此帧根节点的空间位置和 各段骨头绕其父节点的旋转角度参数来跟踪下帧的人体运动。第一帧的参数通过人 机交互或者机器学习来获取。由于人体运动的渐变性,前后两帧参数变化通常在一 定范围内,这个范围可以根据常识人为指定。采取了一个简单却又行之有效的方法: 给每段骨头套一个圆筒,计算在套筒内的体素点的个数,只要它达到最大并且得到 的骨架在人体表层点以内,则停止计算,认为这个骨架姿势是最优骨架姿势,达到 了通过骨架姿势来跟踪人体运动的目的。所述构建最优匹配骨架的实现方法,是指为使人体骨架和每帧的三维体素达 到最佳匹配,确定每帧骨架的每个节点确切的空间位置,从而必须得到控制整个骨 架平移和旋转的根节点的三维坐标。在得到第一帧三维人体骨架之后,下一帧骨架 姿态以前一帧骨架作为基准进行调整。改变每帧骨架姿势的参数主要是每根骨头绕 它父节点所在局部坐标系分别绕X、 Y、 Z坐标轴做旋转变换,在这个变换的过程当 中采用概率遗传算法来对每根骨头绕其父节点的角度进行迭代,直到得到的人体骨 架在人体以内且能够代表人体姿态为止。其中每段骨头有个局部最优值,所有的骨
头都达到局部最优值时整个骨架姿势达到最优,对本帧的跟踪结束,进入下一帧的 跟踪,直到最后一帧结束为止。与现有技术相比,本发明简单有效,它的关键在于在已有的人体体素数据的基 础上迅速的得到人体的三维骨架,从而可以很清楚地判断人体的运动姿势以对人体 运动进行跟踪。利用本发明进行人体运动跟踪,既可以作为结果来利用,又可以作 为下一步的模式识别的中间结果。由于每帧人体骨架文件的数据量小(小于1K), 而每帧三维图像文件的大小很大(5M以上),所以得到的人体骨架文件可以太大节 省存储空间、节省网络当中的传输时间和传输成本,特别适用于监控系统当中,同 时也可以应用于计算机动画,游戏,虚拟现实等领域。
图1为本发明实施例相机和物体的空间位置示意图 图2为本发明实施例3X3X3图像模板示意3为本发明实施例三维人体体素图像组图,其中从左到右每张图像名称分 别为第15帧,第45帧,第75帧,第105帧,第135帧,第165帧。 图4为本发明实施例标准骨架模型图 图5为本发明实施例骨架套筒示意图 图6为本发明实施例结果组图(仅骨架)其中从左到右每张图像名称分别为第15帧,第45帧,第75帧,第105帧, 第135帧,第165帧。图7实施例结果组图(骨架和体素)其中从左到右每张图像名称分别为第15帧,第45帧,第75帧,第105帧, 第135帧,第165帧。
具体实施方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案为 前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述 的实施例。
1. 提取人体表面体素。如图1所示,在一个场景当中布置16个摄像机,图中 相机为上下两层,通过各个相机得到人体的二维图像并通过这些图像来构建三维图 像,组成三维图像的每个基元就是体素。为了减少计算机的计算开支,提高整个方 法处理速度,降低处理时间,采用如图2所示的3X3X3模板对每帧的数据点进行 处理,图中实心圆圈代表当前所要检测的体素,空心圆圈代表它周围的共计26个相 邻体素。整个视频共计191帧,如图3所示的最外层体素所组成的图像为从第15 帧开始隔30帧取一帧的图像。为了更加清晰地显示实施结果,本实施例采用了隔十 个点取一个点的方式显示原始数据。具体步骤如下(1) 先对每帧三维体素数据进行一次完整扫描,分别找出X、 Y、 Z方向的点的 坐标的最大值和最小值。(2) 根据求出的最大值和最小值,每个方向的最大值相减分别得到M、 N、 P, 建立一个MXNXP维的三维网格空间,有体素的地方置l,否则置O。(3) 禾U用3X3X3模板对每帧体素进行处理,将非最外层的点的值由1置0, 从而得到目标点。2. 构建标准人体骨架模型(1) 确定人体骨架基本信息。如图4所示为本发明实施例的标准骨架,它由若 干根骨头组成,每根骨头的长度根据不同的人分别确定不同的长度,标注好每段骨 架的ID号,确定好节点之间的相互关系。(2) 在这个标准骨架模型当中,定义若干个节点。其中根节点控制着整个骨架 在世界坐标系的空间旋转和空间平移。每段骨架都绕着它的父节点在局部坐标系内 做旋转和平移,最后可以得到每个节点相对于根节点的空间位置的改变。对于绕与 坐标轴不重合的轴进行旋转的变换矩阵,利用平移和坐标轴旋转复合而得到。针对 一般三维旋转情况平移骨架使其与平行于该骨架的一个坐标轴重合;对于该轴完 成指定的旋转;平移对象将骨架移回到原来的位置。每段骨头都可以绕父节点的平 移和旋转来完成姿态的调整,从而达到跟踪的目的。3. 构建人体骨架抽取方法
在人体模型和骨架观测特征的匹配程度的过程中,通过前帧的跟踪结果并利用 此帧根节点的空间位置和各段骨头绕其父节点的旋转角度这些参数来跟踪下帧的人 体运动。第一帧的参数通过人机交互或者机器学习来获取。通过概率遗传算法,设 置好种群规模数和迭代次数这两个参数后,以前帧的骨架作为后帧体素数据的参考, 进行运算,可以快速地得到下一帧的骨架,从而对人体运动进行跟踪。如图5所示, 给每段骨头套一个圆筒,假设人体骨架总共有N根骨架,则要给骨架套N个圆筒, 并计算每段骨架圆筒内的体素点的个数,定义的骨架观测函数如下<formula>formula see original document page 10</formula>K表示定义的骨头数目,N表示Voxel数据中点的数量, s = , s表示整个骨架,s,表示骨头,U(s,)表示骨架圆筒内的空间。在进行优化的过程中,当在筒内的三维点的数目最大时就认为此时跟踪效果最 佳。第t帧的跟踪等价于在所有骨架参数的可行域内寻找使骨架效果最佳的骨架参 数,由于参数s维数较高且骨架观测函数的地形曲面通常多峰且含有很多局部极值, 传统优化算法难以找到全局最优点,故利用概率遗传算法对骨架观测函数进行优化 以达到跟踪的目的。4.构建最优匹配骨架的实现方法确定每帧骨架的每个节点的确切的空间位置,根节点的空间三维坐标可以通过 手动或者机器学习得到。运用概率遗传算法并且结合三维人体运动分析,对每段骨 头父节点所在坐标系的三个坐标轴的旋转角度进行复合位编码,步骤如下1) 对人体骨架进行分析,结合人的实际关节运动的极限确定所要进行复合位编 码的个体的个数,这样可以在不影响结果情况下提升处理速度,节约时间;2) 对每根骨头所必须要用到的参数(角度)进行复合位编码;3) 确定种群规模数和迭代次数,种群规模数越高,迭代次数越多,人体骨架姿 势和原始三维图像就越匹配;4) 产生初始种群(各根骨头绕相应的父节点的旋转角度的集合)并对其进行观 测,利用骨架观测函数来观测在圆筒里的体素的个数;5) 若此数量在迭代过程当中先增长再趋于平稳,则转步骤6);若一直增长则需 要产生新种群,回到上一步骤;6) 迭代结束。上述实施例结果如图6和图7所示图6中从左到右每帧图像对应图3中从左 到右每帧图像,为得到的跟踪骨架,图7中从左到右每帧图像也对应图3中从左到 右每帧图像,但它也同时显示得到的跟踪骨架。在实施过程中拍摄的是一个人在一 个三维空间内的基本运动,包括正常的走路,伸手,拐弯等基本姿势。每帧图像包 括大概45000个三维点。实施结果表明,在不用体素颜色信息的情况下不仅能够很 好的得到骨架信息,而且节省了因为使用这个而增加的额外计算开销。从每帧体素 数据得到该帧骨架数据需要大概l分钟的时间,基本达到实时要求,大大优于用其 它方法。从而可以看出本发明得到的骨架全部都在人体以内并且能够100%的反应 此刻人体的运动姿势,能够对下一步的动作识别,数据传输起到关键性的作用。
权利要求
1、一种基于多目相机的三维人体运动跟踪的方法,其特征在于,包括以下步骤第一,提取人体表面的体素数据点,对体素数据进行处理,得到最外层的点;第二,在进行骨架抽取对人体运动进行跟踪之前构建一个标准的三维人体骨架模型,用于在跟踪的过程当中对其进行动态的姿势调整,以实现它和原始三维图像的拟合;第三,构建人体骨架抽取方法,根据在三维人体骨架模型中每段骨头套筒内的体素点个数是否为最大调整骨架模型姿态;第四,构建最优匹配骨架的实现方法,通过改变三维人体骨架模型中根节点的空间位置和每段骨头绕其父节点的旋转角度来判断当前人体骨架姿态是否已经达到跟踪要求。
2、 根据权利要求1所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述提取人体表面的体素数据点,对体素数据进行处理,得到最外层的点,是 指通过16个摄像机得到三维人体体素数据并用计算机显示得到三维图像,然后 采用3X3X3的图像模板得到三维图像最外层的点,其中3X3X3是指在三维空间 中每个体素、包括它本身的前、后、左、右、上、下六个方向组成立方体模板的共 计27个点,这个模板是26连通域,对于任何一个体素,对上、下、左、右、前、 后和它欧式距离小于或者等于V^的点全部算作是该点的邻域点,共计26个,在判 断过程当中判断该点的邻域点是否有背景点,若有则为最外层点。
3、 根据权利要求2所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述构建一个标准的三维人体骨架模型,是指在三维人体骨架模型当中,定 义若干个节点和一个根节点,控制整个骨架的空间旋转和空间平移,每一个节点定 义一个父节点,每段骨架都绕着它的父节点在局部坐标系内做旋转和平移,最后得 出每个节点相对于根节点的空间位置的改变,从而确定每个节点在三维空间的坐标,进而确定每帧的骨架姿势。
4、 根据权利要求3所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述每段骨头,它有若干参数来确定,包括ID号、父节点、长度,每根骨头 定义唯一的ID号,通过ID号将当前节点和父节点连接起来,每段骨头的长度均不 相同,通过设定或者机器学习来获得。
5、 根据权利要求4所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述每段骨架都绕着它的父节点在局部坐标系内做旋转和平移,其中对于绕 与坐标轴不重合的轴进行旋转的变换矩阵,利用平移和坐标轴旋转复合而得到;旋 转和平移情况包括平移骨架使其与平行于该骨架的一个坐标轴重合、对于该轴完 成指定的旋转、以及平移对象将骨架移回到原来的位置。
6、 根据权利要求1所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述构建人体骨架抽取方法,是指根据人体模型和骨架观测特征的匹配程度 来判断人体运动跟踪的效果,通过前帧的跟踪结果并利用此帧根节点的空间位置和 各段骨头绕其父节点的旋转角度参数来跟踪下帧的人体运动,第一帧的参数通过人 机交互或者机器学习来获取,前后两帧参数变化范围采用以下方法确定给每段骨 头套一个圆筒,计算在套筒内的体素点的个数,只要它达到最大并且得到的骨架在人体表层点以内,则停止计算,认为这个骨架姿势是最优骨架姿势,达到了通过骨 架姿势来跟踪人体运动的目的。
7、 根据权利要求1所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述构建最优匹配骨架的实现方法,是指在得到第一帧三维人体骨架之后, 下一帧骨架姿态以前一帧骨架作为基准进行调整,改变每帧骨架姿势的参数即每根 骨头绕它父节点所在局部坐标系分别绕X、 Y、 Z坐标轴做旋转变换,在这个变换的过程当中采用概率遗传算法来对每根骨头绕其父节点的角度进行迭代,直到得到的 人体骨架在人体以内且能够代表人体姿态为止,其中每段骨头有个局部最优值,所 有的骨头都达到局部最优值时整个骨架姿势达到最优,对本帧的跟踪结束,进入下 一帧的跟踪,直到最后一帧结束为止。
8、 根据权利要求1或6所述的基于多目相机的三维人体运动跟踪的方法,其特征是,所述构建最优匹配骨架的实现方法,具体为先确定每帧骨架的每个节点 的确切的空间位置,根节点的空间三维坐标通过手动或者机器学习得到,然后运用 概率遗传算法对每段骨头父节点所在坐标系的三个坐标轴的旋转角度进行复合位 编码1) 结合人的实际关节运动的极限确定所要进行复合位编码的个体的个数;2) 对每根骨头所要用到的参数即每段骨头父节点所在坐标系的三个坐标轴的 旋转角度进行复合位编码;3) 确定种群规模数和迭代次数,种群规模数越高,迭代次数越多,人体骨架姿 势和原始三维图像就越匹配;4) 产生初始种群即各根骨头绕相应的父节点的旋转角度的集合,并对其进行观 测,利用骨架观测函数来观测在圆筒里的体素的个数;5) 若此数量在迭代过程当中先增长再趋于平稳,则转步骤6);若一直增长则需 要产生新种群,回到上一步骤;6) 迭代结束。
9、根据权利要求8所述的基于多目相机的三维人体运动跟踪的方法,其特征 是,所述骨架观测函数,具体如下<formula>formula see original document page 4</formula>K表示定义的骨头数目,N表示Voxel数据中点的数量, s-h,^,...,^] , s表示整个骨架,s,表示骨头,UU,)表示骨架圆筒内的空间。
全文摘要
一种计算机视觉技术领域的基于多目相机的三维人体运动跟踪的方法,步骤为第一,提取人体表面的体素数据点,对体素数据进行处理,得到最外层的点;第二,在进行骨架抽取对人体运动进行跟踪之前构建一个标准的三维人体骨架模型,用于在跟踪的过程当中对其进行动态的姿势调整,以实现它和原始三维图像拟合;第三,构建人体骨架观测方法,根据在每段骨头套筒内的体素点个数是否为最大调整骨架模型姿态;第四,构建最优匹配骨架的实现方法,通过改变根节点的空间位置和每段骨头绕其父节点的旋转角度来判断当前人体骨架姿态是否已经达到跟踪要求。本发明在已有的人体体素数据的基础上迅速的得到人体的三维骨架,从而对人体运动进行跟踪。
文档编号G06T7/00GK101154289SQ200710044219
公开日2008年4月2日 申请日期2007年7月26日 优先权日2007年7月26日
发明者刘允才, 申抒含, 邓浩龙 申请人:上海交通大学