README 未给出构建命令,需自行查阅 wiki 的 Building 页面;输入不是原始图片,而是 SfM 产出的相机位姿加稀疏点云;大场景需用 MvsScalablePipeline.py 或调整子场景内存设置,否则可能内存不足

openMVS
cdcseacaveAGPL-3.0活跃维护开源的多视图立体视觉重建库,把稀疏点云补成稠密点云、网格和纹理模型,是三维重建流水线里做稠密重建的常用组件。
open Structure-fom-Motion and Multi-View Stereo reconstruction library
参见 wiki 的 Building 页面:https://github.com/cdcseacave/openMVS/wiki/BuildingREADME 未说明具体显存或 GPU 型号要求,仅提到大场景超出本机可用内存时会自动切分为子场景重建
补上 SfM 之后的一环,把相机位姿和稀疏点云重建成带纹理的完整网格
开源的多视图立体视觉重建库,把稀疏点云补成稠密点云、网格和纹理模型,是三维重建流水线里做稠密重建的常用组件。
核心能力
- 从相机位姿与稀疏点云出发做稠密点云重建
- 基于点云估计网格表面并做网格细化恢复细节
- 为网格计算清晰准确的纹理贴图
- 用 MvsScalablePipeline.py 自动切分子场景处理超大场景
容易踩的坑
- roma2-modelRoMa v2 ONNX model (base, fp32)pre-release2026-09-09 · 2026-09-09 08:12 UTC
查看更新说明
The RoMa v2 graphs CreateStructure's --roma2 option runs in-process through ONNX Runtime: a DINOv3 descriptor graph with on-device retrieval pooling and a bidirectional coarse-match graph, preset base (640 px), fp32. scripts/fetch_roma2_model.py downloads and verifies these files against models/roma2/checksums.txt; this release is its mirror of the Hugging Face repository cDcSeacave/openmvs-roma2-onnx. The descriptor graph contains DINOv3 weights: downloading and using these files means accepting the DINOv3 License (LICENSE-DINOv3.md, attached). RoMa v2 itself is MIT (LICENSE-RoMaV2-MIT.txt).
- v2.4.0ROI estimation and new Viewer最新正式版2026-01-20 · 2026-01-20 06:29 UTC
Version 2.4.0 (January 20, 2026)
Summary
- Complete viewer rewrite with OpenGL 3, ImGui UI, multi-select, screenshots, workflows
- Automatic Region-Of-Interest (ROI) detection
- GPU-based selection and improved rendering
- Enhanced dense reconstruction with SfM normals, segmentation from masks
- Support for new formats: VGGSFM, GLTF point clouds
- Python utilities for depth-maps and mesh reconstruction
- Improved CMake and build system
Major Features
Viewer Enhancements
- Multi-select and screenshot functionality - Select multiple objects and capture screenshots
- GPU-based picker implementation - Improved selection performance using GPU
- Console in UI - Integrated console for better debugging and logging
- Workflow support - Run workflows directly from the viewer, including background execution
- Empty scene signaling - Better handling of empty scenes
- File type associations - Improved file type handling on different platforms
- 3D axes drawing - Visual coordinate system display
- OpenGL v3 upgrade with ImGui - Modernized rendering pipeline with new UI framework
- Camera selection - Select and interact with individual cameras
- GLEW replaced with GLAD - Updated OpenGL loader
Dense Reconstruction Improvements
- SfM normals and surface patches estimation - Better initial geometry from sparse reconstruction
- Point-cloud segmentation from image masks - Automatic segmentation support
- GLTF point-cloud loading - Support for GLTF format
- ROI estimation - Automatic Region-Of-Interest detection
- Depth confidence adjustment - Fast neighbor agreement-based confidence tuning
- Point weighting in ROI - Better handling of region of interest
- Depth-map confidence unification - Normalized confidence values between [0,1]
Interface & Import/Export
- VGGSFM output support - Import from VGGSFM reconstruction
- SIMPLE_PINHOLE model for COLMAP - Additional camera model support
- Binary COLMAP format - Export options for binary format, no points, and common intrinsics
- Python scripts:
- Depth-maps to TSDF mesh
- Depth-map import from NPY or EXR
- DMAP save functionality
Build System
- Enhanced CMake - Streamlined dependencies and improved library linking
- vcpkg integration updates - Regular updates to latest vcpkg releases
- Docker to Ubuntu 24.04 - Updated Docker environment
Core Improvements
Mathematics & Transformations
- ConfidenceInterval addition - Statistical analysis support
- SimilarityTransform refactoring - Improved transformation handling
- Scene coordinates normalization - Better numerical stability
Mesh Processing
- Crop to ROI - Mesh cropping within region of interest
- Parameters fine-tuning for thin structures - Better reconstruction of thin objects
- TRasterMesh multithread-safety - Thread-safe mesh operations
- Stricter threshold for degenerate faces - Improved mesh quality
- RemoveDegenerateFaces() and RemoveDuplicatedVertices() - Mesh cleanup utilities
Performance & Stability
- Bug fixes:
- Tower generation bug fix
- cList constructor bug (#1229)
- File class support for files >2GB
- CUDA support:
- New GPU architectures (A100, etc.)
- CameraCUDA refactoring
- Device utilities addition
- v2.3.0Add multi-texture support to mesh texturing2024-01-07 · 2024-01-07 03:29 UTC
查看更新说明
Version 2.3.0 (January 7, 2024)
Summary
- store all stages in Interface MVS format by default
- store dense point-cloud as PLY, including all point-views information, etc
- add max-texture-size and multi-texture support to mesh texturing stage
- speedup/improve fix non-manifold mesh algorithm
- unify library/application initialization/destroying
- add python support for reading DMAP and Interface MVS file formats
- account for different pixel center conventions when importing/exporting COLMAP which uses pixel center at (0.5,0.5) instead of (0, 0) as OpenMVS
- add interface to MVSNet, Nerfstudio and RTMV scene formats
- improve interface to Polycam scene format
- speedup PLY load/save
- speedup/improve ray-triangle intersection
- add support for UV coordinates agnostic about orientation
- add support for storing neighbor views information in Interface MVS format
- add support for C++20
- various other fixes
Major Features
Storage & I/O
- Interface MVS format as default - All stages stored in MVS format by default
- Dense point-cloud as PLY - Including all point-views information
- Python API - Read DMAP and Interface MVS file formats from Python
- Speedup PLY load/save - Faster file operations
Texturing
- Max-texture-size support - Control texture resolution
- Multi-texture support - Multiple texture maps for large meshes
- UV coordinates orientation agnostic - Flexible UV handling
- Pixel center convention fixes - Correct pixel center handling
Pipeline Integration
- MVSNet interface - Import/export MVSNet scenes
- Nerfstudio interface - Import Nerfstudio data
- RTMV interface - Support for RTMV format
- Polycam improvements - Better Polycam import
Mesh Operations
- Fix non-manifold speedup/improvement - Faster and better mesh cleanup
- Ray-triangle intersection improvements - More accurate and faster
- Neighbor views in MVS format - Store neighbor information
Build & Development
- C++20 support - Modern C++ features
- Unified initialization - Library/application lifecycle management
- COLMAP pixel center convention - Account for (0.5,0.5) center vs (0,0)
- v2.2.0Add Python API2023-07-04 · 2023-07-04 21:12 UTC
查看更新说明
- add Python API
- COLMAP support in MvgMvsPipeline.py
- interface for binary COLMAP
- interface for Polycam scenes
- tower mode #1017
- estimate 3D points scale
- transform scene by a given transform matrix
- unify Docker scripts and add support for GUI
- fix incorrect comparison in BufferedOutputStream #1010
- add lines structure
- compute the focus of attention of a set of cameras
- add image mask support in mesh texturing
- v2.1.0Improved densification of textureless areas2022-11-28 · 2022-11-28 10:37 UTC
查看更新说明
- Improve depth-map estimation in textureless areas using multi-resolution
- Add texture sharpening
- Ground plane estimation
- Estimate volume from the reconstructed mesh
- Texture transfer between two meshes
- Automatic Region-Of-Interest estimation
- Simplify build with vcpkg
- Add tests
- Add Continuous Integration action
- Various bug fixes
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
OpenMVS: open Multi-View Stereo reconstruction library
Introduction
OpenMVS (Multi-View Stereo) is a library for computer-vision scientists and especially targeted to the Multi-View Stereo reconstruction community. While there are mature and complete open-source projects targeting Structure-from-Motion pipelines (like OpenMVG) which recover camera poses and a sparse 3D point-cloud from an input set of images, there are none addressing the last part of the photogrammetry chain-flow. OpenMVS aims at filling that gap by providing a complete set of algorithms to recover the full surface of the scene to be reconstructed. The input is a set of camera poses plus the sparse point-cloud and the output is a textured mesh. The main topics covered by this project are:
- dense point-cloud reconstruction for obtaining a complete and accurate as possible point-cloud
- mesh reconstruction for estimating a mesh surface that explains the best the input point-cloud
- mesh refinement for recovering all fine details
- mesh texturing for computing a sharp and accurate texture to color the mesh
See the complete documentation on wiki.
Build
See the building wiki page. Windows, Ubuntu and MacOS x64 continuous integration status
Automatic Windows x64 binary builds can be found for each commit on its Artifacts page.
Example
See the usage example wiki page.
Large scenes
scripts/python/MvsScalablePipeline.py scene.mvs runs the dense reconstruction, mesh, refinement and texturing of a scene of any size: when the scene does not fit the memory this machine has available, it is split into sub-scenes that each do, reconstructed one after the other and merged. A scene that fits is reconstructed whole, as by the modules themselves. MvgMvsPipeline.py does the same for its dense steps by default (--sub-scene-memory off disables it). See large scenes on the wiki.
License
See the copyright file.
Contact
openmvs[AT]googlegroups.com
