本发明涉及一种对真实人体的三维扫描模型的切面轮廓所形成的特征曲线进行自动分类的方法。
背景技术:
扫描仪技术的成熟使得大量真实人体体型扫描成为可能。在获取或建立了三维人体数据库之后,需要对人体的切面轮廓所形成的特征曲线进行分类识别,用于不同的体型分析领域。
技术实现要素:
本发明的目的是提供一种通用的人体切面轮廓特征曲线(包括水平切面和矢状切面)自动分类方法。
为了达到上述目的,本发明的技术方案是提供了一种通用型人体特征曲线自动分类方法,其特征在于,包括以下步骤:
步骤1、获取水平切面的人体特征曲线以及矢状切面的人体特征曲线;
步骤2、对于步骤1获得的人体特征曲线,采纳其坐标平面上的极小坐标点作为起始点,采用椭圆傅里叶描述,其中:
对于xoy平面上的特征曲线,其椭圆傅里叶描述为:
式中,a0、c0分别为人体特征曲线中心点的x、y坐标;n为谐波次数,n为最大谐波次数;t为人体特征曲线的起点到任意采样点之间的弧长;t为函数的周期,是人体特征曲线周长;an、bn为x轴方向椭圆系数;cn、dn为y轴方向椭圆系数;
由上述公式得到椭圆傅里叶系数,即xoy平面上的特征曲线的椭圆傅里叶描述子以行向量的形式(a0,b0,c0,d0,a1,b1,c1,d1,……,an,bn,cn,dn)来描述;
对于xoz平面上的特征曲线,其椭圆傅里叶描述为:
式中,e0为人体特征曲线中心点的z坐标;en、fn为z轴方向椭圆系数;
由上述公式得到椭圆傅里叶系数,即xoz平面上的特征曲线的椭圆傅里叶描述子以行向量的形式(a0,b0,e0,f0,a1,b1,e1,f1,……,an,bn,en,fn)来描述;
在建立了人体特征曲线的椭圆傅里叶描述之后,令最大谐波次数n=20即可得到符合各种特征曲线的拟合效果;
步骤3、对扫描人体数据库中m个样本的xoy平面上的人体特征曲线进行椭圆傅里叶描述,可得到m个椭圆傅里叶描绘子,将其构造为矩阵efds:
采用相同方法得到矢状切面的人体特征曲线的k个主成分;
步骤4、通过不同聚类个数下类内误差函数曲线的走势来选择最佳聚类个数,设误差函数wk的计算公式为:
式中,dr为第r个类内所有样本对间距离之和,r为聚类个数,nr为第r个类内所有样本的总数目,对于给定的数据集
步骤4.1、从数据集x中随机选择一个聚类中心s1;
步骤4.2、对于每个样本x,计算其与最近聚类中心的欧式距离d(x);
步骤4.3、选择一个新的聚类中心si,使得如下概率最大化:
步骤4.4、重复步骤4.2与步骤4.3,直到聚类中心的个数等于r;
步骤5、采用传统的k-means聚类方法最小化目标函数jk
式中,ck为第k个聚类中心,n为每个类中的样本个数。
优选地,在所述步骤1中,水平切面的人体特征曲线通过以下方法获取:
选取一个平面平行于xoz平面,移至人体特征点部位,形成一个特征平面,该特征平面与人体网格模型形成一条闭合曲线,即为水平切面的人体特征曲线。
优选地,在所述步骤1中,矢状切面的人体特征曲线通过以下方法获取:
选取一个平面平行于yoz平面,移动到过人体肚脐点位置,根据人体站立情况微调平面位置,使得选取平面与人体中心线位置重合,该平面和人体网格模型的交线即为所需的矢状切面的人体特征曲线。
优选地,所述an、bn的计算公式为:
所述cn、dn的计算公式为:
所述en、fn的计算公式为:
式中,k为人体特征曲线采样点的总数;δxp为人体特征曲线上的采样点p到采样点p+1的距离在x轴方向的位移;δtp为人体特征曲线上的采样点p到采样点p+1的距离,
优选地,所述a0、c0、e0的计算公式为:
式中,
本发明给出了一种通用的人体切面轮廓特征曲线(包括水平切面和矢状切面)自动分类方法,能够有效地从特征曲线的中提取聚类信息,从而完成自动分类。
附图说明
图1为类内误差与聚类个数之间的关系示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明提供了一种通用型人体特征曲线自动分类方法,包括以下步骤:
步骤1、获取水平切面的人体特征曲线以及矢状切面的人体特征曲线;
水平切面的人体特征曲线通过以下方法获取:
选取一个平面平行于xoz平面,移至人体特征点部位,形成一个特征平面,该特征平面与人体网格模型形成一条闭合曲线,即为水平切面的人体特征曲线。
矢状切面的人体特征曲线通过以下方法获取:
选取一个平面平行于yoz平面,移动到过人体肚脐点位置,根据人体站立情况微调平面位置,使得选取平面与人体中心线位置重合,该平面和人体网格模型的交线即为所需的矢状切面的人体特征曲线。
步骤2、对于步骤1获得的人体特征曲线,采纳其坐标平面上的极小坐标点作为起始点,采用椭圆傅里叶描述,其中:
对于xoy平面上的特征曲线,其椭圆傅里叶描述为:
式中,a0、c0分别为人体特征曲线中心点的x、y坐标;n为谐波次数,n为最大谐波次数;t为人体特征曲线的起点到任意采样点之间的弧长;t为函数的周期,是人体特征曲线周长;an、bn为x轴方向椭圆系数;cn、dn为y轴方向椭圆系数;
由上述公式得到椭圆傅里叶系数,即xoy平面上的特征曲线的椭圆傅里叶描述子以行向量的形式(a0,b0,c0,d0,a1,b1,c1,d1,……,an,bn,cn,dn)来描述;
对于xoz平面上的特征曲线,其椭圆傅里叶描述为:
式中,e0为人体特征曲线中心点的z坐标;en、fn为z轴方向椭圆系数;
由上述公式得到椭圆傅里叶系数,即xoz平面上的特征曲线的椭圆傅里叶描述子以行向量的形式(a0,b0,e0,f0,a1,b1,e1,f1,……,an,bn,en,fn)来描述;
an、bn的计算公式为:
所述cn、dn的计算公式为:
所述en、fn的计算公式为:
式中,k为人体特征曲线采样点的总数;δxp为人体特征曲线上的采样点p到采样点p+1的距离在x轴方向的位移;δtp为人体特征曲线上的采样点p到采样点p+1的距离,
a0、c0、e0的计算公式为:
式中,
在建立了人体特征曲线的椭圆傅里叶描述之后,令最大谐波次数n=20即可得到符合各种特征曲线的拟合效果;
步骤3、对扫描人体数据库中m个样本的xoy平面上的人体特征曲线进行椭圆傅里叶描述,可得到m个椭圆傅里叶描绘子,将其构造为矩阵efds:
采用相同方法得到矢状切面的人体特征曲线的k个主成分;
步骤4、通过不同聚类个数下类内误差函数曲线的走势来选择最佳聚类个数,设误差函数wk的计算公式为:
式中,dr为第r个类内所有样本对间距离之和,r为聚类个数,nr为第r个类内所有样本的总数目,对于给定的数据集
步骤4.1、从数据集x中随机选择一个聚类中心s1;
步骤4.2、对于每个样本x,计算其与最近聚类中心的欧式距离d(x);
步骤4.3、选择一个新的聚类中心si,使得如下概率最大化:
步骤4.4、重复步骤4.2与步骤4.3,直到聚类中心的个数等于r;
步骤5、采用传统的k-means聚类方法最小化目标函数jk
式中,ck为第k个聚类中心,n为每个类中的样本个数。
在具体的实施过程中,对未知的聚类中心个数r采用逐个试验的方案,从r=1一直试验到r=16,得到不同聚类个数下的wk值,做出如图1所示的走势图,根据图中的圆圈所标识的拐点位置,就可以得到最佳聚类个数。