8000 Releases Β· colmap/colmap Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: colmap/colmap

3.12.1

06 Jul 07:36
ac5ca67
Compare
Choose a tag to compare

Bug Fixes

  • Fix Docker runtime libraries
  • Fix spatial matcher bug
  • Minor fixes for documentation

3.12.0

30 Jun 19:22
e7e89eb
Compare
Choose a tag to compare

COLMAP 3.12.0 (06/30/2025)

New Features

  • Support for modeling sensor rigs (and thus multi-camera rigs and panoramas).
    For more details and usage examples, see: https://colmap.github.io/rigs.html.
  • Automatic download and caching of vocabulary trees and other resources.
  • Support for converting between LLA and UTM coordinates.
  • Improved minimal solvers for affine transform and generalized absolute/relative pose.
  • Improved absolute pose estimation by minimizing pixel error in image space.
  • Replaced FLANN with faiss for fast approximate nearest neighbor search
    for improved speed in CPU-based feature matching and vocabulary tree-based image retrieval.
  • Support for propagating relative pose covariance.
  • Support visualization of models with arbitrary origin and scale (e.g., in GPS space).
  • Reconstruction benchmark for ETH3D, IMC, BlendedMVS datasets.
  • Measure and report code test coverage in CI.

Bug Fixes

  • Fixed RANSAC stopping criterion, see https://arxiv.org/pdf/2503.07829.
  • Fixed and improved two-view pose and triangulation angle estimation.
  • Fix rare deadlock during vocab tree feature matching.
  • For other bug fixes, see full list of changes below.

Breaking Changes

  • Serialization of reconstruction and database contains a new abstraction: rigs and frames.
    The reconstruction output contains two new files rigs.{bin,txt} and frames.{bin,txt}.
    The database contains new tables: rigs, rig_sensors, frames, frames_data.
    Reading from existing reconstructions and databases (without rigs/frames) is fully backwards
    compatible and vice versa reading new reconstructions (with rigs/frames) using old code is
    fully forwards compatible.
  • Sensor poses (and thus image poses) are now composed as:
    sensor_from_world = sensor_from_rig * rig_from_world. Previously, image.cam_from_world
    returned a reference to the pose parameters. Now it returns a copy of the pose composition:
    image.cam_from_world() = image.frame.rig.sensor_from_rig(image.camera.sensor_id) * image.frame.rig_from_world
    with the underlying pose parameters stored in the rig and frame objects.
  • Default bundle adjuster supports sensor rigs and thus rig bundle adjuster is deprecated.
  • FLANN-based vocabulary trees are incompatible with faiss. New trees automatically
    downloaded, if no vocab_tree_path is provided, otherwise manual download and update required.
  • Removed official support for Ubuntu 20.04, MacOS 13, and Visual Studio 2019. 8000

