三维重建开源项目汇总
三維重建開源項目匯總
1、Meshroom ?5.7k
AliceVision是攝影測量計算機視覺框架,可提供3D重建和相機跟蹤算法。AliceVision旨在通過可測試,分析和重用的最新計算機視覺算法提供強大的軟件基礎。該項目是學術界和工業界合作的結果,旨在提供魯棒高質量的產品級尖端算法。
Meshroom是一款基于AliceVision攝影測量計算機視覺框架的免費開源三維重建軟件。擁有便捷的GUI直接手動操作,支持Linux和Windows。
項目鏈接:Meshroom:?https://github.com/alicevision/meshroom
? ? ? ? ? ? ? ? ?AliceVision:?https://github.com/alicevision/AliceVision
2、OpenMVG??3.3k
OpenMVG(Open Multiple View Geometry)提供了一個端到端的三維重建方法, 同時是一個由庫、二進制和管道三部分組成的圖像框架,基于C++開發的,可以在Android、iOS、Linux、macOS和Windows上運行。
- 庫:提供一些可重用的核心算法,如:圖像處理,特征描述和匹配,特征跟蹤,相機模型,多視圖幾何,魯棒估計器,從運動恢復結構等算法;
- 二進制文件:方便管道傳輸獲取,如:管道可能需要場景初始化、特征檢測/匹配和從運動重建結構,并將重建的場景導出到其它多視角雙目視覺框架中以計算密集的點云或紋理網格;
- 管道:通過鏈接各種二進制文件來計算圖像匹配關系,求解從運動恢復結構等問題。
結構示意圖如下:
源碼鏈接:https://github.com/openMVG/openMVG
3、Awesome_3DReconstruction_list ?2.6k
與圖像3D重建相關的論文和資源精選清單。
項目鏈接:https://github.com/openMVG/awesome_3DReconstruction_list
4、Awesome Point Cloud Analysis ?2.4k
關于點云分析(處理)的論文和數據集列表。
項目鏈接:https://github.com/Yochengliu/awesome-point-cloud-analysis
5、OpenSfm ?1.9k
OpenSfM是一個用Python編寫的從運動恢復結構的庫。該庫作為一個處理管道,用于從多個圖像重建相機姿態和3D場景。它由運動結構的基本模塊(特征檢測/匹配,最小化求解)組成,重點是構建一個健魯棒的、尺度可變的重建管道。它還集成了外部傳感器(如GPS、加速計)測量,以實現地理定位并增強魯棒性。提供了一個JavaScript查看器來預覽模型和調試管道。效果截圖如下:
?參考鏈接:https://github.com/mapillary/OpenSfM
6、OpenMVS??1.4k
OpenMVS(open Multi-View Stereo reconstruction library)是面向計算機視覺的庫,尤其是針對多視圖雙目重建社區的。盡管有針對運動恢復結構的成熟完整的開源項目(例如OpenMVG),這些項目可以從輸入的圖像集中恢復相機的姿勢和稀疏的3D點云,但沒有解決攝影測量鏈的最后一部分-流。OpenMVS旨在通過提供一套完整的算法來恢復要重建場景的整個表面來填補這一空白。輸入是一組攝影機姿勢加上稀疏的點云,輸出是帶紋理的網格。該項目涉及的主要主題是:
- 稠密點云重構:獲得盡可能完整,準確的點云
- 網格重建:估計最能解釋輸入點云的網格表面
- 網格細化:恢復所有精細細節
- 網格紋理著色:用于計算清晰準確的紋理以對網格著色
效果如下:
?
項目鏈接:https://github.com/cdcseacave/openMVS
7、Bundler_sfm ?1.3k
Bundler是一個對無序圖像序列(例如來自網絡的圖片)的SFM系統,使用C/C++編寫。Bundler以一系列圖像,圖像特征和圖像匹配作為輸入,生成相機的三維重構和稀疏的場景幾何作為輸出。Bundler生成稀疏的點云,對于稠密重建的軟件,參考?Dr. Yasutaka Furukawa的稠密多視角雙目PMVS2。一個典型的流程是運行Bundler去獲取相機參數,再使用被提供的Bundle2PMVS程序去轉換為PMVS2的輸入,然后運行PMVS2。你可能也會對Dr. Furukawa的CMVS視角聚類軟件有興趣,它對運行PMVS2前的預處理是很有幫助的。下面是Bundler的效果圖:
項目鏈接:?https://github.com/snavely/bundler_sfm
8、BundleFusion ?936
基于深度相機的實時在線表面重整合的全局一致三維重建,效果如下:
項目鏈接:https://github.com/niessner/BundleFusion
9、Face_swap ?700
端到端自動換臉,自動圖像到圖像的臉部交換方法,詳見論文。有趣的是作者的實驗數據都是政客(向大佬低頭),效果如下:
項目鏈接:https://github.com/YuvalNirkin/face_swap
10、Scannet ?809
ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes 是一個RGB-D視頻數據集,包含超過1500次掃描中的250萬次視圖,帶有3D攝像機位姿、表面重建和實例級語義分段注釋。值得注意的是該數據的獲取必須要發郵件給作者申請,然后作者回復才有(有點坑)。為了收集這個數據,專門設計了一個容易使用的和尺度可變的RGB-D捕獲系統,其中包含自動表面重建系統和語義注釋。下面展示使用這個數據在許多3D場景理解任務獲得的高性能結果,包含3D物體分類,語義像素標簽和CAD模型,更多的信息參考論文:
參考鏈接
[1] ScanNet:?https://github.com/ScanNet/ScanNet
[2]?ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes:?http://www.scan-net.org/
[3] 關于ScanNet數據集:?https://blog.csdn.net/weixin_40766438/article/details/102969299
11、SoftRas ?688
"Soft Rasterizer(SoftRas): A Differentiable Renderer for Image-based 3D Reasoning" (ICCV'2019 Oral) 是一個真正的可微分渲染框架,把渲染作為一個可微分的聚合過程,融合所有相對于渲染像素的三角面片概率貢獻。示意圖如下:
項目鏈接:https://github.com/ShichenLiu/SoftRas
12、PIFu ?946
“PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization” (ICCV'2019)用于高分辨率服裝人體數字化的像素對齊隱式函數,可以從單張圖像進行人體三維重構,也支持任意多視角重構,同時也支持單目視屏重構。效果截圖如下
項目鏈接:https://github.com/shunsukesaito/PIFu
13、Matterport ?562
"Matterport3D: Learning from RGB-D Data in Indoor Environments" (3DV'2017)用于RGB-D機器學習任務的非常棒的數據集。Matterport3D V1.0數據集包含90個屬性使用Matterport Pro相機捕獲。倉庫中包含了若干場景理解任務數據集的原始數據,派生數據,語義注釋數據,和腳本/模型。示例如下:
?
項目鏈接:https://github.com/niessner/Matterport
14、Kimera ?687
Kimera(ICRA|RSS'2019|2020)是一個用于實時度量-語義SLAM的C++庫,它使用相機圖像和慣性數據來構建環境的語義注釋3D面片。Kimera是模塊化的,支持ROS,并且在CPU上運行。Kimera包含四個模塊:
- 一個快速精確的VIO里程計 (Kimera-VIO)
- 基于魯棒位姿圖優化的完整SLAM實現 (Kimera-RPGO)
- 單幀和多幀3D面片生成器?(Kimera-Mesher)
- 一個語義注釋3D面片生成器 (Kimera-Semantics)
效果如下(吐槽:最打大只能傳5M,想扔CSDN雞蛋):
項目鏈接:https://github.com/MIT-SPARK/Kimera
15、Mvs-Texturing ?508
Mvs-Texturing (ECCV'2014)可以從圖像中進行帶紋理的三維重構。該項目專注于從運動和多視圖立體技術進行3D重建,但也不限于這些設定。效果如下:
項目鏈接:https://github.com/nmoehrle/mvs-texturing
16、LiveScan3d ?484
“LiveScan3D: A Fast and Inexpensive 3D Data Acquisition System for Multiple Kinect v2 Sensors” (3DV’2015)?是一個實時三維重建系統,使用多個AzureKinect或者Kinect v2深度傳感器同時實時的進行三維重建。產生的3D重建形式是有色點云的形式,所有Kinect的點都放置在同一坐標系中。其中,點云流可以被可視化,記錄或者輸送到HoloLens 或者任何Unity應用中。該系統的可能應用場景包括:
- 同時從多個視點捕獲對象的3D結構;
- 捕獲場景的“全景” 3D結構(通過使用多個傳感器來擴展一個傳感器的視場);
- 將重建的點云流式傳輸到遠程位置;
- 讓多個傳感器捕獲同一場景來提高單個傳感器捕獲的點云的密度。
效果如下:
項目鏈接:https://github.com/MarekKowalski/LiveScan3D
17、VoxelHashing ?431
"Large-Scale, Real-Time 3D Reconstruction using Voxel Hashing" [Siggraph Asia 2013]大規模、實時三維重建,效果如下:
項目鏈接:https://github.com/niessner/VoxelHashing
參考鏈接:https://www.youtube.com/watch?v=XD_UnuWSaoU&t=61s
18、LayoutNet ?329
"LayoutNet: Reconstructing the 3D Room Layout from a Single RGB Image"(CVPR'2018)從單個RGB圖像重建三維房間布局,效果如下:
項目鏈接:https://github.com/zouchuhang/LayoutNet
19、Tsdf Fusion Python ?413
“Volumetric TSDF Fusion of RGB-D Images in Python” (CVPR'2017|2016)這是一個輕量級的python腳本,可將多個彩色和深度圖像融合到TSDF中,然后可以將其用于創建高質量的3D表面網格和點云。效果如下圖:
項目鏈接:https://github.com/andyzeng/tsdf-fusion-python
20、Intrinsic3D??279
"High-Quality 3D Reconstruction by Joint Appearance and Geometry Optimization with Spatially-Varying Lighting" (ICCV'2017)基于接合點外觀和幾何優化的高質量空間變光三維重建,基于低成本的RGB-D傳感器,能夠恢復完整的幾何細節和棱角分明的表面紋理,效果如下:
項目鏈接:https://github.com/NVlabs/intrinsic3d
21、Awesome Holistic 3D??356
該項目整理了一系列3D重建的論文和數據集資源(包括場景類和檢測類)清單,部分數據集如下:
?
項目鏈接:https://github.com/holistic-3d/awesome-holistic-3d
22、Structured3D??214
"Structured3D: A Large Photo-realistic Dataset for Structured 3D Modeling" (ECCV'2020) 是一個大尺度仿真圖像數據集,包含了3.5K的房屋設計。這個數據集由專業設計者創建,包含一系列的真值3D結構注釋(例如語義,深度,表面法向量,和布局等),同時在不同光照和家具配置的條件下生成了一系列的仿真2D圖像。注意:該數據需要申請才可以下載使用。為了公平的對比,定一了標準的訓練,驗證和測試劃分。部分數據如下:
項目鏈接:https://github.com/bertjiazheng/Structured3D
23、Synthesize3DviaDepthOrSil ?136
"Synthesizing 3D Shapes via Modeling Multi-View Depth Maps and Silhouettes with Deep Generative Networks"(CVPR 2017):通過使用深度生成網絡建模多視角深度圖和輪廓來合成三維形狀,效果如下:
?
項目鏈接:https://github.com/Amir-Arsalan/Synthesize3DviaDepthOrSil
24、Msn Point Cloud Completion ?183
"MSN: Morphing and Sampling Network for Dense Point Cloud Completion" (AAAI 2020):??MSN是一種為稠密深度點云補齊設計的漸變和采樣網絡,是一種基于學習的形狀補全方法,它能保持已知結構(可以是分散稀疏的點云)并生成稠密點云。在這個工程中,基于競拍算法(auction algorithm)實現了一種點云的推土機距離(Earth Mover's Distance, EMD),僅僅需要O(n)的內存空間復雜度。效果如下:
項目鏈接:https://github.com/Colin97/MSN-Point-Cloud-Completion
25、Cnncomplete ?116
"Shape Completion using 3D-Encoder-Predictor CNNs and Shape Synthesis" (CVPR 2017) 訓練體積深度神經網絡以補全合成部分掃描的3D形狀。效果如下:
項目鏈接:https://github.com/angeladai/cnncomplete
26、ReconstructionDataset ?111
包含了一系列的用于做三維重建的一組圖像,每一個文件夾中由一系列的圖片組成,可以作為3D重構軟件的輸入。場景清單如下:
項目鏈接:https://github.com/rperrot/ReconstructionDataSet
27、3D-RecGAN-Extended ?96
"Dense 3D Object Reconstruction from a Single Depth View" (TPAMI 2018): 從單個深度視圖進行密集的3D對象重建,也提供了相應的數據集和真值模型。效果如下:
項目鏈接:https://github.com/Yang7879/3D-RecGAN-extended
28、DynamicFusion??259
Paper: R. A. Newcombe, D. Fox and S. M. Seitz, "DynamicFusion: Reconstruction and tracking of non-rigid scenes in real-time,"?2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, MA, 2015, pp. 343-352, doi: 10.1109/CVPR.2015.7298631.
概述:DynamicFusion動態融合提出了第一個能夠實時稠密重建非剛性變形場景的SLAM系統,該方法的實現是通過融合商品級RGBD傳感器。在重建幾何結構的同時估計稠密的體素6D運動場,該方法映射被估計的幾何結構到當前幀中。類似KinectFusion,DynamicFusion系統增量處理去噪,細化,和補全重構為融合提供更多的測量數據,并實時更新展示模型。效果如下:
項目鏈接:https://github.com/mihaibujanca/dynamicfusion
29、ElasticFusion ?1.3k
Paper:
- [1] Whelan, Thomas, et al. "ElasticFusion: Real-time dense SLAM and light source estimation."?The International Journal of Robotics Research?35.14 (2016): 1697-1716.
- [2]?Whelan, Thomas, et al. "ElasticFusion: Dense SLAM without a pose graph." Robotics: Science and Systems, 2015.
概述:ElasticFusion?實時稠密視覺SLAM系統能夠捕捉使用RGB-D相機探測的房間尺度環境的綜合稠密全局一致的基于表面的地圖。效果如下:
項目鏈接:https://github.com/mp3guy/ElasticFusion
參考資料
[1] 三維重建開源項目匯總:?https://zhuanlan.zhihu.com/p/141946874
[2] 一分鐘詳解三維重建學習路線:?https://zhuanlan.zhihu.com/p/191200982
總結
以上是生活随笔為你收集整理的三维重建开源项目汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dubbo与springmvc的简单使用
- 下一篇: linhaifeng fullstack