哈尔滨理工大学机械动力工程学院 黑龙江 哈尔滨 150080
随着社会的发展,美容修复行业逐渐引领起了一个新的时代潮流[1]。近年来,由于交通事故发生率比较高,外伤造成的皮肤缺痕示例也日益趋多[2]。针对一些凹陷状况的美容修复,目前大都是通过修复医生根据凹陷的大小、形状进行弥补性的填充,因其大小无法进行定量控制,有的可能需要进行多次填充,才能达到理想的填充效果。
传统的面部软组织形态采用接触式测量,此类方法无法避免测量工具与软组织表面接触时产生微小形变带来的误差,而非接触式测量方法能够避免这种误差[3]。目前在面部形态学研究中应用较广泛的非接触式测量法有三维立体摄影技术[4]、影像学技术[5]和光学技术[6]。其中,三维立体摄影技术图像采集效率较低,要求被测物长时间保持固定姿势。
本文主要是针对目前医学上鼻型修复面临的问题进行优化,并应用逆向工程技术进行反向求解。通过扫面技术、曲面重构、鼻模型的比对等步骤,求取填充部位数据。
2.1 鼻型数据的点云处理 扫描设备采集的点云数据,一般是大量冗余数据且存在噪音点,通过去除体外孤点,将扫描仪采集到的不必要的点清除掉,采用统一采样降低点云的密度,清理干净的点云。为提高美容修复前端数据处理精度和效率,利用Geomagic Studio软件将扫描点点云自动生成准确的数字模型,提取面部点云的精确数据。
为提高和优化点云对象以便后续的建模处理,载体为一个人体鼻型模型,通过点对象处理操作,得到一个高质量的点云数据。点云处理过程如下:
(1)将点云着色。为了更加清晰、方便的观察点云形状,将点云着色。点云着色后以哪种颜色显示在软件里面是可以设置的。选择“视图”然后“颜色”,在弹出的“编辑对象颜色”对话框里,选择需要的颜色,原始面部点云如图1所示,着色后的点云如图2所示。
(2)去除体外孤点。体外孤点是指模型中偏离主点云距离比较大的点云数据,通常是由于扫描过程中不可避免地扫描到物体,必须删除。选择菜单中的“点”、“选择”、“体外孤点”,通过设置“敏感度”的值选中体外孤点;然后再进行删除,红色的点表示待删除的点,如图3所示。
(3)降低噪音。点云噪音去除在扫描过程中,由于现场环境、实体本身的反射特性等因素影响,最终获取不稳定或错误的点。通过“点”和“减少噪音”处理后,对参数进行选择设置。然后完成对面部的偏差分析如图4所示。
(4)统一采样
统一采样的目的是为了使原始数据点云整体分布更加均匀。
选择工具栏中的“点”、“采样”和“统一采样”设置采样间距参数和在“优化”栏中对曲率优先的滑块参数设置。通过统一采用降低点云的密度,降低后续重建的时间复杂度,如图5所示。
2.2 曲面重构
2.2.1 基于Delaunay的曲面重建 Delaunay三角剖分是一种特殊形式的三角剖分,具有最大空圆性和唯一性等多种优良的数学性质,是网格曲面重建的重要理论基础。随机增量法效率比较高且空间复杂度低,是目前常用的平面点集Delaunay三角剖分方法。随机增量法的主要步骤为:
(1)建立一个可以包含所有二维平面点云且边长非常长的初始三角形;
(2)从二维平面点云中随机选取一个未处理点p,若点p在某个三角形Δpipjpk内部,则分别连接点p与点pipjpk。若点p在Δpipjpk的边pjpk上,设存在与pjpk共边的另一个三角形Δpmpjpk,则连接点p与点pi,pj;
(3)检测并处理Delaunay剖分中的非法边;
(4)重复步骤(2)-(3)直到所有二维平面点云处理完毕;
(5)删除初始三角形以及与初始三角形顶点相连的边。
2.2.2 算法实验及分析 为验证算法的可行性和有效性,在Windows 7系统Intel(R)Core(TM)i7-3630QM CPU 2.4GHz硬件环境下,结合MATLAB编程工具对面部数据进行重建,重建结果如下。
如图7所示为MATLAB编程工具对面部数据进行重建后鼻部点云放大图,图8所示为经Geomagic Studio软件操作后的鼻部点云放大图。根据前人的研究可知三角形的形状越接近与正三角形三角网格的质量越好,如果三角网格并不是特别的规则,那么会导致曲面重建的质量不是很高。显然,图7中三角形网格比图8更加接近正三角形。
如图6和图7所示重建的三角网格模型与面部原始结构基本一致,且重建结果基本不含孔洞,验证了方法的正确性和有效性。
3.1 填充部位模型的求取 通过对重建求得的网格模型及模型库的STL模型进行相交性测试和布尔求差运算得到填充部位模型的网格模型。
3.1.1 相交性测试 相交性测试是完成布尔求差运算的前提,其目的是为了判断两个模型内三角面片间的相对的位置关系。对两网格模型进行相交性测试,如果两个三角网格模型有交集,则算出两个模型相交的位置点,并将这些交点拟合成线,根据最终的拟合线确定出两个网格模型相交的最终边界线,根据边界线就可以对两个三角形网格进布尔求差。
设有两个三角形T1和T2,顶点分别为V10、V11、V12和V20、V21、V22,三角形所在的平面分别为π1、π2,其法向量分别为N1、N2。
计算平面π2的方程:
其中:x为π2上任意一点;N2=(V20-V21)×(V22-V21);d2=-N2×V21。
将三角形T1的三个顶点分别代入平面方程π2,可得各顶点到平面π2的距离为
计算平面π1的方程,将三角形T2的三个顶点分别代入平面方程π1,排除顶点在π1同侧的三角形。经过前面的排除,可以判定π1、π2相交于一直线L,且L必与两三角形相交。如果交线重叠,则两三角形相交;否则不相交。直线方程为
其中:D为直线方向,D=N1×N2;O为L上一点;t为L上点的标量值。定义L与两三角形交线的端点在L上的标量值分别为t1、t2、t3、t4,通过三角形相交边与L的投影关系及相似三角形的性质,求出t1、t2、t3、t4。判断间隔t1、t2和t3、t4是否重叠,如果是,则两三角形相交。
3.1.2 布尔求差 将所有相交的三角形面片完成相交性测试对这些三角形面片及交点进行编号后,以任意三角形面片中的某一个交点作为出发点,对其周围的三角面片进行搜索得到其交点坐标,直至完成对所有交点的搜索,将这些交点进行拟合连接后可以形成封闭的线,称为相交环,以相交环作为边界可以完成布尔求差运算。如果定义两个相交的网格模型为A、B,相交环为S,以相交环为边界可以分别将网格模型A、B分为两个部分,其中每个模型的一部分会在另一个模型当中,即网格模型的两部分一部分是在B模型内,一部分在B模型外。布尔求差的公式如下:
AoutB和AinB分别为网格模型A在网格模型B的外侧和内侧部分,同样BoutA和BoutA分别为网格模型B在网格模型A的外侧和内侧部分,图10为布尔求算运算得到需要填充处的网格模型。
本文以人体鼻型美容修复模型为例,采用手持式三维激光扫描仪进行了数据采集,获取鼻部点云数据模型,利用Geomagic studio进行点云模型体外孤点的去除,降低噪声,统一采样,完成曲面模型的快速重构;并与依据美学和快速修复为目的建立的鼻子标准模型库进行比对和布尔求差,最终得出该扫描模型与鼻子模型库之间的差值即为美容修复需要填充的模型,该研究为后续美容修复的个性化定制和3D打印填充假体奠定了模型基础。