Full Change List (sorted temporally)

  • Cancel previous Github action runs upon push by @ahojnnes in #2998
  • Fix ccache installation in pycolmap windows CI by @ahojnnes in #2997
  • Use Azure blob storage as vcpkg binary cache by @ahojnnes in #2999
  • Add missing openmp flags in retrieval for flann parallelization by @ahojnnes in #3018
  • Separate read and write SAS tokens for vcpkg binary cache by @ahojnnes in #3027
  • Define vcpkg binary cache source inline by @ahojnnes in #3028
  • Fix conditional vcpkg binary cache config in bash by @ahojnnes in #3031
  • Avoid absolute path for the include directory installation by @jhacsonmeza in #3024
  • Add conversion between LLA and UTM coords. by @StonerLing in #3030
  • Improve interface for ReadWriteBinaryBlob and add tests by @ahojnnes in #3033
  • Add support for downloading files by @ahojnnes in #3022
  • Add function to compute sha256 digest by @ahojnnes in #3035
  • Automatically download and cache vocabulary tree by @ahojnnes in #3036
  • Set vcpkg default features and synchronize to latest vcpkg by @ahojnnes in #3038
  • Avoid unnecessary copy of input elements in Percentile/Median by @ahojnnes in #3039
  • Abstract algorithm class IncrementalMapperImpl by @B1ueber2y in #3040
  • Perform linear interpolation in percentile computation by @ahojnnes in #3041
  • Avoid dependent inputs in IncrementalMapperImpl by @B1ueber2y in #3043
  • Reorder destructors for better safety in EndReconstruction by @B1ueber2y in #3046
  • Improvements for reconstruction normalization / bbox / centroid by @ahojnnes in #3047
  • Speedup affine transform minimal solver, create python bindings by @ahojnnes in #3049
  • Fix compilation with DOWNLOAD_ENABLED=OFF by @ahojnnes in #3053
  • Consistent interface/tests for rigid3d/sim3d/affine2d, pycolmap bindings for rigid3d by @ahojnnes in #3051
  • Improve logging for errors in masking during feature extraction by @Ambrosiussen in #3034
  • Add copy constructor support for solver-related ceres bindings by @B1ueber2y in #3059
  • Minor fix on using pycolmap bundle adjuster with pyceres by @B1ueber2y in #3060
  • Re-enable interface support for covariance estimation from a Ceres::Problem instance by @B1ueber2y in #3061
  • Only cancel CI runs in PRs and not in main/release branches by @ahojnnes in #3063
  • Add binding support for invalid values in pycolmap id types by @B1ueber2y in #3072
  • Fix custom quality level in ETH3D benchmark by @ahojnnes in #3076
  • Set max_num_features automatically per quality level by @ahojnnes in #3077
  • Make it possible to build the MVS doc even when CUDA is not installed by @sarlinpe in #3078
  • Temporarily disable ccache in the pycolmap macOS CI by @sarlinpe in #3084
  • Add option to specify image list in automatic reconstruction by @ahojnnes in #3074
  • Only create OpenGL context in automatic reconstruction if necessary by @ahojnnes in #3075
  • Remove unnecessary braces around initializer in pycolmap/covariance by @ahojnnes in #3080
  • Remove temporary fixes for macOS CI by @sarlinpe in #2954
  • Reconstruction benchmark by @ahojnnes in #2714
  • Re-enable ccache in pycolmap Mac CI by @sarlinpe in #3085
  • Fix transitive completion in incremental triangulator by @ahojnnes in #3094
  • Fix image deletion, hide point viewer widget after deletion by @ahojnnes in #3098
  • Fix download functionality under Windows by @ahojnnes in #3099
  • Add back detailed logs for covariance estimation by @B1ueber2y in #3082
  • Fix reprojection error in camera rig cost function by @binbin-xu in #3106
  • Install missing libcurl4 runtime library in dockerfile by @ahojnnes in #3122
  • Expose incremental mapper pose prior options in pycolmap by @ahojnnes in #3123
  • Remove year from copyright by @ahojnnes in #3124
  • Use poselib for generalized absolute pose minimal solver by @ahojnnes in #3125
  • Add code coverage reporting by @ahojnnes in #3126
  • Fix synthetic prior generation when stddev=0 by @ahojnnes in #3128
  • Create temporary colmap test directy under system test directory by @ahojnnes in < 8000 a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2820591542" data-permission-text="Title is private" data-url="https://github.com/colmap/colmap/issues/3129" data-hovercard-type="pull_request" data-hovercard-url="/colmap/colmap/pull/3129/hovercard" href="https://github.com/colmap/colmap/pull/3129">#3129
  • Minor: pyceres is no longer a must for running pycolmap bundle adjuster by @B1ueber2y in #3130
  • Fix cost functor convention for benchmarking by @B1ueber2y in #3131
  • Support enum from string conversion by @ahojnnes in #3132
  • More robustly handle degenerate triangulation angles by @ahojnnes in #3135
  • Minor: add missing empty namespace in alignment testing script by @B1ueber2y in #3137
  • Add frame impl for future rig support by @B1ueber2y in #2698
  • Rename RigCalibration to RigCalib by @ahojnnes in #3142
  • Fix and improve two-view pose and triangulation angle estimation by @ahojnnes in #3146
  • Fix covariance propagation of pose inverse by @B1ueber2y in #3155
  • [Spherical Camera Support] Change essential matrix estimation to use camera rays by @ahojnnes in #3159
  • Improve incremental mapper initialization logic by @ahojnnes in #3161
  • Improved RANSAC dependency injection by @ahojnnes in #3165
  • Add docs on the left convention in COLMAP for covariance propagation. by @B1ueber2y in https:/...
Read more

3.11.1

06 Dec 16:02
682ea9a
Compare
Choose a tag to compare

Bug Fixes

  • Fix typo in pycolmap function align_reconstruction_to_locations interface by @B1ueber2y in #2961
  • Add back some ceres bindings to use pycolmap bundle adjustment without pyceres by @B1ueber2y in #2985
  • Fix setting of RANSAC max error in pose prior BA alignment by @ahojnnes in #2993

