COLMAP Changelog

What's new in COLMAP 3.8

Feb 5, 2023
  • Updating geo-registration doc. by @ferreram in #1410
  • Adding user-specified option for reconstructing purely planar scene. … by @ferreram in #1408
  • Only apply sqlite vacuum command when elements are deleted from the database. by @ferreram in #1414
  • Replace Graclus with Metis dependency by @ahojnnes in #1422
  • Update ceres download URL in build script by @whuaegeanse in #1430
  • Fix type errors when building colmap with build.py in windows by @whuaegeanse in #1440
  • Fix bug in the computation of the statistics Global/Local BA by @whuaegeanse in #1449
  • Add RefineGeneralizedAbsolutePose and covariance estimation by @Skydes in #1464
  • Update docker image definition by @ahojnnes in #1478
  • Upgrade deprecated ceres parameterizations to manifolds by @ahojnnes in #1477
  • Use masks for stereo fusion on automatic reconstruction by @ibrarmalik in #1488
  • fix random seed set failed from external interface by @WZG3661 in #1498
  • Replace deprecated Eigen nonZeros() call for most recent Eigen versions. by @nackjaylor in #1494
  • Fix ceres-solver folder name by @f-fl0 in #1501
  • Improved convergence criterion for XYZ to ELL conversion by @ahojnnes in #1505
  • Fix bug in the function SetPtr of Bitmap by @whuaegeanse in #1525
  • Avoid the calling of copy constructor/assignment by @whuaegeanse in #1524
  • Avoid calling copy constructors of FeatureKeypoints and FeatureDescriptors by @whuaegeanse in #1540
  • Initialize freeimage if statically linked by @ahojnnes in #1549
  • Avoid hard crash if Jacobian matrix is rank deficient by @mihaidusmanu in #1557
  • visualize_model.py: added FULL_OPENCV model by @soeroesg in #1552
  • Update vcpkg version to fix CI pipeline by @ahojnnes in #1568
  • Replace deprecated Mac OS 10.15 with Mac OS 12 build in CI by @ahojnnes in #1569
  • Fix inconsistent between the actual executed image reader option and the saved project.ini file by @XuChengHUST in #1564
  • checkout the expected version of ceres solver by @scott-vsi in #1576
  • use default qt5 brew install directory #1573 by @catapulta in #1574
  • Fix image undistortion with nested image folders by @ahojnnes in #1606
  • Fix source file permissions by @ahojnnes in #1607
  • Fixed the collection of arguments in colmap.bat by @tdegraaff in #1121
  • Add OpenMP to COLMAP_EXTERNAL_LIBRARIES if enabled by @logchan in #1632
  • Fix output tile reconstructions are the same as the input reconstruction in RunModelSplitter (#1513) by @Serenitysmk in #1531
  • add libmetis-dev to solve METIS_INCLUDE_DIRS. by @FavorMylikes in #1672
  • Update install.rst by @tomer-grin in #1671
  • Update freeimage links. by @Yulv-git in #1675
  • fix small typo by @skal65535 in #1668
  • Update build.py with new glew link by @aghand0ur in #1658
  • Add use_cache in fusion options GUI by @hrflr in #1655
  • Add CI pipeline for Ubuntu 22.04 by @ahojnnes in #1688
  • Avoid unnecessary copies of data by @ahojnnes in #1691
  • Reduce memory allocations in correspondence graph search by @ahojnnes in #1692
  • Use FindCUDAToolkit when available. by @hanseuljun in #1693
  • Fixed a crash due to inconsistent undistortion by @SomeAlphabetGuy in #1698
  • Add CUDA Ubuntu 22.04 CI build by @ahojnnes in #1705
  • Delete the redundancy install of libmetis-dev by @thomas-graphopti in #1721
  • Fix broken loading of image masks on macOS by @buesma in #1639
  • Update install instructions with latest hints and known issues by @ahojnnes in #1736
  • Modernize smart pointer initialization, fix alloc/dealloc mismatch by @ahojnnes in #1737
  • Fix typo in cli.rst by @ojhernandez in #1747
  • Fix inconsistent image resizing between CPU/GPU implementations of SIFT by @Yzhbuaa in #1642
  • Reduce number of SIFT test features to make tests run under WSL by @ahojnnes in #1748
  • Tag documentation version with dev by @ahojnnes in #1749
  • Update copyright to 2023 by @ahojnnes in #1750
  • Fix max image dimension for positive first_octave by @ahojnnes in #1751
  • Fix SIFT GPU match creation by @ahojnnes in #1757
  • Fix SIFT tests for OpenGL by @ahojnnes in #1762
  • Suppress CUDA stack size warning for ptxas by @ahojnnes in #1770
  • Simplify CUDA CMake configuration by @ahojnnes in #1776
  • Fixes for CUDA compilation by @ahojnnes in #1777
  • Improvements to dockerfile and build pipeline by @ahojnnes in #1778
  • Explicitly require CMAKE_CUDA_ARCHITECTURES to be defined by @ahojnnes in #1781
  • Depend on system installed FLANN by @ahojnnes in #1782
  • Option to store relative pose between two cameras in database by @yanxke in #1774
  • Depend on system installed SQLite3 by @ahojnnes in #1783

New in COLMAP 3.7 (Jan 27, 2022)

  • Allow to save fused point cloud in colmap format when using command line by @boitumeloruf in #799
  • Fix typos in image.h by @Pascal-So in #936
  • Fix for EPnP estimator by @vlarsson in #943
  • Visualize models using Python in Open3D by @ahojnnes in #948
  • Update tutorial.rst by @ignacio-rocco in #953
  • 8 point algorithm internal contraint fix by @mihaidusmanu in #982
  • Python script for writing depth/normal arrays by @SBCV in #957
  • BuildImageModel: use std::vector instead of numbered arguments by @Pascal-So in #949
  • Fix bugs of sift feature matching by @whuaegeanse in #985
  • script for modifying fused results by @SBCV in #984
  • fix camera model query by @Pascal-So in #997
  • fixed small bug in visualize_model.py by @sniklaus in #1007
  • Update .travis.yml by @srinivas32 in #989
  • Ensure DecomposeHomographyMatrix() always returns rotations by @daithimaco in #1040
  • Remove deprecated qt foreach by @UncleGene in #1039
  • Fix AMD/Windows GUI visualization bug by @drkoller in #1079
  • include colmap_cuda in COLMAP_LIBRARIES when compiled with cuda by @ClementPinard in #1084
  • Fix runtime crash when sparsesuite is missing from ceres by @anmatako in #1115
  • Store relative poses in two_view_geometry table by @Ahmed-Salama in #1103
  • search src images for patch_match from all set, not only referenced subset by @DaniilSNikulin in #1038
  • Replace Travis CI with Azure Pipelines for Linux/Mac builds by @ahojnnes in #1119
  • Allow ReadPly to handle double precision files by @anmatako in #1131
  • Update GPSTransform calculations to improve accuracy by @anmatako in #1132
  • Add scale template flag in SimilarityTransform3::Estimate by @anmatako in #1133
  • Add CopyFile utility that can copy or hard/soft-link files by @anmatako in #1134
  • Expose BA options in IncrementalMapper by @anmatako in #1139
  • Allow configurable paths for mvs::Model by @anmatako in #1141
  • Change ReconstructionMaanger to write larger recons first by @anmatako in #1137
  • Setup Azure pipelines for Windows build by @ahojnnes in #1150
  • Add fixed extrinsics in rig config by @anmatako in #1144
  • Allow custom config and missing dependencies for patch-match by @anmatako in #1142
  • Update print statements for Python 3 compatibility by @UncleGene in #1126
  • Allow cleanup of SQLite tables using new database_cleaner command by @anmatako in #1136
  • Extend SceneClustering to support non-hierarchical (flat) clusters by @anmatako in #1140
  • Support more formats in model_converter by @anmatako in #1147
  • Fix Mac 10.15 build due to changed Qt5 path by @ahojnnes in #1157
  • Fix bug in ReadCameraRigConfig when reading extrinsics by @anmatako in #1158
  • Add utility to compare poses between two sparse models by @ahojnnes in #1159
  • Modularize executable main functions into separate sources by @ahojnnes in #1160
  • Fix unnecessary copies in for range loops by @ahojnnes in #1162
  • Add script to clang-format all source code by @ahojnnes in #1163
  • Add back new options and formats for model_converter by @anmatako in #1164
  • ImageReder new option and bug fix in GPS priors by @anmatako in #1146
  • Parallelize stereo fusion; needs pre-loading of entire workspace by @anmatako in #1148
  • Refactoring and new functionality in Reconstruction class by @anmatako in #1169
  • Add new functionality in image_undistorter by @anmatako in #1168
  • Add new CMake option to disable GUI by @anmatako in #1165
  • Fix the memory leak caused by not releasing the memory of the PRNG at the end of the thread by @whuaegeanse in #1170
  • Fix fusion segfault bug by @anmatako in #1176
  • Update SiftGPU to use floorf for floats by @anmatako in #1182
  • fix typo in extraction.cc by @iuk in #1191
  • Improvements to NVM, Cam, Recon3D, and Bundler exporters by @drkoller in #1187
  • Update model_aligner functionality by @anmatako in #1177
  • Add new model_cropper and model_splitter commands by @anmatako in #1179
  • use type point2D_t instead of image_t by @iuk in #1199
  • Fix radial distortion in Cam format exporter by @drkoller in #1196
  • Add new model_transformer command by @anmatako in #1178
  • Fix error of using urllib to download eigen from gitlab by @whuaegeanse in #1194
  • Multi-line string fix in Python model script by @mihaidusmanu in #1217
  • added visibility_sigma to CLI input options for delaunay_mesher. by @Matstah in #1236
  • Backwards compatibility of model_aligner by @tsattler in #1240
  • [update undistortion] update dumped commands by @hiakru in #1276
  • Compute reprojection error in generalized absolute solver by @Skydes in #1257
  • Modifying scripts/python/flickr_downloader.py to create files with correct extensions by @snavely in #1275
  • revise Dockerfile and readme. by @MasahiroOgawa in #1281
  • Update to latest vcpkg version by @ahojnnes in #1319
  • Fix compiler warnings reported by GCC by @ahojnnes in #1317
  • Auto-rotate JPEG images based on EXIF orientation by @ahojnnes in #1318
  • Upgrade vcpkg to fix CI build issues by @ahojnnes in #1331
  • Added descriptor normalization argument to feature_extractor. by @mihaidusmanu in #1332
  • Fix memory leak in the function of StringAppendV by @whuaegeanse in #1337
  • Add CUDA_SAFE_CALL to cudaGetDeviceCount. by @chpatrick in #1334
  • Add missing include in case CUDA/GUI is not available by @ahojnnes in #1329
  • Fix wrong WGS84 model and test cases in GPSTransform by @Freeverc in #1333
  • Fixes bug in sprt.cc: num_inliers was not set. by @rmbrualla in #1360
  • Prevent a divide by zero corner case. by @rmbrualla in #1361
  • Adds missing header. by @rmbrualla in #1362
  • Require Qt in COLMAPConfig only if GUI is enabled by @Skydes in #1365
  • Keep precision in the process of storing in text. by @whuaegeanse in #1363
  • Expose exe internals by @Skydes in #1366
  • Fix inliers matches extraction in EstimateUncalibrated function. by @ferreram in #1369
  • Expose exe internals - fix by @Skydes in #1368
  • Remove deprecated Mac OSX 10.14 image in ADO pipeline by @ahojnnes in #1383
  • Add Mac OSX 11 ADO pipeline job by @ahojnnes in #1384
  • Fix warnings for latest compiler/libraries by @ahojnnes in #1382
  • Fix clang compiler warnings by @ahojnnes in #1387
  • Add Address Sanitizer options and fix reported issues by @ahojnnes in #1390
  • User/joschonb/asan cleanup by @ahojnnes in #1391
  • Add ADO pipeline for Visual Studio 2022 by @ahojnnes in #1392
  • Add ccache option by @ahojnnes in #1395
  • Update ModelAligner to handle GPS and custom coords. and more by @ferreram in #1371
  • Fix camera size change under Windows by @ahojnnes in #1401
  • Release of COLMAP version 3.7 by @ahojnnes in #1402
  • Reverting back to the original implementation which did not use the E… by @ahojnnes in #1406

New in COLMAP 3.6 (Jul 25, 2020)

  • Improved robustness and faster incremental reconstruction process
  • Add image_deleter command to remove images from sparse model
  • Add image_filter command to filter bad registrations from sparse model
  • Add point_filtering command to filter sparse model point clouds
  • Add database_merger command to merge two databases, which is
  • useful to parallelize matching across different machines
  • Add image_undistorter_standalone to enable undistorting images
  • without a pre-existing full sparse model
  • Improved 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

New in COLMAP 3.6 Dev 3 (Dec 16, 2019)

  • With this preview release, we stop shipping pre-built binaries for CUDA-enabled GPUs with legacy compute capability < 3.0, see https://developer.nvidia.com/cuda-gpus to find out whether your GPU is supported.

New in COLMAP 3.5 (Apr 22, 2019)

  • 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