APP下载

基于散乱点云模型的自适应分层方法研究*

2020-03-10王春香王岩辉张文敬

机电工程 2020年2期
关键词:轮廓线精简切片

王春香,王岩辉,张文敬

(内蒙古科技大学 机械工程学院,内蒙古 包头 014010)

0 引 言

3D打印技术在现代工业制造领域是一项正在快速发展的新技术,其主要思想是增材制造[1]。增材制造技术是以产品模型的数据为基础,将材料自动地累加起来成为实体的制造方法[2]。与减材制造相比,增材制造的核心思想是逐层累加进行的[3]。在3D打印中,三维零件快速成型的工艺主要分为:3DP(三维立体印刷)、LOM(叠层实体制造)、SLA(光固化快速成型)、FDM(熔融沉积成型)、SLS(选择性激光烧结)等[4]。在3D打印中,分层技术是其重要环节,其好坏直接影响到模型的表面精度及其成型效率。现阶段主要存在的问题有:(1)如何协调模型精度和成型效率之间的关系;(2)如何减小分层时产生的阶梯效应。

本文将通过对现有分层算法进行分析,结合自适应分层算法的优势,以较好地解决增材制造过程中成型效率和误差之间的矛盾关系。

1 分层方法分类概述

目前,主流分层方法有3种:(1)基于STL模型的分层;(2)基于CAD模型的直接分层;(3)基于点云数据的分层。

1.1 基于STL模型分层

近几年,在众多的分层方法中,由于建模软件与成型设备接口兼容性,基于STL模型分层方法仍然是当今研究的主流。基于STL分层算法又分为3类:(1)基于拓扑信息的快速分层算法;(2)基于三角面片位置的高效分层算法;(3)基于几何连续性的分层算法。

但是,基于STL模型分层方法仍然存在诸多缺陷,比如STL模型是用三角面片来表示,在对模型表面建立三角面片化时,由于数据量比较大,容易产生不必要的误差,从而使后续的分层也会产生相应的误差等[5]。

1.2 基于CAD模型的直接分层

基于CAD模型的直接分层就是对三维实体模型进行分层,不用对模型进行三角面片化,使得轮廓精度有了很大的提高。但是其也存在一些缺陷:如对CAD模型直接分层,则需要对其模型在分层方向上添加支撑;同时,再对分层方法进行优化时,也会产生相应的困难[6]。

1.3 基于点云数据的直接分层

采用对点云数据的直接分层就是对三维扫描得到的点云数据直接进行分层,避免了对其进行三角网格划分等中间过程,使得分层更加的简洁;同时,分层效率和精度都有了很大的提高。但是由于扫描得到的点云数据非常多,会产生许多亢余点,要对得到的点云数据进行精简预处理[7-8]。

综上所述,本研究通过分析各种分层方法优、缺点可得:当采用基于点云模型的分层方法时,虽要对点云数据进行精简,但也避免了点云转化为中间格式带来的损失,能够满足模型分层效率和精度的要求,结合自适应分层算法可以较好地将问题解决。

2 点云模型自适应分层算法的实现

点云模型自适应分层算法中,分层厚度的确定是其核心。文献[9]采用基于线性相关的精简方法,对平面点云数据进行了精简和分类,得到点云数据的关键特征点,利用多个小直线段连接关键特征点构造截面轮廓线,计算层内所有点到轮廓线的距离,然后根据点到轮廓线的最大距离是否在给定的形状误差范围内,确定下一层切片的位置。其中,寻找平面轮廓线的算法非常复杂,需要进行反复的循环比较,计算量较大。文献[10]提出了一种基于距离变换的自适应切片算法,其基本原理是利用图像处理技术中的距离变换,来计算投影点云的径向宽度R,以R的最大值Rmax作为控制参数,比较准确地反映出两层轮廓之间的最大差距,通过线性同伦的方法插补中间切片数据,从而有效地控制形状误差。其中,形状误差定义为两层切片间截面轮廓的最大差值。

