All Projects β†’ layer6ai-labs β†’ Gss

layer6ai-labs / Gss

Code for the NeurIPS'19 paper "Guided Similarity Separation for Image Retrieval"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Gss

Flask Keras Cnn Image Retrieval
πŸš€CNN-based image retrieval built on Keras
Stars: ✭ 416 (+670.37%)
Mutual labels:  image-retrieval
Cnnimageretrieval Pytorch
CNN Image Retrieval in PyTorch: Training and evaluating CNNs for Image Retrieval in PyTorch
Stars: ✭ 931 (+1624.07%)
Mutual labels:  image-retrieval
Deep Fashion
Proposal a new method to retrieval clothing images
Stars: ✭ 44 (-18.52%)
Mutual labels:  image-retrieval
Hashing Baseline For Image Retrieval
Various hashing methods for image retrieval and serves as the baselines
Stars: ✭ 511 (+846.3%)
Mutual labels:  image-retrieval
Pyretri
Open source deep learning based unsupervised image retrieval toolbox built on PyTorchπŸ”₯
Stars: ✭ 795 (+1372.22%)
Mutual labels:  image-retrieval
Deep Mihash
Code for papers "Hashing with Mutual Information" (TPAMI 2019) and "Hashing with Binary Matrix Pursuit" (ECCV 2018)
Stars: ✭ 13 (-75.93%)
Mutual labels:  image-retrieval
Hardnet
Hardnet descriptor model - "Working hard to know your neighbor's margins: Local descriptor learning loss"
Stars: ✭ 350 (+548.15%)
Mutual labels:  image-retrieval
Massimageretrieval
This project is intended to solve the task of massive image retrieval.
Stars: ✭ 47 (-12.96%)
Mutual labels:  image-retrieval
Ddsh Tip2018
source code for paper "Deep Discrete Supervised Hashing"
Stars: ✭ 16 (-70.37%)
Mutual labels:  image-retrieval
Mirror
Matchable Image Retrieval by Learning from Surface Reconstruction
Stars: ✭ 44 (-18.52%)
Mutual labels:  image-retrieval
Cnn For Image Retrieval
πŸŒ…The code of post "Image retrieval using MatconvNet and pre-trained imageNet"
Stars: ✭ 597 (+1005.56%)
Mutual labels:  image-retrieval
Lire
Open source library for content based image retrieval / visual information retrieval.
Stars: ✭ 740 (+1270.37%)
Mutual labels:  image-retrieval
Mxnet Ir
Image Retrieval Experiment Using Triplet Loss
Stars: ✭ 27 (-50%)
Mutual labels:  image-retrieval
Sis
Simple image search engine
Stars: ✭ 438 (+711.11%)
Mutual labels:  image-retrieval
Watermarkreco
Pytorch implementation of the paper "Large-Scale Historical Watermark Recognition: dataset and a new consistency-based approach"
Stars: ✭ 45 (-16.67%)
Mutual labels:  image-retrieval
Cbir
🏞 A content-based image retrieval (CBIR) system
Stars: ✭ 407 (+653.7%)
Mutual labels:  image-retrieval
Cbir System
Content-Based Image Retrieval system (KTH DD2476 Project)
Stars: ✭ 9 (-83.33%)
Mutual labels:  image-retrieval
Dg Net
Joint Discriminative and Generative Learning for Person Re-identification. CVPR'19 (Oral)
Stars: ✭ 1,042 (+1829.63%)
Mutual labels:  image-retrieval
Keras rmac plus
Keras implementation of R-MAC+ descriptors
Stars: ✭ 46 (-14.81%)
Mutual labels:  image-retrieval
Hierarchical Localization
Visual localization made easy with hloc
Stars: ✭ 997 (+1746.3%)
Mutual labels:  image-retrieval

NeurIPS'19 Guided Similarity Separation for Image Retrieval

Authors: Chundi Liu, Guangwei Yu, Cheng Chang, Himanshu Rai, Junwei Ma, Satya Krishna Gorti, Maksims Volkovs
[paper][poster][slides][video]

Prerequisites and Environment

  • tensorflow-gpu 1.13.1
  • numpy 1.16.0

All experiments were conducted on a 20-core Intel(R) Xeon(R) CPU E5-2630 v4 @2.20GHz and NVIDIA V100 GPU with 32GB GPU memory.

