魏巍 袁君
摘要:随着3D打印技术的普及,越来越多的用户通过3D打印平台定制个性化产品。3D打印产品个性定制的前提是进行三维建模,而传统的三维建模软件操作复杂,需要用户掌握专业的设计知识。因此,如何快速地进行三维重建是3D打印深度定制的关键。文章提出了一种三维重建的3D打印产品定制化建模方法,用户可以通过待重建目标的多视角图像序列来获取物体表面的三维坐标信息,进而得到物体的三维模型并用于3D打印产品定制。
关键词:三维重建;3D打印;产品定制
中图分类号:TB476
文献标识码:A
文章编码:1672-7053(2020)02-0026-02
目前,大部分的3D打印平台可以对材料、颜色、填充方法等进行定制。对于产品的拓扑结构来说,用户依然需要进行三维建模来构建自己想要的产品,三维建模一般借助三维设计软件,软件安装复杂且版权费用较高,而且要求客户具有一定的三维设计基础,这使得用户设计自己的三维模型变得更加困难。此外,对于一些现实中的物体,例如宠物、玩具、家具[2]等,用户要想构建其三维模型将是一件难度很大的任务。因此,如何让用户更加方便快捷地构建定制化的模型,将是推动3D打印产品深度定制的关键。文章提出了一种快速三维重建的方法,使得用户可以在计算机中快速地还原真实物体的三维模型,更加个性化地定制属于自己的3D打印产品。
1三维重建概述
三维重建是指通过大量物体表面的点,对物体建立三维模型的过程。这种方法首先通过特定的设备与方法来获取物体的三维形状特征,获取到的三维信息通常以点云的数据形式存储。点云数据经过一系列的处理,可以将其转换为常用的三维数据格式(如STEP/STL/IGES/OBJ等),从而用于3D打印。与传统建模方法不同,三维重建是一种逆向的建模过程。这种建模过程可以获取产品或实物的几何数据模型,且不需要用户与复杂难懂的建模软件进行交互。在3D打印、机器人自动导航、人造器官等方面有广泛的应用背景,如图1。
2基于三维重建的3D打印产品定制化建模步骤
如图2所示,三维重建通常分为点云获取、点云预处理、点云精简和网格生成四个步骤。
2.1点云获取
点云获取是指利用特定的测量方法获取物体表面的三维坐标信息,按照测量方式分可以为接触式方法与非接触式方法。接触式测量的方式通过传感器测头与物体表面接触来获取物体表面的三维坐标,其优点是不会受到光照和物体表面纹理变化的影响,测量的精度高。接触式测量常用的设备有三维坐标测量仪。非接触式测量方法可以在不接触物体表面的前提下获得物体表面大量离散点的坐标信息,测量效率高,因此被广泛采用在三维重建中。常见的非接触式测量方法有主动视觉法和被动视觉法两种。主动视觉法借助额外的光源来计算物体表面的三维坐标,主要有激光扫描法、结构光法、TOF法等,常用的设备有三维激光扫描仪、工业CT、深度相机等。被动视觉法不借助外部光源,也不需要借助额外的设备,只需要依据物体的图像序列来提取物体表面的三维坐标信息,常用的方法有单目视觉法、双目视觉法、亮度法等[3-4]。
2.2点云去噪
在点云数据获取时,由于测量设备精度和操作过程等因素对激光扫描或摄像带来的影响,得到的点云数据必将含有许多噪声点,因此在点云的预处理过程中必须要对散乱的点云进行去噪处理。当前,点云去噪的方法多种多样,有基于距离的去噪方法、基于曲率的去噪方法、基于几何结构的去噪方法等。基于距离的去噪方法计算简单,算法的时间复杂度与空间复杂度低,因此被广泛采用。基于距离的点云去噪方法的主要原理是计算点在一个邻域内与其他点的平均距离,依据这个平均距离设定一个阈值,把超出距离阈值范围的点剔除掉。利用基于距离的方法需要对每个点进行邻域点检索。最简单的检索方法是穷举法,即计算每个点到该点的距离,然后选取邻域内的点进行计算。在点云数量多的情况下,这种计算方法的时间复杂度与空间复杂度极高,占用内存多且计算速度慢。因此基于距离的点云去噪方法往往要与快捷有效的检索方法一起使用。k—d树检索方法是由二叉搜索树推广而来的一种用于高维空间中范围搜索和最邻近搜索方法,k—d树法将数据空间剖分为几个部分,然后剖分后的子空间内进行搜索计算,这种方法具有高效的特点。
2.3点云精简
由于获取的点云数据往往具有数据量大、密度不均匀、数据冗余等特点,因此有必要对散乱的点云进行精简处理,降低三维重建算法的复杂度。点云精简可以提高计算效率并获得较好的网格化效果。点云精简的难点在于删除冗余数据的同时如何保留原始模型的几何特征和原始数据的准确性。一般要求精简后的点云既能满足三维重建的精度要求,又能最大程度地降低计算量,提高计算速度。包围盒法是常用的点云精简算法,包围盒法将点云所在的空间的长方体进行剖分,将其剖分成为若干的小立方体,每一个小立方体就是一个包围盒。然后按照一定规则选择立方体中合适的点代表立方体内所有的点。常用的规则是选择最接近于包围盒中心的点来代替该立方体内所有的点。这种方法可以将点云的数量降低到包围盒的数量,操作简单且计算效率高。
2.4网格生成
經过滤波和简化后的点云是无组织的散乱点云,点与点之间没有几何联系,因此必须要进行表面重建,对其进行网格化,还原点云中点与点间的空间拓扑结构。由于散乱点云的空间分布是无序的,如何正确、快速、高效地构建点云之间的几何关系是关键。散乱点云的网格化要对三维空间中的点云网格化可以采用人工交互的方式来实现,但是在点云数量较多时,这种方法就变得不现实,因此必须要依靠计算机借助点云拼接算法来生成三维网格。一个物体的三维模型在计算机中的通常有两种表示方法:边界表示法和空间划分法。边界表示法是将该物体用一组平面表示,把它分为里边和外边两部分分别进行表示,可以用来精确地表示简单的规则的物体,并且方便计算机进行集合运算和操作,它又可以分为多面体表述法和曲面表述法。多面体表述法是指将物体表示成一组封闭物体空间的多边形,而曲面表述法就是利用曲面函数的思想把多面体上的每一个面用函数表达出来。空间划分法(Space—partitioningRepresentation)是指将物体从内部开始,逐步地划分为细小且不重叠的连续实物用来表达物体形状,常用的方法有体素构造法、八叉树法和二分空间法。
3基于三维重建的3D打印产品定制化建模实验分析
实验使用了多视图密集点云重建Multi—viewstereo(MVS)技术来提取物体表面的点云。多视图密集点云重建MVS是对一个物体的多视角图片序列中所有图片的每个像素点进行匹配,该方法将不仅局限于获得的匹配的特征点,它的对象是直接量化的像素,然后针对每一个像素,重建出这个像素在空间中的三维点,这样大大提高了点云的稠密程度,甚至达到图像给人直接展现的清晰度。
采用MVS方法获取点云的方法虽然不需要借助额外的设备,但是其点云提取的结果较为粗糙,必须要对其进行点云的去噪,基于距离的去噪方法具有计算简单的特点,因此实验采用基于距离的去噪方法。由于点云数量大,该实验还采用了k—d树的方法对空间进行剖分,简化去噪的计算复杂度。
对于点云的精简,该实验采用了包围盒法,并且使用了局部曲面插值的方法来保证精简后点云精度。
实验最后采用了边界表示法来表达重建后的模型。前面已经提到,多面体表述法是指将物体表示成一组封闭物体空间的多边形,而其中最常用的就是三角形,利用三角形的这种方法就是三角剖分法,该方法的稳定性好,适用性强[5]。考虑到3D打印实际的应用需求,该实验选择了三角剖分法来拼接点云。
用于3D打印的產品定制化建模实验选择桌面上的鼠标作为重建的对象,参考了开源的三维重建项目MVE,在Ubuntu系统下运行,使用Clion编译器以及CMake管理软件。重建后的效果如图3所示。
4结语
本文提出了一种三维重建的方法,3D打印平台的用户可以借助这种方法快速重建出真实世界中物体的三维模型,且不需要借助昂贵的3D扫描设备。这使得用户更加个性化地定制自己的3D打印产品。该方法可广泛应用于玩具、首饰、古董玩物、宠物等3D打印产品中,具有实际的应用价值。
本文系国家重点研发计划重点专项项目《面向创新创业的3D打印云服务平台研发及应用》,课题1《支持3D打印普及应用的关键技术研究》(项目编号:2017YFB1104201)。
参考文献
[1]魏冬松.3D打印技术在工业设计中的应用研究[J].工业设计,2018(03):121-122.
[2]朱琳,刘家兴.基于3D打印技术的定制化家具创新设计[J].工业设计,2017(07):46-47.
[3]郑太雄,黄帅.基于视觉的三维重建关键技术研究综述[N].自动化学报,2013,11(01).
[4]张涛.基于单目视觉的三维重建[D].西安:西安电子科技大学,2013.
[5]高向敏.散乱点云模型三角网格化处理算法的研究与实现[D].南京:南京师范大学,2012.
[6]解密3D打印[J].工业设计,2013(02):15-19.