三维人体模型的全自动测量方法转让专利

申请号 : CN200910194538.X

文献号 : CN101639349B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟跃崎

申请人 : 东华大学

摘要 :

本发明提供了一种三维人体模型的全自动测量方法,其特征在于,具体步骤为:将人体进行三维人体扫描得到以三角形组成的三维人体模型;人体标志点的自动寻找与人体的自动分段;以及人体尺寸的自动测量。本发明的主要优点在于能够在无需人工干预的情况下,全自动地对三维扫描人体模型进行标识和测量,大大加快了三维人体数据的测量速度,同时具有较高的测量精度。

权利要求 :

1.一种三维人体模型的全自动测量方法,其特征在于,具体步骤为:第一步:将人体进行三维人体扫描得到以三角形组成的三维人体模型,其三角形密度为15000个/人,令三维人体模型的身高方向为Y轴,宽度方向为X轴,厚度方向为Z轴;

第二步:人体标志点的自动寻找与人体的自动分段:步骤2.1、裆底点的自动寻找:

若三维人体模型的大腿根部未出现接触,其裆底点的自动寻找方法如下:令人体的身高为8h,对于亚裔人体而言,在2.8h处以平行于XZ平面的一个截面去切三维人体模型,将所得交点按照+X方向有序排列,比较相邻两点间的距离,将距离最大的两个邻点记录下来,分别为Pl和Pr,取其中点Po,过Po以平行于YZ平面的一个截面去切三维人体模型,得到三维人体模型的纵切面轮廓,该轮廓线上Y值最小点即为裆底点C;对于欧裔人体而言,在3.0h处以平行于XZ平面的一个截面去切人体,然后按照上述方法自动寻找人体的裆底点C;

若三维人体模型的大腿根部出现接触,其裆底点的自动寻找方法如下:令人体的身高为8h,从2.8h到4.0h处,等分为20份,以一个宽度为h的折线段向人体的-Z方向依次投射,即对于第i次投射而言,其Yi=2.8h+i(1.2h/20);该折线段分为n个点,n=50,它们与人体的交点依次连接后形成的投影线段分为没有峰值出现、出现单峰值以及出现双峰值三种情况,其裆底点C存在于第i次投影出现双峰,而第i+1次投影出现单峰的情况,此时,其裆底点C为第i次投影线段的中点,即C=(P1+P2)/2;

步骤2.2、左右肩点的自动寻找:

左右肩点分为左右上肩点和左右腋窝点共四个标志点,其中左右上肩点即为测量肩宽时两肩最远点,其自动寻找方法如下:

构造点A的坐标为:xa=Cx+1.5h,ya=Ymax-h,za=Cz,其中Cx和Cz为裆底点C的X轴坐标值和Z轴坐标值,Ymax为人体Y轴坐标最大值,即人体的身高,距离人体头顶h到1.5h之间,寻找与A点距离最短的点Oa,以过该点且平行于XZ平面的一个截面去切三维人体模型,得到肩部轮廓线,轮廓线中具有最大X轴坐标值xmax和最小X轴坐标值xmin的两个点即为左右肩点Ql-acromion和Qr-acromion;

左腋窝点Ql-armpit的三维坐标计算如下:xl_armpit=0.83xl_acromion;yl_armpit=yl_acromion-0.9h;zl_armpit=zl_acromion;其中xl_armpit,yl_armpit,zl_armpit分别为左腋窝点Ql-armpit的三维坐标;xl_acromion,yl_acromion,zl_acromion分别为左上肩点Ql-acromion的三维坐标;

右腋窝点Qr-armpit的三维坐标计算如下:xr_armpit=0.83xr_acromion;yr_armpit=yr_acromion-0.9h;zr_armpit=zr_acromion;其中xr_armpit,yt_armpit,zr_armpit分别为右腋窝点Qr-armpit的三维坐标;xr_acromion,yr_acromion,zr_acromion分别为右上肩点Qr-acromion的三维坐标;

步骤2.3、颈部标志点的自动寻找:

颈部标志点有4个,分别为左右颈窝点和前后颈中点,其自动定位方法如下:三维人体模型自Qa向上0.5h的区域内,计算任意两个相邻三角形间的夹角余弦如下:cosθ=na·nb,其中,na和nb分别为这两个相邻三角形的法向矢量,左颈窝点Nl_neck为人体左侧在该区域内夹角余弦最大者,右颈窝点Nr_neck为人体右侧在该区域内夹角余弦最大者,过这两个颈部标志点,与Z轴成20度夹角做一个斜切面,得到颈部轮廓线,该轮廓线上Z值最大者为前颈中点Nf_neck,Z值最小者为后颈中点Nb_neck;

步骤2.4、左右髋点的自动寻找:

三维人体模型自裆底点C向上高度为1.2h的区域内,以平行于XZ平面的截面切割人体模型,即对于第i次切割而言,其Yi=Cy+i(1.2h/20);取切割后轮廓线周长最大者为臀围,该轮廓线记为{Ghip},轮廓线上x值最大和最小者分别为左髋点Hl-hip和右髋点Hr-hip;

步骤2.5、人体的自动分段:

将人体自动分段为左臂,右臂,头部,躯干,左腿和右腿六个区域,人体自动分段方法如下:

