GithubHelp home page GithubHelp logo

clovaai / eclipse Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 1.0 465 KB

(CVPR 2024) ECLIPSE: Efficient Continual Learning in Panoptic Segmentation with Visual Prompt Tuning

License: Other

Python 85.25% Shell 5.87% C++ 0.88% Cuda 8.00%

eclipse's Introduction

ECLIPSE (CVPR 2024)

ECLIPSE: Efficient Continual Learning in Panoptic Segmentation with Visual Prompt Tuning
Beomyoung Kim1,2, Joonsang Yu1, Sung Ju Hwang2

1 NAVER Cloud, ImageVision
2 KAIST

Paper

demo image

Introduction

Panoptic segmentation, combining semantic and instance segmentation, stands as a cutting-edge computer vision task. Despite recent progress with deep learning models, the dynamic nature of real-world applications necessitates continual learning, where models adapt to new classes (plasticity) over time without forgetting old ones (catastrophic forgetting). Current continual segmentation methods often rely on distillation strategies like knowledge distillation and pseudo-labeling, which are effective but result in increased training complexity and computational overhead. In this paper, we introduce a novel and efficient method for continual panoptic segmentation based on Visual Prompt Tuning, dubbed ECLIPSE. Our approach involves freezing the base model parameters and fine-tuning only a small set of prompt embeddings, addressing both catastrophic forgetting and plasticity and significantly reducing the trainable parameters. To mitigate inherent challenges such as error propagation and semantic drift in continual segmentation, we propose logit manipulation to effectively leverage common knowledge across the classes. Experiments on ADE20K continual panoptic segmentation benchmark demonstrate the superiority of ECLIPSE, notably its robustness against catastrophic forgetting and its reasonable plasticity, achieving a new state-of-the-art.

Updates

2024-04-29 First Commit, We release the official implementation of ECLIPSE.

Installation

Our implementation is based on CoMFormer and Mask2Former.

Please check the installation instructions and dataset preparation.

You can see our core implementation from

  • mask2former/maskformer_model.py
  • mask2former/modeling/transformer_decoder/mask2former_transformer_decoder.py

Quick Start

  1. Step t=0: Training the model for base classes (you can skip this process if you use pre-trained weights.)
  2. Step t>1: Training the model for novel classes with ECLIPSE
Scenario Script Step-0 Weight Final Weight
ADE20K-Panoptic 100-5 bash script/ade_ps/100_5.sh step0 step10
ADE20K-Panoptic 100-10 bash script/ade_ps/100_10.sh step0 step5
ADE20K-Panoptic 100-50 bash script/ade_ps/100_50.sh step0 step1
ADE20K-Panoptic 50-10 bash script/ade_ps/50_10.sh step0 step10
ADE20K-Panoptic 50-20 bash script/ade_ps/50_20.sh step0 step5
ADE20K-Panoptic 50-50 bash script/ade_ps/50_50.sh step0 step2
ADE20K-Semantic 100-5 bash script/ade_ss/100_5.sh step0 step10
ADE20K-Semantic 100-10 bash script/ade_ss/100_10.sh step0 step5
ADE20K-Semantic 100-50 reproduce error step0 step1
COCO-Panoptic 83-5 bash script/coco_ps/83_5.sh step0 step10
COCO-Panoptic 83-10 bash script/coco_ps/83_10.sh step0 step5




How to Cite

@article{kim2024eclipse,
  title={ECLIPSE: Efficient Continual Learning in Panoptic Segmentation with Visual Prompt Tuning},
  author={Kim, Beomyoung and Yu, Joonsang and Hwang, Sung Ju},
  journal={arXiv preprint arXiv:2403.20126},
  year={2024}
}

License

ECLIPSE
Copyright (c) 2024-present NAVER Cloud Corp.
CC BY-NC 4.0 (https://creativecommons.org/licenses/by-nc/4.0/)

eclipse's People

Contributors

clovaaiadmin avatar qjadud1994 avatar beomyoung-kim avatar

Stargazers

MillX avatar  avatar  avatar Cameltr avatar wuyujack (Mingfu Liang) avatar Sejong Yang avatar yahooo avatar  avatar Yuchen Zhu avatar Han Ji Su avatar  avatar  avatar Zheng-Yuan Xie avatar Bowen Dong avatar

Watchers

 avatar Kostas Georgiou avatar  avatar  avatar

Forkers

carcruz97

eclipse's Issues

Looking for the code

Thank you for your great work!
Can't wait to follow your work!
May I ask when you plan to release your code?

'MaskFormer' object has no attribute 'module'

Hi! I got a error below: 'MaskFormer' object has no attribute 'module' and tried the weights from self-training step0 and which download from your page.
Do you know what's wrong is it? Or this is a version problem?
(Sorry I asked your version problem in the previous issue, but the cost for changing cuda version is too heavy to me.)

in train_inc.py L140

if self.cfg.CONT.NUM_PROMPTS > 0:
    self.model.module.copy_prompt_embed_weights()# error occur
    self.model.module.copy_mask_embed_weights()
    self.model.module.copy_no_obj_weights()
    self.model.module.copy_prompt_trans_decoder_weights()

ERROR message

[05/03 17:47:44 d2.checkpoint.detection_checkpoint]: [DetectionCheckpointer] Loading from results/ade_ss_100_step0.pth ...
[05/03 17:47:44 fvcore.common.checkpoint]: [Checkpointer] Loading from results/ade_ss_100_step0.pth ...
WARNING [05/03 17:47:44 fvcore.common.checkpoint]: Some model parameters or buffers are not found in the checkpoint:
sem_seg_head.predictor.class_embed.cls.2.layers.0.{bias, weight}
sem_seg_head.predictor.class_embed.cls.2.layers.1.{bias, weight}
sem_seg_head.predictor.class_embed.cls.2.layers.2.{bias, weight}
sem_seg_head.predictor.prompt_embed.0.0.weight
sem_seg_head.predictor.prompt_embed.0.1.weight
sem_seg_head.predictor.prompt_embed.0.2.weight
sem_seg_head.predictor.prompt_embed.0.3.weight
sem_seg_head.predictor.prompt_embed.0.4.weight
sem_seg_head.predictor.prompt_embed.0.5.weight
sem_seg_head.predictor.prompt_embed.0.6.weight
sem_seg_head.predictor.prompt_embed.0.7.weight
sem_seg_head.predictor.prompt_embed.0.8.weight
sem_seg_head.predictor.prompt_feat.0.weight
sem_seg_head.predictor.prompt_mask_embed.0.layers.0.{bias, weight}
sem_seg_head.predictor.prompt_mask_embed.0.layers.1.{bias, weight}
sem_seg_head.predictor.prompt_mask_embed.0.layers.2.{bias, weight}
Traceback (most recent call last):
  File "train_inc.py", line 782, in <module>
    launch(
  File "/home/vllab/anaconda3/envs/mask2former/lib/python3.8/site-packages/detectron2/engine/launch.py", line 84, in launch
    main_func(*args)
  File "train_inc.py", line 772, in main
    trainer.resume_or_load(resume=args.resume)
  File "train_inc.py", line 140, in resume_or_load
    self.model.module.copy_prompt_embed_weights()
  File "/home/vllab/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1695, in __getattr__
    raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")

About training cost

Hi, thanks for your work! I want to reproduce the result and wonder the number of GPUs used in these experiments and the training time, hope you can help me!

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.