hustvl / WeakTr

WeakTr: Exploring Plain Vision Transformer for Weakly-supervised Semantic Segmentation
MIT License
122 stars 2 forks source link

why the nb_classes = 90 about the COCO dataset in the datasets.py(184行)? #13

Closed znshi closed 1 year ago

znshi commented 1 year ago

def build_dataset(is_train, data_set, args, gen_attn=False): transform = build_transform(is_train, args, gen_attn) dataset = None nb_classes = None

if data_set == 'VOC12':
    dataset = VOC12Dataset(data_root=args.data_path,
                           train=is_train, gen_attn=gen_attn, transform=transform)
    nb_classes = 20
elif data_set == 'VOC12MS':
    dataset = VOC12DatasetMS(img_name_list_path=args.img_ms_list, data_root=args.data_path,
                             scales=tuple(args.scales),
                             train=is_train, gen_attn=gen_attn, transform=transform)
    nb_classes = 20
elif data_set == 'COCO':
    dataset = COCOClsDataset(data_root=args.data_path,
                             train=is_train, gen_attn=gen_attn, transform=transform)
    nb_classes = 90
elif data_set == 'COCOMS':
    dataset = COCOClsDatasetMS(img_name_list_path=args.img_ms_list, data_root=args.data_path,
                               scales=tuple(args.scales),
                               train=is_train, gen_attn=gen_attn, transform=transform)
    nb_classes = 90

return dataset, nb_classes
Yingyue-L commented 1 year ago

Thank you for the question! Although the COCODataset actually has 80 classes, the official COCODataset annotations include 90 classes, of which 10 classes have never been observed. In our experiment, we directly used the official annotations without converting them to 80 classes. Therefore, the number of classes was set as 90.