The implementation of Reducing Infromation Bottleneck for Weakly Supervised Semantic Segmentation, Jungbeom Lee, Jooyoung Choi, Jisoo Mok, and Sungroh Yoon, NeurIPS 2021. [paper]
Weakly supervised semantic segmentation produces pixel-level localization from class labels; however, a classifier trained on such labels is likely to focus on a small discriminative region of the target object. We interpret this phenomenon using the information bottleneck principle: the final layer of a deep neural network, activated by the sigmoid or softmax activation functions, causes an information bottleneck, and as a result, only a subset of the task-relevant information is passed on to the output. We first support this argument through a simulated toy experiment and then propose a method to reduce the information bottleneck by removing the last activation function. In addition, we introduce a new pooling method that further encourages the transmission of information from non-discriminative regions to the classification. Our experimental evaluations demonstrate that this simple modification significantly improves the quality of localization maps on both the PASCAL VOC 2012 and MS COCO 2014 datasets, exhibiting a new state-of-the-art performance for weakly supervised semantic segmentation.
- We kindly refer to the offical implementation of IRN.
-
Download Pascal VOC dataset here.
-
Download MS COCO images from the official COCO website here.
-
Download semantic segmentation annotations for the MS COCO dataset here.
-
Directory hierarchy
Dataset
├── VOC2012_SEG_AUG # unzip VOC2012_SEG_AUG.zip
├── coco_2017 # mkdir coco_2017
│ ├── coco_seg_anno # included in coco_annotations_semantic.zip
└── └── JPEGImages # include train and val images downloaded from the official COCO website
- Pre-trained model used in this paper: Pascal VOC, MS COCO.
- You can also train your own classifiers following IRN.
- PASCAL VOC
bash get_pseudo_gt_VOC.sh
- MS COCO
bash get_pseudo_gt_COCO.sh
- 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.
This code is heavily borrowed from IRN, thanks jiwoon-ahn!