上面所提到的是采用一种计算相邻层距离的变化率作为判别因子,来实现自适应分层。

本文采用投影法来提取切片数据,通过将得到的点云切片数据投影到一个平面上,进行算法的实现,主要步骤包括点云密度估算等4个步骤。

2.1 点云密度估算

点云模型的初始切片厚度确定需要寻找一个合适的参数来衡量,如果设定的参数值较大,那么点云的数据就会过多,降低拟合效率,同时还会使轮廓线的误差较大;如果取值太小,提取的二维轮廓线数据会较少,影响模型的精度。

为了选择合适的参数,本文对点云的密度进行估算。首先在点云G中随机抽取n个点,然后采用K近邻(k-Nearest Neighbor,KNN)搜索算法,找出每个点gi(i=0,1,…,n)在点云G内其距离最小的点(总数记为m个),并计算出这些点到gi的距离Di,然后对得到的所有距离Di求平均值,从而得到点云的密度ρ,即:

(1)

其中,将得到的点云密度ρ作为模型的初始分层厚度,实际的切片厚度为:

h=kρ

(2)

式中:k—系数。

由式(2)可以看出,k的取值直接影响到了点云的分层厚度,影响到最后轮廓线的拟合效果,所以k的取值较为关键。当k取值太小时,所提取的点云数据过小,不能很好地反映轮廓线,使得轮廓拟合精度降低;当k取值太大时,所提取的数据量增大,降低了分层的效率。

所以,要取一个合适的k值,使得提取的截面数据适中,还能清晰地反映轮廓线边界,从而保证轮廓线的精度同时提高分层效率。经过大量实验数据统计可知,k的取值在1~3之间时,能够得到比较好的效果。

2.2 点云数据精简

扫描得到的点云数据初始数据量比较大,里面包含了模型表面的属性信息,同时也存在许多冗余点,这给后续的操作带来很多不便,增加了计算时间,而且也会影响模型表面的光滑性[11],因此必须对点云数据进行精简。本文采用建立平面均匀方格的方法进行数据精简,无需对数据进行排序。

该方法的具体步骤如下:

(1)计算平面点集的点云密度,将其作为方格的最小边长;

(2)计算二维最小包围盒的长度(X方向)xmax-xmin,宽度(Y方向)ymax-ymin;

(3)进行平面均匀方格划分,判定落入每个方格内的点,对方格内的点求均值,并将其作为该位置的新数据点;

(4)将所有的点处理完成后程序结束。

精简前后点云数据对比图如图1所示。

图1 精简前后点云数据对比

由图1可以看出,经过精简后的数据量虽然减少了,但是轮廓线边界还是保持得很完整,也提高了轮廓线拟合的效率。

2.3 点云切片轮廓线提取

本研究首先用Delaunay三角剖分法对点云数据进行提取,然后对提取的点云数据,采用alpha-shapes算法[12]提取边界轮廓线。其过程就是计算每一个三角形边长为d,得出结果之后在与设定值α进行比较,提取d<2α的索引值,找到满足索引值的点,然后再对得到的点用Alpha-Shapes算法,提取轮廓线边界。

Alpha-Shape可以用来从一堆无序的点集中提取边缘。设有一点集q的Alpha-Shape是一个无规则的多边形,其是由点集q和半径参数α决定的且唯一。

Alpha-Shape算法原理图如图2所示。

图2 Alpha-Shape算法原理图

由图2可以看出:Alpha-Shape算法提取轮廓线的过程可以理解为一个半径为α的圆在点集q外滚动,其滚动的痕迹就是这个点集s的边界线。因此,当α值很小,则每个点都是有可能是构成边界的点;如果α无穷大时,则求出的边界线为点集q的凸多边形。

因此,该算法可以用来提取点集表示的多边形的内外边界线,其参数α可以控制多边形生成的精确程度与平滑程度[13]。

