Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignore novel class areas in the semantic branch #9

Closed
LiheYoung opened this issue Jan 14, 2021 · 3 comments
Closed

Ignore novel class areas in the semantic branch #9

LiheYoung opened this issue Jan 14, 2021 · 3 comments

Comments

@LiheYoung
Copy link

Hi,

I notice that you ignore all novel class areas (set their values as 255) in the semantic branch during training.

for i, query_label_tmp in enumerate(query_labels_tmp):
        query_label_tmp[labels[i] == 255] = 255
        for j in range(len(baseclass_ids)):
            if baseclass_ids[j] == 0:
                continue
            elif baseclass_ids[j] == 255 or baseclass_ids[j] not in label_sets[cfg['label_sets']]:
                query_label_tmp[labels[i] == baseclass_ids[j]] = 255
                continue
            query_label_tmp[labels[i] == baseclass_ids[j]] = baseclass[cfg['label_sets']][baseclass_ids[j]]

However, it is unrealistic for us to know which pixels belong to novel classes. It may be more realistic to set them as background, same as the common practice in meta-training process.

Is there anything I misunderstand? Thank you in advance!

@youngfly11
Copy link
Collaborator

Thanks for your remind. We will retrain our code to further check it. We will report it once we get more results.

@youngfly11
Copy link
Collaborator

youngfly11 commented Jan 15, 2021

Hi, Lihe:
We modified our code by setting the novel class to 0 in gt map. Here are the results.

Experiments

(In paper Tab1, ours w/o $s^u$ experiments, pascal 1way1shot )

Original (set 255): 47.83, 58.75, 53.80, 45.63, 51.50
Retrain (set 0): 48.12, 58.79, 52.82, 46.17, 51.48

We found that two strategies perform differently in splits. But on average, they have little difference. Our network will not learn the novel information by ignoring those classes.

@LiheYoung
Copy link
Author

Thanks for your experiments, Yongfei!

My original concern on setting them as 0 is that features of some latent novel objects may be trained to be closer to true backgrounds, which will degrade the generalization ability during testing. And ignoring them may alleviate this problem.

Actually, I observe similar results in my experiments. The decrease in the 3rd split may result from the person class, since it appears frequently as background during training.

@youngfly11 youngfly11 pinned this issue Jan 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants