nickgkan / butd_detr

Code for the ECCV22 paper "Bottom Up Top Down Detection Transformers for Language Grounding in Images and Point Clouds"
Other
74 stars 11 forks source link

About 'couch' in `DC18.type2class` #44

Closed linhaojia13 closed 5 months ago

linhaojia13 commented 9 months ago

Hi, thank you very for your open codes! It really do me favour in my several works.

In this line, DC18.type2class is used to mapping the nyu_labels to 18-class id:

labels = [DC18.type2class.get(lbl, 17) for lbl in nyu_labels]

When I dig into class ScannetDatasetConfig in model_util_scannet.py, I find the key for id 3 is couch:

    self.type2class = {'cabinet': 0, 'bed': 1, 'chair': 2, 'couch': 3, 'table': 4, 'door': 5,
                       'window': 6, 'bookshelf': 7, 'picture': 8, 'counter': 9, 'desk': 10, 'curtain': 11,
                       'refrigerator': 12, 'shower curtain': 13, 'toilet': 14, 'sink': 15, 'bathtub': 16,
                       'other furniture': 17}

However, couch is the raw name for scannet. The nyu40class name should be sofa.

This typo would make DC18.type2class map sofa to id 17 but not 3, just like:

(Pdb) nyu_labels
['window', 'window', 'table', 'counter', 'otherstructure', 'curtain', 'curtain', 'desk', 'cabinet', 'floor', 'sink', 'otherprop', 'otherfurniture', 'otherfurniture', 'otherfurniture', 'television', 'pillow', 'otherprop', 'otherprop', 'wall', 'wall', 'wall', 'wall', 'wall', 'wall', 'wall', 'wall', 'wall', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'sofa', 'refridgerator', 'table', 'table', 'toilet', 'bed', 'cabinet', 'cabinet', 'cabinet', 'cabinet', 'cabinet', 'cabinet', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'night stand', 'night stand', 'otherprop', 'otherprop', 'otherprop', 'door', 'ceiling', 'shelves', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'otherprop', 'door', 'mirror', 'door', 'otherprop']
(Pdb) labels
[6, 6, 4, 9, 17, 11, 11, 10, 0, 17, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 4, 4, 14, 1, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 5, 17, 17, 17, 17, 17, 17, 17, 17, 5, 17, 5, 17]
(Pdb)
ayushjain1144 commented 5 months ago

good catch!

Do you find this affecting anything in terms of training / downstream evaluations? (I might be wrong, but i don't think it should)

RunsenXu commented 3 months ago

There is another similar problem here. The raw name of refrigerator is "refrigerator" but for nyu40class, it is "refridgerator", which makes all refrigerator mapping to "others". This bug does not exist in the ScanRefer codes as the tsv file ScanRefer uses is consistent for refrigerator, but I found the tsv file used in VoteNet also uses "refridgerator".

Maybe these errors affect the calculation of "unique" and "multi".