2.4 自适应分层算法

计算切片中各线段(轮廓线是由多个直线段组成)与最近点的距离,找出其最大值。计算距离方法有3种:经典算法、面积算法、矢量算法。因为切片每一层的数据比较多,计算量比较大,本研究采用矢量算法来计算其距离。

最近点与直线的位置存在3种可能,点与直线的位置关系如图3所示。

图3 点与直线的位置关系

(3)

因为:

(4)

又因为:

(5)

根据式(5),由向量的方向性可知:当点p的位置如图3(a)所示,那么0

特殊情况下,如点在线段上、点在端点、点在线段延长线上等等的情况全部适用于该公式。

根据r值的不同,最短距离为:

(6)

由式(6)可以得到第一层所有线段到最近点的距离,然后找出其中最大值记为d(1);再以相同的层厚进行分层,找出下一层距离的最大值d(2)。

由式(7)得相邻两层的距离变化率,将v与设定的参数值m进行比较,若v大于m,则需要增加层厚;若小于m的负值,则减小层厚;否则层厚不变。

其中,距离变化率公式为:

(7)

3 实验及结果分析

本研究对上述自适应分层算法进行实验验证。点云模型通过3D FAMILY LSH800扫描仪获取;分层算法在Windows 7系统中安装的Matlab R2016a编程语言环境下运行。

斗齿齿尖的尺寸为97.64 mm×222.00 mm×89.69 mm,共有65 216个数据点,点云密度为0.89。由于点云密度较小,本研究采用较大层厚来进行分层。

斗齿齿尖的点云模型图如图4所示。

图4 斗齿齿尖点云模型

笔者用本文的自适应算法,对该模型沿Y轴方向进行自适应分层。其中,初始厚度为2 mm,精度设为0.05,增量设为0.5 mm,得到的分层数为79层,用时265.8 s。

得到的结果如图5所示。

图5 斗齿齿尖y轴自适应分层效果图

根据文献[9]对斗齿模型齿尖沿Y轴方向的自适应分层,其初始层厚为2 mm,得到的层数为111层,时间为438.5 s。

得到的结果如图6所示。

图6 文献[9]斗齿齿尖y轴分层效果图

对比两种方法可以看出:

(1)本文提出的自适应分层方法在模型表面变化较大和装配要求较高时,其分层效果要比文献[9]分层效果明显;

(2)文献[9]所提出的方法在相同的初始层厚下,分层的层数与时间都要比本文方法多(主要是因为文献[9]在轮廓线提取时要计算所有的点,从而导致计算复杂);

(3)同时也验证了该算法可以通过相邻两层之间的最大欧拉距离的变化率来调整层厚,达到了自适应分层的要求,证明了结果与分析相符合。

4 结束语

(1)本文分析了各个模型分层方法的优劣势,提出了基于点云模型的分层方法,该方法避免了三维模型转化为中间格式带来的损失,提高了成型精度;

(2)本文与现有的自适应分层方法进行了比较,在轮廓线提取方面进行了优化,减少了计算,从而提高了分层效率;

(3)本文提出了基于点云模型的自适应分层算法,其实现自适应的判别因子是相邻两层之间的欧拉距离变化率。

通过实验结果可知,该算法满足自适应分层算法的要求,同时该算法适用范围在满足等厚分层的基础上,又适用于高精度、表面复杂的模型。

猜你喜欢

轮廓线精简切片
立体图像任意剖面轮廓线提取方法仿真研究
基于区域分割的多视角点云精简算法
新局势下5G网络切片技术的强化思考
基于HTML5的凸轮廓线图解法App教学软件研究
网络切片标准分析与发展现状
时常精简多余物品
一种面向应用的流量监测精简架构设计
一种有效的秦俑碎块匹配算法①
肾穿刺组织冷冻切片技术的改进方法
冰冻切片、快速石蜡切片在中枢神经系统肿瘤诊断中的应用价值比较