DFL-CNN

by songdejia

songdejia / DFL-CNN

This is a pytorch re-implementation of Learning a Discriminative Filter Bank Within a CNN for Fine-G...

224 Stars 55 Forks Last release: Not found MIT License 57 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

DFL-CNN : a fine-grained classifier

This is a simple pytorch re-implementation of CVPR 2018 Learning a Discriminative Filter Bank Within a CNN for Fine-Grained Recognition.

Introduction:

This work still need to be updated. The features are summarized blow: + Use VGG16 as base Network. + Dataset CUB-200-2011, you can split trainset/testset by yourself.Or you can download dataset which has been split directly from BaiduYun Link. + This work has been trained on 4 Titan V after epoch 120 with batchsize 56, Now I got best result Top1 85.140% Top5 96.237% which is lower than author's. You can download weights from weights. + Part FCs is replaced by Global Average Pooling to reduce parameters. + Every some epoches, ten best patches is visualized in vis_result directory, you can put images you want to visualize in vis_img named number.jpg. + Update: ResNet-101 DFL-CNN and Multi-scale DFL-CNN need to be done.

Algorithms Introduction:

Display

Display

Results and Visualization of ten boxes for discriminative patches:

  • This work has been trained on 4 Titan V after epoch 120 with batchsize 56, Now I got best result Top1 85.140% Top5 96.237% which is lower than author's. You can download weights from weights. If use TenCrop transform in code, result can improve further.

  • Test Results:

  • Visualization:

Usage:

  • Download dataset, you can split trainset/valset by yourself
    wget http://www.vision.caltech.edu/visipedia-data/CUB-200-2011/CUB_200_2011.tgz
    
  • Or you can directly get it from BaiduYun Link
  • Then link original dataset to our code root/dataset
    ln -s ./train path/to/code/dataset/train 
    ln -s ./test  path/to/code/dataset/test
    
  • Finally, Train and Test.
  • Check you GPU resources and modify your run.sh.
    sh run.sh
    

Note:

  1. Visualization of ten best boxes is saved in vis_result/, img you want to visualize should be put in vis_img/.
  2. Weight(checkpoint.pth.tar, model_best.pth.tar) is in weight/.
  3. Loss info is saved in log/.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.