amazon-science / omni-detr

PyTorch implementation of Omni-DETR for omni-supervised object detection: https://arxiv.org/abs/2203.16089
Other
64 stars 6 forks source link

Confusion about unlabeled data #7

Open SayBender opened 2 years ago

SayBender commented 2 years ago

Dear Authors,

Thanks for the paper. I used the scripts to split the data into label and unlabel(omni-label) but looking at unlabeled, I don't understand why bounding boxes still exist in the unlabel dataset!? What if I want to omni-label brand new data? The whole point of omni label is not to create bounding boxes, right? So why in the ...unlabel...json we still see bbox and segmentations fully populated? I know in the images side the label type is reflected (Unsup, tagsU, etc.) but still on the annotation side, it confuses me a lot seeing annotations for what is supposed to be semi-supervised tag only or None.

I have these 2 settings: ..._omni_unlabel_seed1709_10fully0Unsup90tagsU0tagsK0pointsU0pointsK0boxesEC0boxesU.json ..._omni_unlabel_seed1709_50fully50Unsup0tagsU0tagsK0pointsU0pointsK0boxesEC0boxesU.json

"annotations": [ { "area": 625848.0, "bbox": [ 684, 174, 1068, 586 ], "category_id": 1, "id": 1, "image_id": 0, "iscrowd": 0, "point": [ 1200.0, 346.0 ], "segmentation": [ [ 684, 174, 1752, 174, 1752, 760, 684, 760 ] ] }, {

SayBender commented 2 years ago

BTW, I only have 1 class. Will that cause any issues? I appreciate any suggestions.

peiwang062 commented 2 years ago

Bounding boxes still exist but we didn't use them on your two cases. Please see Line147-184 of engine.py. We route each examples according to their label types. If you only have 1 class, is it similar to bees dataset?

amirhesamyazdi commented 2 years ago

Thank you @peiwang062 ,

I have a similar question.

What I want to know is how can I annotate new Unsup data? And new tagsU data? Not from splitting already fully annotated datasets for proof of concept purposes. But actually adding brand new data (images) with no annotation, or with image-level annotations only.

Do you mean if I go to the json annotations (unlabel) and change all bbox and segmentations to [], then everything will still be exactly the same?

peiwang062 commented 2 years ago

I think a simplest way is to organize your customized data and its annotation to coco format.

For fully labeled data, we still need its bbox, so can't let annotation []. for omni-labeled data, it depends on the annotation type. If we don't use bbox, yeah, I think setting the corresponding annotation to [] won't change the results.