GithubHelp home page GithubHelp logo

selectiveconvfeature's Introduction

Selective Deep Convolutional Features for Image Retrieval

alt text

This is the Matlab implements of our methods accepted in ACM MM 2017. [pdf]

This code implements

  1. The framework of produce global image representation
  • Pre-processing: PCA + l2-normalize
  • Masking scheme: MAX-mask/SUM-mask
  • Embedding: Triangular Embedding (Temb) [1] and Fast Function Approximation Embedding (F-FAemb) [2]
  • Aggregating: Democractic pooling [1]
  • Post-processing: rotation and whitening, Power-law normalization.
  1. Extract conv. feature of images

[1] Hervé Jégou and Andrew Zisserman. 2014. Triangulation embedding and democratic aggregation for image search. In CVPR.

[2] Thanh-Toan Do and Ngai-Man Cheung. 2017. Embedding based on function approximation for large scale image search. TPAMI (2017).

BibTex

@INPROCEEDINGS{selectiveDeepConvFea,
 author    = {Tuan Hoang and Do, Thanh-Toan and Dang-Khoa Le Tan and Cheung, Ngai-Man},
 title     = {Selective Deep Convolutional Features for Image Retrieval},
 bookTitle = {ACM Multimedia},
 year      = {2017},
 month     = {Oct},
}

Prerequisites

The code include:

Usage

  1. Modify the parameters in 'opt.m' file appropriately.
  2. Run the following script
main

Files and subfolders

Filename Description
README This file
main.m The main script for running whole process
opt.m The script contains all parameter setting.
extract_feature_map/ Contains files for extracting conv. features. See the README file inside this folder for more information.
tools/
tools/make.m Script to build the mex file for faemb and temb methods.
tools/democratic/ contains matlab script files for democratic pooling methods.
tools/faemb/ contains matlab script files for F-FAemb method.
tools/faemb_mex/ contains mex files for F-FAemb method.
tools/triemb/ contains matlab script/mex files for Triangular Embedding method.
tools/evaluation/ contains matlab script files for evaluation.
tools/yael/ contains the yael library
utils ---
utils/embedding.m Process embedding and aggregating
utils/apply_mask.m Compute and then apply mask on the conv. features.
utils/crop_qim.m Crop query images.
utils/learn_rn.m Learn projection (PCA/whitening) matrix
utils/vecpostproc.m Apply post-processing
data/ contains ground truth and data. In case you may want to retrain, please download the provided data and put them in this folder
data/workdir/ contains output files (i.e., parameters, embedded features)

selectiveconvfeature's People

Contributors

hnanhtuan avatar

Stargazers

Zihe Gao avatar studkf avatar Zhaorui Yang avatar frankfanslc avatar Anh-Dzung Doan avatar  avatar  avatar  avatar Osman Tursun avatar Lixin avatar Jiong Wang avatar Shaina Krumme avatar Kinshuk avatar BenJueWeng avatar brightown avatar  avatar  avatar  avatar 爱可可-爱生活 avatar Tuan-Anh Bui avatar Khuong Luu avatar Le Tan Dang Khoa avatar  avatar Yong Yuan avatar

Watchers

James Cloos avatar Le Tan Dang Khoa avatar  avatar BenJueWeng avatar Osman Tursun avatar  avatar paper2code - bot avatar

selectiveconvfeature's Issues

We need some files or data for this code

Excause me , I couldn't find the way just like
data/workdir/paris6k_31_1024_param_20_32_temb_max.mat for the param_file in the main.m . Could please give me some flies or data about this ?

strongly recommend to use Tensorflow or Pytorch as computing platform in the future :) #3

Hi hnanhtuan, your code is written very elegant and with amazing performance. Since matconvnet is not friendly to quickly use and development community is not strong, and its training efficiency and deployment would be inferior to the above platforms. Python is more convenient to process network and data. Would you be so kind to provide codes of Tensorflow or Pytorch version?

Thanks for your code sharing again !

About train and test dataset

Could I ask you a simple question? Why you train on one dataset (paris6k dataset), then evaluate on the
another dataset (oxford5k dataset)? Is this just to avoid overfitting?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.