{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/eclipse-efficient-continual-learning-in","title":"ECLIPSE: Efficient Continual Learning in Panoptic Segmentation with Visual Prompt Tuning","arxiv_id":"2403.20126","date":"2024-03-29","proceeding":"CVPR 2024 1","authors":["Beomyoung Kim","Joonsang Yu","Sung Ju Hwang"],"abstract":"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. The code is available at https://github.com/clovaai/ECLIPSE.","url_abs":"https://arxiv.org/abs/2403.20126v1","url_pdf":"https://arxiv.org/pdf/2403.20126v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"eclipse-efficient-continual-learning-in","repo_url":"https://github.com/clovaai/ECLIPSE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"},{"task_slug":"continual-panoptic-segmentation","task_name":"Continual Panoptic Segmentation"},{"task_slug":"instance-segmentation","task_name":"Instance Segmentation"},{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"panoptic-segmentation","task_name":"Panoptic Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"visual-prompt-tuning","task_name":"Visual Prompt Tuning"}],"methods":[{"method_slug":"base","method_name":"BASE"},{"method_slug":"knowledge-distillation","method_name":"Knowledge Distillation"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.20126","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.20126"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/clovaai/ECLIPSE","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":3,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":4,"samples":[{"code_sha256_prefix":"b9edb542ddeedb32","entry":"focal_loss","repo":"clovaai/ECLIPSE","repo_kind":"official","path":"continual/method_wrapper/loss.py","file_url":"https://github.com/clovaai/ECLIPSE/blob/HEAD/continual/method_wrapper/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b9edb542ddeedb32"}},{"code_sha256_prefix":"d789c5131bc6257f","entry":"normalization","repo":"clovaai/ECLIPSE","repo_kind":"official","path":"continual/method_wrapper/pix_losses.py","file_url":"https://github.com/clovaai/ECLIPSE/blob/HEAD/continual/method_wrapper/pix_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d789c5131bc6257f"}},{"code_sha256_prefix":"8820a1f39a3f1556","entry":"sigmoid_focal_loss","repo":"clovaai/ECLIPSE","repo_kind":"official","path":"continual/method_wrapper/loss.py","file_url":"https://github.com/clovaai/ECLIPSE/blob/HEAD/continual/method_wrapper/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8820a1f39a3f1556"}},{"code_sha256_prefix":"894427132bec06c1","entry":"sigmoid_cross_entropy","repo":"clovaai/ECLIPSE","repo_kind":"official","path":"continual/method_wrapper/loss.py","file_url":"https://github.com/clovaai/ECLIPSE/blob/HEAD/continual/method_wrapper/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"894427132bec06c1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}