/Source-Codes-3DVison

Source codes collection for 3d vision 视觉三维重建领域的源码收集

MIT LicenseMIT

Source-Codes-3DVison

Source codes collection for 3d vision 视觉三维重建领域的源码收集

三维重建开源代码汇总,不定期更新。

1 SFM
2 MVS
3 SLAM
4 特征匹配
5 立体匹配
6 点云拼接
7 网格构建
8 点云网格处理
9 纹理映射
10 三维渲染

SFM

MVS

  • openmvs【1.6k stars】【AGPLv3】【https://github.com/cdcseacave/openMVS
    一个多视立体重建开源算法库,基于带有位姿信息的图像集,重建高质量的纹理模型,效果非常出色。
    在这里插入图片描述
  • meshroom【6.5k stars】【MPL2 license】【https://github.com/alicevision/meshroom
    和OpenMVS库一样,也是基于带有位姿信息的图像集,重建高质量的纹理模型,但是效果没有OpenMVS好,速度更快些。带有图形界面,做的很漂亮。
    在这里插入图片描述

SLAM

VSLAM

  • orb-slam2【6.2k stars】【GPLv3 license】【https://github.com/raulmur/ORB_SLAM2
    非常经典的 单目/双目/RGBD-slam 算法库
  • orb-slam3【2.5k stars】【GPLv3 license】【https://github.com/UZ-SLAMLab/ORB_SLAM3
    第一个能够用单目、立体和RGB-D相机,使用针孔和鱼眼镜头模型进行视觉、视觉惯性和多地图SLAM的系统。

    单目 slam

    RGBD slam

    • KinectFusion【280+ stars】【MIT License】【https://github.com/chrdiller/KinectFusionLib
      基于KinectFusion论文实现的一个开源算法,paper:KinectFusion: Real-time dense surface mapping and tracking

    • InfiniTAM∞ v3【680+ stars】【Oxford University Innovation Academic License】【https://github.com/victorprad/InfiniTAM
      牛津大学团队做的开源多平台实时大尺度深度融合和跟踪,速度很快,在Windows、Linux、Ios、Android上都可以编译运行,而且速度都还可以。
      在这里插入图片描述

    • VoxelHashing【460+ stars】【Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License】【https://github.com/niessner/VoxelHashing
      基于TSDF体素融合的经典深度融合算法,有CUDA版本,速度很快。

    • ElasticFusion【1.3k stars】【non-commercial use only】【https://github.com/mp3guy/ElasticFusion
      一个用于RGBD数据的基于Surfel的Fusion算法。适用于室内重建。
      在这里插入图片描述

    • ElasticReconstruction【480+ stars】【MIT license】【https://github.com/qianyizh/ElasticReconstruction
      一个用于RGBD数据的基于Voxel的Fusion算法。适用于室内重建。
      在这里插入图片描述

    • BundleFusion【1k stars】【non-commercial applications】【https://github.com/niessner/BundleFusion
      一个实时的全局一致的三维重建算法库,基于TSDF,效果是目前Fusion中最好的。
      在这里插入图片描述

    • badslam【400+ stars】【BSD-3-Clause License】【CVPR2019】【https://github.com/ETH3D/badslam
      一个基于RGBD数据的实时直接法BA-SLAM算法,适合室外重建,来自苏黎世联邦理工学院(ETH)团队。
      在这里插入图片描述

    • tsdf-fusion 【400+ stars】 【BSD-2-Clause License】【https://github.com/andyzeng/tsdf-fusion
      一个将多个已配准的深度图融合为TSDF体素的算法,TSDF体素可以用于Marching Cubes网格构建
      在这里插入图片描述

特征匹配

立体匹配

点云拼接

网格构建

点云网格处理

  • pcl【6.3k stars】【BSD License】【https://github.com/PointCloudLibrary/pcl
    这大概是使用最广泛的点云处理算法库,你可以用它来显示图片、显示点云,它还实现了非常多的点云处理算法,如点云滤波、点云配准、点云分割等,它的官方网站是https://pointclouds.org/
    在这里插入图片描述
  • OpenMesh【BSD 3 clause license】【https://www.graphics.rwth-aachen.de/software/openmesh/
    非常经典的一个网格处理库,基于半边数据结构,效率很高,且非常稳定,有很多基础网格算法的实现。
    在这里插入图片描述
  • vcglib【560+ stars】【GPLv3.0 License】【http://vcg.isti.cnr.it/vcglib/
    和OpenMesh一样的网格处理基础算法库,也很高效和稳定,比较有名的网格处理软件MeshLib就是用的它。
    在这里插入图片描述

纹理映射

  • mvs-texturing【500+ stars】【BSD 3-Clause License】【https://github.com/nmoehrle/mvs-texturing
    一个用于多视立体重建的纹理映射算法库,OpenMVS、MVE都是使用这个算法来做纹理映射。
    在这里插入图片描述
  • UVAtlas【500+ stars】【MIT License】【https://github.com/microsoft/UVAtlas
    微软开源的一个自动UV展开算法,UV展开可以用于将网格映射到一张二维UV图上,网格映射的纹理就可以用一张UV图来组织,提高纹理图的利用率。
    在这里插入图片描述

三维渲染

  • potree 【2.3k stars】【FreeBSD Licnese】【https://github.com/potree/potree
    一个基于WebGL的大型点云渲染工程,很有意思。
    在这里插入图片描述
  • OpenSceneGraph(OSG)【2.2k stars】【 OpenSceneGraph Public License】【https://github.com/openscenegraph/OpenSceneGraph
    一个非常成熟好用的跨平台三维数据渲染库,渲染包括点云、网格、纹理模型在内的三维数据,适合在大型软件里作为渲染引擎,还可以处理LOD数据。
    在这里插入图片描述
  • Pangolin【1.3k stars】【MIT License】【https://github.com/stevenlovegrove/Pangolin
    一个轻量级的跨平台三维渲染库,可用于slam相关项目的渲染引擎。