PyTorch implementation of SPN

Soft Proposal Networks for Weakly Supervised Object Localization, ICCV 2017.

[Project Page] [Paper] [Supp]

[Torch code]

Requirements

Conda virtual environment is recommended: conda env create -f environment.yml

Usage

  1. Clone the SPN repository:

    git clone https://github.com/yeezhu/SPN.pytorch.git
  2. Download the backbone model VGG16 (exported from caffe model) and then the model path should be SPN.pytorch/demo/models/VGG16_ImageNet.pt.

  3. Install SPN:

    cd SPN.pytorch/spnlib
    bash make.sh
  4. Run the training demo:

    cd SPN.pytorch/demo
    bash runme.sh
  5. Run the testing demo: EvaluationDemo.ipynb Figure Note: To perform bbox localization on ImageNet, firstly download the SP_GoogleNet_ImageNet model and the annotations into imagenet_eval folder. Extraxt the annotations:

    cd SPN.pytorch/demo/evaluation/imagenet_eval
    tar zxvf ILSVRC2012_bbox_val_v3.tgz    

Citation

If you use the code in your research, please cite:

@INPROCEEDINGS{Zhu2017SPN,
    author = {Zhu, Yi and Zhou, Yanzhao and Ye, Qixiang and Qiu, Qiang and Jiao, Jianbin},
    title = {Soft Proposal Networks for Weakly Supervised Object Localization},
    booktitle = {ICCV},
    year = {2017}
}

Acknowledgement

In this project, we reimplemented SPN on PyTorch based on wildcat.pytorch. To keep consistency with the Torch version, we use the VGG16 model exported from caffe in fcn.pytorch.