左臂:过左上肩点和左腋窝点做连线段Ql-acromionQl_armpit,所有在该线段左侧的三角形均属于左臂,以此获得人体模型上的左臂三角形集合;

右臂:过右上肩点和右腋窝点做连线段Qr-acromionQr_armpit,所有在该线段右侧的三角形均属于右臂,以此获得人体模型上的右臂三角形集合;

头部:过左右颈窝点和前颈中点这三点构成一个平面,位于该平面上方的三角形均属于头部,以此获得人体模型的头部三角形集合;

左腿:位于臀围廓线以下,裆底点以左的三角形属于左腿,以此获得人体模型的左腿三角形集合;

右腿:位于臀围廓线以下,裆底点以右的三角形属于右腿,以此获得人体模型的右腿三角形集合;

躯干:不属于上述任何一个集合的三角形均属于躯干,以此获得人体模型的躯干三角形集合;

第三步:人体尺寸的自动测量:

人体尺寸的自动测量分为周长的测量,直线距离的测量和曲线距离的测量三种模式,分别实现如下:

步骤3.1、周长的测量:

周长测量的方法为用一个等分为100份的包围圆包围被测部位,包围圆的半径为r,向圆心Oc发送100条射线,将每条射线与人体被测表面的交点顺次连接,即得到被测周长;

步骤3.1.1、颈围的测量:在头部三角形集合中,按照如下方式构造包围圆:r=h,Oc=(Nl_neck+Nr_neck)/2;计算其在人体上的投影周长为颈围,将颈围轮廓线记为{Gneck};

