Skip to main content

Python implementation of ASMK (Aggregated Selective Match Kernels)

Project description

Python ASMK (Aggregated Selective Match Kernels)

This is a Python implementation of the ASMK approach published in ICCV 2013:

@InProceedings{TAJ13,
  author       = "Giorgos Tolias and Yannis Avrithis and Herv\'e J\'egou",
  title        = "To aggregate or not to aggregate: Selective match kernels for image search",
  booktitle    = "IEEE International Conference on Computer Vision",
  year         = "2013"
}

This package is provided to support image retrieval with local descriptors and to reproduce the results of our ECCV 2020 paper with HOW deep local descriptors:

@InProceedings{TJ20,
  author      = "Giorgos Tolias and Tomas Jenicek and Ond\v{r}ej Chum}",
  title       = "Learning and aggregating deep local descriptors for instance-level recognition",
  booktitle   = "European Conference on Computer Vision",
  year        = "2020"
}

There are minor differences compared to the original ASMK approach (ICCV'13) and implementation, which are described in our ECCV'20 paper. Using the provided package to run ASMK with other local descriptors is straightforward.

Running the Code

  1. Install the requirements (faiss-cpu for cpu-only setup)
pip3 install pyaml numpy faiss-gpu
  1. Build C library for your Python version
python3 setup.py build_ext --inplace
rm -r build
  1. Download cirtorch and add it to your PYTHONPATH
wget "https://github.com/filipradenovic/cnnimageretrieval-pytorch/archive/master.zip"
unzip master.zip
rm master.zip
export PYTHONPATH=${PYTHONPATH}:$(realpath cnnimageretrieval-pytorch-master)
  1. Run examples/demo_how.py giving it any .yaml parameter file from examples/params/*.yml

Reproducing ECCV 2020 results with HOW local descriptors

Reproducing results from Table 2.

  • R18how (n = 1000):   examples/demo_how.py eccv20_how_r18_1000ROxf (M): 75.1, RPar (M): 79.4
  • -R50how (n = 1000):   examples/demo_how.py eccv20_how_r50-_1000ROxf (M): 78.3, RPar (M): 80.1
  • -R50how (n = 2000):   examples/demo_how.py eccv20_how_r50-_2000ROxf (M): 79.4, RPar (M): 81.6

Project details


Download files

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

Source Distribution

asmk-0.1.1.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

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

asmk-0.1.1-cp311-cp311-win_amd64.whl (88.4 kB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file asmk-0.1.1.tar.gz.

File metadata

  • Download URL: asmk-0.1.1.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for asmk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6772df30123f95fa74316ea11e6cc418191b0bf00e9659a4ae659abe00410810
MD5 86f16d3a5af8f309ffd344740037b785
BLAKE2b-256 a6d1c392f1b6e79d7aeb809fa78a8f4af0e6c41eb7c1461fe5f7face8ca160dd

See more details on using hashes here.

File details

Details for the file asmk-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: asmk-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 88.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for asmk-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6a8adab30e4cda74c2530a3d204da1552c799c1ad550e39966c665421cf1a9f8
MD5 b90dd7a4819b8b68ed53c55bbd82434b
BLAKE2b-256 c8d66eac25082f1cc183acdb1c4abbeb74d4c22cd8dfe4c11cfcccd979a65f4a

See more details on using hashes here.

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