All Projects â†’ youngkyunJang â†’ GPQ

youngkyunJang / GPQ

Licence: MIT license
Generalized Product Quantization Network For Semi-supervised Image Retrieval - CVPR 2020

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to GPQ

Person reid baseline pytorch
Pytorch ReID: A tiny, friendly, strong pytorch implement of object re-identification baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial
Stars: ✭ 2,963 (+4838.33%)
Mutual labels:  metric-learning, image-retrieval
Batch Dropblock Network
Official source code of "Batch DropBlock Network for Person Re-identification and Beyond" (ICCV 2019)
Stars: ✭ 304 (+406.67%)
Mutual labels:  metric-learning, image-retrieval
Powerful Benchmarker
A PyTorch library for benchmarking deep metric learning. It's powerful.
Stars: ✭ 272 (+353.33%)
Mutual labels:  metric-learning, image-retrieval
CVPR2020 PADS
(CVPR 2020) This repo contains code for "PADS: Policy-Adapted Sampling for Visual Similarity Learning", which proposes learnable triplet mining with Reinforcement Learning.
Stars: ✭ 57 (-5%)
Mutual labels:  metric-learning, cvpr2020
MHCLN
Deep Metric and Hash Code Learning Network for Content Based Retrieval of Remote Sensing Images
Stars: ✭ 30 (-50%)
Mutual labels:  hashing, metric-learning
cisip-FIRe
Fast Image Retrieval (FIRe) is an open source project to promote image retrieval research. It implements most of the major binary hashing methods to date, together with different popular backbone networks and public datasets.
Stars: ✭ 40 (-33.33%)
Mutual labels:  hashing, image-retrieval
proxy-synthesis
Official PyTorch implementation of "Proxy Synthesis: Learning with Synthetic Classes for Deep Metric Learning" (AAAI 2021)
Stars: ✭ 30 (-50%)
Mutual labels:  metric-learning, image-retrieval
symmetrical-synthesis
Official Tensorflow implementation of "Symmetrical Synthesis for Deep Metric Learning" (AAAI 2020)
Stars: ✭ 67 (+11.67%)
Mutual labels:  metric-learning, image-retrieval
Pytorch Image Retrieval
A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).
Stars: ✭ 203 (+238.33%)
Mutual labels:  metric-learning, image-retrieval
Revisiting deep metric learning pytorch
(ICML 2020) This repo contains code for our paper "Revisiting Training Strategies and Generalization Performance in Deep Metric Learning" (https://arxiv.org/abs/2002.08473) to facilitate consistent research in the field of Deep Metric Learning.
Stars: ✭ 172 (+186.67%)
Mutual labels:  metric-learning, image-retrieval
Pytorch Metric Learning
The easiest way to use deep metric learning in your application. Modular, flexible, and extensible. Written in PyTorch.
Stars: ✭ 3,936 (+6460%)
Mutual labels:  metric-learning, image-retrieval
Deep Mihash
Code for papers "Hashing with Mutual Information" (TPAMI 2019) and "Hashing with Binary Matrix Pursuit" (ECCV 2018)
Stars: ✭ 13 (-78.33%)
Mutual labels:  hashing, image-retrieval
Hardnet
Hardnet descriptor model - "Working hard to know your neighbor's margins: Local descriptor learning loss"
Stars: ✭ 350 (+483.33%)
Mutual labels:  metric-learning, image-retrieval
Similarity-Adaptive-Deep-Hashing
Unsupervised Deep Hashing with Similarity-Adaptive and Discrete Optimization (TPAMI2018)
Stars: ✭ 18 (-70%)
Mutual labels:  hashing, image-retrieval
Caffe Deepbinarycode
Supervised Semantics-preserving Deep Hashing (TPAMI18)
Stars: ✭ 206 (+243.33%)
Mutual labels:  hashing, image-retrieval
temporal-ensembling-semi-supervised
Keras implementation of temporal ensembling(semi-supervised learning)
Stars: ✭ 22 (-63.33%)
Mutual labels:  semi-supervised-learning
LabelRelaxation-CVPR21
Official PyTorch Implementation of Embedding Transfer with Label Relaxation for Improved Metric Learning, CVPR 2021
Stars: ✭ 37 (-38.33%)
Mutual labels:  image-retrieval
semi-supervised-paper-implementation
Reproduce some methods in semi-supervised papers.
Stars: ✭ 35 (-41.67%)
Mutual labels:  semi-supervised-learning
SimPLE
Code for the paper: "SimPLE: Similar Pseudo Label Exploitation for Semi-Supervised Classification"
Stars: ✭ 50 (-16.67%)
Mutual labels:  semi-supervised-learning
HashGAN
HashGAN: Deep Learning to Hash with Pair Conditional Wasserstein GAN
Stars: ✭ 63 (+5%)
Mutual labels:  hashing

Generalized Product Quantization Network for Semi-supervised Image Retrieval

Tensorflow implementation of GPQ
Accepted to CVPR 2020 - paper
Young Kyun Jang and Nam Ik Cho

Abstract

Image retrieval methods that employ hashing or vector quantization have achieved great success by taking advantage of deep learning. However, these approaches do not meet expectations unless expensive label information is sufficient. To resolve this issue, we propose the first quantization-based semi-supervised image retrieval scheme: Generalized Product Quantization (GPQ) network. We design a novel metric learning strategy that preserves semantic similarity between labeled data, and employ entropy regularization term to fully exploit inherent potentials of unlabeled data. Our solution increases the generalization capacity of the quantization network, which allows overcoming previous limitations in the retrieval community. Extensive experimental results demonstrate that GPQ yields state-of-the-art performance on large-scale real image benchmark datasets.

Overall Architecture

GPQ consitsts of three components: feature extractor F, PQ table Z and classifier C. All the components are trained with the small amount of labeled data with N-pair Product Quantization loss, and the large amount of unlabeled data with Subspace Entropy Mini-max loss.

2D Voronoi Diagram of Our Concept

While training, codewords move toward unlabeled data points, and at the same time, both labeled and unlabeled data points cluster near the codewords.

How to use

1. Install requirements on your environment.

  • Tensorflow=1.14
  • Tflearn=0.3.2
  • Matplotlib=3.2.1

2. Preparation.

  • We provide image retrieval model and data for CIFAR-10, and lists of data and label information of NUS-WIDE
  • CIFAR-10: Download pretrained model and data.
  • Extract them to the /path/to/GPQ-master.
  • Make sure the tree seems as:
|--GPQ-master
   |--cifar10
      |--batches.meta
      |--data_batch_1
      |--data_batch_2
      |--data_batch_3
      |--data_batch_4
      |--data_batch_5
      |--test_batch
      |--cifar10_Similarity.mat
   |--models
      |--48bits_example.ckpt.data-00000-of-00001
      |--48bits_example.ckpt.index
      |--48bits_example.ckpt.meta
      |--ImageNet_pretrained.mat

3. Test

  • From cifar10 dataset, we use 1,000 images for query and 54,000 images to build retrieval database.
  • We provide 48bits (12 codebooks with 2^4 codewords) pretrained model as an example.
  • Make sure to set proper path in config.py.
  • Run Demo.py, it will print mAP and stores one of the visualized ranked-list.
  • Examples

4. Train

  • We employ randomly selected 5,000 images with labels and 54,000 images without labels for semi-supervised learning.
  • To control the number of bits used for image retrieval, modify config.py to change the number of codebooks, codewords.
  • Run train.py, and it will save the model parameters and checkpoints for every 20 epochs.

tSNE Visualization

Citation

@InProceedings{GPQ,
author = {Young Kyun Jang and Nam Ik Cho},
title = {Generalized Product Quantization Network for Semi-supervised Image Retrieval},
booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}
}

Contacts

Youngkyun Jang: [email protected]

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].