刘晓云 孙运强 姚爱琴
【摘要】本文采用了人体骨架模型的方法,通过距离变换的算法对人体进行了骨架特征提取,同时用腐蚀和还原的算法对骨架的细小分支进行剔除,保留了骨架的主要特征,取得了较好的效果。
【关键词】特征提取;骨架;腐蚀和还原
Human recognition based on skeleton
Key laboratory of dynamic testing instrument science and the ministry of education,North University of China Liu xiao-yun Sun Yun-qiang Yao Ai-qin
Abstract:This paper uses the method of human skeleton model,through the distance transform algorithm to the feature extraction of skeleton the human body,small branches at the same time with corrosion and reduction algorithm on the skeleton are removed,retained the main characteristics of the skeleton,and achieved good results.
Key words:Feature extraction;skeleton;Corrosion and reduction
引言
人体步态识别作为一种新兴的生物特征识别技术,受到越来越多的关注。步态特征主要反映人行走的姿势,与人脸、指纹、虹膜等其他生物特征相比,具有在远距离、非接触和低质量视频的状态下进行人身份鉴别的优点。相对于包含各种噪声和误差的人体步态,骨架成为能够表述人体步态的重要信息,它由一些理想的细线组成,可以有效地反应出原物体形状的连通性或者拓扑结构,因此,骨架能作为人体特征识别、运动人体的实时追踪的一种有效方法。本文就是采用骨架作为人体的主要特征来进行人体识别。
1.人体识别系统
步态识别大体分为三个步骤,第一步进行目标分割,第二步特征提取,第三步特征识别。流程图如图1所示。
图1 步态识别流程图
2.步态序列预处理
预处理的主要内容有:首先提取步态视屏中的步态单帧图像(如图2所示),采用混合高斯模型提取前景图像,混合高斯背景建模是通过多个高斯分布函数来描述背景图像中的像素颜色,实现前景与背景的分割及运动跟踪(如图3所示)。再利用当前人体步态图像与背景图像进行差分来实现运动目标检测,从而将运动的人体从背景中分离出来,经过二值化后的图像有许多小的噪声(如图4所示),在人体区域内部也有小的缝隙,我们用形态学滤波的方法来消除噪声,使图像更平滑(如图5所示)。最后为了精确定位边缘,将噪声降到最低,采用Canny边缘检测法来提取人体轮廓(如图6所示)。
3.骨架的特征提取
3.1 骨架模型
骨架,也称中轴。20世纪60年代,Blum提出一种是中轴变换或焚烧草地技术(如图7所示),假设图像边界上所有点同时点燃,火焰以相同速度向图像内部燃烧,当波前相遇时,火焰熄灭,所有熄灭处点的集合就构成了中轴(即骨架)。他还提出了另一种最大圆盘法(如图8所示),骨架是所有最大圆盘圆心的集合,设A为图像B中的一个内切圆盘,即至少有两点与图像边界相切,如果A是图像B内部任何其它圆盘的子集,则称为最大圆盘[1]。
目前骨架提取算法有以下几类,第一种是细化算法[2],通过迭代移除物体边界点和内部点,直到只剩余骨架为止。这种方法那能较好的保留原有物体的拓扑结构,但对噪声敏感,不能准确定位骨架位置。第二种是基于V 氏图表的离散区域算法,确定包含许多边形的最大圆盘的中心点位置,多边形的顶点来自于对边界的采样,提取骨架的准确度随采样点的增多而增高,但计算发杂、时间长且对噪声敏感。第三种是基于形态学骨架提取的,这种方法能准确提取骨架,但无法保证骨架的连通性。第四种是在边界点的距离变换中检测脊背,这种方法可以准确定骨架位置。本文采用的就是基于距离变换的骨架提取方法。
图7 烧草模型 图8 最大球模型
3.2 基于距离变换的骨架的提取
假设人体轮廓边界是二维平面内的一个闭合曲线,用符号C表示。轮廓内点的集合用符号F表示。轮廓内的任意点P,相对于轮廓边界的距离变换K为:
其中d(p,v)代表这两点之间的欧式距离。对于轮廓内的任意点p,,若r(p)表示轮廓边缘上距离最近的点,则:。
根据文献[3]提出的裁定点方法,R(p)所对应的裁定点集合可定义为:R(p)是轮廓边界C的一个子集,即:轮廓边界部分点组成的集合。该集合中的任意点如果不是轮廓边缘距离最近的点,则是轮廓边缘上距离p的8领域点最近的点。则R(p)可以表示为:
其中表示8领域范围内p的相邻点集合,,函数表示集合内的元素个数。
轮廓内的任意点p,若表示表示内的任意点,则满足
的点P是物体的一个骨架点,其中,和分别是点的坐标。
按照此方法提取的骨架中都是连通的,不会存在孤立的骨架点,如图9所示即为此方法提取的骨架。
图9 提取的人体骨架
3.3 骨架的腐蚀与还原
骨架的腐蚀与还原操作主要针对骨架末梢点(End Point),即只存在一个相邻骨架点的骨架点。假设P点是“单象素”的骨架末梢点,那么至少存在一个相邻的骨架点Q在它的8邻域内。如果Q点处于P点的4邻域方向,那么在Q点与P点的邻域交集区域(即:图4.13所示的灰色区域)最多能够出现2个与Q点相邻的点。如果Q点处于P点的对角方向,那么在Q点与P点的邻域交集区域将不可能存在任何的骨架点。
根据以上定义,离散情况下的骨架末梢点可以用以下邻域系数集来表示:
满足ESP的骨架点都被看做是骨架末梢点。骨架腐蚀的基本思想就是不断地去除骨架上现有的末梢点,具体如下:(1)设迭代次数为n,计算骨架各点的邻域系数,找出满足EPS的骨架末梢点;(2)去除骨架所有末梢点,并记录去除点位置;(3)更新所去除末梢点的相邻骨架点的邻域系数;(4)参数n++,如果n==N(腐蚀度),开始骨架还原操作;否则返回步骤(2)继续进行腐蚀操作。
骨架的还原与腐蚀相反,在每次腐蚀迭代过程中都记录了所删除的末梢点,设删除的所有末梢点用数组DE表示,而DE(K)表示第k次迭代所删除的末梢点集合。骨架还原步骤如下:(1)设k为腐蚀度大小,即:k=N;(2)在DE(k)所含骨架点中找出与现有骨架末梢点满足EPS的点,再将这些点还原到骨架中,即构成了新的骨架末梢点;(3)参数k--,如果k==0,则还原过程结束;否则返回步骤(2)继续进行还原操作[4]。
骨架中任何长度小于腐蚀度的骨架枝在骨架还原之后都将消失,且通过设置腐蚀度大小,还可以去除掉任何长度小于腐蚀度的骨架枝。如图10所示即为腐蚀还原后的骨架。
图10 腐蚀和还原后的骨架
4.结论
本文提出了一种针对室内步态轮廓的基于骨架模型的步态识别算法。人体骨架的主要特征分两步被提取出来:第一步采用基于距离变换的算法来提取人体初始骨架。该方法能准确找出骨架位置。第二步用骨架的腐蚀与还原算法,通过设置适当的腐蚀度阈值来去除骨架细小多余的枝干。分类识别采用支持向量机的方法[5]。实验结果表明,通过本章方法所提取的骨架能够适应室内环境的骨架精确度要求,该骨架模型在CASIA 的步态数据库上取得了令人满意的识别效果。
参考文献
[1]肖雪.基于视频序列的人体骨架提取与三维重建[D].大连理工大学,2009.
[2]Y.Y.Zhang and P.S.P.Wang,A parallel thinning algorithm with two-subiteration that generates one-pixel-wide skeletons[C].ICPR,pp:457-461,1996.
[3]Dacheng Tao,Xuelong Li,X.D.Wu,S.J.Mayballk.Elapsed Time in Human GaitRecognition:a New Approach[C].ICASSP,IEEE International Conference on Acoustics,Speech and Signal Processing,2006:177.
[4]胡荣.人体步态识别研究[D].华中科技大学,2010.
[5]王青力.基于支持向量机的步态识别.[D].华侨大学,2006.