Full Changelog: 3.11.0...3.11.1

3.11.0

28 Nov 13:27
aa08784
Compare
Choose a tag to compare

New Features

  • New pose prior based incremental mapper that can leverage absolute pose priors from e.g. GPS measurements.
  • New bundle adjustment covariance estimation functionality. Significantly faster and more robust than Ceres.
  • API documentation with auto-generated stubs for pycolmap.
  • Use PoseLib's minimal solvers for faster performance and improved robustness.
  • Experimental support for CUDA-based bundle adjustment through Ceres (disabled by default).
  • Support for reading 16-bit PNG grayscale images.
  • New RAD_TAN_THIN_PRISM_FISHEYE camera model in support of Meta's Project Aria devices.
  • Replace numerical with analytical Jacobian in image undistortion for better convergence.
  • Many more performance optimizations and other improvements. See full list of changes below.

Bug Fixes

  • Fixed non-deterministic behavior of CUDA SIFT feature extractor. Broken since 3.10 release.
  • Fixed orientation detection of covariant/affine SIFT feature extractor. Broken since initial release.
  • Fixed point triangulator crashing due to bug in observation manager. Broken since 3.10 release.
  • Fixed sequential feature matcher overlap missing the farthest image. Broken since initial release.
  • Fixed rare deadlock during matching due to concurrent database access. Broken since 3.10 release.
  • Fixed little/big endian detection. Broken since 3.1 release.
  • For other bug fixes, see full list of changes below.

Breaking Changes

  • Dropped official support for Ubuntu 18.04, Visual Studio 2019.
  • Upgrade to C++17 standard in C++ and C++14 in CUDA source code.
  • New pose_priors table in database in support of pose prior based mapper.
  • PyCOLMAP API:
    • align_reconstrution_to_locations is renamed to align_reconstruction_to_locations (typo).
    • pycomap.cost_functions becomes a module and should be explicitly imported as import pycolmap.cost_functions.
    • Replaced Image.registered by Image.{has_pose,reset_pose}.
    • Replaced Image.{get_valid_point2D_ids,get_valid_points2D} by Image.{get_observation_point2D_idxs,get_observation_points2D}.
    • Replaced Track.{append,remove} by Track.{add_element,delete_element}.
    • AbsolutePoseErrorCost becomes AbsolutePosePriorCost.
    • MetricRelativePoseErrorCost becomes RelativePosePriorCost.
    • The signature of ReprojErrorCost and related cost functions was changed: arguments are reordered, the detection uncertainty is now a 2x2 covariance matrix.
    • BundleAdjuster becomes virtual and should be created with pycolmap.create_default_bundle_adjuster().
    • absolute_pose_estimation becomes estimate_and_refine_absolute_pose.
    • pose_refinement becomes refine_absolute_pose.
    • essential_matrix_estimation becomes estimate_essential_matrix.
    • fundamental_matrix_estimation becomes estimate_fundamental_matrix.
    • rig_absolute_pose_estimation becomes estimate_and_refine_generalized_absolute_pose.
    • homography_matrix_estimation becomes estimate_homography_matrix.
    • squared_sampson_error becomes compute_squared_sampson_error.
    • homography_decomposition becomes pose_from_homography_matrix.
    • Rigid3d.essential_matrix becomes pycolmap.essential_matrix_from_pose.

Full Change List (sorted temporally)

Read more

3.10

23 Jul 17:10
0bd66d9
Compare
Choose a tag to compare

What's Changed

Read more

3.9.1

08 Jan 16:21
e990364
Compare
Choose a tag to compare

What's Changed

Full Changelog: 3.9...3.9.1

3.9

06 Jan 09:23
87b370e
Compare
Choose a tag to compare
3.9

What's Changed

Read more

3.8

31 Jan 15:52
Compare
Choose a tag to compare
3.8

What's Changed

New Contributors

Full Changelog: 3.7...3.8

3.7

26 Jan 15:34
ea40ef9
Compare
Choose a tag to compare
3.7

What's Changed

Read more

3.6

24 Jul 11:36
Compare
Choose a tag to compare
3.6
  • 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

Note that with this 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. For older GPU architectures, you can either manually build COLMAP from source using an older CUDA version or download an older COLMAP release.

0