三维重建框架

Posted Tigerwang1218

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三维重建框架相关的知识,希望对你有一定的参考价值。

转载自https://zhuanlan.zhihu.com/p/25052509

一、三维重建整个过程的框架

导师常常对我说,研究某个东西要参与到其全过程之中,我们研究一个全新的领域,也应该首先对其有一个宏观上的认识,知道其中的大模块,在总体上对其有一些感性认识。这里大家可以参考《基于多幅图像的三维重建理论及算法研究》(戴嘉境)的论文框架,同时我根据自己的理解,进了一些调整与修改,注意以下内容均为概要,详细的内容将在第二章开始介绍,主要如下:

(一)图像预处理

由于我是基于无人机的三维重建,所获得的航拍图像往往有不少的问题,如畸变、噪音等,因此图像预处理阶段主要是对图像进行筛选、去噪、校正的一个过程。这里需要提到的是基于倾斜图像的三维重建技术,主要是通过一个五轴的立体相机来进行航拍,再利用所得到的倾斜图像来进行三维重建,一般都用于建筑群、城市等户外的场景,而这也是我在后续需要继续研究的内容。

(二)稀疏点云重建

在三维重建领域,基于点云数据的重建方式是相当成熟的,本文也是基于此技术进行研究。通过下图(实物为笔芯盒)就可以对点云有一个大致感性认识了,即将三维实体使用一系列的三维空间点来表示,现在对于这种点云数据的获取,主要通过激光扫描以及通过相关算法对图像进行分析得到,我所研究的是后者。 所谓稀疏点云,其来源即为特征点,而特征点即为图像中一些特征明显、便于检测、匹配的点,如建筑物的角、边缘点等。特征点的检测是整个三维重建过程中最为基础、根本的一步,其检测效果的好坏对最后的结果有很大的影响,现在常用的检测算法有SIFT、SURF等。

技术分享

放大后可以看得更加明显:技术分享

在检测出每张图片所有的特征点后,就需要对对应的特征点进行匹配,在这个匹配的过程中,需要完成相机的标定,完成这一步的意义在于在后面能够通过标定的结果,将图像中二维数据点反推出其三维位置,由此就能将所有的二维特征点反推至三维空间,形成稀疏点云。这一步所使用的技术主要为SFM(Structure from motion)。

(三)稠密点云重建

首先看下图,体会一下稀疏点云和稠密点云之间的区别:


稀疏点云:

技术分享

同一物体的稠密点云:

技术分享稠密点云的生成主要使用到了PMVS(Patch-Based Multi-View Stereo Software ,基于面片的三维立体重建算法)这一技术。形成稠密点云后,实物的轮廓、特征等都有了明显的改善,基本可识别。

(四)表面(曲面)重建(Surface Reconstruction)

稠密点云虽然能够更加形象地还原出实物面貌,但是其仍只是大量孤立的三维空间的集合而已,要想实现真正的实物三维化,那就必须要对其进行表面重建,这里首先需要去了解Delaunay三角化的相关概念和原理,然后学习Power Crust算法(http://web.cs.ucdavis.edu/~amenta/powercrust.html),这个算法较为复杂,需要多花点时间去学习。

(五)纹理映射

在对点云数据进行表面重建之后,实物的轮廓、形状已经清晰可见,但是还需最后一步,即纹理映射,纹理映射的作用是使得重建的3D模型更接近实物,具有实物的颜色、纹理以及细节特点。


以上是关于三维重建框架的主要内容,如果未能解决你的问题,请参考以下文章

结构光三维重建-3D Scanning Software实现三维重建

医学图像三维可视化和三维重建的区别

想把多张CT二维图像进行三维重建,啥软件可以实现这个功能?

如何在WPF中使用VTK进行三维重建

详解深度学习三维重建网络:MVSNetPatchMatchNetJDACS-MS

opencv三维重建深度怎么不随视场变化