Skip to content

PyTorch implementation of a 1x1 convolutional module to boost CNN's capability for FGVC

Notifications You must be signed in to change notification settings

Physicist91/dvfp

Repository files navigation

Deep Learning for Fine-grained Visual Classification

Here we implement state-of-the-art techniques for fine-grained classification.

  1. Discriminative filter learning within CNN -- CVPR, June 2018
  2. Bilinear CNN -- ICCV, 2015

To this end, we authored a few notebooks that illustrate both techniques as well as other approaches:

  • Plain ResNet50, VGG19_bn.ipynb contain codes and description for our fine-tuned ResNet-50 and VGG-19 models.
  • dfl.ipynb outlines major components and implementation of the DFL architecture.
  • BilinearPooling with FastAI on Stenford Cars.ipynb contains a simple implementation of Bilinear CNN
  • ResNet34.ipynb contains a straightforward transfer learning approach using ResNet34.

Datasets:

Implemented using PyTorch. This work is done as part of the final project for Deep Vision, ST2019.

This work is also partly inspired by

To train a DFL model:

# clone this repo
git clone https://github.com/Physicist91/dvfp

# first edit the parameters (e.g. GPU number, batch_size) then execute run.sh
# to load our trained model, specify the path to weights in --resume
./run.sh

Stanford Cars is the primary dataset used in this project. CUB_200_2011 is used only for further comparison and testing. The final results are:

table

The weights can be downloaded from here. The poster for this project can be found below (note that the numbers/results have been updated -- refer to the table above).


poster

About

PyTorch implementation of a 1x1 convolutional module to boost CNN's capability for FGVC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages