Method | SFM(Structue from Motion) | MVS(Multiple-View Stereo) | |||||
---|---|---|---|---|---|---|---|
Libriry | Bundler | OpenMVG | VisualSFM | PMVS2(Patch-based Multi-view Stereo Software) | CMVS(Clustering Views for Multi-view Stereo) | OpenMVS(Open Multi-view Stereovision) | |
Introduction |
1. Input a branch of images
2.Detect feature in each image(descriptor:SIFT or ORB) 3.Feature Matching between two iamges 3.1 Nearest points matching(kd-tree) 3.2 Calculate Fundenmental Matrix, and use RANSAC filter 4. Bundler Adjustment |
openMVG provide a collection of tiny libraries that allow to solve computer vision problems and build complete SfM pipeline.
1. Image listing 2. Image description computation 3. Corresponding images and correspondences computation 4. SfM solving (2 methods) 5. Optional further processing |
An automated GUI-based end-to-end 3D reconstruction system from images, which integrates our CMVS and PMVS.
|
Performs a quite complex optimization that can be dreadfully slow or take an astronomic amount of memory on large image sequences.
|
This software (CMVS) takes the output of a structure-from-motion (SfM) software as input, then decomposes the input images into a set of image clusters of managable size. CMVS should be used in conjunction with an SfM software Bundler and an MVS software PMVS2 (PMVS version 2). Clustering the coarse 3D SfM output into regions, PMVS2 will then be called (potentially in parallel) on each cluster, simplifying its execution. CMVS will then merge each PMVS2 output in an unified detailed model.
|
Open Multi-View Stereo reconstruction library 多视立体重建库,OpenMVS是一个计算机视觉领域重要的三维重建库,有成熟的SfMpipeline解决方案(OpenMVG)。OpenMVS的创建旨在提供恢复三维场景的能力,主要包括如下几个方面:
1.dense point-cloud reconstruction 2.mesh reconstruction 3.mesh refinement 4.mesh texturing | |
Author&Link |
Noah Snavely http://www.cs.cornell.edu/~snavely/bundler/
|
https://openmvg.readthedocs.io/en/latest/
|
Changchang Wu http://ccwu.me/vsfm/
|
Yasutaka Furukawa and Jean Ponce https://www.di.ens.fr/cmvs/
|
Yasutaka Furukawa https://www.di.ens.fr/cmvs/ Document: https://www.di.ens.fr/cmvs/documentation.html
|
https://cdcseacave.github.io/openMVS/
https://github.com/cdcseacave/openMVS | |
Need camera parameters? | No | Yes | |||||
Difference |
1. A coarse 3D shape of the scene, often called the “sparse reconstruction”.
2. Seek through the entire 2D image for every descriptor to find a potential match. |
1. Refine the mesh obtained by the SFM. resulting in whar is called a “Dense reconstruction”
2. It works on a more constrained problem (since already have the camera parameters of every image like position, rotation, focal, etc.) 3. Based on epipolar geometry, MVS will work on a single 1D line to find matches, simplifying the problem quite a deal. 4. MVS usually takes into account illumination and object materials into its optimization, which SfM does not. | |||||
Advantage |
1. Use less computing power (quicker output / less energy required on mobile), which may provide a good enough result in some cases, for example coarse volume estimation or rough shape identification.
2. Depends on the task to perform and goal to achieve. | ||||||
Summary |
SFM的重建成果是稀疏三维点云,为了进入更加深刻的领域,获得更好(稠密)的结果,我们进入到MVS。
1. 如何理解稠密点云的生成原理? MVS是生成稠密点云的方法,事实上,为什么我们在SFM中不能得到稠密点云?因为,SFM中我们用来做重建的点是由特征匹配提供的,这些匹配点天生不密集,而使用计算机来进行三维点云重建,我们必须认识到,点云的密集程度是由人为进行编程进行获取的。SFM获得点的方式决定了它不可能直接生成密集点云。而MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 其实现的理论依据在于,多视图照片间,对于拍摄到的相同的三维几何结构部分,存在极线几何约束。描述这种几何约束:想象,对于在两张图片中的同一个点。现在回到拍摄照片的那一刻,在三维世界中,存在一条光线从照片上这一点,同时穿过拍摄这张照片的相机的成像中心点,最后会到达空间中一个三维点,这个三维点同时也会在另一张照片中以同样的方式投影。这个过程这样看来,很普通,就如同普通的相机投影而已。但是因为两张图片的原因,他们之间存在联系,这种联系的证明超过了能力范围,但是我们只需要知道,此种情况下,两张照片天然存在了一种约束。 2. 初步探究MVS中的点匹配方法在有了约束的基础上,接下来就是在图片上的一条线上进行探测,寻找两张图片上的同一点。主要方法为逐像素判断,两个照片上的点是否是同一点——为此提出图像点间的“一致性判定函数” |
基于图像的大规模场景三维重建(上):https://www.leiphone.com/news/201711/9dxX6g30dlEoqvPZ.html
基于图像的大规模场景三维重建(下):https://www.leiphone.com/news/201711/s6CHNAyjurPPyKiz.html
未完待续。。。