├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 李迎松 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Source-Codes-3DVison 2 | Source codes collection for 3d vision 视觉三维重建领域的源码收集 3 | 4 | 三维重建开源代码汇总,不定期更新。 5 | 6 | [1 SFM](#sfm)
7 | [2 MVS](#mvs)
8 | [3 SLAM](#slam)
9 | [4 特征匹配](#特征匹配)
10 | [5 立体匹配](#立体匹配)
11 | [6 点云拼接](#点云拼接)
12 | [7 网格构建](#网格构建)
13 | [8 点云网格处理](#点云网格处理)
14 | [9 纹理映射](#纹理映射)
15 | [10 三维渲染](#三维渲染)
16 | 17 | ## SFM 18 | - **Openmvg【3.5k stars】【Mozilla Public License Version 2.0】【[https://github.com/openMVG/openMVG](https://github.com/openMVG/openMVG)】**
19 | 一个多视几何三维重建算法库,从无序二维影像集恢复相机的三维位姿。SFM(Structure From Motion)经典算法库。
20 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527092742723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 21 | 22 | - **Colmap【3k stars】【new BSD license】【[https://github.com/colmap/colmap](https://github.com/colmap/colmap)】**
23 | 一个多视几何三维重建算法库,从无序二维影像集恢复相机的三维位姿(SFM)以及多视立体重建(MVS)。
24 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527092509685.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 25 | - **AliceVision【1.8k stars】【MPL2 license】【[https://github.com/alicevision/AliceVision](https://github.com/alicevision/AliceVision)】**
26 | 一个开源的摄影测量系统框架。
27 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527092356416.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 28 | - **TheiaSfM【600+k stars】【New BSD license】【[https://github.com/sweeneychris/TheiaSfM](https://github.com/sweeneychris/TheiaSfM)】**
29 | 谷歌推出的开源SFM算法库。 30 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210629235309546.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 31 | - **MVE【700+k stars】【BSD 3-Clause License】【[https://github.com/simonfuhrmann/mve](https://github.com/simonfuhrmann/mve)】**
32 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210719230452465.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 33 | - **OpenSfM【2.2k stars】【BSD license】【[https://github.com/mapillary/OpenSfM](https://github.com/mapillary/OpenSfM)】**
34 | 一个用Python实现的SFM算法库。 35 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210629233426494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 36 | 37 | ## MVS 38 | - **openmvs【1.6k stars】【AGPLv3】【[https://github.com/cdcseacave/openMVS](https://github.com/cdcseacave/openMVS)】**
39 | 一个多视立体重建开源算法库,基于带有位姿信息的图像集,重建高质量的纹理模型,效果非常出色。
40 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527225531907.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 41 | - **meshroom【6.5k stars】【MPL2 license】【[https://github.com/alicevision/meshroom](https://github.com/alicevision/meshroom)】**
42 | 和OpenMVS库一样,也是基于带有位姿信息的图像集,重建高质量的纹理模型,但是效果没有OpenMVS好,速度更快些。带有图形界面,做的很漂亮。
43 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527230158531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 44 | ## SLAM 45 | ### VSLAM 46 | - **orb-slam2【6.2k stars】【GPLv3 license】【[https://github.com/raulmur/ORB_SLAM2](https://github.com/raulmur/ORB_SLAM2)】**
47 | 非常经典的 单目/双目/RGBD-slam 算法库
48 | - **orb-slam3【2.5k stars】【GPLv3 license】【[https://github.com/UZ-SLAMLab/ORB_SLAM3](https://github.com/UZ-SLAMLab/ORB_SLAM3)】**
49 | 第一个能够用单目、立体和RGB-D相机,使用针孔和鱼眼镜头模型进行视觉、视觉惯性和多地图SLAM的系统。
50 | #### 单目 slam 51 | - **orb-slam【1.1k stars】【GPLv3 license】【[https://github.com/raulmur/ORB_SLAM](https://github.com/raulmur/ORB_SLAM)】**
52 | 非常经典的单目slam算法库
53 | #### RGBD slam 54 | - **KinectFusion【280+ stars】【MIT License】【[https://github.com/chrdiller/KinectFusionLib](https://github.com/chrdiller/KinectFusionLib)】**
55 | 基于KinectFusion论文实现的一个开源算法,paper:KinectFusion: Real-time dense surface mapping and tracking
56 | - **InfiniTAM∞ v3【680+ stars】【Oxford University Innovation Academic License】【[https://github.com/victorprad/InfiniTAM](https://github.com/victorprad/InfiniTAM)】**
57 | 牛津大学团队做的开源多平台实时大尺度深度融合和跟踪,速度很快,在Windows、Linux、Ios、Android上都可以编译运行,而且速度都还可以。
58 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021052723092847.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 59 | - **VoxelHashing【460+ stars】【Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License】【[https://github.com/niessner/VoxelHashing](https://github.com/niessner/VoxelHashing)】**
60 | 基于TSDF体素融合的经典深度融合算法,有CUDA版本,速度很快。
61 | - **ElasticFusion【1.3k stars】【non-commercial use only】【[https://github.com/mp3guy/ElasticFusion](https://github.com/mp3guy/ElasticFusion)】**
62 | 一个用于RGBD数据的基于Surfel的Fusion算法。适用于室内重建。
63 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527101609923.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 64 | - **ElasticReconstruction【480+ stars】【MIT license】【[https://github.com/qianyizh/ElasticReconstruction](https://github.com/qianyizh/ElasticReconstruction)】**
65 | 一个用于RGBD数据的基于Voxel的Fusion算法。适用于室内重建。
66 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527232136452.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 67 | 68 | - **BundleFusion【1k stars】【non-commercial applications】【[https://github.com/niessner/BundleFusion](https://github.com/niessner/BundleFusion)】**
69 | 一个实时的全局一致的三维重建算法库,基于TSDF,效果是目前Fusion中最好的。
70 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527101706588.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 71 | - **badslam【400+ stars】【BSD-3-Clause License】【CVPR2019】【[https://github.com/ETH3D/badslam](https://github.com/ETH3D/badslam)】**
72 | 一个基于RGBD数据的实时直接法BA-SLAM算法,适合室外重建,来自苏黎世联邦理工学院(ETH)团队。
73 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210523151446161.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 74 | - **tsdf-fusion 【400+ stars】 【BSD-2-Clause License】【[https://github.com/andyzeng/tsdf-fusion](https://github.com/andyzeng/tsdf-fusion)】**
75 | 一个将多个已配准的深度图融合为TSDF体素的算法,TSDF体素可以用于Marching Cubes网格构建
76 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527095350635.png) 77 | ## 特征匹配 78 | - **CudaSift【570+ stars】【non-commercial】【[https://github.com/Celebrandil/CudaSift](https://github.com/Celebrandil/CudaSift)】**
79 | 一个CUDA实现的快速SIFT算法,SIFT是经典的尺度不变性特征匹配算法
80 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527102714228.png) 81 | ## 立体匹配 82 | - **SemiglobalMatching(SGM)【400+ stars】【MIT License】【[https://github.com/ethan-li-coding/SemiGlobalMatching](https://github.com/ethan-li-coding/SemiGlobalMatching)】**
83 | 经典半全局立体匹配算法SGM算法库。效率高适应性强。
84 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527093929761.png) 85 | - **PatchMatchStereo【250+ stars】【MIT License】【[https://github.com/ethan-li-coding/PatchMatchStereo](https://github.com/ethan-li-coding/PatchMatchStereo)】**
86 | 经典倾斜平面立体匹配算法库PatchMatch。效果很棒!
87 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527093911556.png) 88 | -**AD-Cense 【160+ stars】【MIT License】【[https://github.com/ethan-li-coding/AD-Census](https://github.com/ethan-li-coding/AD-Census)】**
89 | 经典AD-Census立体匹配算法,效率高,效果好。Intel RealSense D400 Stereo模块算法。
90 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527093850854.png) 91 | -**MC-CNN【600+ stars】【BSD-2-Clause License】【[https://github.com/jzbontar/mc-cnn](https://github.com/jzbontar/mc-cnn)】**
92 | 深度学习立体匹配算法的经典之作。
93 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210719230125252.png) 94 | ## 点云拼接 95 | - **ICPCUDA【400+ stars】【No License】【[https://github.com/mp3guy/ICPCUDA](https://github.com/mp3guy/ICPCUDA)】**
96 | 一个基于深度图数据(DepthMap)的快速ICP拼接库(CUDA加速),对于VGA尺寸(640x480),在NVIDIA GeForce GTX TITAN X上可达750Hz的速度。作者同时开源了[KinectFusion](https://github.com/mp3guy/ElasticFusion)。
97 | - **CUDA-ScanMatcher-ICP [100+ stars] [MIT License]【 [https://github.com/botforge/CUDA-ScanMatcher-ICP](https://github.com/botforge/CUDA-ScanMatcher-ICP)】**
98 | 一个基于CUDA的ICP点云拼接算法,适用于激光扫描点云和一般点云。
99 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527095433689.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 100 | - **Super4PCS【300+ stars】【Apache License V2】【[https://github.com/nmellado/Super4PCS](https://github.com/nmellado/Super4PCS)】**
101 | 点云粗匹配算法Super4PCS的实现。
102 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527232502495.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 103 | ## 网格构建 104 | - **PoissonRecon 【700+ stars】【MIT License】【[https://github.com/mkazhdan/PoissonRecon](https://github.com/mkazhdan/PoissonRecon)】**
105 | 泊松重建,一个网格构建算法,输入是带法线的无序点云。
106 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527103440884.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 107 | ## 点云网格处理 108 | - **pcl【6.3k stars】【BSD License】【[https://github.com/PointCloudLibrary/pcl](https://github.com/PointCloudLibrary/pcl)】**
109 | 这大概是使用最广泛的点云处理算法库,你可以用它来显示图片、显示点云,它还实现了非常多的点云处理算法,如点云滤波、点云配准、点云分割等,它的官方网站是[https://pointclouds.org/](https://pointclouds.org/)。
110 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604092243655.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 111 | - **OpenMesh【BSD 3 clause license】【[https://www.graphics.rwth-aachen.de/software/openmesh/](https://www.graphics.rwth-aachen.de/software/openmesh/)】**
112 | 非常经典的一个网格处理库,基于半边数据结构,效率很高,且非常稳定,有很多基础网格算法的实现。
113 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527233028820.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 114 | - **vcglib【560+ stars】【GPLv3.0 License】【[http://vcg.isti.cnr.it/vcglib/](http://vcg.isti.cnr.it/vcglib/)】**
115 | 和OpenMesh一样的网格处理基础算法库,也很高效和稳定,比较有名的网格处理软件MeshLib就是用的它。
116 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527233556459.png) 117 | ## 纹理映射 118 | - **mvs-texturing【500+ stars】【BSD 3-Clause License】【[https://github.com/nmoehrle/mvs-texturing](https://github.com/nmoehrle/mvs-texturing)】**
119 | 一个用于多视立体重建的纹理映射算法库,OpenMVS、MVE都是使用这个算法来做纹理映射。
120 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604091307842.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 121 | - **UVAtlas【500+ stars】【MIT License】【[https://github.com/microsoft/UVAtlas](https://github.com/microsoft/UVAtlas)】**
122 | 微软开源的一个自动UV展开算法,UV展开可以用于将网格映射到一张二维UV图上,网格映射的纹理就可以用一张UV图来组织,提高纹理图的利用率。
123 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604091745365.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 124 | 125 | ## 三维渲染 126 | - **potree 【2.3k stars】【FreeBSD Licnese】【[https://github.com/potree/potree](https://github.com/potree/potree)】**
127 | 一个基于WebGL的大型点云渲染工程,很有意思。
128 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527095334910.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JzX2x5cw==,size_16,color_FFFFFF,t_70) 129 | - **OpenSceneGraph(OSG)【2.2k stars】【 OpenSceneGraph Public License】【[https://github.com/openscenegraph/OpenSceneGraph](https://github.com/openscenegraph/OpenSceneGraph)】**
130 | 一个非常成熟好用的跨平台三维数据渲染库,渲染包括点云、网格、纹理模型在内的三维数据,适合在大型软件里作为渲染引擎,还可以处理LOD数据。
131 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210719225358982.png) 132 | - **Pangolin【1.3k stars】【MIT License】【[https://github.com/stevenlovegrove/Pangolin](https://github.com/stevenlovegrove/Pangolin)】**
133 | 一个轻量级的跨平台三维渲染库,可用于slam相关项目的渲染引擎。
134 | --------------------------------------------------------------------------------