Release Notes—Major Changes (1.3.0 -> 2.0.0)
After quite a long time, we have finally merged the dev branch into the master to update it with the (several) new updates.
Be careful when updating DIM, as there are many major (and possibly breaking) changes:
-
Environment & Dependency Management
- Switched default environment management from pip/conda to uv. Refer to the documentation for instructions.
- Use
uv sync(oruv sync --dev) for setup. - Legacy install (
conda+pip install -e .) still supported.
- Use
- Switched default environment management from pip/conda to uv. Refer to the documentation for instructions.
-
Entrypoint & Scripts
- Removed
main.pyfrom project root.- Main entrypoint is now
src/deep_image_matching/__main__.py. Once you have installed DIM, you can run the full pipeline from anywhere (you don't need to be in the DIM repository directory anymore):
python -m deep_image_matching --dir <images> --pipeline <pipeline>
- Main entrypoint is now
- Added
demo.pyanddemo.ipynbto show DIM main functionalities; users should create their own scripts for custom workflows. - You can use the sfm_pipeline.ipynb notebook for a detailed explanation of the DIM workflow.
- Removed
-
Dependencies
- Updated
pycolmapto version 3.12 (major API changes, check your scripts). - Removed
pandasandxformersfrom dependencies. - Added
rufffor linting (replaces flake8/black). - Updated and cleaned up dependencies in
pyproject.toml.
- Updated
-
Functionality & Features
- Added new triangulation module and dense triangulation notebook.
- Improved geometric verification and added related tests.
- Added support for keypoints export in correct position for rotated images.
- Improved handling of EXIF data for image orientation.
- Added support for rasterio and thermal images.
- Added keyframe selection with global descriptors and k-means.
- Added option to select LightGlue or ROMA for preselection.
- Improved viewing and visualization options (graph, MST, communities).
- Added scripts for image normalization and keypoint distribution evaluation.
-
Codebase Refactoring
- Restructured imports: all imports are now internal to the package.
- Refactored config management in matcher and extractor classes.
- Updated default parameters and config exposure for ROMA and LightGlue.
- Cleaned and modularized
reconstruction.pyand triangulation modules. - Moved graph template directory to
utils. - Moved HLOC to
thirdparty.
-
Other Notable Changes
- Deprecated Bundler export in pycolmap reconstruction.
- Improved output folder handling (user confirmation before overwrite).
- Added main entrypoint for
python -m deep_image_matching. - Updated documentation for new installation and usage patterns.
- Various bugfixes and minor improvements throughout the codebase.
Note:
Some of these changes may break existing workflows or scripts. Please review the updated documentation and adapt your usage accordingly.
Recent PRs
- Egu by @franioli in #58
- Updated graph.py and template.html by @gperda in #62
- Dev upright by @lcmrl in #74
- LoftrRomaToMultiview mask by @SamueleBumbaca in #79
- Merging dev branch (after SRIF merge) into dev_uv_pycolmap by @franioli in #96
- Merge dev_uv_pycolmap into dev by @franioli in #97
- More flexible cameras.yaml by @Blattvorhang in #88
- Dev by @franioli in #100
New Contributors
- @SamueleBumbaca made their first contribution in #79
- @Blattvorhang made their first contribution in #88
Full Changelog: 1.3.0...2.0.0