Skip to content

2.0.0

Latest

Choose a tag to compare

@franioli franioli released this 20 Aug 14:45
· 62 commits to master since this release

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 (or uv sync --dev) for setup.
      • Legacy install (conda + pip install -e .) still supported.
  • Entrypoint & Scripts

    • Removed main.py from 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>
    • Added demo.py and demo.ipynb to 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.
  • Dependencies

    • Updated pycolmap to version 3.12 (major API changes, check your scripts).
    • Removed pandas and xformers from dependencies.
    • Added ruff for linting (replaces flake8/black).
    • Updated and cleaned up dependencies in pyproject.toml.
  • 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.py and 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

New Contributors

Full Changelog: 1.3.0...2.0.0