步骤3.1.2、胸围的测量:在躯干三角形集合中,选择位于左右腋窝点中较低点向下h处的区域,即令y=MIN(Ql_armpit_y,Qr_armpit_y),Ql_armpit_y,Qr_armpit_y分别为左右腋窝点的Y轴坐标值,目标区域Φ为:{Φ|(y-h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Ql_armpit_x+Qr_armpit_x)/2;Ocy=y-ih/20;Ocy=(Ql_armpit_z+Qr_armpit_z)/2;Ql_armpit_x、Qr_armpit_x、Ql_armpit_z以及Qr_armpit_z分别为左腋窝点的X轴坐标值、右腋窝点的X轴坐标值、左腋窝点的Z轴坐标值以及右腋窝点的Z轴坐标值,每层用上述包围圆投影法求得该层人体轮廓线的周长,这20层中周长最大者即为胸围,将胸围轮廓线记为{Gbust};胸围轮廓线上位于人体左侧Z值最大者为人体的左乳点Bl_bust,胸围轮廓线上位于人体右侧Z值最大者为人体的右乳点Br_bust;

步骤3.1.3、腰围的测量:

在躯干三角形集合中,选择位于胸围线向下1.5h处的区域,即令y=Br_bust_y,Br_bust_y为右乳点的Y轴坐标,目标区域Φ为:{Φ|(y-1.5h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Bl_bust_x+Br_bust_x)/2;Ocy=y-i(1.5h)/20;Ocz=(Bl_bust_z+Br_bust_z)/2;每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最小者即为腰围,将腰围轮廓线记为{Gwaist},取其中X轴坐标值为0且Z轴坐标值最大者为腰围点W;

步骤3.1.4、腹围的测量:

在躯干三角形集合中,选择位于腰围线向下0.6h处的区域,即令y=Wy,Wy为腰围点W的Y轴坐标,目标区域Φ为:{Φ|(y-0.6h)<Φy<y};在该区域内,自上而下等分20层,即对于第i层而言,r=2h,Oc的三维坐标为Ocx=0;Ocy=y-i(0.6h)/20;Ocz=0;每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最大者即为腹围,将腹围轮廓线记为{Gabdomen};

步骤3.1.5、臀围的测量:步骤2.4中已得到;

步骤3.1.6、上臂围的测量:

首先确定测量轴MH为右上肩点和右腋窝点连线Qr-acromionQr-armpit的中点M与右臂三角形集合中Y轴坐标值最小点H的连线,自M向下h区域内,与MH垂直做10层包围圆投影,所得周长最大者即为上臂围,该轮廓线记为{Garm};对于第i层而言,r=0.5h,步骤3.1.7、腕围的测量:

令L=|HM|,取MH连线的中点E为肘点,自E点向下0.45L处做包围圆,其周长即为腕围,该轮廓线记为{Gwrist},即r=0.5h,步骤3.1.8、大腿围的测量:

取包围圆如下:r=h,Oc的三维坐标为Ocx=Cx-0.5h;Ocy=Cy;Ocz=Cz;其中Cx、Cy和Cz为裆底点C的三维坐标,该包围圆在右腿三角形集合上投影的周长即为大腿围长,该轮廓线记为{Gthigh},取大腿围长的重心为T点, 其中n为投影点p的个数,n=100,取人体脚底Y轴坐标值最小且Z轴坐标值与T点相同者为F点;

步骤3.1.9、踝围的测量:

似圆度函数f(c)为: 其中s(c)为封闭曲线c的面积,p(c)为封闭曲线c的周长,当封闭曲线的形状与圆接近时,f(c)→1,反之,f(c)→0;

踝部标志点的位置如下:自人体脚底至0.5h处,做20层包围投影,即对于第i层投影,r=0.6h, 投影曲线中似圆度最高者即为踝围曲线,该曲线的周长即为踝围,取A的重心为踝部标志点K,即 其中n为Gankle上投影点p的个数,n=

100;

步骤3.1.10、膝围的测量:

以TK连线的中点为包围圆的圆心,即r=0.6h,Oc=(T+K)/2,所得投影曲线的周长即为膝围,该轮廓线记为{Gknee};取其重心R为膝盖标志点: 其中n为膝为曲线上投影点p的个数,n=100;

步骤3.1.11、小腿围的测量:

以KR连线为包围圆的轴线,做20层投影,所得周长最大者即为小腿围,该轮廓线记为{Gshin};即对于第i层而言,r=0.6h,步骤3.1.12、裆长的测量:

裆长为过裆底点C的人体纵向轮廓线与腰围,腹围或者臀围线相交的p1Cp2弧线的长度,采用包围圆投影法求解人体的纵向轮廓线如下:r=5h,Oc的三维坐标为Ocx=Cx;Ocy=

5h;Ocy=Cz;p1和p2分别为该轮廓线与腰围,腹围或者臀围线相交的交点且满足p1z>Cz以及p2z<Cz;

步骤3.2、曲线距离的测量:

对于人体表面选定的两点p1和p2而言,将这两点向远离人体的方向平移为p′1和p′2以使两点的联线p′1p′2与人体不相交;将p′1p′2均分为n个点,n=100,然后以这n个点为起点,沿平行于p1p′1的方向向人体发送射线,将每条射线与人体的交点依次连接起来所得折线段,即为 该折线段的长度即为两点p1和p2间的曲线距离;

选定p1和p2分别为左右上肩点,即p1=Qr-acromion,p2=Ql-acromion,采用上述方法测量人体的肩宽;

选定p1和p2分别为右上肩点和人体腕围轮廓线{Gwrist}上x值最小的点,采用上述方法测量人体的手臂全长;

步骤3.3、直线距离的测量:

对于人体表面选定的两点p1和p2而言,直线距离d=|p1p2|;

令人体模型中所有三角形顶点集合为{Gbody},选定p1和p2分别为y值最大和最小点,令这两点的z值相同,即p1z=p2z,采用上述方法测量人体的身高;

选定p1和p2分别为颈围轮廓线和腰围轮廓线上z值最小点,采用上述方法测量人体的背长;

选定p1和p2分别为臀围轮廓线和踝围轮廓线上x值最小点,采用上述方法测量人体的腿长。

说明书 :

三维人体模型的全自动测量方法

技术领域

[0001] 本发明提供了一种三维人体模型的全自动测量方法,属于计算机图形图像学技术领域。

背景技术

[0002] 目前国内对于扫描所得三维人体尚无全自动三维人体测量方法,缺乏人体标志点自动查找及关键尺寸自动测量功能。

发明内容

[0003] 本发明的目的是提供一种具有人体标志点自动查找及关键尺寸自动测量功能的三维人体模型的全自动测量方法。
[0004] 为了达到上述目的,本发明的技术方案是提供一种三维人体模型的全自动测量方法,其特征在于,具体步骤为:
[0005] 第一步:将人体进行三维人体扫描得到以三角形组成的三维人体模型,其三角形密度为15000个/人,令三维人体模型的身高方向为Y轴,宽度方向为X轴,厚度方向为Z
轴;
[0006] 第二步:人体标志点的自动寻找与人体的自动分段:
[0007] 步骤2.1、裆底点的自动寻找:
[0008] 若三维人体模型的大腿根部未出现接触,其裆底点的自动寻找方法如下:
[0009] 令人体的身高为8h,对于亚裔人体而言,在2.8h处以平行于XZ平面的一个截面去切三维人体模型,将所得交点按照+X方向有序排列,比较相邻两点间的距离,将距离最大
的两个邻点记录下来,分别为Pl和Pr,取其中点Po,过Po以平行于YZ平面的一个截面去切
三维人体模型,得到三维人体模型的纵切面轮廓,该轮廓线上Y值最小点即为裆底点C;对
于欧裔人体而言,在3.0h处以平行于XZ平面的一个截面去切人体,然后按照上述方法自动
寻找人体的裆底点C;
[0010] 若三维人体模型的大腿根部出现接触,其裆底点的自动寻找方法如下:
[0011] 令人体的身高为8h,从2.8h到4.0h处,等分为20份,以一个宽度为h的折线段向人体的-Z方向依次投射,即对于第i次投射而言,其Yi=2.8h+i(1.2h/20);该折线段分
为n个点,n=50,它们与人体的交点依次连接后形成的投影线段分为没有峰值出现、出现
单峰值以及出现双峰值三种情况,其裆底点C存在于第i次投影出现双峰,而第i+1次投影
出现单峰的情况,此时,其裆底点C为第i次投影线段的中点,即C=(P1+P2)/2;
[0012] 步骤2.2、左右肩点的自动寻找:
[0013] 左右肩点分为左右上肩点和左右腋窝点共四个标志点,其中左右上肩点即为测量肩宽时两肩最远点,其自动寻找方法如下:
[0014] 构造点A的坐标为:xa=Cx+1.5h,ya=Ymax-h,za=Cz,其中Cx和Cz为裆底点C的X轴坐标值和Z轴坐标值,Ymax为人体Y轴坐标最大值,即人体的身高,距离人体头顶h到
1.5h之间,寻找与A点距离最短的点Qa,以过该点且平行于XZ平面的一个截面去切三维人
体模型,得到肩部轮廓线,轮廓线中具有最大X轴坐标值xmax和最小X轴坐标值xmin的两个
点即为左右肩点Ql-acromion和Qr-acromion;
[0015] 左腋窝点Ql-armpit的三维坐标计算如下:xl_armpit=0.83xl_acromion;yl_armpit=yl_acromion-0.9h;zl_armpit=zl_acromion;其中xl_armpit,yl_armpit,zl_armpit分别为左腋窝点Ql-armpit的三维坐标;xl_acromion,yl_acromion,zl_acromion分别为左上肩点Ql-acromion的三维坐标;
[0016] 右腋窝点Qr-armpit的三维坐标计算如下:xr_armpit=0.83xr_acromion;yr_armpit=yr_acromion-0.9h;zr_armpit=zr_acromion;其中xr_armpit,yr_armpit,zr_armpit分别为右腋窝点Qr-armpit的三维坐标;xr_acromion,yr_acromion,zr_acromion分别为右上肩点Qr-acromion的三维坐标;
[0017] 步骤2.3、颈部标志点的自动寻找:
[0018] 颈部标志点有4个,分别为左右颈窝点和前后颈中点,其自动定位方法如下:
[0019] 三维人体模型自Qa向上0.5h的区域内,计算任意两个相邻三角形间的夹角余弦如下:cosθ=na·nb,其中,na和nb分别为这两个相邻三角形的法向矢量,左颈窝点Nl_neck为人体左侧在该区域内夹角余弦最大者,右颈窝点Nr_neck为人体右侧在该区域内夹角余弦最大者,过这两个颈部标志点,与Z轴成20度夹角做一个斜切面,得到颈部轮廓线,该轮廓线上Z值最大者为前颈中点Nf_neck,Z值最小者为后颈中点Nb_neck;
[0020] 步骤2.4、左右髋点的自动寻找:
[0021] 三维人体模型自裆底点C向上高度为1.2h的区域内,以平行于XZ平面的截面切割人体模型,即对于第i次切割而言,其Yi=Cy+i(1.2h/20);取切割后轮廓线周长最大
者为臀围,该轮廓线记为{Ghip},轮廓线上x值最大和最小者分别为左髋点Hl-hip和右髋点Hr-hip;
[0022] 步骤2.5、人体的自动分段:
[0023] 将人体自动分段为左臂,右臂,头部,躯干,左腿和右腿六个区域,人体自动分段方法如下:
[0024] 左臂:过左上肩点和左腋窝点做连线段Ql-acromionQl_armpit,所有在该线段左侧的三角形均属于左臂,以此获得人体模型上的左臂三角形集合;
[0025] 右臂:过右上肩点和右腋窝点做连线段Qr-acromionQr_armpit,所有在该线段右侧的三角形均属于右臂,以此获得人体模型上的右臂三角形集合;
[0026] 头部:过左右颈窝点和前颈中点这三点构成一个平面,位于该平面上方的三角形均属于头部,以此获得人体模型的头部三角形集合;
[0027] 左腿:位于臀围廓线以下,裆底点以左的三角形属于左腿,以此获得人体模型的左腿三角形集合;
[0028] 右腿:位于臀围廓线以下,裆底点以右的三角形属于右腿,以此获得人体模型的右腿三角形集合;
[0029] 躯干:不属于上述任何一个集合的三角形均属于躯干,以此获得人体模型的躯干三角形集合;
[0030] 第三步:人体尺寸的自动测量:
[0031] 人体尺寸的自动测量分为周长的测量,直线距离的测量和曲线距离的测量三种模式,分别实现如下:
[0032] 步骤3.1、周长的测量:
[0033] 周长测量的方法为用一个等分为100份的包围圆包围被测部位,包围圆的半径为r,向圆心Oc发送100条射线,将每条射线与人体被测表面的交点顺次连接,即得到被测周
长;
[0034] 步骤3.1.1、颈围的测量:在头部三角形集合中,按照如下方式构造包围圆:r=h,Oc=(Nl_neck+Nr_neck)/2;计算其在人体上的投影周长为颈围,将颈围轮廓线记为{Gneck};
[0035] 步骤3.1.2、胸围的测量:在躯干三角形集合中,选择位于左右腋窝点中较低点向下h处的区域,即令y=MIN(Ql_armpit_y,Qr_armpit_y),Ql_armpit_y,Qr_armpit_y分别为左右腋窝点的Y轴坐标值,目标区域Φ为:{Φ|(y-h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Ql_armpit_x+Qr_armpit_x)/2;Qcy=y-ih/20;Ocy=(Ql_armpit_z+Qr_armpit_z)/2;Ql_armpit_x、Qr_armpit_x、Ql_armpit_z以及Qr_armpit_z分别为左腋窝点的X轴坐标值、右腋窝点的X轴坐标值、左腋窝点的Z轴坐标值以及右腋窝点的Z轴坐标值,每层用
上述包围圆投影法求得该层人体轮廓线的周长,这20层中周长最大者即为胸围,将胸围轮
廓线记为{Gbust};胸围轮廓线上位于人体左侧Z值最大者为人体的左乳点Bl_bust,胸围轮廓线上位于人体右侧Z值最大者为人体的右乳点Br_bust;
[0036] 步骤3.1.3、腰围的测量:
[0037] 在躯干三角形集合中,选择位于胸围线向下1.5h处的区域,即令y=Br_bust_y,Br_bust_y为右乳点的Y轴坐标,目标区域Φ为:{Φ|(y-1.5h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Bl_bust_x+Br_bust_x)/2;Ocy=y-i(1.5h)/20;Ocz=(Bl_bust_z+Br_bust_z)/2;每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最小者即为腰围,将腰围轮廓线记为{Gwaist},取其中X轴坐标值为0且Z轴坐标值最大者为腰围点W;
[0038] 步骤3.1.4、腹围的测量:
[0039] 在躯干三角形集合中,选择位于腰围线向下0.6h处的区域,即令y=Wy,Wy为腰围点W的Y轴坐标,目标区域Φ为:{Φ|(y-0.6h)<Φy<y};在该区域内,自上而下等分
20层,即对于第i层而言,r=2h,Oc的三维坐标为Ocx=0;Ocy=y-i(0.6h)/20;Ocz=0;
每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最大者即为腹围,将腹
围轮廓线记为{Gabdomen};
[0040] 步骤3.1.5、臀围的测量:步骤2.4中已得到;
[0041] 步骤3.1.6、上臂围的测量:
[0042] 首先确定测量轴MH为右上肩点和右腋窝点连线Qr-acromionQr-armpit的中点M与右臂三角形集合中Y轴坐标值最小点H的连线,自M向下h区域内,与MH垂直做10层包围圆投影,所得周长最大者即为上臂围,该轮廓线记为{Garm},即M=(Qr-acromion+Qr-armpit)/2,对于第i层而言,r=0.5h,
[0043] 步骤3.1.7、腕围的测量:
[0044] 令L=|HM|,取MH连线的中点E为肘点,自E点向下0.45L处做包围圆,其周长即为腕围,该轮廓线记为{Gwrist},即r=0.5h,
[0045] 步骤3.1.8、大腿围的测量:
[0046] 取包围圆如下:r=h,Oc的三维坐标为Ocx=Cx-0.5h;Ocy=Cy;Ocz=Cz;其中Cx、Cy和Cz为裆底点C的三维坐标,该包围圆在右腿三角形集合上投影的周长即为大腿围长,该轮廓线记为{Gthigh},取大腿围长的重心为T点, 其中n为投影点p的个数,n=100,取人体脚底Y轴坐标值最小且Z轴坐标值与T点相同者为F点,即 且Fz
=Tz;
[0047] 步骤3.1.9、踝围的测量:
[0048] 似圆度函数f(c)为: 其中s(c)为封闭曲线c的面积,p(c)为封闭曲线c的周长,当封闭曲线的形状与圆接近时,f(c)→1,反之,f(c)→0;
[0049] 踝部标志点的位置如下:自人体脚底至0.5h处,做20层包围投影,即对于第i层投影,r=0.6h, 投影曲线中似圆度最高者即为踝围曲线,该曲线的
周长即为踝围,即踝围曲线{Gankle}: 取A的重心为踝部标志点K,即
其中n为Gankle上投影点p的个数,n=100;
[0050] 步骤3.1.10、膝围的测量:
[0051] 以TK连线的中点为包围圆的圆心,即r=0.6h,Oc=(T+K)/2,所得投影曲线的周长即为膝围,该轮廓线记为{Gknee};取其重心R为膝盖标志点: 其中n为膝为曲
线上投影点p的个数,n=100;
[0052] 步骤3.1.11、小腿围的测量:
[0053] 以KR连线为包围圆的轴线,做20层投影,所得周长最大者即为小腿围,该轮廓线记为{Gshin};即对于第i层而言,r=0.6h,
[0054] 步骤3.1.12、裆长的测量:
[0055] 裆长为过裆底点C的人体纵向轮廓线与腰围,腹围或者臀围线相交的p1Cp2弧线的长度,采用包围圆投影法求解人体的纵向轮廓线如下:r=5h,Oc的三维坐标为Ocx=Cx;Ocy=5h;Ocy=Cz;p1和p2分别为该轮廓线与腰围,腹围或者臀围线相交的交点且满足p1z>
Cz以及p2z<Cz;
[0056] 步骤3.2、曲线距离的测量:
[0057] 对于人体表面选定的两点p1和p2而言,将这两点向远离人体的方向平移为p′1和p′2以使两点的联线p′1p′2与人体不相交;将p′1p′2均分为n个点,n=100,然
后以这n个点为起点,沿平行于p1p′1的方向向人体发送射线,将每条射线与人体的交点
依次连接起来所得折线段,即为 该折线段的长度即为两点p1和p2间的曲线距离;
[0058] 选定p1和p2分别为左右上肩点,即p1=Qr-acromion,p2=Ql-acromion,采用上述方法测量人体的肩宽;
[0059] 选定p1和p2分别为右上肩点和人体腕围轮廓线{Gwrist}上x值最小的点,即p1=Qr-acromion, 采用上述方法测量人体的手臂全长;
[0060] 步骤3.3、直线距离的测量:
[0061] 对于人体表面选定的两点p1和p2而言,直线距离d=|p1p2|;
[0062] 令人体模型中所有三角形顶点集合为{Gbody},选定p1和p2分别为y值最大和最小点,即 令这两点的z值相同,即p1z=p2z,采用上述方法测量
人体的身高;
[0063] 选定p1和p2分别为颈围轮廓线和腰围轮廓线上z值最小点,即采用上述方法测量人体的背长;
[0064] 选定p1和p2分别为臀围轮廓线和踝围轮廓线上x值最小点,即采用上述方法测量人体的腿长。
[0065] 本发明的主要优点在于能够在无需人工干预的情况下,全自动地对三维扫描人体模型进行标识和测量,大大加快了三维人体数据的测量速度,同时具有较高的测量精度。

附图说明

[0066] 图1为正常人体裆底点自动寻找方法示意图;
[0067] 图2为肥胖人体裆底点自动寻找方法示意图A;
[0068] 图3为肥胖人体裆底点自动寻找方法示意图B;
[0069] 图4为人体左右肩点的自动寻找方法示意图;
[0070] 图5为人体颈部标志点的自动寻找方法示意图;
[0071] 图6为人体自动分段方法示意图;
[0072] 图7为利用包围圆获得人体被测部位的周长示意图;
[0073] 图8为上身及臂部人体围度测量示意图;
[0074] 图9为下身及腿部人体围度测量示意图;
[0075] 图10为人体裆长的测量示意图;
[0076] 图11为人体表面任意两点间曲线距离的测量方法示意图。

具体实施方式

[0077] 下面结合实施例来具体说明本发明。
[0078] 实施例
[0079] 一种三维人体模型的全自动测量方法,具体步骤为:
[0080] 第一步:将人体进行三维人体扫描得到以三角形组成的三维人体模型,其三角形密度为15000个/人,令三维人体模型的身高方向为Y轴,宽度方向为X轴,厚度方向为Z
轴;
[0081] 第二步:人体标志点的自动寻找与人体的自动分段:
[0082] 步骤2.1、裆底点的自动寻找:
[0083] 若三维人体模型的大腿根部未出现接触,如图1所示,为正常人体裆底点自动寻找方法示意图,其裆底点的自动寻找方法如下:
[0084] 令人体的身高为8h,对于亚裔人体而言,在2.8h处以平行于XZ平面的一个截面去切三维人体模型,将所得交点按照+X方向有序排列,比较相邻两点间的距离,将距离最大
的两个邻点记录下来,分别为Pl和Pr,取其中点Po,过Po以平行于YZ平面的一个截面去切
三维人体模型,得到三维人体模型的纵切面轮廓,该轮廓线上Y值最小点即为裆底点C;对
于欧裔人体而言,在3.0h处以平行于XZ平面的一个截面去切人体,然后按照上述方法自动
寻找人体的裆底点C;
[0085] 若三维人体模型的大腿根部出现接触,如图2所示,为肥胖人体裆底点自动寻找方法示意图A;图3为肥胖人体裆底点自动寻找方法示意图B,其裆底点的自动寻找方法如
下:
[0086] 令人体的身高为8h,从2.8h到4.0h处,等分为20份,以一个宽度为h的折线段向人体的-Z方向依次投射,即对于第i次投射而言,其Yi=2.8h+i(1.2h/20);该折线段分
为n个点,n=50,它们与人体的交点依次连接后形成的投影线段分为没有峰值出现、出现
单峰值以及出现双峰值三种情况,其裆底点C存在于第i次投影出现双峰,而第i+1次投影
出现单峰的情况,此时,其裆底点C为第i次投影线段的中点,即C=(P1+P2)/2;
[0087] 步骤2.2、左右肩点的自动寻找:
[0088] 左右肩点分为左右上肩点和左右腋窝点共四个标志点,其中左右上肩点即为测量肩宽时两肩最远点,如图4所示,为人体左右肩点的自动寻找方法示意图,其自动寻找方法如下:
[0089] 构造点A的坐标为:xa=Cx+1.5h,ya=Ymax-h,za=Cz,其中Cx和Cz为裆底点C的x轴坐标值和z轴坐标值,Ymax为人体Y坐标最大值,即人体的身高,距离人体头顶h到1.5h之间,寻找与A点距离最短的点Qa,以过该点且平行于XZ平面的一个截面去切三维人体模
型,得到肩部轮廓线,轮廓线中具有最大x轴坐标值xmax和最小x轴坐标值xmin的两个点即
为左右肩点Ql-acromion和Qr-acromion;
[0090] 左腋窝点Ql-armpit的三维坐标计算如下:xl_armpit=0.83xl_acromion;yl_armpit=yl_acromion-0.9h;zl_armpit=zl_acromion;其中xl_armpit,yl_armpit,zl_armpit分别为左腋窝点Ql-armpit的三维坐标;xl_acromion,yl_acromion,zl_acromion分别为左上肩点Ql-acromion的三维坐标;
[0091] 右腋窝点Qr-armpit的三维坐标计算如下:xr_armpit=0.83xr_acromion;yr_armpit=yr_acromion-0.9h;zr_armpit=zr_acromion;其中xr_armpit,yr_armpit,zr_armpit分别为右腋窝点Qr-armpit的三维坐标;xr_acromion,yr_acromion,zr_acromion分别为右上肩点Qr-acromion的三维坐标;
[0092] 步骤2.3、颈部标志点的自动寻找:
[0093] 颈部标志点有4个,分别为左右颈窝点和前后颈中点,如图5所示,为人体颈部标志点的自动寻找方法示意图,其自动定位方法如下:
[0094] 三维人体模型自Qa向上0.5h的区域内,计算任意两个相邻三角形间的夹角余弦如下:cosθ=na·nb,其中,na和nb分别为这两个相邻三角形的法向矢量,左颈窝点Nl_neck为人体左侧在该区域内夹角余弦最大者,右颈窝点Nr_neck为人体右侧在该区域内夹角余弦最大者,过这两个颈部标志点,与Z轴成20度夹角做一个斜切面,得到颈部轮廓线,该轮廓线上Z值最大者为前颈中点Nf_neck,Z值最小者为后颈中点Nb_neck;
[0095] 步骤2.4、左右髋点的自动寻找:
[0096] 三维人体模型自裆底点C向上高度为1.2h的区域内,以平行于XZ平面的截面切割人体模型,即对于第i次切割而言,其Yi=Cy+i(1.2h/20);取切割后轮廓线周长最大
者为臀围,该轮廓线记为{Ghip},轮廓线上x值最大和最小者分别为左髋点Hl-hip和右髋点Hr-hip;
[0097] 步骤2.5、人体的自动分段:
[0098] 将人体自动分段为左臂,右臂,头部,躯干,左腿和右腿六个区域,如图6所示,为人体自动分段方法示意图,人体自动分段方法如下:
[0099] 左臂:过左上肩点和左腋窝点做连线段Ql-acromionQl_armpit,所有在该线段左侧的三角形均属于左臂,以此获得人体模型上的左臂三角形集合;
[0100] 右臂:过右上肩点和右腋窝点做连线段Qr-acromionQr_armpit,所有在该线段右侧的三角形均属于右臂,以此获得人体模型上的右臂三角形集合;
[0101] 头部:过左右颈窝点和前颈中点这三点构成一个平面,位于该平面上方的三角形均属于头部,以此获得人体模型的头部三角形集合;
[0102] 左腿:位于臀围廓线以下,裆底点以左的三角形属于左腿,以此获得人体模型的左腿三角形集合;
[0103] 右腿:位于臀围廓线以下,裆底点以右的三角形属于右腿,以此获得人体模型的右腿三角形集合;
[0104] 躯干:不属于上述任何一个集合的三角形均属于躯干,以此获得人体模型的躯干三角形集合;
[0105] 第三步:人体尺寸的自动测量,:
[0106] 人体尺寸的自动测量分为周长的测量,直线距离的测量和曲线距离的测量三种模式,分别实现如下:
[0107] 步骤3.1、周长的测量:
[0108] 周长测量的方法为用一个等分为100份的包围圆包围被测部位,包围圆的半径为r,向圆心Oc发送100条射线,将每条射线与人体被测表面的交点顺次连接,即得到被测周
长;如图7所示,为利用包围圆获得人体被测部位的周长示意图;图8为上身及臂部人体围
度测量示意图;图9为下身及腿部人体围度测量示意图;
[0109] 步骤3.1.1、颈围的测量:在头部三角形集合中,按照如下方式构造包围圆:r=h,Oc=(Nl_neck+Nr_neck)/2;计算其在人体上的投影周长为颈围,将颈围轮廓线记为{Gneck};
[0110] 步骤3.1.2、胸围的测量:在躯干三角形集合中,选择位于左右腋窝点中较低点向下h处的区域,即令y=MIN(Ql_armpit_y,Qr_armpit_y),Ql_armpit_y,Qr_armpit_y分别为左右腋窝点的y轴坐标值,目标区域Φ为:{Φ|(y-h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Ql_armpit_x+Qr_armpit_x)/2;Ocy=y-ih/20;Ocy=(Ql_armpit_z+Qr_armpit_z)/2;Ql_armpit_x、Qr_armpit_x、Ql_armpit_z以及Qr_armpit_z分别为左腋窝点的x轴坐标值、右腋窝点的x轴坐标值、左腋窝点的z轴坐标值以及右腋窝点的z轴坐标值,每层用
上述包围圆投影法求得该层人体轮廓线的周长,这20层中周长最大者即为胸围,将胸围轮
廓线记为{Gbust};胸围轮廓线上位于人体左侧Z值最大者为人体的左乳点Bl_bust,胸围轮廓线上位于人体右侧Z值最大者为人体的右乳点Br_bust;
[0111] 步骤3.1.3、腰围的测量:
[0112] 在躯干三角形集合中,选择位于胸围线向下1.5h处的区域,即令y=Br_bust_y,Br_bust_y为右乳点的y轴坐标,目标区域Φ为:{Φ|(y-1.5h)<Φy<y};在该区域内,自上而下等分20层,对于第i层而言,r=2h,Oc的三维坐标为Ocx=(Bl_bust_x+Br_bust_tx)/2;Ocy=y-i(1.5h)/20;Ocz=(Bl_bust_z+Br_bust_z)/2;每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最小者即为腰围,将腰围轮廓线记为{Gwaist},取其中x轴坐标值为0且z轴坐标值最大者为腰围点W;
[0113] 步骤3.1.4、腹围的测量:
[0114] 在躯干三角形集合中,选择位于腰围线向下0.6h处的区域,即令y=Wy,Wy为腰围点W的y轴坐标,目标区域Φ为:{Φ|(y-0.6h)<Φy<y};在该区域内,自上而下等分
20层,即对于第i层而言,r=2h,Oc的三维坐标为Ocx=0;Ocy=y-i(0.6h)/20;Ocz=0;
每层用上述包围圆投影法求得该层人体廓线的周长,这20层中周长最大者即为腹围,将腹
围轮廓线记为{Gabdomen};
[0115] 步骤3.1.5、臀围的测量:步骤2.4中已得到;
[0116] 步骤3.1.6、上臂围的测量:
[0117] 首先确定测量轴MH为右上肩点和右腋窝点连线Qr-acromionQr-armpit的中点M与右臂三角形集合中y轴坐标值最小点H的连线,自M向下h区域内,与MH垂直做10层包围圆投影,所得周长最大者即为上臂围,该轮廓线记为{Garm},即M=(Qr-acromion+Qr-armpit)/2,对于第i层而言,r=0.5h,
[0118] 步骤3.1.7、腕围的测量:
[0119] 令L=|HM|,取MH连线的中点E为肘点,自E点向下0.45L处做包围圆,其周长即为腕围,该轮廓线记为{Gwrist}。即r=0.5h,
[0120] 步骤3.1.8、大腿围的测量:
[0121] 取包围圆如下:r=h,Oc的三维坐标为Ocx=Cx-0.5h;Ocy=Cy;Ocz=Cz;其中Cx、Cy和Cz为裆底点C的三维坐标,该包围圆在右腿三角形集合上投影的周长即为大腿围长,该轮廓线记为{Gthigh}。取大腿围长的重心为T点, 其中n为投影点p的个数,n
=100,取人体脚底y轴坐标值最小且z轴坐标值与T点相同者为F点,即 且
Fz=Tz;
[0122] 步骤3.1.9、踝围的测量:
[0123] 似圆度函数f(c)为: 其中s(c)为封闭曲线c的面积,p(c)为封闭曲线c的周长,当封闭曲线的形状与圆接近时,f(c)→1,反之,f(c)→0;
[0124] 踝部标志点的位置如下:自人体脚底至0.5h处,做20层包围投影,即对于第i层投影,r=0.6h, 投影曲线中似圆度最高者即为踝围曲线,该曲线的
周长即为踝围,即踝围曲线{Gankle}: 取A的重心为踝部标志点K,即
其中n为Gankle上投影点p的个数,n=100;
[0125] 步骤3.1.10、膝围的测量:
[0126] 以TK连线的中点为包围圆的圆心,即r=0.6h,Oc=(T+K)/2,所得投影曲线的周长即为膝围,该轮廓线记为{Gknee}。取其重心R为膝盖标志点: 其中n为膝为曲
线上投影点p的个数,n=100;
[0127] 步骤3.1.11、小腿围的测量:
[0128] 以KR连线为包围圆的轴线,做20层投影,所得周长最大者即为小腿围,该轮廓线记为{Gshin};即对于第i层而言,r=0.6h,
[0129] 步骤3.1.12、裆长的测量:如图10所示,人体裆长的测量示意图;
[0130] 裆长为过裆底点C的人体纵向轮廓线与腰围,腹围或者臀围线相交的p1Cp2弧线的长度,采用包围圆投影法求解人体的纵向轮廓线如下:r=5h,Oc的三维坐标为Ocx=Cx;Ocy=5h;Ocy=Cz;p1和p2分别为该轮廓线与腰围,腹围或者臀围线相交的交点且满足p1z>
Cz以及p2z<Cz;
[0131] 步骤3.2、曲线距离的测量:如图11所示,为人体表面任意两点间曲线距离的测量方法示意图;
[0132] 对于人体表面任意选定的两点p1和p2而言,将这两点向远离人体的方向平移为p′1和p′2以使两点的联线p′1p′2与人体不相交;将p′1p′2均分为n个点,n=
100,然后以这n个点为起点,沿平行于p1p′1的方向向人体发送射线,将每条射线与人体
的交点依次连接起来所得折线段,即为 该折线段的长度即为两点p1和p2间的曲线距
离;
[0133] 可以采用该方法测量的曲线距离包括人体的肩宽,手臂全长及裁剪所需特殊的曲线距离。
[0134] 选定p1和p2分别为左右上肩点,即p1=Qr-acromion,p2=Ql-acromion,采用上述方法测量人体的肩宽;
[0135] 选定p1和p2分别为右上肩点和人体腕围轮廓线{Gwrist}上x值最小的点,即p1=Qr-acromion, 采用上述方法测量人体的手臂全长;
[0136] 步骤3.3、直线距离的测量:
[0137] 对于人体表面任意选定的两点p1和p2而言,直线距离d=|p1p2|。可以用该方法测量的距离包括人体的身高,背长,腿长及裁剪所需特殊的直线距离。
[0138] 令人体模型中所有三角形顶点集合为{Gbody},选定p1和p2分别为y值最大和最小点,即 令这两点的z值相同,即p1z=p2z,采用上述方法测量
人体的身高;
[0139] 选定p1和p2分别为颈围轮廓线和腰围轮廓线上z值最小点,即采用上述方法测量人体的背长;
[0140] 选定p1和p2分别为臀围轮廓线和踝围轮廓线上x值最小点,即采用上述方法测量人体的腿长。