Coder Social home page Coder Social logo

wx-b / bam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chunbolang/bam

0.0 0.0 0.0 6.89 MB

Official PyTorch Implementation of Learning What Not to Segment: A New Perspective on Few-Shot Segmentation (CVPR 2022 Oral).

License: MIT License

Python 98.77% Shell 1.23%

bam's Introduction

PWC PWC PWC PWC

Learning What Not to Segment: A New Perspective on Few-Shot Segmentation

This repo contains the code for our CVPR 2022 Oral paper "Learning What Not to Segment: A New Perspective on Few-Shot Segmentation" by Chunbo Lang, Gong Cheng, Binfei Tu, and Junwei Han.

Abstract: Recently few-shot segmentation (FSS) has been extensively developed. Most previous works strive to achieve generalization through the meta-learning framework derived from classification tasks; however, the trained models are biased towards the seen classes instead of being ideally class-agnostic, thus hindering the recognition of new concepts. This paper proposes a fresh and straightforward insight to alleviate the problem. Specifically, we apply an additional branch (base learner) to the conventional FSS model (meta learner) to explicitly identify the targets of base classes, i.e., the regions that do not need to be segmented. Then, the coarse results output by these two learners in parallel are adaptively integrated to yield precise segmentation prediction. Considering the sensitivity of meta learner, we further introduce an adjustment factor to estimate the scene differences between the input image pairs for facilitating the model ensemble forecasting. The substantial performance gains on PASCAL-5i and COCO-20i verify the effectiveness, and surprisingly, our versatile scheme sets a new state-of-the-art even with two plain learners. Moreover, in light of the unique nature of the proposed approach, we also extend it to a more realistic but challenging setting, i.e., generalized FSS, where the pixels of both base and novel classes are required to be determined.

โœจ News

[Mar 2, 2022]

  • BAM is accepted to CVPR2022.

[Mar 29, 2022]

  • Our paper is selected for an oral presentation.

[May 23, 2022]

  • We release all the trained models to facilitate validation.

[Jun 16, 2022]

  • The generated base annotations are available.

๐Ÿ”ง Usage

Dependencies

  • Python 3.8
  • PyTorch 1.7.0
  • cuda 11.0
  • torchvision 0.8.1
  • tensorboardX 2.14

Datasets

  • PASCAL-5i: VOC2012 + SBD

  • COCO-20i: COCO2014

    Download the data lists (.txt files) and put them into the BAM/lists directory.

  • Run util/get_mulway_base_data.py to generate base annotations for stage1, or directly use the trained weights.

Models

  • Download the pre-trained backbones from here and put them into the BAM/initmodel directory.
  • Download our trained base learners from OneDrive and put them under initmodel/PSPNet.
  • We provide all trained BAM models for performance evaluation. Backbone: VGG16 & ResNet50; Dataset: PASCAL-5i & COCO-20i; Setting: 1-shot & 5-shot.

Scripts

  • Change configuration via the .yaml files in BAM/config, then run the .sh scripts for training and testing.

  • Stage1 Pre-training

    Train the base learner within the standard learning paradigm.

    sh train_base.sh
    
  • Stage2 Meta-training

    Train the meta learner and ensemble module within the meta-learning paradigm.

    sh train.sh
    
  • Stage3 Meta-testing

    Test the proposed model under the standard few-shot setting.

    sh test.sh
    
  • Stage4 Generalized testing

    Test the proposed model under the generalized few-shot setting.

    sh test_GFSS.sh
    

Performance

Performance comparison with the state-of-the-art approaches (i.e., HSNet and PFENet) in terms of average mIoU across all folds.

  1. PASCAL-5i
    Backbone Method 1-shot 5-shot
    VGG16 HSNet 59.70 64.10
    BAM (ours) 64.41 (+4.71) 68.76 (+4.66)
    ResNet50 HSNet 64.00 69.50
    BAM (ours) 67.81 (+3.81) 70.91 (+1.41)
  2. COCO-20i
    Backbone Method 1-shot 5-shot
    VGG16 PFENet 36.30 40.40
    BAM (ours) 43.50 (+7.20) 49.34 (+8.94)
    ResNet50 HSNet 39.20 46.90
    BAM (ours) 46.23 (+7.03) 51.16 (+4.26)

Visualization

To-Do List

  • Support different backbones
  • Support various annotations for training/testing
  • Multi-GPU training
  • FSS-1000 dataset

References

This repo is mainly built based on PFENet, RePRI, and SemSeg. Thanks for their great work!

BibTeX

If you find our work and this repository useful. Please consider giving a star โญ and citation ๐Ÿ“š.

@InProceedings{lang2022bam,
    author    = {Lang, Chunbo and Cheng, Gong and Tu, Binfei and Han, Junwei},
    title     = {Learning What Not To Segment: A New Perspective on Few-Shot Segmentation},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    year      = {2022},
    pages     = {8057-8067}
}

bam's People

Contributors

chunbolang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.