• Stars
    star
    10,984
  • Rank 3,073 (Top 0.07 %)
  • Language
    Python
  • License
    Other
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

3D Reconstruction Software

Meshroom - 3D Reconstruction Software

CII Best Practices

Meshroom is a free, open-source 3D Reconstruction Software based on the AliceVision Photogrammetric Computer Vision framework.

Learn more details about the pipeline on AliceVision website.

See results of the pipeline on sketchfab.

Continuous integration:

  • Windows: Build status
  • Linux: Build Status

Photogrammetry

Photogrammetry is the science of making measurements from photographs. It infers the geometry of a scene from a set of unordered photographs or videos. Photography is the projection of a 3D scene onto a 2D plane, losing depth information. The goal of photogrammetry is to reverse this process.

See the presentation of the pipeline steps.

Manual

https://meshroom-manual.readthedocs.io

Tutorials

Overall presentation of the Meshroom software.

Detailed tutorial with a focus on the features of the 2019.1 release.

Overall presentation of the photogrammetry practice with Meshroom.

Overall presentation of the protogrammetry practice with Meshroom and detailed presentation how to do the retolopogy in Blender.

Presentation of the Meshroom software with a focus on using it for Match Moving.

Customization

Custom Pipelines

You can create custom pipelines in the user interface and save it as template: File > Advanced > Save As Template. You can define the MESHROOM_PIPELINE_TEMPLATES_PATH environment variable to specific folders to make these pipelines available in Meshroom. In a standard precompiled version of Meshroom, you can also directly add custom pipelines in lib/meshroom/pipelines.

Custom Nodes

You can create custom nodes in python and make them available in Meshroom using the MESHROOM_NODES_PATH environment variable. Here is an example to launch a Blender rendering from Meshroom. In a standard precompiled version of Meshroom, you can also directly add custom nodes in lib/meshroom/nodes. To be recognized by Meshroom, a custom folder with nodes should be a Python module (an __init__.py file is needed).

License

The project is released under MPLv2, see COPYING.md.

Citation

If you use this project for a publication, please cite the paper:

