Skip to content

Releases: 3DOM-FBK/deep-image-matching

2.0.0

20 Aug 14:45

Choose a tag to compare

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

1.3.0

04 Jul 18:14

Choose a tag to compare

This is pre-major release.
We will soon release version 2.0 which integrates all the updates of the current dev branch,

0.0.1

02 May 16:50

Choose a tag to compare

Deep-Image-Matching v0.
This is an old and simple, but working, version of DIM for internal use.
Unless you have a very good reason to use this release, use a more recent version of DIM.

1.2.4

13 Apr 16:38

Choose a tag to compare

1.2.4 Pre-release
Pre-release
  • First release on PyPi
  • Updated imports of all modules inside DIM
  • Update Config management to run DIM from notebooks
  • Updated function export_to_db and export_to_openmvg to read the cameras config file within the function (note that the function's arguments are changed as the file path now is passed instead of the configuration dictionary)
  • Added demo notebook
  • Added notebook to perform dense matching and triangulation from known cameras poses
  • Added notebook to perform georeferencing of the dense reconstruction based on GCP (experimental)
  • Improved dense matching with RoMa
  • Added tile preselection with RoMa
  • Updated tests: now the main.py script is not required anymore to run the tests
  • Updated COLMAPdatabase class with new methods for reading data inside the database and using context manager.
  • Various small improvements

1.0.0

19 Mar 11:30
5df2a9e

Choose a tag to compare

New features:

  • Release version 1.0.0
  • Export the solution to OpenMVG
  • Export the solution to MICMAC
  • Possibility to define different camera models in a yaml file for all or subsets of images
  • Graph visualization (thanks @gperda)
  • Docker installation (thanks @kauevestena)
  • Exapanded documentation with "usage DIM with" section, examples and modules API.
  • Re-implemented Se2-LOFTR for full image processing (not for matching by tiles).
  • Update CLI parser
  • Added export of images with keypoints and matches in debug mode (-V option in CLI)
  • Weights of the models are automatically downloaded from original repos.
  • Added scripts for advanced processing
  • Updated unit tests and Github actions
  • Several bugfixes and small improvements

First contributions:

0.1.0

24 Jan 14:24

Choose a tag to compare

This is the first stable release of Deep-Image-Matching.