Changelog
COLMAP 3.8 (01/31/2023)
Updating geo-registration doc. by @ferreram in https://github.com/colmap/colmap/pull/1410
Adding user-specified option for reconstructing purely planar scene. … by @ferreram in https://github.com/colmap/colmap/pull/1408
Only apply sqlite vacuum command when elements are deleted from the database. by @ferreram in https://github.com/colmap/colmap/pull/1414
Replace Graclus with Metis dependency by @ahojnnes in https://github.com/colmap/colmap/pull/1422
Update ceres download URL in build script by @whuaegeanse in https://github.com/colmap/colmap/pull/1430
Fix type errors when building colmap with build.py in windows by @whuaegeanse in https://github.com/colmap/colmap/pull/1440
Fix bug in the computation of the statistics Global/Local BA by @whuaegeanse in https://github.com/colmap/colmap/pull/1449
Add RefineGeneralizedAbsolutePose and covariance estimation by @Skydes in https://github.com/colmap/colmap/pull/1464
Update docker image definition by @ahojnnes in https://github.com/colmap/colmap/pull/1478
Upgrade deprecated ceres parameterizations to manifolds by @ahojnnes in https://github.com/colmap/colmap/pull/1477
Use masks for stereo fusion on automatic reconstruction by @ibrarmalik in https://github.com/colmap/colmap/pull/1488
fix random seed set failed from external interface by @WZG3661 in https://github.com/colmap/colmap/pull/1498
Replace deprecated Eigen nonZeros() call for most recent Eigen versions. by @nackjaylor in https://github.com/colmap/colmap/pull/1494
Fix ceres-solver folder name by @f-fl0 in https://github.com/colmap/colmap/pull/1501
Improved convergence criterion for XYZ to ELL conversion by @ahojnnes in https://github.com/colmap/colmap/pull/1505
Fix bug in the function SetPtr of Bitmap by @whuaegeanse in https://github.com/colmap/colmap/pull/1525
Avoid the calling of copy constructor/assignment by @whuaegeanse in https://github.com/colmap/colmap/pull/1524
Avoid calling copy constructors of FeatureKeypoints and FeatureDescriptors by @whuaegeanse in https://github.com/colmap/colmap/pull/1540
Initialize freeimage if statically linked by @ahojnnes in https://github.com/colmap/colmap/pull/1549
Avoid hard crash if Jacobian matrix is rank deficient by @mihaidusmanu in https://github.com/colmap/colmap/pull/1557
visualize_model.py: added FULL_OPENCV model by @soeroesg in https://github.com/colmap/colmap/pull/1552
Update vcpkg version to fix CI pipeline by @ahojnnes in https://github.com/colmap/colmap/pull/1568
Replace deprecated Mac OS 10.15 with Mac OS 12 build in CI by @ahojnnes in https://github.com/colmap/colmap/pull/1569
Fix inconsistent between the actual executed image reader option and the saved project.ini file by @XuChengHUST in https://github.com/colmap/colmap/pull/1564
checkout the expected version of ceres solver by @scott-vsi in https://github.com/colmap/colmap/pull/1576
use default qt5 brew install directory #1573 by @catapulta in https://github.com/colmap/colmap/pull/1574
Fix image undistortion with nested image folders by @ahojnnes in https://github.com/colmap/colmap/pull/1606
Fix source file permissions by @ahojnnes in https://github.com/colmap/colmap/pull/1607
Fixed the collection of arguments in colmap.bat by @tdegraaff in https://github.com/colmap/colmap/pull/1121
Add OpenMP to COLMAP_EXTERNAL_LIBRARIES if enabled by @logchan in https://github.com/colmap/colmap/pull/1632
Fix output tile reconstructions are the same as the input reconstruction in RunModelSplitter (#1513) by @Serenitysmk in https://github.com/colmap/colmap/pull/1531
add libmetis-dev to solve METIS_INCLUDE_DIRS. by @FavorMylikes in https://github.com/colmap/colmap/pull/1672
Update install.rst by @tomer-grin in https://github.com/colmap/colmap/pull/1671
Update freeimage links. by @Yulv-git in https://github.com/colmap/colmap/pull/1675
fix small typo by @skal65535 in https://github.com/colmap/colmap/pull/1668
Update build.py with new glew link by @aghand0ur in https://github.com/colmap/colmap/pull/1658
Add use_cache in fusion options GUI by @hrflr in https://github.com/colmap/colmap/pull/1655
Add CI pipeline for Ubuntu 22.04 by @ahojnnes in https://github.com/colmap/colmap/pull/1688
Avoid unnecessary copies of data by @ahojnnes in https://github.com/colmap/colmap/pull/1691
Reduce memory allocations in correspondence graph search by @ahojnnes in https://github.com/colmap/colmap/pull/1692
Use FindCUDAToolkit when available. by @hanseuljun in https://github.com/colmap/colmap/pull/1693
Fixed a crash due to inconsistent undistortion by @SomeAlphabetGuy in https://github.com/colmap/colmap/pull/1698
Add CUDA Ubuntu 22.04 CI build by @ahojnnes in https://github.com/colmap/colmap/pull/1705
Delete the redundancy install of libmetis-dev by @thomas-graphopti in https://github.com/colmap/colmap/pull/1721
Fix broken loading of image masks on macOS by @buesma in https://github.com/colmap/colmap/pull/1639
Update install instructions with latest hints and known issues by @ahojnnes in https://github.com/colmap/colmap/pull/1736
Modernize smart pointer initialization, fix alloc/dealloc mismatch by @ahojnnes in https://github.com/colmap/colmap/pull/1737
Fix typo in cli.rst by @ojhernandez in https://github.com/colmap/colmap/pull/1747
Fix inconsistent image resizing between CPU/GPU implementations of SIFT by @Yzhbuaa in https://github.com/colmap/colmap/pull/1642
Reduce number of SIFT test features to make tests run under WSL by @ahojnnes in https://github.com/colmap/colmap/pull/1748
Tag documentation version with dev by @ahojnnes in https://github.com/colmap/colmap/pull/1749
Update copyright to 2023 by @ahojnnes in https://github.com/colmap/colmap/pull/1750
Fix max image dimension for positive first_octave by @ahojnnes in https://github.com/colmap/colmap/pull/1751
Fix SIFT GPU match creation by @ahojnnes in https://github.com/colmap/colmap/pull/1757
Fix SIFT tests for OpenGL by @ahojnnes in https://github.com/colmap/colmap/pull/1762
Suppress CUDA stack size warning for ptxas by @ahojnnes in https://github.com/colmap/colmap/pull/1770
Simplify CUDA CMake configuration by @ahojnnes in https://github.com/colmap/colmap/pull/1776
Fixes for CUDA compilation by @ahojnnes in https://github.com/colmap/colmap/pull/1777
Improvements to dockerfile and build pipeline by @ahojnnes in https://github.com/colmap/colmap/pull/1778
Explicitly require CMAKE_CUDA_ARCHITECTURES to be defined by @ahojnnes in https://github.com/colmap/colmap/pull/1781
Depend on system installed FLANN by @ahojnnes in https://github.com/colmap/colmap/pull/1782
Option to store relative pose between two cameras in database by @yanxke in https://github.com/colmap/colmap/pull/1774
Depend on system installed SQLite3 by @ahojnnes in https://github.com/colmap/colmap/pull/1783
COLMAP 3.7 (01/26/2022)
Allow to save fused point cloud in colmap format when using command line by @boitumeloruf in https://github.com/colmap/colmap/pull/799
Fix typos in image.h by @Pascal-So in https://github.com/colmap/colmap/pull/936
Fix for EPnP estimator by @vlarsson in https://github.com/colmap/colmap/pull/943
Visualize models using Python in Open3D by @ahojnnes in https://github.com/colmap/colmap/pull/948
Update tutorial.rst by @ignacio-rocco in https://github.com/colmap/colmap/pull/953
8 point algorithm internal contraint fix by @mihaidusmanu in https://github.com/colmap/colmap/pull/982
Python script for writing depth/normal arrays by @SBCV in https://github.com/colmap/colmap/pull/957
BuildImageModel: use std::vector instead of numbered arguments by @Pascal-So in https://github.com/colmap/colmap/pull/949
Fix bugs of sift feature matching by @whuaegeanse in https://github.com/colmap/colmap/pull/985
script for modifying fused results by @SBCV in https://github.com/colmap/colmap/pull/984
fix camera model query by @Pascal-So in https://github.com/colmap/colmap/pull/997
fixed small bug in visualize_model.py by @sniklaus in https://github.com/colmap/colmap/pull/1007
Update .travis.yml by @srinivas32 in https://github.com/colmap/colmap/pull/989
Ensure DecomposeHomographyMatrix() always returns rotations by @daithimaco in https://github.com/colmap/colmap/pull/1040
Remove deprecated qt foreach by @UncleGene in https://github.com/colmap/colmap/pull/1039
Fix AMD/Windows GUI visualization bug by @drkoller in https://github.com/colmap/colmap/pull/1079
include colmap_cuda in COLMAP_LIBRARIES when compiled with cuda by @ClementPinard in https://github.com/colmap/colmap/pull/1084
Fix runtime crash when sparsesuite is missing from ceres by @anmatako in https://github.com/colmap/colmap/pull/1115
Store relative poses in two_view_geometry table by @Ahmed-Salama in https://github.com/colmap/colmap/pull/1103
search src images for patch_match from all set, not only referenced subset by @DaniilSNikulin in https://github.com/colmap/colmap/pull/1038
Replace Travis CI with Azure Pipelines for Linux/Mac builds by @ahojnnes in https://github.com/colmap/colmap/pull/1119
Allow ReadPly to handle double precision files by @anmatako in https://github.com/colmap/colmap/pull/1131
Update GPSTransform calculations to improve accuracy by @anmatako in https://github.com/colmap/colmap/pull/1132
Add scale template flag in SimilarityTransform3::Estimate by @anmatako in https://github.com/colmap/colmap/pull/1133
Add CopyFile utility that can copy or hard/soft-link files by @anmatako in https://github.com/colmap/colmap/pull/1134
Expose BA options in IncrementalMapper by @anmatako in https://github.com/colmap/colmap/pull/1139
Allow configurable paths for mvs::Model by @anmatako in https://github.com/colmap/colmap/pull/1141
Change ReconstructionMaanger to write larger recons first by @anmatako in https://github.com/colmap/colmap/pull/1137
Setup Azure pipelines for Windows build by @ahojnnes in https://github.com/colmap/colmap/pull/1150
Add fixed extrinsics in rig config by @anmatako in https://github.com/colmap/colmap/pull/1144
Allow custom config and missing dependencies for patch-match by @anmatako in https://github.com/colmap/colmap/pull/1142
Update print statements for Python 3 compatibility by @UncleGene in https://github.com/colmap/colmap/pull/1126
Allow cleanup of SQLite tables using new database_cleaner command by @anmatako in https://github.com/colmap/colmap/pull/1136
Extend SceneClustering to support non-hierarchical (flat) clusters by @anmatako in https://github.com/colmap/colmap/pull/1140
Support more formats in model_converter by @anmatako in https://github.com/colmap/colmap/pull/1147
Fix Mac 10.15 build due to changed Qt5 path by @ahojnnes in https://github.com/colmap/colmap/pull/1157
Fix bug in ReadCameraRigConfig when reading extrinsics by @anmatako in https://github.com/colmap/colmap/pull/1158
Add utility to compare poses between two sparse models by @ahojnnes in https://github.com/colmap/colmap/pull/1159
Modularize executable main functions into separate sources by @ahojnnes in https://github.com/colmap/colmap/pull/1160
Fix unnecessary copies in for range loops by @ahojnnes in https://github.com/colmap/colmap/pull/1162
Add script to clang-format all source code by @ahojnnes in https://github.com/colmap/colmap/pull/1163
Add back new options and formats for model_converter by @anmatako in https://github.com/colmap/colmap/pull/1164
ImageReder new option and bug fix in GPS priors by @anmatako in https://github.com/colmap/colmap/pull/1146
Parallelize stereo fusion; needs pre-loading of entire workspace by @anmatako in https://github.com/colmap/colmap/pull/1148
Refactoring and new functionality in Reconstruction class by @anmatako in https://github.com/colmap/colmap/pull/1169
Add new functionality in image_undistorter by @anmatako in https://github.com/colmap/colmap/pull/1168
Add new CMake option to disable GUI by @anmatako in https://github.com/colmap/colmap/pull/1165
Fix the memory leak caused by not releasing the memory of the PRNG at the end of the thread by @whuaegeanse in https://github.com/colmap/colmap/pull/1170
Fix fusion segfault bug by @anmatako in https://github.com/colmap/colmap/pull/1176
Update SiftGPU to use floorf for floats by @anmatako in https://github.com/colmap/colmap/pull/1182
fix typo in extraction.cc by @iuk in https://github.com/colmap/colmap/pull/1191
Improvements to NVM, Cam, Recon3D, and Bundler exporters by @drkoller in https://github.com/colmap/colmap/pull/1187
Update model_aligner functionality by @anmatako in https://github.com/colmap/colmap/pull/1177
Add new model_cropper and model_splitter commands by @anmatako in https://github.com/colmap/colmap/pull/1179
use type point2D_t instead of image_t by @iuk in https://github.com/colmap/colmap/pull/1199
Fix radial distortion in Cam format exporter by @drkoller in https://github.com/colmap/colmap/pull/1196
Add new model_transformer command by @anmatako in https://github.com/colmap/colmap/pull/1178
Fix error of using urllib to download eigen from gitlab by @whuaegeanse in https://github.com/colmap/colmap/pull/1194
Multi-line string fix in Python model script by @mihaidusmanu in https://github.com/colmap/colmap/pull/1217
added visibility_sigma to CLI input options for delaunay_mesher. by @Matstah in https://github.com/colmap/colmap/pull/1236
Backwards compatibility of model_aligner by @tsattler in https://github.com/colmap/colmap/pull/1240
[update undistortion] update dumped commands by @hiakru in https://github.com/colmap/colmap/pull/1276
Compute reprojection error in generalized absolute solver by @Skydes in https://github.com/colmap/colmap/pull/1257
Modifying scripts/python/flickr_downloader.py to create files with correct extensions by @snavely in https://github.com/colmap/colmap/pull/1275
revise Dockerfile and readme. by @MasahiroOgawa in https://github.com/colmap/colmap/pull/1281
Update to latest vcpkg version by @ahojnnes in https://github.com/colmap/colmap/pull/1319
Fix compiler warnings reported by GCC by @ahojnnes in https://github.com/colmap/colmap/pull/1317
Auto-rotate JPEG images based on EXIF orientation by @ahojnnes in https://github.com/colmap/colmap/pull/1318
Upgrade vcpkg to fix CI build issues by @ahojnnes in https://github.com/colmap/colmap/pull/1331
Added descriptor normalization argument to feature_extractor. by @mihaidusmanu in https://github.com/colmap/colmap/pull/1332
Fix memory leak in the function of StringAppendV by @whuaegeanse in https://github.com/colmap/colmap/pull/1337
Add CUDA_SAFE_CALL to cudaGetDeviceCount. by @chpatrick in https://github.com/colmap/colmap/pull/1334
Add missing include in case CUDA/GUI is not available by @ahojnnes in https://github.com/colmap/colmap/pull/1329
Fix wrong WGS84 model and test cases in GPSTransform by @Freeverc in https://github.com/colmap/colmap/pull/1333
Fixes bug in sprt.cc: num_inliers was not set. by @rmbrualla in https://github.com/colmap/colmap/pull/1360
Prevent a divide by zero corner case. by @rmbrualla in https://github.com/colmap/colmap/pull/1361
Adds missing header. by @rmbrualla in https://github.com/colmap/colmap/pull/1362
Require Qt in COLMAPConfig only if GUI is enabled by @Skydes in https://github.com/colmap/colmap/pull/1365
Keep precision in the process of storing in text. by @whuaegeanse in https://github.com/colmap/colmap/pull/1363
Expose exe internals by @Skydes in https://github.com/colmap/colmap/pull/1366
Fix inliers matches extraction in EstimateUncalibrated function. by @ferreram in https://github.com/colmap/colmap/pull/1369
Expose exe internals - fix by @Skydes in https://github.com/colmap/colmap/pull/1368
Remove deprecated Mac OSX 10.14 image in ADO pipeline by @ahojnnes in https://github.com/colmap/colmap/pull/1383
Add Mac OSX 11 ADO pipeline job by @ahojnnes in https://github.com/colmap/colmap/pull/1384
Fix warnings for latest compiler/libraries by @ahojnnes in https://github.com/colmap/colmap/pull/1382
Fix clang compiler warnings by @ahojnnes in https://github.com/colmap/colmap/pull/1387
Add Address Sanitizer options and fix reported issues by @ahojnnes in https://github.com/colmap/colmap/pull/1390
User/joschonb/asan cleanup by @ahojnnes in https://github.com/colmap/colmap/pull/1391
Add ADO pipeline for Visual Studio 2022 by @ahojnnes in https://github.com/colmap/colmap/pull/1392
Add ccache option by @ahojnnes in https://github.com/colmap/colmap/pull/1395
Update ModelAligner to handle GPS and custom coords. and more by @ferreram in https://github.com/colmap/colmap/pull/1371
COLMAP 3.6 (07/24/2020)
Improved robustness and faster incremental reconstruction process
Add
image_deleter
command to remove images from sparse modelAdd
image_filter
command to filter bad registrations from sparse modelAdd
point_filtering
command to filter sparse model point cloudsAdd
database_merger
command to merge two databases, which is useful to parallelize matching across different machinesAdd
image_undistorter_standalone
to enable undistorting images without a pre-existing full sparse modelImproved undistortion for fisheye cameras and FOV camera model
Support for masking input images in feature extraction stage
Improved HiDPI support in GUI for high-resolution monitors
Import sparse model when launching GUI from CLI
Faster CPU-based matching using approximate NN search
Support for bundle adjustment with fixed extrinsics
Support for fixing existing images when continuing reconstruction
Camera model colors in viewer can be customized
Support for latest GPU architectures in CUDA build
Support for writing sparse models in Python scripts
Scripts for building and running COLMAP in Docker
Many more bug fixes and improvements to code and documentation
COLMAP 3.5 (08/22/2018)
COLMAP is now released under the BSD license instead of the GPL
COLMAP is now installed as a library, whose headers can be included and libraries linked against from other C/C++ code
Add hierarchical mapper for parallelized reconstruction or large scenes
Add sparse and dense Delaunay meshing algorithms, which reconstruct a watertight surface using a graph cut on the Delaunay triangulation of the reconstructed sparse or dense point cloud
Improved robustness when merging different models
Improved pre-trained vocabulary trees available for download
Add COLMAP as a software entry under Linux desktop systems
Add support to compile COLMAP on ARM platforms
Add example Python script to read/write COLMAP database
Add region of interest (ROI) cropping in image undistortion
Several import bug fixes for spatial verification in image retrieval
Add more extensive continuous integration across more compilation scenarios
Many more bug fixes and improvements to code and documentation
COLMAP 3.4 (01/29/2018)
Unified command-line interface: The functionality of previous executables have been merged into the
src/exe/colmap.cc
executable. The GUI can now be started using the commandcolmap gui
and other commands are available ascolmap [command]
. For example, the feature extractor is now available ascolmap feature_extractor [args]
while all command-line arguments stay the same as before. This should result in much faster project compile times and smaller disk space usage of the program. More details about the new interface are documented at https://colmap.github.io/cli.htmlMore complete depth and normal maps with larger patch sizes
Faster dense stereo computation by skipping rows/columns in patch match, improved random sampling in patch match, and faster bilateral NCC
Better high DPI screen support for the graphical user interface
Improved model viewer under Windows, which now requires Qt 5.4
Save computed two-view geometries in database
Images (keypoint/matches visualization, depth and normal maps) can now be saved from the graphical user interface
Support for PMVS format without sparse bundler file
Faster covariant feature detection
Many more bug fixes and improvements
COLMAP 3.3 (11/21/2017)
Add DSP (Domain Size Pooling) SIFT implementation. DSP-SIFT outperforms standard SIFT in most cases, as shown in “Comparative Evaluation of Hand-Crafted and Learned Local Features”, Schoenberger et al., CVPR 2017
Improved parameters dense reconstruction of smaller models
Improved compile times due to various code optimizations
Add option to specify camera model in automatic reconstruction
Add new model orientation alignment based on upright image assumption
Improved numerical stability for generalized absolute pose solver
Support for image range specification in PMVS dense reconstruction format
Support for older Python versions in automatic build script
Fix OpenCV Fisheye camera model to exactly match OpenCV specifications
COLMAP 3.2 (9/2/2017)
Fully automatic cross-platform build script (Windows, Mac, Linux)
Add multi-GPU feature extraction if multiple CUDA devices are available
Configurable dimension and data type for vocabulary tree implementation
Add new sequential matching mode for image sequences with high frame-rate
Add generalized relative pose solver for multi-camera systems
Add sparse least absolute deviation solver
Add CPU/GPU options to automatic reconstruction tool
Add continuous integration system under Windows, Mac, Linux through Github
Many more bug fixes and improvements
COLMAP 3.1 (6/15/2017)
Add fast spatial verification to image retrieval module
Add binary file format for sparse models by default. Old text format still fully compatible and possible conversion in GUI and CLI
Add cross-platform little endian binary file reading and writing
Faster and less memory hungry stereo fusion by computing consistency on demand and possible limitation of image size in fusion
Simpler geometric stereo processing interface. Now geometric stereo output can be computed using a single pass
Faster and multi-architecture CUDA compilation
Add medium quality option in automatic reconstructor
Many more bug fixes and improvements
COLMAP 3.0 (5/22/2017)
Add automatic end-to-end reconstruction tool that automatically performs sparse and dense reconstruction on a given set of images
Add multi-GPU dense stereo if multiple CUDA devices are available
Add multi-GPU feature matching if multiple CUDA devices are available
Add Manhattan-world / gravity alignment using line detection
Add CUDA-based feature extraction useful for usage on clusters
Add CPU-based feature matching for machines without GPU
Add new THIN_PRISM_FISHEYE camera model with tangential/radial correction
Add binary to triangulate existing/empty sparse reconstruction
Add binary to print summary statistics about sparse reconstruction
Add transitive feature matching to transitively complete match graph
Improved scalability of dense reconstruction by using caching
More stable GPU-based feature matching with informative warnings
Faster vocabulary tree matching using dynamic scheduling in FLANN
Faster spatial feature matching using linear index instead of kd-tree
More stable camera undistortion using numerical Newton iteration
Improved option parsing with some backwards incompatible option renaming
Faster compile times by optimizing includes and CUDA flags
More stable view selection for small baseline scenario in dense reconstruction
Many more bug fixes and improvements
COLMAP 2.1 (12/7/2016)
Support to only index and match specific images in vocabulary tree matching
Support to perform image retrieval using vocabulary tree
Several bug fixes and improvements for multi-view stereo module
Improved Structure-from-Motion initialization strategy
Support to only reconstruct the scene using specific images in the database
Add support to merge two models using overlapping registered images
Add support to geo-register/align models using known camera locations
Support to only extract specific images in feature extraction module
Support for snapshot model export during reconstruction
Skip already undistorted images if they exist in output directory
Support to limit the number of features in image retrieval for improved speed
Miscellaneous bug fixes and improvements
COLMAP 2.0 (9/8/2016)
Implementation of dense reconstruction pipeline
Improved feature matching performance
New bundle adjuster for rigidly mounted multi-camera systems
New generalized absolute pose solver for multi-camera systems
New executable to extract colors from all images
Boost can now be linked in shared and static mode
Various bug fixes and performance improvements
COLMAP 1.1 (5/19/2016)
Implementation of state-of-the-art image retrieval system using Hamming embedding for vocabulary tree matching. This should lead to much improved matching results as compared to the previous implementation.
Guided matching as an optional functionality.
New demo datasets for download.
Automatically switch to PBA if supported by the project.
Implementation of EPNP solver for local pose optimization in RANSAC.
Add option to extract upright SIFT features.
Saving JPEGs in superb quality by default in export.
Add option to clear matches and inlier matches in the project.
New fisheye camera models, including the FOV camera model used by Google Project Tango (Thomas Schoeps).
Extended documentation based on user feedback.
Fixed typo in documentation (Thomas Schoeps).
COLMAP 1.0 (4/4/2016)
Initial release of COLMAP.