目录
一、针对初学者
二、针对具备一定基础的同学
三、相关网站
四、相关的开源代码
五、一些补充
六、一些额外补充
先上一个招聘三维重建岗位的图,这个图上信息是我之前在招聘网上看到的,写的很详细,虽然我暂时做不到这些,但是可以描述一个方向,如果你想去三维重建公司工作,那么你应该具备一些什么技能
书籍I Computer Vision for Visual Effects
书籍II Computer Vision Algorithms and Applications
三维重建的每个基础模块挑选了 1-2 篇代表性文献,强烈建议阅读以下相关的原著文献, 这些文献是经过时间检验非常经典的文献,这将大大提升你们的科研和工程能力。 这些文章包括:
Sift 特征点检测
[1] Distinctive Image Features from Scale-Invariant Keypoints
增量 SFM
[2] Photo Tourism Exploring Photo Collections in 3D
[3] Structure-from-Motion Revisited
稠密匹配&&多视角立体视觉
[4] Multi-View Stereo for Community Photo Collections
表面重建
[5] Reconstruction and Representation of 3D Objects with Radial Basis
纹理贴图
[6] Let it be color! Large-Scale Texturing of 3D Reconstructions
我们也提供一些相关的网站,这些网站是一些比较著名的开源系统。
MVE: https://www.gcc.tu-darmstadt.de/home/proj/mve/index.en.jsp
Bundler: http://www.cs.cornell.edu/~snavely/bundler/
VisualSFM: http://ccwu.me/vsfm/
OpenMVG: https://openmvg.readthedocs.io/en/latest/software/SfM/SfM/
ColMap: https://demuc.de/colmap/
https://github.com/colmap/colmap
https://github.com/simonfuhrmann/mve
https://github.com/nmoehrle/mvs-texturing
https://github.com/jianxiongxiao/SFMedu
https://www.youtube.com/watch?v=ELHOjC_V-FE
这个视频介绍了如下一些的用法:
有一个博客,梳理了整体的框架
http://www.cs.cmu.edu/~reconstruction/basic_workflow.html
0*-Open3D
补充一个三维重建的开源代码 Open3D C++,有python接口
http://www.open3d.org/docs/introduction.html
0*-meshroom
https://github.com/alicevision/meshroom
然后以下是
AliceVision是一种摄影测量计算机视觉框架,提供3D重建和相机跟踪算法。AliceVision旨在通过最先进的计算机视觉算法提供强大的软件基础,可以对其进行测试,分析和重用。该项目是学术界和工业界合作的结果,旨在提供具有生产使用所需的稳健性和质量的尖端算法。
https://alicevision.github.io/
0*-Line3D ++
下载地址:
https://github.com/manhofer/Line3Dpp
分割线-2018.11.19更新
分割线-2018.11.21更新
分割线-2018.12.02更新
0*-CMP-MVS
少写了这一个,补上的时候,不想再排序号,就把它称为0*吧
看到它实在VisualSFM中
给出的下载地址(好像没有):
http://grail.cs.washington.edu/downloads/
给出论文:
[CMPMVS] Multi-View Reconstruction Preserving Weakly-Supported Surfaces. M. Jancosek, T. Pajdla, CVPR 2011.
youtube有个下载地址:
https://www.youtube.com/watch?v=ZRTEMKS3Sw0
下载地址:
https://www.dropbox.com/s/80savnaou9ck7v4/cmpmvs-v0.6.0-binary-win64-cuda.zip?dl=0
以及一些其他代码下载地址:
http://grail.cs.washington.edu/downloads/
0-COLMAP
https://github.com/colmap/colmap
关于它的主页:
https://colmap.github.io/
MVS:PMVS、CMVS,CMPMVS,以及OpenMVS:
1-OpenMVS
https://github.com/cdcseacave/openMVS
关于它的主页:
http://cdcseacave.github.io/openMVS/
2-TexRecon – 3D Reconstruction Texturing
优化细节的算法,对数据集进行纹理化:
加上纹理贴图,更加逼真,niub
https://www.gcc.tu-darmstadt.de/home/proj/texrecon/
代码:
https://github.com/nmoehrle/mvs-texturing
3-SfM-Toy-Library
主页:
https://github.com/royshil/SfM-Toy-Library
我用过的分支,我用的时候第三方库还有SSBA,最新的好像已经取消了
https://github.com/royshil/SfM-Toy-Library/tree/335d7d2a0c1e603ec994d0e025bdec8ebeb493bc
使用的序列图:
4-MasteringOpenCV 的第四章 SFM
https://github.com/MasteringOpenCV/code
https://github.com/MasteringOpenCV/code/tree/master/Chapter4_StructureFromMotion
5-MVE 我前面的博客进行了环境配置的讲解
Windows编译MVE
以及项目主页和代码页
https://www.gcc.tu-darmstadt.de/home/proj/mve/
https://github.com/simonfuhrmann/mve/wiki/MVE-Users-Guide
6-Bundler
代码:
https://github.com/snavely/bundler_sfm
还有一个其他的代码:
https://github.com/adinutzyc21/BundlerUbuntu64
项目主页:
http://www.cs.cornell.edu/~snavely/bundler/
一般的博客都是推荐:bundler + pmvs+ cmvs+ meshlab这样实现
7-theia-sfm
项目主页:
http://www.theia-sfm.org/
代码:
https://github.com/nmoehrle/TheiaSfM
8-ENFT-SfM
浙江大学ZJUCVG组-大尺度运动恢复结构系统
项目主页:
http://www.zjucvg.net/ls-acts/ls-acts.html
代码链接:
https://github.com/ZJUCVG/ENFT-SfM
8-ORB_SLAM2
代码:
https://github.com/raulmur/ORB_SLAM2
老一点的orbslam:
https://github.com/raulmur/ORB_SLAM
或者高翔的版本,在上面的基础上,增加了可视化点云图的功能:
https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map
项目主页:
http://webdiis.unizar.es/~raulmur/orbslam/
9-PMVS、CMVS
项目主页:
http://opensourcephotogrammetry.blogspot.com/
代码:
https://github.com/pmoulon/CMVS-PMVS
PMVS2:
https://www.di.ens.fr/pmvs/
CMVS:
https://www.di.ens.fr/cmvs/
10-SFMToolkit
代码:
https://github.com/dddExperiments/SFMToolkit
项目主页:
http://www.visual-experiments.com/demos/sfmtoolkit/
11-CODE and RepMatch
CODE: Coherence Based Decision Boundaries for Feature Correspondence
REPMATCH: ROBUST FEATURE MATCHING AND POSE FOR RECONSTRUCTING MODERN CITIES
两个核心部分,都没有开源,速度比较慢,核心使用的是ASIFT+高斯线性回归
项目主页:
http://www.kind-of-works.com/
代码主页:
https://github.com/seravee08/WideBaselineFeatureMatcher_PAMI
http://www.kind-of-works.com/code/repmatch_code_bf_small.zip
除了单纯图像进行三维重建,还有一种激光加图像的三维重建-ToF,结构光
参考数目:
除了点云的表示方式,三维结构还有几种表示方式:
其中,马赛克像素的那个叫做octomap,用处大致是方便路径规划:
具体详细的信息,参考高翔博士的博客:
http://www.cnblogs.com/gaoxiang12/p/5041142.html