scottjingtt / SROSDA

implementation of the ICCV work "SR-OSDA"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SROSDA (ICCV 2021)

implementation of the ICCV work Towards Novel Target Discovery Through Open-Set Domain Adaptation [Paper].

Please check the extension journal work "Interpretable Novel Target Discovery Through Open-Set Domain Adaptation" (XSR-OSDA).

image

Data Preparation


Dataset Domain Role #Images #Attributes #Classes
D2AwA A
P
R
source / target 9,343 / 16,306
3,441 / 5,760
5,251 / 10,047
85 10 / 17
I2AwA I
Aw
source / target 2,970 / 37,322 85 40 / 50

(1) To extract pre-trained ResNet-50 features, check script:

./data/N2AwA/features/extract_resnet_features.ipynb

(2) Collect attributes for all samples based on their labels, check script:

./data/N2AwA/attributes/check_N2AwA_data.ipynb

Dependencies


  • Python 3.6
  • Pytorch 1.1

Training


Step 1: Initialization clustering on target data (Seen/Unseen Initialization)

./data/N2AwA/refine_cluster-samples.ipynb

Note: Or use our clustering initialization results ./data/N2AwA/ directly.

Step 2: Train with the initialized clustering and pseudo labels on the extracted features.

python main.py

Evaluation


  • Open-set Domain Adaptation Task

$OS^*$: class-wise average accuracy on the seen categories.

$OS^\diamond$: class-wise average accuracy on the unseen categories correctly classified as "unknown".

$OS$: $\frac{OS^* \times C_{shr} + OS^\diamond}{C_{shr} + 1}$

$C_{shr}$ is the number of shared categories between the source and target domains.

  • Semantic-Recovery Open-Set Domain Adaptation Task

$S$: class-wise average accuracy on shared classes

$U$: class-wise average accuracy on unknown classes

$H = \frac{2 \times S \times U}{ S + U}$

Citation


If you think this work is interesting, please cite:

@InProceedings{Jing_2021_ICCV,
author = {Jing, Taotao and Liu, Hongfu and Ding, Zhengming},
title = {Towards Novel Target Discovery Through Open-Set Domain Adaptation},
booktitle = {International Conference on Computer Vision (ICCV)},
year = {2021}
}

Contact


If you have any questions about this work, feel free to contact

About

implementation of the ICCV work "SR-OSDA"


Languages

Language:Jupyter Notebook 59.2%Language:Python 40.8%