Skip to main content

Image Matching Webui: A tool for matching images using sota algorithms with a Gradio UI

Project description

Contributors Forks Stargazers Issues


$\color{red}{\textnormal{Image\ Matching\ WebUI}}$
Identify matching points between two images

Description

This simple tool efficiently matches image pairs using multiple famous image matching algorithms. The tool features a Graphical User Interface (GUI) designed using gradio. You can effortlessly select two images and a matching algorithm and obtain a precise matching result. Note: the images source can be either local images or webcam images.

Try it on Open In Studio

Here is a demo of the tool:

https://github.com/Vincentqyw/image-matching-webui/assets/18531182/263534692-c3484d1b-cc00-4fdc-9b31-e5b7af07ecd9

The tool currently supports various popular image matching algorithms, namely:

How to use

HuggingFace / Lightning AI

Just try it on Open In Studio

or deploy it locally following the instructions below.

Requirements

git clone --recursive https://github.com/Vincentqyw/image-matching-webui.git
cd image-matching-webui
conda env create -f environment.yaml
conda activate imw

or using docker:

docker pull vincentqin/image-matching-webui:latest
docker run -it -p 7860:7860 vincentqin/image-matching-webui:latest python app.py --server_name "0.0.0.0" --server_port=7860

Deploy to Railway

Deploy to Railway, setting up a Custom Start Command in Deploy section:

python -m imcui.api.server

Run demo

python ./app.py --config ./config/config.yaml

then open http://localhost:7860 in your browser.

Add your own feature / matcher

I provide an example to add local feature in imcui/hloc/extractors/example.py. Then add feature settings in confs in file imcui/hloc/extract_features.py. Last step is adding some settings to matcher_zoo in file imcui/ui/config.yaml.

Contributions welcome!

External contributions are very much welcome. Please follow the PEP8 style guidelines using a linter like flake8. This is a non-exhaustive list of features that might be valuable additions:

  • add CPU CI
  • add webcam support
  • add line feature matching algorithms
  • example to add a new feature extractor / matcher
  • ransac to filter outliers
  • add rotation images options before matching
  • support export matches to colmap (#issue 6)
  • add config file to set default parameters
  • dynamically load models and reduce GPU overload

Adding local features / matchers as submodules is very easy. For example, to add the GlueStick:

git submodule add https://github.com/cvg/GlueStick.git imcui/third_party/GlueStick

If remote submodule repositories are updated, don't forget to pull submodules with:

git submodule update --init --recursive  # init and download
git submodule update --remote  # update

if you only want to update one submodule, use git submodule update --remote imcui/third_party/GlueStick.

To format code before committing, run:

pre-commit run -a  # Auto-checks and fixes

Contributors

Resources

Acknowledgement

This code is built based on Hierarchical-Localization. We express our gratitude to the authors for their valuable source code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imcui-0.0.1-py3-none-any.whl (96.9 MB view details)

Uploaded Python 3

File details

Details for the file imcui-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: imcui-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 96.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for imcui-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 28d62c45a4b5a0193e48b7c0a384c66a17e98a8a5e039a44fe066cad0198c194
MD5 762473bee744ce9942cda3e8039387ed
BLAKE2b-256 c8f7742137652d82c6dba43771dd46cdbc95760bc279d189b69c56a43a56bad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for imcui-0.0.1-py3-none-any.whl:

Publisher: release.yml on Vincentqyw/image-matching-webui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page