openMVS

cdcseacaveAGPL-3.0活跃维护

开源的多视图立体视觉重建库,把稀疏点云补成稠密点云、网格和纹理模型,是三维重建流水线里做稠密重建的常用组件。

open Structure-fom-Motion and Multi-View Stereo reconstruction library

v2.4.0发布于 2026-01-20 06:29 UTC4,190star +2 / 7 天992fork同步于 2026-11-10 17:40 UTC

怎么上手

由 README 提炼,执行前请确认
参见 wiki 的 Building 页面:https://github.com/cdcseacave/openMVS/wiki/Building
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求,仅提到大场景超出本机可用内存时会自动切分为子场景重建

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

补上 SfM 之后的一环,把相机位姿和稀疏点云重建成带纹理的完整网格

开源的多视图立体视觉重建库,把稀疏点云补成稠密点云、网格和纹理模型,是三维重建流水线里做稠密重建的常用组件。

核心能力

  • 从相机位姿与稀疏点云出发做稠密点云重建
  • 基于点云估计网格表面并做网格细化恢复细节
  • 为网格计算清晰准确的纹理贴图
  • 用 MvsScalablePipeline.py 自动切分子场景处理超大场景

容易踩的坑

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

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.4.0
  1. 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).

  2. 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
  3. 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)
  4. 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
  5. 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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    OpenMVS: open Multi-View Stereo reconstruction library

    Watch reconstruction

    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 Continuous Integration 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