This repository was archived by the owner on Mar 9, 2026. It is now read-only.
Repository navigation
Add complete installation guide for COLMAP and GLOMAP on macOS #63
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,193 @@ | ||
| We would like to thank [Asadali242](https://github.com/Asadali242) for providing the installation guide for MAC. | ||
| Leave your comments at [Issue #62](https://github.com/colmap/glomap/issues/62) if you encounter any problems. | ||
|
|
||
| ## Installing the COLMAP: | ||
|
|
||
| *1. Open the Terminal and install the brew dependencies:* | ||
| ``` | ||
| brew install \ | ||
| cmake \ | ||
| ninja \ | ||
| boost \ | ||
| eigen \ | ||
| flann \ | ||
| libomp \ #(Install Libomp as well) | ||
| freeimage \ | ||
| metis \ | ||
| glog \ | ||
| googletest \ | ||
| ceres-solver \ | ||
| qt@5 \ | ||
| glew \ | ||
| cgal \ | ||
| sqlite3 | ||
| ``` | ||
|
|
||
| *2. Clone the COLMAP repository:* | ||
| ``` | ||
| git clone https://github.com/colmap/colmap.git | ||
| cd colmap | ||
| ``` | ||
|
|
||
| *3. Ensure Qt5 is in your PATH:* | ||
| ``` | ||
| export PATH="/opt/homebrew/opt/qt@5/bin:$PATH" | ||
| ``` | ||
|
|
||
| *4. Create a build directory:* | ||
| ``` | ||
| mkdir build | ||
| cd build | ||
| ``` | ||
|
|
||
| *5. After installing, link Qt5 to make sure it’s accessible:* | ||
| ``` | ||
| brew link qt@5 --force | ||
| ``` | ||
|
|
||
| *6. Run CMake with the specific paths for ARM Mac(M1 and above):* | ||
| ``` | ||
| cmake .. -GNinja \ | ||
| -DCMAKE_PREFIX_PATH="/opt/homebrew/opt/flann;/opt/homebrew/opt/metis;/opt/homebrew/opt/suite-sparse;/opt/homebrew/opt/qt@5;/opt/homebrew/opt/freeimage" | ||
| ``` | ||
|
|
||
| *7. Build and install COLMAP:* | ||
| ``` | ||
| ninja | ||
| sudo ninja install | ||
| ``` | ||
|
|
||
| *8. Confirm COLMAP installation by running:* | ||
| ``` | ||
| colmap -h | ||
| colmap gui | ||
| ``` | ||
|
|
||
| **This is the first part and will install Colmap on your device.** | ||
|
|
||
|
|
||
|
|
||
| ## Installing the GLOMAP: | ||
|
|
||
| *1. Clone the GitHub repository:* | ||
| ``` | ||
| git clone https://github.com/colmap/glomap | ||
| cd glomap | ||
| ``` | ||
|
|
||
| *2. Create a build directory:* | ||
| ``` | ||
| mkdir build | ||
| cd build | ||
| ``` | ||
|
|
||
| *3. Export Environment Variables Again:* | ||
| ``` | ||
| export PATH="/opt/homebrew/opt/qt@5/bin:$PATH" | ||
| export LDFLAGS="-L/opt/homebrew/opt/libomp/lib" | ||
| export CPPFLAGS="-I/opt/homebrew/opt/libomp/include" | ||
| export CMAKE_PREFIX_PATH="/opt/homebrew/opt/qt@5;/opt/homebrew/opt/libomp" | ||
| export PKG_CONFIG_PATH="/opt/homebrew/opt/qt@5/lib/pkgconfig" | ||
| ``` | ||
|
|
||
| *4. Run the CMake Command:* | ||
| ``` | ||
| cmake -DCMAKE_PREFIX_PATH="/opt/homebrew/Cellar/qt@5/5.15.13_1;/opt/homebrew/opt/libomp" \ | ||
| -DOpenMP_C_FLAGS="-Xclang -fopenmp" \ | ||
| -DOpenMP_C_LIB_NAMES="libomp" \ | ||
| -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \ | ||
| -DOpenMP_CXX_LIB_NAMES="libomp" \ | ||
| -DOpenMP_C_INCLUDE_DIRS="/opt/homebrew/opt/libomp/include" \ | ||
| -DOpenMP_CXX_INCLUDE_DIRS="/opt/homebrew/opt/libomp/include" \ | ||
| -DOpenMP_libomp_LIBRARY=/opt/homebrew/opt/libomp/lib/libomp.dylib \ | ||
| -DOpenMP_INCLUDE_DIR=/opt/homebrew/opt/libomp/include \ | ||
| .. -GNinja | ||
| ``` | ||
|
|
||
| *5. Build the Project:* | ||
| ``` | ||
| ninja | ||
| ``` | ||
|
|
||
| **NOTE: If at this point, there are build errors related to ‘cholmod.h’ or ‘omp.h’, clean the build and then re-run the make with the following commands:** | ||
| ``` | ||
| cmake -DCMAKE_PREFIX_PATH="/opt/homebrew/Cellar/qt@5/5.15.13_1;/opt/homebrew/opt/libomp" \ | ||
| -DOpenMP_C_FLAGS="-Xclang -fopenmp -I/opt/homebrew/opt/libomp/include" \ | ||
| -DOpenMP_C_LIB_NAMES="libomp" \ | ||
| -DOpenMP_CXX_FLAGS="-Xclang -fopenmp -I/opt/homebrew/opt/libomp/include" \ | ||
| -DOpenMP_CXX_LIB_NAMES="libomp" \ | ||
| -DOpenMP_libomp_LIBRARY=/opt/homebrew/opt/libomp/lib/libomp.dylib \ | ||
| .. -GNinja | ||
| ``` | ||
|
|
||
| **After the build is successful:** | ||
|
|
||
| *6. Install the Built Project:* | ||
| ``` | ||
| sudo ninja install | ||
| ``` | ||
|
|
||
| *7. Test the Installation:* | ||
| ``` | ||
| glomap -h | ||
| ``` | ||
|
|
||
| **It should display something like:** | ||
| ``` | ||
| GLOMAP -- Global Structure-from-Motion | ||
| Usage: | ||
| glomap mapper --database_path DATABASE --output_path | ||
| MODEL | ||
| glomap mapper_resume --input_path MODEL_INPUT --output_path MODEL_OUTPUT | ||
| Available commands: | ||
| help | ||
| mapper | ||
| mapper_resume | ||
| ``` | ||
|
|
||
|
|
||
| ## Testing with the end-to-end examples provided: | ||
|
|
||
| *1. Open the end-to-end example database link provided:* | ||
| https://lpanaf.github.io/eccv24_glomap/ | ||
|
|
||
| *2. Download one of the datasets provided and extract the zip file.* | ||
|
|
||
| *3. Create a new directory named ‘data’ in the root directory ‘glomap’.* | ||
|
|
||
| *4. Place the extracted dataset in the directory ‘data’.* | ||
|
|
||
| *5. Now navigate back to the project directory ‘glomap’.* | ||
|
|
||
| **NOTE: Following commands are assuming the dataset to be south-building:** | ||
|
|
||
| *6. Extract Features with COLMAP:* | ||
| ``` | ||
| colmap feature_extractor \ | ||
| --image_path ./data/south-building/images \ | ||
| --database_path ./data/south-building/database.db | ||
| ``` | ||
|
|
||
| *7. Match Features with COLMAP:* | ||
| ``` | ||
| colmap exhaustive_matcher \ | ||
| --database_path ./data/south-building/database.db | ||
| ``` | ||
|
|
||
| *8. Run GLOMAP Mapper:* | ||
| ``` | ||
| glomap mapper \ | ||
| --database_path ./data/south-building/database.db \ | ||
| --image_path ./data/south-building/images \ | ||
| --output_path ./output/south-building/sparse | ||
| ``` | ||
|
|
||
| **This should generate a new directory named ‘output’ in the project directory.** | ||
|
|
||
| *9. Visualize the Results:* | ||
| ``` | ||
| colmap gui \ | ||
| --database_path ./data/south-building/database.db \ | ||
| --image_path ./data/south-building/images \ | ||
| --import_path ./output/south-building/sparse/0 | ||
| ``` |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Asadali242 can you check whether the changes still make sense to you? @ahojnnes do you have comments towards this guide?