@inproceedings{alicevision2021,
  title={{A}liceVision {M}eshroom: An open-source {3D} reconstruction pipeline},
  author={Carsten Griwodz and Simone Gasparini and Lilian Calvet and Pierre Gurdjos and Fabien Castan and Benoit Maujean and Gregoire De Lillo and Yann Lanthony},
  booktitle={Proceedings of the 12th ACM Multimedia Systems Conference - {MMSys '21}},
  doi = {10.1145/3458305.3478443},
  publisher = {ACM Press},
  year = {2021}
}

Get the project

You can download pre-compiled binaries for the latest release.

If you want to build it yourself, see INSTALL.md to setup the project and pre-requisites.

Get the source code and install runtime requirements:

git clone --recursive git://github.com/alicevision/meshroom
cd meshroom
pip install -r requirements.txt

Start Meshroom

You need to have AliceVision installation in your PATH (and LD_LIBRARY_PATH on Linux/macOS).

  • Launch the User Interface
# Windows
set PYTHONPATH=%CD% && python meshroom/ui
# Linux/macOS
PYTHONPATH=$PWD python meshroom/ui

On Ubuntu, you may have conflicts between native drivers and mesa drivers. In that case, you need to force usage of native drivers by adding them to the LD_LIBRARY_PATH: LD_LIBRARY_PATH=/usr/lib/nvidia-340 PYTHONPATH=$PWD python meshroom/ui You may need to adjust the folder /usr/lib/nvidia-340 with the correct driver version.

  • Launch a 3D reconstruction in command line
# Windows: set PYTHONPATH=%CD% &&
# Linux/macOS: PYTHONPATH=$PWD
python bin/meshroom_batch --input INPUT_IMAGES_FOLDER --output OUTPUT_FOLDER

Start Meshroom without building AliceVision

To use Meshroom (ui) without building AliceVision

  • Download a release
  • Checkout corresponding Meshroom (ui) version/tag to avoid versions incompatibilities
  • LD_LIBRARY_PATH=~/foo/Meshroom-2023.1.0/aliceVision/lib/ PATH=$PATH:~/foo/Meshroom-2023.1.0/aliceVision/bin/ PYTHONPATH=$PWD python3 meshroom/ui

Start and Debug Meshroom in an IDE

PyCharm Community is free IDE which can be used. To start and debug a project with that IDE, right-click on Meshroom/ui/__main__.py > Debug, then Edit Configuration, in Environment variables :

  • If you want to use aliceVision built by yourself add: PATH=$PATH:/foo/build/Linux-x86_64/
  • If you want to use aliceVision release add: LD_LIBRARY_PATH=/foo/Meshroom-2023.1.0/aliceVision/lib/;PATH=$PATH:/foo/Meshroom-2023.1.0/aliceVision/bin/ (Make sure that you are on the branch matching the right version)

image

FAQ

See the Meshroom wiki for more information.

Contact

Use the public mailing-list to ask questions or request features. It is also a good place for informal discussions like sharing results, interesting related technologies or publications:

[email protected] http://groups.google.com/group/alicevision

You can also contact the core team privately on: [email protected].

More Repositories

1

AliceVision

Photogrammetric Computer Vision Framework
C++
2,927
star
2

popsift

PopSift is an implementation of the SIFT algorithm in CUDA.
Cuda
424
star
3

CCTag

Detection of CCTag markers made up of concentric circles.
C++
346
star
4

MeshroomMaya

Photomodeling plugin for Maya
C++
140
star
5

geogram

Git mirror of the geogram library by INRIA
C++
120
star
6

ofxMVG

OFX plugins for Multiple View Geometry
C++
66
star
7

LensDistortionFromLines

An Iterative Optimization Algorithm for Lens Distortion Correction Using Two-Parameter Models, Daniel Santana-Cedrés, Luis Gómez, Miguel Alemán-Flores, Agustín Salgado, Julio Esclarín, Luis Mazorra, Luis Álvarez
C++
60
star
8

ScanRig

Multi-Cameras/Lighting Acquisition Setup for Photogrammetry
C++
44
star
9

dataset_monstree

Images dataset for 3D reconstruction
41
star
10

QtOIIO

Qt Image IO plugin based on OpenImageIO.
C++
41
star
11

meshroom-manual

Meshroom manual and documentation
Python
39
star
12

qmlAlembic

Qml Alembic plugin to visualize Alembic Point Clouds
C++
35
star
13

mayaAPI

Autodesk Maya devkit
C++
34
star
14

QtAliceVision

Qt plugin providing AliceVision-based UI Components
C++
27
star
15

dataset_buddha

Images dataset for 3D reconstruction
25
star
16

SfM_quality_evaluation

SfM Camera trajectory quality evaluation
Python
14
star
17

MeshroomMicMac

MicMac nodes for Meshroom
Python
8
star
18

MeshroomResearch

Research Nodes for Meshroom
Modula-3
8
star
19

AliceVisionDependencies

Shell
7
star
20

uncertaintyTE

Uncertainty estimation
C++
6
star
21

alicevision.github.io

Photogrammetric Computer Vision Framework
HTML
6
star
22

MeshroomGeolocation

Geolocation nodes for Meshroom
Python
3
star
23

association

AliceVision Association
CSS
2
star
24

ladio

Web pages of the LADIO project
CSS
2
star
25

linux-kernel-hal

No version of the linux kernel worked with all drivers necessary for HAL and we had to roll our own.
C
1
star
26

popart

Website of the POPART EU Project
CSS
1
star
27

dataset_panoramaFisheyeHdr

Sample datasets to experiment with the Panorama Fisheye HDR pipeline in Meshroom.
1
star
28

labcom-alicia

French LabCom Project
CSS
1
star
29

dataset_photometricStereo

Sample datasets to experiment with the Photometric Stereo pipeline in Meshroom.
1
star