Anti-Adversarially Manipulated Attributions for Weakly and Semi-Supervised Semantic Segmentation
Input Image | Initial CAM | Successive Maps with adversarial climbing |
---|---|---|
The implementation of Anti-Adversarially Manipulated Attributions for Weakly and Semi-Supervised Semantic Segmentation, Jungbeom Lee, Eunji Kim, and Sungroh Yoon, CVPR 2021. [paper]
Installation
- We kindly refer to the offical implementation of IRN.
- This repository is tested on Ubuntu 18.04, with Python 3.6, PyTorch 1.4, pydensecrf, scipy, chaniercv, imageio, and opencv-python.
Usage
Step 1. Prepare Dataset
- Download PASCAL VOC 2012 benchmark: Download.
Step 2. Prepare pre-trained classifier
- Pre-trained model used in this paper: Download.
- You can also train your own classifiers following IRN.
Step 3. Obtain the pseudo ground-truth masks for PASCAL VOC train_aug images and evaluate them
bash get_mask_quality.sh
Step 4. Train a semantic segmentation network
- To train DeepLab-v2, we refer to deeplab-pytorch. However, this repo contains only COCO pre-trained model. We provide ImageNet pre-trained model for a fair comparison with the other methods.
Acknowledgment
This code is heavily borrowed from IRN, thanks jiwoon-ahn!