Home

Awesome

Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images.(CVPR 2021)

This is the official code of the paper Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images, published in CVPR 2021, by Xinggang Wang, Jiapei Feng, Bin Hu, Qi Ding, Longjin Ran, Xiaoxin Chen, Wenyu Liu.

<!-- TABLE OF CONTENTS --> <details open="open"> <summary>Table of Contents</summary> <ol> <li> <a href="#Introduction">Introduction</a> </li> <li> <a href="#prerequisites">Prerequisites</a> </li> <li><a href="#usage">Usage</a></li> <li><a href="#Citation">Citation</a></li> <li><a href="#license">License</a></li> <li><a href="#acknowledgements">Acknowledgements</a></li> </ol> </details> <!-- INTRODUCTION -->

Introduction

<p align="center"><img src="figures/pipeline.png" alt="pipeline" width="90%"></p>

Weakly-supervised instance segmentation uses coarser annotations to acquire a high-precision instance segmentation model, such as bounding boxes. This "box-to-seg" process is a class-agnostic process. Our motivation is to learn a model that achieves generic class-agnostic segmentation.

The training process is divided into three steps. Firstly, we obtain a class-agnostic segmentation model through the joint training of box-supervised dataset and salient object segmentation dataset. Secondly, we use the class-agnostic segmentation model to produce high-quality predictions for training instances. Those segmentation predictions are merged to generate proxy instance masks for training images. Finally, we re-train a Mask R-CNN with proxy masks.

<!-- PREREQUISITES -->

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

<!-- USAGE -->

Usage

Here, we provide the DUT-TR-Single datasets, the cocostyle annotations of PASCAL VOC, our pre-trained models and proxy masks for training set.

Training

    bash train_pd.sh

for evaluation:

    bash pascal_val.sh

for predicting segmentation maps of the training instances:

    bash pascal_psd_mask.sh

More detailed instructions are provided in the jointraining.

    cd proxy_mask
    python pascal_proxy_mask_generate.py --gt-path training_set_boundingbox_cocostyle_json --seg-pred predicted_results

Run the following command:

    cd retrain/maskrcnn-benchmark/
    python -m torch.distributed.launch --nproc_per_node=2 ./tools/train_net.py --config-file e2e_mask_rcnn_R_101_FPN_4x_voc_aug_cocostyle.yaml

Check INSTALL.md for installation instructions.

<!-- CITATION -->

Citation

If you find the code useful in your research, please consider citing:

@inproceedings{wang2021boxcaseg,
  title     =  {Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images},
  author    =  {Wang, Xinggang and Feng, Jiapei and Hu, Bin and Ding, Qi and Ran, Longjin and Chen, Xiaoxin and Liu, Wenyu},
  booktitle =  {Proc. IEEE Conf. Computer Vision and Pattern Recognition (CVPR)},
  year      =  {2021}
}
<!-- LICENSE -->

License

Distributed under the MIT License. See LICENSE for more information.

<!-- ACKNOWLEDGEMENTS -->

Acknowledgements