本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:三维重建 – 基于RBF的三维网格重建
原文链接:https://www.stubbornhuang.com/759/
发布于:2020年03月14日 14:52:48
修改于:2021年03月11日 9:31:08

1 基于RBF的三维网格重建
假设已有三维物体曲面S上的N个点的点云数据集SP,以及每个点对应的法向量的集合SN,则一阶多项式隐式曲面函数f\left(p\right)可表达为:
其中,p为物体曲面上任意一点,w_i为i点处径向基函数的权重,ϕ(x)表示径向基核函数,||p||表示三维欧式距离,R(p)为一阶多项式R(p)=a+bx+cy+dz。其中w_i和一阶多项式系数a,b,c,d为待求的未知参数。
除了原始点之外,还需要根据原始点的曲面法向量生成离面约束点。其中外部约束点为原始点沿对应曲面法向量位移ε个法向量单位,其对应的约束值为负值;内部约束点为原始点沿对应曲面法向量反位移ε个法向量单位,其对应的约束值为正值;而原始的点位于曲面上,其对应的约束值为0。
这三类约束点以及其对应的约束值满足:
其中m_i为i点对应的约束值。
且隐式曲面函数式f(p)同时满足正交条件:
设\phi_{ij}=\phi(p_i-p_j),则上述公公式可联立为以下方程组:
设:
通过求解AB=C线性方程组,即可求得未知系数矩阵B,将B回代,即可得到基于RBF的三维曲面函数式。
2 重建思路
令人头疼的理论环节终于过去了,转为正题。
有人就会问?我如何从这些算法理论中重建出一个三维网格模型呢?
- 首先,你得有一个三维点云数据,并且你知道了每一个点的法向量,这其中会涉及到法向量估计算法,这部分我会在后续的博文中进行讲述。
- 然后,你需要按照第一节中算法拼凑求解三维曲面函数的矩阵方程,并求解经过三维点云中所有三维点的三维曲面方程。
- 在求解出曲面方程之后,就需要重建模型的三维网格。经典常用的方法自然是Marchcubes算法,即大名鼎鼎的MC算法,或者改进后的MD算法,这些都属于面绘制方法。而高端进阶一点同时需要高GPU算力的就是体绘制算法,其中会涉及到一点点光线追踪技术。
- 如何使用MC算法去重建三维网格模型呢?首先需要将整个模型所占据的三维空间体素化,并求解每一个三维体素上8个顶点的曲面函数值。之后就是MC算法的经典步骤,大家可以去自行了解,当然,如果有需求可以在下方评论,如果人数较多我就会好好讲一讲MC算法。
3 算法程序展示
这个程序中就是使用RBF三维重建算法以及MC算法对网格进行了重建,采用MFC+OpenGL搭建的程序框架。
4 吐槽一下
Latex公式真的难写,写篇博客花了三个小时。
当前分类随机文章推荐
- 三维重建 - 基于RBF的三维网格重建 阅读4925次,点赞7次
- 三维点云重建(曲面重建)的经典算法 阅读7772次,点赞8次
全站随机文章推荐
- 资源分享 - GLSL Essentials - Enrich your 3D scenes with the power of GLSL 英文高清PDF下载 阅读2102次,点赞0次
- 资源分享 - GPU Gems 1 - Programming Techniques, Tips and Tricks for Real-Time Graphics英文高清PDF下载 阅读3239次,点赞0次
- C++ - 使用ffmpeg读取视频旋转角度并使用OpenCV根据旋转角度对视频进行旋转复原 阅读1708次,点赞0次
- 资源分享 - 鸟哥的Linux私房菜-基础学习篇(第四版)带书签PDF下载 阅读2902次,点赞0次
- 资源分享 - Nonlinear Computational Geometry 英文高清PDF下载 阅读1420次,点赞0次
- 资源分享 - Guide to Computational Geometry Processing Foundations, Algorithms, and Methods英文高清PDF下载 阅读1590次,点赞0次
- C++11 - override关键字简要介绍 阅读2015次,点赞0次
- Python - list与字符串str相互转换方法总结 阅读567次,点赞0次
- 资源分享 - PHP与MySQL程序设计(第3版) 中文 PDF下载 阅读1981次,点赞0次
- 资源分享 - Artificial Intelligence - A Modern Approach , Fourth Edition 英文高清PDF下载 阅读4092次,点赞0次
博主,想学习这个,但是不知道从何下手,可以推荐一些参考资源吗?
主要是把论文看明白吧,然后在github上找些代码看看
那在github上应该怎么搜呢,我咋没搜到什么
比如说:https://github.com/GCVGroup/HRBFQI,不过这是HRBF,不是经典的径向基重建,还有其他的,慢慢找吧
好的谢谢博主
这可有程序吗?
有啊,但是不能开源啊
那怎么能参考一下MC
github上有很多可以参考的代码啊