7.2 KiB
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:
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
-
Meshroom: Open Source 3D Reconstruction Software by Mikros Image
Overall presentation of the Meshroom software.
-
Meshroom: Initial Pipeline, CCTags, using a Turntable and Known Camera Positions by mpr-projects
Overview of the default Meshroom 2023.3 pipeline, including masking, cctags and known camera positions.
-
Meshroom Tutorial on Sketchfab by Mikros Image
Detailed tutorial with a focus on the features of the 2019.1 release.
-
Photogrammetry 2 – 3D scanning with just PHONE/CAMERA simpler, better than ever! by Prusa 3D Printer
Overall presentation of the photogrammetry practice with Meshroom.
-
How to 3D Photoscan Easy and Free! by by CG Geek
Overall presentation of the protogrammetry practice with Meshroom and detailed presentation how to do the retolopogy in Blender.
-
Meshroom Survival Guide by Moviola
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.2.0/aliceVision/lib/ PATH=$PATH:~/foo/Meshroom-2023.2.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.2.0/aliceVision/lib/;PATH=$PATH:/foo/Meshroom-2023.2.0/aliceVision/bin/
(Make sure that you are on the branch matching the right version)
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:
alicevision@googlegroups.com http://groups.google.com/group/alicevision
You can also contact the core team privately on: alicevision-team@googlegroups.com.