本发明涉及计算机图形领域,尤其涉及一种基于六面体自动生成的三维人体温度场计算方法。
背景技术:
目前的基于人体建模的热调节模型中,大部分模型都将人体的各部位抽象成节点,但在大部分模型中,节点没有空间属性,即在模型中无法得知人体的身高、体重、各个部位的尺寸等等。
现在技术有多种方法可以生成六面体网格,主要采用的方案有根据体积信息来进行构建和根据几何信息来进行计算生成,其中最相关的方法是基于骨架的六面体生成方法,当通过骨架来生成六面体时,最关键的部分是对交叉点进行离散分化。在现有技术中,分别提出了一个split-and-merge的方法和一种网格化管状形状的方法。在前一个方法中,不同部位的骨架部分是分开的,然后将这些部件接在一起。该方法在一组简单模型上得到验证,其中最复杂的结点有4的度量。但是在某些情况下不能产生正确的拓扑结构,将多度量的交叉点转化成多个三叉点。在后一个方法中是使用一套模板解决多交叉节点,将曲线骨架使用作为代理来拟合模板的最佳形态。六面体呈放射状排列在骨骼周围,因此在脊柱附近产生了形状很差的元素。此外,这种方法最适用于分岔(典型的血液分岔)而它倾向于产生高价顶点,当有较高价的结合点时较为糟糕。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种基于六面体自动生成的三维人体温度场计算方法。本发明提供了更准确的计算模型。
本发明的目的能够通过以下技术方案实现:
一种基于六面体自动生成的三维人体温度场计算方法,具体步骤包括:
(1)输入人体或者类人体的三维几何模型信息,生成人体或类人体模型,并对模型进行交互式的骨架提取;
(2)对提取的骨架进行平滑化处理,并对人体进行语义分割;
(3)对分割后的人体部位每一层用扫掠方法生成六面体网格,而对于骨骼的节点和端点则用等参变换的方法生成六面体网格;
(4)对生成的六面体网格进行三维人体温度场的计算与模拟;
(5)对模拟后的温度数字化表示并投射到三维人体几何模型中。
具体地,在所述步骤(1)中,输入的三维几何模型信息是世界通用的标准三维信息格式文件内容,主要包括三维模型的几何面数量与位置信息,三维模型所显示的图像包含人体头部、手臂、腿部、躯干的人体或者类人体模型,但是在文件中不需要对这四种人体部位进行标记,仅需要对其几何面信息进行输入和处理。在模型的输入完成之后,采用可交互的方法对模型进行骨架提取,骨架提取的方法是网格收缩算法,在进行到最后的迭代之后,算法会给出一个初步的骨架模型,其中包含了多条线段与多个顶点,但是由于人体模型的姿态各异,并不能保证每一次算法得到的骨架是合格的,因此还需要进行用户进行手动的修改,以获得更符合广泛定义的骨架标准。
具体地,在所述步骤(2)中,先对骨架进行平滑化处理,对每一个骨架点si,其更新后的点位置
在平滑化处理完毕后,对骨架通过一系列的规则进行语义分割,得到头部、躯干以及四肢的部位,具体语义分割方法为:
首先遍历得到骨架中连接度量为3和连接度量为4的顶点,分别代表了身体部位躯干大腿连接点和躯干头部双手的连接点,分别定义为肚脐点vnavel与心胸点vheart,这两个顶点连接的骨架线,代表了模型中人体躯干的部位,接着在心肺点的其他3个邻接点中寻找满足下面条件的点:
sneck是连接到头部的脖颈的点,那么心胸点剩下的两个邻接点就是连接到两只手臂的骨架点,而肚脐点剩下两个邻接点就是连接到两只腿的骨架点。至此,完成了对骨架的语义分割。
在所述步骤(3)中,利用处理后的骨架对整个人体进行六面体网格的生成,具体方法为:
首先需要找到骨架点所对应的网格的分片,分片就是以骨架点为中心,骨架方向作为平面法向量定义的平面与模型网格相切得到的一系列交叉点所形成的环状轮廓,将这些交叉点连接起来就得到了该骨架点所对应的网格分片,对该网格分片进行内插,就可以在分片上进行内部的网格划分。其中,分片点数量可以由参数来控制。这样就可以对除了端点与交叉点之外的骨架点连接形成柱状的六面体。
对于端点,由于可以由中心点向内部延伸4层,之后将这4层分别作为皮肤层,脂肪层,肌肉层与核心层,最外围的皮肤层形成一层四面体元素。
对于交叉点,从内部的骨架中心点向周围切出数量等同自身度量的半平面,并将相邻的半平面得到的半块分片连接作为一整块分片,将这一整块分片当作普通骨架点的分片进行处理,就可以得到交叉点上的六面体网格。
具体地,在所述步骤(4)中,对步骤(3)生成的六面体人体模型加入生理参数并能够进行温度场的迭代计算。在生成的六面体网格中,主要的单位元素有六面体、三角柱、三角锥,每一个元素的参数化映射表示如下:
六面体:
三角柱:
四面体:
ntet_i=(1-φ-ω-η)(5)
以上nhex_i、
s=(m-w)+e+c+r(6)
其中,m为代谢产能,w是机械做功能量,e是皮肤对流散热,c是呼吸散热,r是辐射散热。
利用真实尺寸和几何模型对所有的身体部位进行无缝连接,血流量woutput通过皮肤层wskin、脂肪层wfat、肌肉层wmus、核心器官层wcore4层中的血流量得到心脏的总搏出量表示为:
woutput=wskin+wfat+wmus+wcore(7)
最后,利用中心差分方法对有限元方程进行时间上的迭代。
具体地,在所述步骤(5)中,将得到的结果重新映射回到原来的几何模型中,并通过opengl或者其他图形api就能显示最终的映射结果。
本发明相较于现有技术,具有以下的有益效果:
1、本发明中的六面体生成模型更加符合人体生理模型的结构,更方便于计算生理模型。
2、本发明提供了一个半自动化的真实人体模型的生成,具有更加详细的几何参数信息,减少了实验人员对于人体的参数设置工作。
3、本发明基于真实人体的三维模型,能够对原来的smith-fu热调节模型需要在血液的换热模型上进行改进,达到合适的效果。
附图说明
图1为一种基于六面体自动生成的三维人体温度场计算方法的流程图。
图2是人体模型提取骨骼并修改后的骨骼示意图。
图3是对人体进行语义分割后的骨骼示意图。
图4是温度随时间变化的数值显示图。
图5是大腿部位的显示图。
图6是躯干部位的显示图。
图7是前臂部位的显示图。
图8是人体所有部位的温度显示图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
如图1所示为一种基于六面体自动生成的三维人体温度场计算方法的流程图,具体步骤包括:
(1)输入人体或者类人体的三维几何模型信息,生成人体或类人体模型,并对模型进行交互式的骨架提取;
具体地,在所述步骤(1)中,输入的三维几何模型信息是世界通用的标准三维信息格式文件内容,主要包括三维模型的几何面数量与位置信息,三维模型所显示的图像包含人体头部、手臂、腿部、躯干的人体或者类人体模型,但是在文件中不需要对这四种人体部位进行标记,仅需要对其几何面信息进行输入和处理。在模型的输入完成之后,采用可交互的方法对模型进行骨架提取,骨架提取的方法是网格收缩算法,在进行到最后的迭代之后,算法会给出一个初步的骨架模型,其中包含了多条线段与多个顶点,但是由于人体模型的姿态各异,并不能保证每一次算法得到的骨架是合格的,因此还需要进行用户进行手动的修改,以获得更符合广泛定义的骨架标准。本实施例中生成并修改后的骨骼示意图如图2所示。
(2)对提取的骨架进行平滑化处理,并对人体进行语义分割;
具体地,在所述步骤(2)中,先对骨架进行平滑化处理,对每一个骨架点si,其更新后的点位置
在平滑化处理完毕后,对骨架通过一系列的规则进行语义分割,得到头部、躯干以及四肢的部位,具体语义分割方法为:
首先遍历得到骨架中连接度量为3和连接度量为4的顶点,分别代表了身体部位躯干大腿连接点和躯干头部双手的连接点,分别定义为肚脐点vnavel与心胸点vheart,这两个顶点连接的骨架线,代表了模型中人体躯干的部位,接着在心肺点的其他3个邻接点中寻找满足下面条件的点:
sneck是连接到头部的脖颈的点,那么心胸点剩下的两个邻接点就是连接到两只手臂的骨架点,而肚脐点剩下两个邻接点就是连接到两只腿的骨架点。至此,完成了对骨架的语义分割。本实施例中语义分割后的骨骼示意图如图3所示。
(3)对分割后的人体部位每一层用扫掠方法生成六面体网格,而对于骨骼的节点和端点则用等参变换的方法生成六面体网格;
在所述步骤(3)中,利用处理后的骨架对整个人体进行六面体网格的生成,具体方法为:
首先需要找到骨架点所对应的网格的分片,分片就是以骨架点为中心,骨架方向作为平面法向量定义的平面与模型网格相切得到的一系列交叉点所形成的环状轮廓,将这些交叉点连接起来就得到了该骨架点所对应的网格分片,对该网格分片进行内插,就可以在分片上进行内部的网格划分。其中,分片点数量可以由参数来控制。这样就可以对除了端点与交叉点之外的骨架点连接形成柱状的六面体。
对于端点,由于可以由中心点向内部延伸4层,之后将这4层分别作为皮肤层,脂肪层,肌肉层与核心层,最外围的皮肤层形成一层四面体元素。
对于交叉点,从内部的骨架中心点向周围切出数量等同自身度量的半平面,并将相邻的半平面得到的半块分片连接作为一整块分片,将这一整块分片当作普通骨架点的分片进行处理,就可以得到交叉点上的六面体网格。
(4)对生成的六面体网格进行三维人体温度场的计算与模拟;
具体地,在所述步骤(4)中,对步骤(3)生成的六面体人体模型加入生理参数并能够进行温度场的迭代计算。在生成的六面体网格中,主要的单位元素有六面体、三角柱、三角锥,每一个元素的参数化映射表示如下:
六面体:
三角柱:
四面体:
ntet_i=(1-φ-ω-η)(5)
以上nhex_i、
s=(m-w)+e+c+r(6)
其中,m为代谢产能,w是机械做功能量,e是皮肤对流散热,c是呼吸散热,r是辐射散热。
利用真实尺寸和几何模型对所有的身体部位进行无缝连接,血流量woutput通过皮肤层wskin、脂肪层wfat、肌肉层wmus、核心器官层wcore4层中的血流量得到心脏的总搏出量表示为:
woutput=wskin+wfat+wmus+wcore(7)
最后,利用中心差分方法对有限元方程进行时间上的迭代。
(5)对模拟后的温度数字化表示并投射到三维人体几何模型中。
具体地,在所述步骤(5)中,将得到的结果重新映射回到原来的几何模型中,并通过opengl或者其他图形api就能显示最终的映射结果。如图4所示为迭代后温度随时间变化的结果图。如图5-8所示分别为大腿、躯干、前臂以及全身各部位的温度显示图。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。