Note: INSTRE dataset contains almost 30k images so the training phase requires ~19GB GPU memory. If your GPU doesn't have sufficient memory, please remove the --gpu-id argument and the model will train on the CPU. Training on CPU is approximately 10x slower but converges to the same result.

Dataset

We provide all three datasets used in the paper, together with generated GeM descriptors and RANSAC verification results for each dataset. To run the model, download the data from here and extract it to a directory, referred to as $DATA_DIR. This directory should have the following structure:

$DATA_DIR
  β”œβ”€ datasets
  β”‚   β”œβ”€ instre
  |   |   β”œβ”€ gnd_instre.mat
  |   |   β”œβ”€ instre_gem.mat
  |   |   └─ instre_siamac.mat
  β”‚   β”œβ”€ roxford5k
  |   |   β”œβ”€ gnd_roxford5k.mat
  |   |   └─ gnd_roxford5k.pkl
  |   └─ rparis6k
  |   |   β”œβ”€ gnd_rparis6k.mat
  |   |   └─ gnd_rparis6k.pkl
  β”œβ”€ features				
  β”‚   β”œβ”€ instre_gem_index_ms_lw.npy
  β”‚   β”œβ”€ instre_gem_query_ms_lw.npy
  β”‚   β”œβ”€ roxford5k_resnet_rsfm120k_gem.mat
  β”‚   └─ rparis6k_resnet_rsfm120k_gem.mat
  └─ graphs
      β”œβ”€ instre_index_ransac_graph.npy
      β”œβ”€ instre_query_ransac_graph.npy
      β”œβ”€ roxford5k_index_ransac_graph.npy
      β”œβ”€ roxford5k_query_ransac_graph.npy
      β”œβ”€ rparis6k_index_ransac_graph.npy
      └─ rparis6k_query_ransac_graph.npy

Provide $DATA_DIR as the argument to --data-path when running train.py.

Descriptors

For all the experiments, we use image descriptors generated by the pre-trained GeM model. The code and the pre-trained weights can be found in the author's official github repository.

Examples


rOxford medium 77.8

python train.py --data-path $DATA_DIR --dataset roxford5k --num-layers 2 --k 5 --kq 5 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode descriptor --beta-percentile 98

rOxford medium ransac 80.6

python train.py --data-path $DATA_DIR --dataset roxford5k --num-layers 2 --k 5 --kq 10 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode ransac --beta-percentile 98

rOxford hard 57.5

python train.py --data-path $DATA_DIR --dataset roxford5k --num-layers 2 --k 5 --kq 5 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode descriptor --report-hard --beta-percentile 98

rOxford hard ransac 64.7

python train.py --data-path $DATA_DIR --dataset roxford5k --num-layers 2 --k 5 --kq 10 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode ransac --report-hard --beta-percentile 98

rParis medium 92.4

python train.py --data-path $DATA_DIR --dataset rparis6k --num-layers 2 --k 5 --kq 15 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode descriptor --beta-percentile 98

rParis medium ransac 93.4

python train.py --data-path $DATA_DIR --dataset rparis6k --num-layers 2 --k 5 --kq 25 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode ransac --beta-percentile 98

rParis hard 83.5

python train.py --data-path $DATA_DIR --dataset rparis6k --num-layers 2 --k 5 --kq 15 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode descriptor --report-hard --beta-percentile 98

rParis hard ransac 85.3

python train.py --data-path $DATA_DIR --dataset rparis6k --num-layers 2 --k 5 --kq 25 --epoch 200 --lr 0.0001 --gpu-id 0 --graph-mode ransac --report-hard --beta-percentile 98

INSTRE 89.2

python train.py --data-path $DATA_DIR --dataset instre --num-layers 2 --k 10 --kq 10 --epoch 500 --lr 0.0001 --graph-mode descriptor --beta-percentile 98

INSTRE ransac 92.4

python train.py --data-path $DATA_DIR --dataset instre --num-layers 2 --k 50 --kq 20 --epoch 500 --lr 0.0001 --graph-mode ransac --beta-percentile 98

Citation

If you find this code useful in your research, please cite the following paper:

@inproceedings{liu2019guided,
  title={Guided Similarity Separation for Image Retrieval},
  author={Chundi Liu, Guangwei Yu, Cheng Chang, Himanshu Rai, Junwei Ma, Satya Krishna Gorti, Maksims Volkovs},
  booktitle={NeurIPS},
  year={2019}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].