3.9
What's Changed
- clang format all code and require clang-format-14 by @ahojnnes in #1785
- Fix compilation for vcpkg windows build by @ahojnnes in #1791
- Increment version number to 3.9 by @ahojnnes in #1794
- Remove unnecessary /arch:sse2 flag for MSVC by @ahojnnes in #1798
- Updated faq.rst by @CGCooke in #1801
- Fixed mistake in code comment for OpenCV Fisheye camera by @CGCooke in #1802
- Replace deprecated cudaThreadSynchronize with cudaDeviceSynchronize by @ahojnnes in #1806
- Replace deprecated Cuda texture references with texture objects by @ahojnnes in #1809
- Remove unused SIFT GPU cuda texture reference by @ahojnnes in #1823
- Upgrade SiftGPU to use CUDA texture objects by @ahojnnes in #1838
- Remove PBA as bundle adjustment backend to support CUDA 12+ by @ahojnnes in #1840
- Replace deprecated CUDA sature function call by @ahojnnes in #1841
- Avoid unnecessary mallocs during sampling by @ahojnnes in #1842
- Cleaned up docker readme and scripts by @ahojnnes in #1852
- add "Shared intrinsics per sub-folder" checkbox to automatic reconstruction window by @kenshi84 in #1853
- Update vcpkg by @ahojnnes in #1925
- Log the name of the file that causes Mat::Read() to checkfail by @SomeAlphabetGuy in #1923
- check Z_index correctly in ReadPly by @countywest in #1896
- Don't re-open files when reading and writing matrices by @SomeAlphabetGuy in #1926
- Update vcpkg to latest commit by @ahojnnes in #1948
- Remove unnecessary custom Eigen aligned allocator macros by @ahojnnes in #1947
- Prefix internal sources/includes with colmap by @ahojnnes in #1949
- Simplify clang-format config and sort includes by @ahojnnes in #1950
- Handle possible overflow in median function by @ahojnnes in #1951
- Run ASan pipeline under Ubuntu 22.04 by @ahojnnes in #1952
- Fix Ceres version test by @drkoller in #1954
- Fix deprecation warning for Qt font metrics width by @ahojnnes in #1958
- Setup clang-tidy and enable perf warnings by @ahojnnes in #1959
- VCPKG binary caching for windows CI by @ahojnnes in #1957
- Cosmetics for VS dev shell script by @ahojnnes in #1965
- Enable clang-tidy concurrency checks by @ahojnnes in #1967
- [Bug] fix finding shared points3D in FindLocalBundle by @wesleyliwei in #1963
- Enable compiler caching in CI by @ahojnnes in #1972
- Set number of features for different quality levels by @ahojnnes in #1975
- Specify parameter name using inline comment by @ahojnnes in #1976
- Fix Windows CCache by @ahojnnes in #1977
- Add e2e tests in CI pipeline using ETH3D datasets by @ahojnnes in #1397
- [feature] print verbose information for model analyzer by @wesleyliwei in #1978
- Add a missing include to compile with gcc13 by @EstebanDugueperoux2 in #1984
- Speed up snapshot construct in RigBundleAdjuster by @wesleyliwei in #1988
- Update outdated docker cuda image tag by @ahojnnes in #1992
- Add boulders ETH3D dataset to CI E2E tests by @ahojnnes in #1991
- Update executable paths in documentation by @ahojnnes in #1993
- Avoid unnecessary copy in ExtractTopScaleFeatures by @ahojnnes in #1994
- Move related code under new image library folder by @ahojnnes in #1995
- Move related code under new camera folder by @ahojnnes in #1996
- Added a virtual destructor to Sampler by @SomeAlphabetGuy in #2000
- Add a few more clang-tidy checks by @ahojnnes in #2001
- Move related code to new geometry module by @ahojnnes in #2006
- Use #pragma once as include guard by @ahojnnes in #2007
- Add bugprone-* clang-tidy checks by @ahojnnes in #2010
- Avoid const params in declarations by @ahojnnes in #2011
- Set and require C++14 by @ahojnnes in #2012
- Cleanup math functions that are now part of eigen/stdlib by @ahojnnes in #2013
- Add clang-analyzer checks by @ahojnnes in #2014
- Replace CMake provided find_package scripts and modern CMake targets by @ahojnnes in #2016
- Switch from Boost unit tests to Gtest by @ahojnnes in #2017
- Fix ccache restore keys in pipeline caching by @ahojnnes in #2018
- Add missing cacheHitVar to fix ccache by @ahojnnes in #2020
- Add missing Boost::graph import by @sarlinpe in #2021
- Compressed/flattened correspondence graph for faster triangulation / less memory by @ahojnnes in #2019
- Fix window ccache key by @ahojnnes in #2024
- Consistently use shared_ptr for shared pointers for SFM objects by @ahojnnes in #2023
- Remove check on Qt version by @sarlinpe in #2022
- Synthetics for E2E incremental mapper tests by @ahojnnes in #2025
- New math module by @ahojnnes in #2028
- Simplify similarity transform and more tests by @ahojnnes in #2030
- Extract reconstruction alignment functions into new file by @ahojnnes in #2032
- Add E2E hierarchical mapper tests by @ahojnnes in #2033
- Rename SimilarityTransform3 to Sim3d by @ahojnnes in #2034
- Add Rigid3d transform class by @ahojnnes in #2035
- Consolidate and simplify Rigid3d and Sim3d by @ahojnnes in #2037
- Some small improvements/cleanup for rigid3d/sim3d usage by @ahojnnes in #2041
- CamFromWorld replaces qvec/tvec by @ahojnnes in #2039
- Retry download of ETH3D datasets by @ahojnnes in #2043
- WorldToImage becomes CamToImg by @ahojnnes in #2044
- Camera models operate on camera rays by @ahojnnes in #2045
- Ignore directory .vs by @whuaegeanse in #2046
- Use the reference of Rigid3d to reduce memory consumption by @whuaegeanse in #2047
- Inline point to image projection by @ahojnnes in #2050
- Point2D becomes simpler pure data struct by @ahojnnes in #2051
- Use Eigen math for estimator utils by @ahojnnes in #2052
- Move cost functions under geometry module and rename by @ahojnnes in #2053
- Bundle adjuster is an estimator by @ahojnnes in #2054
- Remaining base targets move to new scene module by @ahojnnes in #2055
- Vote and verify improvements/speedup by @ahojnnes in #2056
- Generate version info in .cc file to reduce number of recompilations by @ahojnnes in #2057
- Option manager moves to controllers to disentangle circular deps by @ahojnnes in #2058
- Granular CMake modules and build targets by @ahojnnes in #2059
- Fix docker build by @ahojnnes in #2069
- Remove warnings about duplicated marco NOMINMAX by @whuaegeanse in #2067
- lib folder becomes thirdparty folder by @ahojnnes in #2068
- Remove unnecessary checks in image pair conversion by @ahojnnes in #2074
- Replace flaky ETH3D terrace with courtyard dataset by @ahojnnes in #2075
- Synthesize chained match graph for more mapper tests by @ahojnnes in #2076
- Introduce abstract feature extractor by @ahojnnes in #2077
- Avoid unnecessary data copies in feature conversion utils by @ahojnnes in #2078
- Abstract feature matcher by @ahojnnes in #2082
- Encapsulate feature matching controller/worker implementations by @ahojnnes in #2085
- Some cosmetics for util/feature types by @ahojnnes in #2084
- Use std:: when cmath included by @whuaegeanse in #2081
- Encapsulate feature extraction controller/worker implementations by @ahojnnes in #2086
- Reenable VS2022 CI pipeline by @ahojnnes in #1689
- Consistent transform convention for CenterAndNormalizeImagePoints by @ahojnnes in #2092
- Retire Mac 11 CI build by @ahojnnes in #2094
- Add ReprojErrorConstantPoint3DCostFunction to speed up the RefineAbsolutePose function by @whuaegeanse in #2089
- Numeric differentiation of camera model using partial piv LU by @ahojnnes in #2100
- cmake: add testing.cc to colmap_util only if TESTS_ENABLED=ON by @NeroBurner in #2102
- Set CUDA_STANDARD to 14 by @ahojnnes in #2108
- Transform back to existing images positions after mapper processing if set fixed by @ferreram in #2095
- Update documentation with new branch policy by @ahojnnes in #2110
- Update CMake find dependencies for vcpkg by @ahojnnes in #2116
- Decouple SIFT match from two view geometry options by @ahojnnes in #2118
- Fix docker build by @vnmsklnk in #2122
- Trigger build pipeline on main branch by @ahojnnes in #2123
- Update Linux install documentation with new branch policy by @joshuaoreilly in #2126
- Fix link in camera model documentation by @CFretter in #2152
- [Bugfix] Fix GUI_ENABLED=OFF and skip SiftGPU if no GUI and no CUDA by @sarlinpe in #2151
- [Bugfix] Properly handle CGAL_ENABLED by @sarlinpe in #2149
- Refinement of intrinsics in the point_triangulator by @tsattler in #2144
- Bugfix in handling COLMAP_GPU_ENABLED by @sarlinpe in #2163
- Expose exe as libs by @sarlinpe in #2165
- Add Sim3d::FromMatrix by @sarlinpe in #2147
- Check code format in CI by @ahojnnes in #2171
- Clean up dependencies by @sarlinpe in #2173
- Move tests into anonymous namespaces by @ahojnnes in #2175
- Fix glew/qopengl conflict warning by @ahojnnes in #2176
- Update documentation with new link to GitHub discussions by @ahojnnes in #2177
- Restore GLEW include by @sarlinpe in #2178
- Align reconstructions via shared 3D points by @sarlinpe in #2169
- Add clang-tidy-cachein CI by @ahojnnes in #2182
- Disable GUI build in one CI config by @ahojnnes in #2181
- Show verbose ccache stats by @ahojnnes in #2183
- Add EstimateGeneralizedAbsolutePose by @sarlinpe in #2174
- Fix bug in ReconstructionManagerWidget::Update by @whuaegeanse in #2186
- Fix missing retrieval dependency by @ahojnnes in #2189
- Removing clustering_options_ and mapper_options_ in Hierarchical Mapper Controller by @Serenitysmk in #2193
- Publish docker image to docker hub by @ahojnnes in #2195
- Fix Cuda architecture in docker build by @ahojnnes in #2196
- Fix all-major cuda arch missing in CMake < 3.23 by @ahojnnes in #2197
- Update triangulation.cc by @RayShark0605 in #2205
- Update author and acknowledgements by @ahojnnes in #2207
- Code formatting for Python by @ahojnnes in #2208
- Retire outdated build script by @ahojnnes in #2217
- Remove mention of deprecated build script by @sarlinpe in #2220
- Improve word spelling by @zchrissirhcz in #2235
- Stack allocate camera param idx arrays by @ahojnnes in #2234
- fix: typo in colmap/src/colmap/ui/project_widget.cc by @varundhand in #2241
- Update reconstruction.cc by @RayShark0605 in #2238
- Update to Docker CUDA 12.2.2 by @ahojnnes in #2244
- Stop setting C++ standard flags manually by @AdrianBunk in #2251
- Setting clear_points to true per default in point_triangulator by @tsattler in #2252
- Update cameras.rst to fix link to code by @tsattler in #2246
- Fix matching of imported features without descriptors by @ahojnnes in #2269
- Consistent versioning between documentation and code by @ahojnnes in #2275
- Reduce mallocs for RANSAC estimator models by @ahojnnes in #2283
- Migrate to glog logging by @ahojnnes in #2172
- Turn Point3D into simple data struct by @ahojnnes in #2285
- Camera becomes simple data struct by @ahojnnes in #2286
- Recover custom Eigen std::vector allocator for Eigen <3.4 support by @ahojnnes in #2293
- Replace result_of with invoke_result_t by @sarlinpe in #2300
- Allow getters FocalLength{X,Y} for isotropic models by @sarlinpe in #2301
- Add missing Boost targets and cleanup includes by @sarlinpe in #2304
- Expose IncrementalMapperOptions::{mapper,triangulation} by @sarlinpe in #2308
- Update install instructions for Mac by @Dawars in #2310
- Remove unused ceres reference in doc by @ahojnnes in #2315
- Fix typo by @whuaegeanse in #2317
- Stable version 3.9 release by @ahojnnes in #2319
New Contributors
- @CGCooke made their first contribution in #1801
- @kenshi84 made their first contribution in #1853
- @countywest made their first contribution in #1896
- @EstebanDugueperoux2 made their first contribution in #1984
- @NeroBurner made their first contribution in #2102
- @vnmsklnk made their first contribution in #2122
- @joshuaoreilly made their first contribution in #2126
- @CFretter made their first contribution in #2152
- @RayShark0605 made their first contribution in #2205
- @zchrissirhcz made their first contribution in #2235
- @varundhand made their first contribution in #2241
- @AdrianBunk made their first contribution in #2251
- @Dawars made their first contribution in #2310
Full Changelog: 3.8...3.9