UPSNet icon indicating copy to clipboard operation
UPSNet copied to clipboard

Does the current network support the annotations with is_crowd=1 (custom dataset with coco-format) ?

Open Hcyang-NULL opened this issue 4 years ago • 5 comments

The annotations in my custom dataset (coco format) are all is_crowd=1. When I started training, it reported a ValueError on line 136 of upsnet_end2end_train.py:

train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=config.train.batch_size, shuffle=config.train.shuffle, num_workers=num_gpus * 4 if not config.debug_mode else num_gpus * 4, drop_last=False, collate_fn=train_dataset.collate)

message of the ValueError is the following:

num_samples should be a positive integer value, but got num_samples=0

It seems that the train_dataset is empty, but the settings is correct. But after I changed all is_crowd to 1, this problem disappeard. So I want to ask if the code doesn't support the annotations with is_crowd=1?

Thanks !

Hcyang-NULL avatar Nov 11 '19 14:11 Hcyang-NULL

In my custom dataset, all is_crowd = 0 and I am still having the same problem

ValueError: num_samples should be a positive integer value, but got num_samples=0

discretecoder avatar Nov 21 '19 14:11 discretecoder

In my custom dataset, all is_crowd = 0 and I am still having the same problem

ValueError: num_samples should be a positive integer value, but got num_samples=0

I rebuild my custom dataset with is_crowd = 0 which means that all annotations are transforming to polygon format and finally the code works fine. Maybe your json file of your custom datset really exists some problems. Maybe you can check it again.

Hcyang-NULL avatar Nov 21 '19 15:11 Hcyang-NULL

basically in my code the function 'filter for training' is filtering out all the roidb entries and nothing left for training. I am trying to find out why

discretecoder avatar Nov 21 '19 15:11 discretecoder

I used pycocotools to generate my coco format data, but i guess there is a problem with labels because i get an IoU of 0 which means the masks are totally off the object

discretecoder avatar Nov 22 '19 09:11 discretecoder

I ran into the same issue using pycocotools. From what I can tell, the way that pycocotools does things, if you iscrowd = 1, you get the RLE format. If you use iscrowd = 0, though, it seems that it struggles to make very complex polygons, so there are some overlapping regions. The big issue here is that it ignores the crowd classes during training, so you get nothing if all of your classes are "crowds". Does anyone have a reasonable solution to this? Is there a specific reason why we exclude the crowd categories during training?

rlangefe avatar Jan 16 '21 00:01 rlangefe