Implementation for <Hierarchical Bilinear Pooling for Fine-Grained Visual Recognition> in ECCV'18.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 98c6bc2 Aug 3, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add caffe Jul 31, 2018
cmake add caffe Jul 31, 2018
docker add caffe Jul 31, 2018
docs add caffe Jul 31, 2018
examples add caffe Jul 31, 2018
include/caffe add caffe Jul 31, 2018
matlab add caffe Jul 31, 2018
myexample add caffe Jul 31, 2018
python add caffe Jul 31, 2018
scripts add caffe Jul 31, 2018
src add caffe Jul 31, 2018
tools add caffe Jul 31, 2018
.Doxyfile add caffe Jul 31, 2018
.gitignore add caffe Jul 31, 2018
.travis.yml add caffe Jul 31, 2018
CMakeLists.txt add caffe Jul 31, 2018
CONTRIBUTING.md add caffe Jul 31, 2018
CONTRIBUTORS.md add caffe Jul 31, 2018
INSTALL.md add caffe Jul 31, 2018
LICENSE add caffe Jul 31, 2018
Makefile add caffe Jul 31, 2018
Makefile.config.example add caffe Jul 31, 2018
README.md Update README.md Aug 3, 2018
caffe.cloc add caffe Jul 31, 2018

README.md

Hierarchical Bilinear Pooling for Fine-Grained Visual Recognition

This branch is developed for fine-grained recognition, the related paper is as follows:

Hierarchical Bilinear Pooling for Fine-Grained Visual Recognition[C]
Chaojian Yu, Xinyi Zhao, Qi Zheng, Peng Zhang, Xinge You*
European Conference on Computer Vision. 2018.

Files

  • Original Caffe library
  • Sum Pooling layer
    • src/caffe/proto/caffe.proto
    • include/caffe/layers/sum_pooling_layer.hpp
    • src/caffe/layers/sum_pooling_layer.cpp
    • src/caffe/layers/sum_pooling_layer.cu
  • L2 Normalize layer
    • include/caffe/layers/l2_normalize_layer.hpp
    • src/caffe/layers/l2_normalize_layer.cpp
    • src/caffe/layers/l2_normalize_layer.cu
  • Signed Sqrt layer
    • include/caffe/layers/signed_sqrt_layer.hpp
    • src/caffe/layers/signed_sqrt_layer.cpp
    • src/caffe/layers/signed_sqrt_layer.cu
  • Example
    • myexample/data/
    • myexample/HBP/ft_last_layer.sh
    • myexample/HBP/ft_last_layer.solver
    • myexample/HBP/ft_last_layer.prototxt
    • myexample/HBP/ft_all.sh
    • myexample/HBP/ft_all.solver
    • myexample/HBP/ft_all.prototxt

Train model

  1. The Installation completely the same as Caffe. Please follow the installation instructions. Make sure you have correctly installed before using our code.

  2. Download the CUB dataset and VGG16 model for training.

  3. Preprocess the CUB dataset and creat list for training set and validation set, place them in myexample/data/

  4. Fine tune the last layer

    ./myexample/HBP/ft_last_layer.sh
    
  5. Fine tune the whole network

    ./myexample/HBP/ft_all.sh
    

Fine tuned model

The fine tuned model is available: google drive baidu skydrive

Contact

All codes are tested on Titan X GPU. If you have any further questions or comments, feel free to contact Chaojian Yu (yucj@hust.edu.cn)

Citation

If the code helps your research, please consider to cite our work:

@article{yu2018hierarchical,
  title={Hierarchical Bilinear Pooling for Fine-Grained Visual Recognition},
  author={Yu, Chaojian and Zhao, Xinyi and Zheng, Qi and Zhang, Peng and You, Xinge},
  journal={arXiv preprint arXiv:1807.09915},
  year={2018}
}