本文主要是介绍泊松曲面重建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
暂写一篇博客记录下看的两篇可视计算入门论文。《Poisson surface reconstruction》《Screened Poisson Surface Reconstruction》
1.泊松曲面重建简介
激光扫描设备的发展使得被测物体更多细节的数据获取成为可能。根据采样数据的模型重建,在许多实际应用中具有实际意义,如在汽车、航空等工业领域中, 复杂外形产品的设计仍需要根据手工模型, 采用逆向工程的手段建立产品的数字化模型; 根据测量数据建立人体以及骨骼和器官的计算机模型在医学、定制生产等方面都有重要意义。
关于采样数据的重构有基于组合结构和基于隐函数两类方法。
基于组合结构的方法, 如 Delaunay triangulations, alpha shapes 或Voronoi diagrams 这些方法通过建立三角形网格插值所有或大多数点。当存在噪声点时,所产生的表面往往是锯齿状,因此需要平滑或对数据进行处理(refit to the points in subsequent processing)。
隐函数方法则通过定义分段函数, 定义模型内部的值大于零, 模型外部它的值小于零, 然后提取值为零的等值面, 这类方法可以直接地重构逼近表面, 如基于快速傅立叶转换和径向基函数(R BF s ) 的重构方法都属于隐函数重构方法。隐函数方法分为全局方法和局部方法(暂不赘述)。
泊松曲面重建属于隐函数方法实现。泊松表面重建的算法融合了全局和局部方法的优点,采取隐性拟合的方式,通过求解泊松方程来取得点云模型所描述的表面信息代表的隐性方程,通过对该方程进行等值面提取,从而得到具有几何实体信息的表面模型。优点在于,重建出的模型具有水密性的封闭特征,具有良好的几何表面特性和细节特性。
经过屏蔽的泊松表面重建算法,在原有泊松表面重建算法的基础上对输入的点云进行插值约束(引入点集的约束和梯度的约束),将等值面提取的输入方程由原始的泊松方程转化为屏蔽泊松方程。屏蔽序列在稀疏的点集合进行选择;稀疏的约束可被有效处理,且依旧保留相同的有限元离散化,稀疏的结构保持不变,修改后的线性系统可以使用多重网格的方法解决。
为防止屏蔽因子经过尺度变换造成错误信息,加入了相关条件约束。
2.泊松曲面重建的数学基础
泊松曲面重建基于泊松方程。泊松方程是一个比较常见的偏微分方程,在很多领域被应用,如高动态范围图像的调和映射、图像区域的无缝编辑、流体力学、网格编辑等, 多重网格泊松方法已应用于高效GPU计算。
由梯度关系得到采样点和指示函数的积分关系,根据积分关系利用划分块的方法获得点集的向量场,计算指示函数梯度场的逼近,构成泊松方程。根据泊松方程使用矩阵迭代求出近似解,采用移动立方体算法提取等值面,对所测数据点集重构出被测物体的模型,泊松方程在边界处的误差为零,因此得到的模型不存在假的表面框。采用隐函数的泊松方程进行表面重构是利用泊松方程在边界处没有误差的特点。
直接计算梯度场会引起向量场在表面边缘的无穷大值。因此首先用平滑滤波卷积指示函数,然后求平滑函数的梯度场。
高斯散度理论:平滑指示函数的梯度等于平滑表面法向场得到的向量场。
由于曲面未知,无法直接计算表面积分,把采样点集划分为小的区域块,通过对所有块的积分求和近似计算。知道向量场V后,可求指示函数。但向量场V不可积,使用最小平方逼近理论求解,应用散度算子得到泊松方程。
泊松表面重建一次性把所有的点都考虑在内,因此对噪声点有很好的弹性。泊松仿佛允许的层次结构支持局部的基函数,因此对稀疏线性系统的情况有很好的支持。在此基础上描述了多尺度的空间自适应算法,其时间和空间复杂度同重建模型的大小成正比。
整个算法的步骤包括对具有法向量信息的输入点云信息的预处理,对全局问题离散化,对离散化后的子数据求解,求解泊松问题后的等值面提取,以及后期优化处理等。
表面重建过程:
1、定义八叉树。使用八叉树结构存储点集,根据采样点集的位置定义八叉树,然后细分八叉树使每个采样点都落在深度为D的叶节点;
2、设置函数空间:对八叉树的每个节点设置空间函数F,所有节点函数F的线性和可以表示向量场V,基函数F采用了盒滤波的n维卷积;
3、创建向量场:均匀采样的情况下,假设划分的块是常量,通过向量场V逼近指示函数的梯度。采用三次条样插值(三线插值);
4、求解泊松方程:方程的解采用拉普拉斯矩阵迭代求出;
5、提取等值面:为得到重构表面,需要选择阈值获得等值面;先估计采样点的位置,然后用其平均值进行等值面提取,然后用移动立方体算法得到等值面。
参考文献:
http://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdf
http://www.cs.jhu.edu/~misha/MyPapers/ToG13.pdf
【链接】基于泊松方程实现点云的表面重构
http://www.cnki.net/kcms/detail/detail.aspx?filename=JYRJ200904076&dbcode=CJFQ&dbname=CJFD2009&v=
【链接】基于泊松方程的三维表面重建算法的研究
http://url.cn/2H4Umu7
论文作者发表的源代码:http://www.cs.jhu.edu/~misha/Code/PoissonRecon/Version6.11/
这篇关于泊松曲面重建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!