| CARVIEW |
Select Language
HTTP/2 200
date: Sat, 27 Dec 2025 10:52:01 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"833e1781863ef13a4c2feb72aac511f7"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=aZ8jRC3eqsm2D7vK7nkRKpNagO9Onlh7T3hAcUuRKJ8hzPsntmgp%2BJK0Eu%2BorPCTQAoIdwmrnKb1vwyDF03dsa537kKYLG9lrwqVu3o3PtgOJU2WGgz6dVEHFcMNIqfLGcgwlezzgpIpSz4li9wYIlPuERBPhA91F2%2FrJ0xab5aw0LtD%2BnJ%2BXZ0WknAfpPmfNL0ODye309nSUS%2FDFPttyDPWReSArpV6XbA29%2FG3SVzDwWs9S8MVJNcVhA0D4LHOD%2F73D1hPSIP7FLewhZVr1w%3D%3D--6BzgQJTgwjGfQMtR--4rWmoodubtFH3EHz0fnOzg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.980398104.1766832720; Path=/; Domain=github.com; Expires=Sun, 27 Dec 2026 10:52:00 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sun, 27 Dec 2026 10:52:00 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 9626:36A2E5:42C6465:5068635:694FBA50
Releases · colmap/colmap · GitHub
07 Nov 15:43
Read more
Loading
17 Sep 09:23
Loading
22 Aug 10:27
Loading
Loading
16 Jul 12:57
Loading
16 Jul 09:50
Loading
06 Jul 07:36
Loading
30 Jun 19:22
Read more
Loading
06 Dec 16:02
Loading
28 Nov 13:27
Read more
Loading
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Releases: colmap/colmap
Releases · colmap/colmap
3.13.0
0b31f98
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New Features
- Improved human-readable consistency checks when configuring a
reconstruction with rigs, cameras, frames, and images. - Improved multi-GPU feature extraction & matching performance by avoiding global mutex.
- Improved robustness of pose prior mapper against outlier priors.
- Improved the performance of reconstruction initialization through parallelization.
- Added CUDA-enabled pycolmap package for Linux and automatic publishing to PyPI.
- Make the reconstruction process fully deterministic with a new random_seed parameter.
- Added support for filtering stationary points in two-view geometry estimation.
- Added option to perform geometric verification with rig constraints.
- Added option to skip matching for image pairs within the same frame.
- Added option to keep specific cameras or rigs constant during the reconstruction.
- Added option to clean two-view geometries in database_cleaner.
- Added option to specify timeout for incremental mapper.
- Added an abstract database interface for easier integration with other database backends.
- Added experimental support for feature sub-selection for global BA.
- Added testing tools for synthetic reconstruction noise and image generation.
- Added official support for Python 3.14.
- Added support for Qt6 while still fully supporting Qt5.
Bug Fixes
- Fixed various issues with new rig support.
- Fixed rare deadlocks in feature matching.
- Support for UTF-8 database paths in Windows.
- Fixed bundle adjustment performance regression due to changed Gauge behavior.
- Removed custom manifold from colmap to avoid issues with pyceres.
- Fixed rare crash of GUI when clearing the model viewer.
- Fixed focal length extraction from 35mm equivalent EXIF information.
- Fixed coordinate bug in ComputeEqualPartsBboxes.
Breaking Changes
- Dropped official support for Python 3.8.
- Dropped official support for MacOS x86.
- Upgraded to pybind11 3.X.
- Removed deprecated rig bundle adjuster command in favor of rig configurator and
default bundle adjuster supporting the same functionality. - Allow one-to-many matches in correspondence graph. Previously, only one-to-one matches were added
to the correspondence graph and therefore other matches were not used during reconstruction.
Full Change List (sorted temporally)
- Autoselect compatible nvidia for docker by @MasahiroOgawa in #3454
- Add 3.12.1 changelog to main by @ahojnnes in #3461
- Add min_num_neighbors constraint for spatial matching by @StonerLing in #3463
- Refactor feature extraction/matching to support other features by @ahojnnes in #3465
- Define VisualIndex::Read as static in python bindings by @ahojnnes in #3467
- Only find C/CXX OpenMP components by @ahojnnes in #3469
- Remove unnecessary GPU checks in pycolmap by @sarlinpe in #3472
- Fix a bug affecting feature matching on GPU by @sarlinpe in #3473
- Add command line option for
TwoViewGeometry.detect_watermarkby @gareth-cross in #3476 - Add and test GetRelativePath by @sarlinpe in #3475
- Update GetPathBaseName to rely on std::filesystem by @sarlinpe in #3481
- Fix potential deadlock in job queue by @huluoboge in #3480
- Update FindMetis.cmake to also link GK_LIBRARIES by @yeicor in #3470
- Remove check in database_cache.cc that breaks backwards compatibility with image_list_file_path by @pd-karoly-harsanyi in #3478
- Fix docker run script for GUI by @MasahiroOgawa in #3483
- Ensure UTF-8 encoding for database paths passed to SQLite open by @StonerLing in #3482
- Add changelog for 3.12.2 release by @ahojnnes in #3488
- Add changelog for 3.12.3 release by @ahojnnes in #3490
- Fix BundleAdjustmentConfig::SetConstantRigFromWorldPose by @whuaegeanse in #3501
- Add random_seed option to RANSACOptions for reproducible TwoViewGeometry estimation by @StonerLing in #3492
- Configure trivial rigs for unconfigured images by @ahojnnes in #3497
- Fix pycolmap test command by @ahojnnes in #3506
- Pano SFM example improvements and fixes by @ahojnnes in #3503
- Support Python 3.14 and retire 3.8 by @ahojnnes in #3518
- Upgrade ruff and automatically apply fixes by @ahojnnes in #3515
- Update point3D errors after bundle adjustment or SfM by @whuaegeanse in #3500
- Add option to filter stationary points in two-view geometry estimation by @ahojnnes in #3521
- Add unit test for watermark detection by @ahojnnes in #3524
- Fix comment for FilterStationaryMatches by @sarlinpe in #3525
- Ignore compile_commands.json in git by @ahojnnes in #3526
- Fix bundle adjustment performance regression due to changed Gauge by @ahojnnes in #3527
- Bind CUDA utils in pycolmap by @ahojnnes in #3532
- Add explicit tests for fixing gauge freedom and bugfix by @ahojnnes in #3533
- Fix format specifier overflow in WriteSnapshot() timestamp by @StonerLing in #3534
- Change input in cost function to log scale and remove custom manifold from colmap. by @B1ueber2y in #3538
- Throw exception when image.SetFramePtr() sets a frame without the image listed as its data. by @B1ueber2y in #3540
- Avoid frame having data from a sensor that does not exist in its associated rig. by @B1ueber2y in #3543
- Revert scale changes for metric reconstruction in rig sfm. by @B1ueber2y in #3530
- Fix comment for C++20 support. by @B1ueber2y in #3547
- Clean up unused includes in scene folder by @ahojnnes in #3548
- Add random_seed to IncrementalMapper to control all RANSAC seeds for improved SfM reproducibility by @StonerLing in #3544
- Throw exception at counting registered images when an image in the frame does not exist in the reconstruction. by @B1ueber2y in #3546
- Clean up unused includes in retrieval folder by @ahojnnes in #3549
- Clean up unused includes in optim folder by @ahojnnes in #3550
- Fix ModelViewerWidget::ClearReconstruction by @whuaegeanse in #3552
- Fix build with Boost 1.89.0 by @cho-m in #3553
- Clean up unused includes in util folder by @ahojnnes in #3551
- Retire Mac x86 support by @ahojnnes in #3555
- Update database bindings by @ahojnnes in #3556
- Throw exception for Frame::SetRigId when rig pointer is available. by @B1ueber2y in #3558
- Fix rig configuration with differing IDs between database and reconstruction by @ahojnnes in #3557
- Removing the Global Lock in SiftGPUFeatureMatcher for CUDA backend by @yimingc in #3561
- Add option to skip matching for image pairs in same frame by @ahojnnes in #3563
- Add option to keep specific cameras constant by @ahojnnes in #3565
- Throw exception if any camera in the rig does not exist in the reconstruction. by @B1ueber2y in #3564
- Clean up unused includes in controllers folder by @ahojnnes in #3566
- Extract image pair conversion functions into type utils by @ahojnnes in #3568
- Clean up unused includes in estimators folder by @ahojnnes in #3567
- Expect error threshold for generalized relative pose in pixel space by @ahojnnes in #3571
- Add function to read number of matches by @ahojnnes in #3572
- Add a test to ensure THROW_CHECK conditions are evaluated exactly once by @ahojnnes in #3573
- Simplify and reuse feature matcher thread creation by @ahojnnes in #3575
- Increase exhaustive matching cache size by @ahojnnes in #3576
- Add option to clean two-view geometries by @ahojnnes in #3577
- Decouple feature matching and two-view geometry options by @ahojnnes in #3578
- Display CLI floating-point defaults with 3 significant digits by @StonerLing in #3579
- Make...
Assets 4
24 people reacted
3.12.6
4d5b60e
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Improvements
- Upgrade to pybind 3.0.1 and use smart holder for all classes.
- Support both Qt5 and Qt6.
- Ensure download support on Ubuntu by installing libssl-dev for crypto.
- Add bindings for mvs::model for covisibility support in pycolmap.
- Add missing rig and frame interfaces for pycolmap database.
- Throw exception when the rig configurations of the database and existing reconstruction are inconsistent.
- Improve the Gauge logic for fixing two views.
Bug Fixes
- Fix focal length extraction from 35mm equivalent.
- Fix inconsistent pycolmap naming for RegisterFrame and DeRegisterFrame.
- Call Retriangulate irrespective of the logging level.
- Fix bundle adjustment with constant rig from world pose.
Assets 4
22 people reacted
3.12.5
fe704d0
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Improvements
- Add various safety checks with more understandable error messages
when adding misconfigured rigs/cameras/frames/images to the reconstruction. - Recover original metric reconstruction scale in case of configured rigs.
Bug Fixes
- Fix incompatibilities due to redundant symbol definition in pycolmap/pyceres.
- Fix error threshold for generalized relative pose to be in pixel space.
- Fix rig configuration in case of inconsistent IDs in database/reconstruction.
- Fix missing colmap namespace in sqlite3 macro.
- Fix CMake configuration with Boost 1.89 or newer.
- Fix viewer crash when clearing the reconstruction.
Assets 7
15 people reacted
3.12.4
Bug Fixes
- Fix global bundle adjustment performance regression due
to changing gauge fixing mechanism by fixing points vs. cameras.
Assets 4
12 people reacted
3.12.3
74b2be9
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bug Fixes
- Set correct version number
Assets 4
16 people reacted
3.12.2
f6dc2cf
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bug Fixes
- Define VisualIndex::Read as static in python bindings
- Only find C/CXX OpenMP components to support new CMake versions
- Fix a bug affecting feature matching on GPU
- Fix potential deadlock in job queue
- Update FindMetis.cmake to also link GK_LIBRARIES
- Fix backwards compatibility in mapper with custom image list
- Fix docker run script for GUI
Assets 2
3.12.1
ac5ca67
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bug Fixes
- Fix Docker runtime libraries
- Fix spatial matcher bug
- Minor fixes for documentation
Assets 2
4 people reacted
3.12.0
e7e89eb
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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 filesrigs.{bin,txt}andframes.{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.
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 #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:/...
Assets 4
36 people reacted
3.11.1
682ea9a
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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
Assets 23
25 people reacted
3.11.0
aa08784
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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_priorstable in database in support of pose prior based mapper. - PyCOLMAP API:
align_reconstrution_to_locationsis renamed toalign_reconstruction_to_locations(typo).pycomap.cost_functionsbecomes a module and should be explicitly imported asimport pycolmap.cost_functions.- Replaced
Image.registeredbyImage.{has_pose,reset_pose}. - Replaced
Image.{get_valid_point2D_ids,get_valid_points2D}byImage.{get_observation_point2D_idxs,get_observation_points2D}. - Replaced
Track.{append,remove}byTrack.{add_element,delete_element}. AbsolutePoseErrorCostbecomesAbsolutePosePriorCost.MetricRelativePoseErrorCostbecomesRelativePosePriorCost.- The signature of
ReprojErrorCostand related cost functions was changed: arguments are reordered, the detection uncertainty is now a 2x2 covariance matrix. BundleAdjusterbecomes virtual and should be created withpycolmap.create_default_bundle_adjuster().absolute_pose_estimationbecomesestimate_and_refine_absolute_pose.pose_refinementbecomesrefine_absolute_pose.essential_matrix_estimationbecomesestimate_essential_matrix.fundamental_matrix_estimationbecomesestimate_fundamental_matrix.rig_absolute_pose_estimationbecomesestimate_and_refine_generalized_absolute_pose.homography_matrix_estimationbecomesestimate_homography_matrix.squared_sampson_errorbecomescompute_squared_sampson_error.homography_decompositionbecomespose_from_homography_matrix.Rigid3d.essential_matrixbecomespycolmap.essential_matrix_from_pose.
Full Change List (sorted temporally)
- Updates for pycolmap by @ahojnnes in #2672
- Trigger CI on release/* branches by @ahojnnes in #2673
- Use consistent versioning scheme between C++/Python by @ahojnnes in #2674
- Add cost function for 3D alignment (with covariance) by @B1ueber2y in #2621
- Numpy 2 compatibility by @sarlinpe in #2682
- Add fix for specifying the correct pycolmap CMake python development … by @fulkast in #2683
- Remove non existant flags of model_aligner from docs by @TamirCohen in #2696
- Reset CMAKE_MODULE_PATH to previous value by @mvieth in #2699
- Robustify nchoosek against overflow by @ahojnnes in #2706
- Observation manager needs to check if image_id exists before query operations by @bo-rc in #2704
- Remove pose prior from database.py:add_image by @sarlinpe in #2707
- Fix: sequential matcher overlap number should be inclusive by @flm8620 in #2701
- Fix table mangled by clang-format by @sweber1 in #2710
- Write out options to ini in full precision, relax bundle adjuster convergence by @ahojnnes in #2713
- Tests for pairing library in feature matching by @ahojnnes in #2711
- Rename IncrementalMapperOptions to IncrementalPipelineOptions by @B1ueber2y in #2708
- Add support for CUDA sparse BA solver by @ahojnnes in #2717
- Rename HierarchicalMapperController to HierarchicalPipeline by @ahojnnes in #2718
- Make VisualIndex::Quantize const to improve readability by @IshitaTakeshi in #2723
- Fix CUDA_ENABLED macro in new bundle adjustment code by @drkoller in #2725
- Automatically generate stub files by @sarlinpe in #2721
- Add CUDA-based dense BA solver by @ahojnnes in #2732
- Improved and simplified caching in feature matching by @ahojnnes in #2731
- Fix colmap namespace in the macro support of logging. by @B1ueber2y in #2733
- Add callbacks by move by @ahojnnes in #2734
- Implement transitive matcher with pair generator + tests by @ahojnnes in #2735
- Provide reasonable defaults for some estimator options by @sarlinpe in #2745
- Fix mismatched Delaunay meshing options by @sarlinpe in #2748
- PyCOLMAP API documentation by @sarlinpe in #2749
- Improved pycolmap coverage and docs by @sarlinpe in #2752
- Follow-up fixes in pycolmap by @sarlinpe in #2755
- Report errors in import_images by @sarlinpe in #2750
- Further simplification of feature matcher code by @ahojnnes in #2744
- Add missing ClearModifiedPoints3D by @sarlinpe in #2761
- Store shared camera ptr for reconstruction images by @ahojnnes in #2762
- Avoid unnecessary copy of queue in IncrementalTriangulator::Complete() by @ahojnnes in #2764
- Branch prediction for THROW_CHECK_NOTNULL by @ahojnnes in #2765
- Use shared camera pointer in more places by @ahojnnes in #2763
- Support switching camera directly with camera pointer by @B1ueber2y in #2767
- Add test for MergeReconstructions by @B1ueber2y in #2766
- Fix little/big endian detection by @ahojnnes in #2768
- Fix options for CUDA sparse BA solver by @whuaegeanse in #2758
- Rename SupperMeasurer::Compare for improved readability by @ahojnnes in #2774
- Improvements for install docs by @ahojnnes in #2773
- fixed typo of align_reconstrution_to_locations to align_reconstructio… by @TamirCohen in #2776
- Fix missing camera ptr for Reconstruction.DeleteAllPoints2DAndPoints3D() by @B1ueber2y in #2779
- Rename remaining proj_matrix instances to cam_from_world by @ahojnnes in #2780
- Relative pose decomposition uses Rigid3d by @ahojnnes in #2781
- Minor renaming on pycolmap point2d and point3d filenames by @B1ueber2y in #2784
- Add validity check for pixel coordinate in the Fisheye camera. Fix tests. by @B1ueber2y in #2790
- Use branch prediction in PRNG functions by @ahojnnes in #2796
- Implementation of Aria Fisheye camera model by @nushakrishnan in #2786
- Upgrade to C++ 17 by @B1ueber2y in #2801
- Pose Prior based Incremental Mapper by @ferreram in #2660
- Expose UpdatePoint3DErrors to pycolmap by @theartful in #2805
- Switch to the Ruff Python formatter by @sarlinpe in #2803
- Add mixed Python-C++ PyCOLMAP package by @sarlinpe in #2747
- Enable Ruff linter for Python by @sarlinpe in #2806
- Use C++17 structured bindings in some places by @ahojnnes in #2808
- Add RAD_TAN_THIN_PRISM_FISHEYE to camera docs by @ahojnnes in #2810
- Customized cost functions should be functors instead by @B1ueber2y in https://git...
Assets 4
26 people reacted
Previous Next
You can’t perform that action at this time.