Back to Source: Open-Set Continual Test-Time Adaptation via Domain Compensation

Yingkai Yang, Chaoqi Chen, Hui Huang
4/23/2026
cs.CV

No official code found. Best implementation: ekyle0522/DOCO (12 stars, last commit 2026-03-23).

Abstract

Test-Time Adaptation (TTA) aims to mitigate distributional shifts between training and test domains during inference time. However, existing TTA methods fall short in the realistic scenario where models face both continually changing domains and the simultaneous emergence of unknown semantic classes, a challenging setting we term Open-set Continual Test-Time Adaptation (OCTTA). The coupling of domain and semantic shifts often collapses the feature space, severely degrading both classification and out-of-distribution detection. To tackle this, we propose DOmain COmpensation (DOCO), a lightweight and effective framework that robustly performs domain adaptation and OOD detection in a synergistic, closed loop. DOCO first performs dynamic, adaptation-conditioned sample splitting to separate likely ID from OOD samples. Then, using only the ID samples, it learns a domain compensation prompt by aligning feature statistics with the source domain, guided by a structural preservation regularizer that prevents semantic distortion. This learned prompt is then propagated to the OOD samples within the same batch, effectively isolating their semantic novelty for more reliable detection. Extensive experiments on multiple challenging benchmarks demonstrate that DOCO outperforms prior CTTA and OSTTA methods, establishing a new state-of-the-art for the demanding OCTTA setting.

View on arXivView PDF

Code Implementations(1)

ekyle0522/DOCOCommunity58%

[CVPR 2026] Code for "Back to Source: Open-Set Continual Test-Time Adaptation via Domain Compensation"

120Mar 23, 20267 months ago

Cite this paper

@article{yang2026back,
  title  = {Back to Source: Open-Set Continual Test-Time Adaptation via Domain Compensation},
  author = {Yingkai Yang and Chaoqi Chen and Hui Huang},
  year   = {2026},
  eprint = {2604.21772},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2604.21772v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2604.21772.svg)](https://codeofpaper.com/paper/2604.21772)

Discussion