Introduction and scripts for the paper "PartImageNet: A Large, High-Quality Dataset of Parts" (Ju He, Shuo Yang, Shaokang Yang, Adam Kortylewski, Xiaoding Yuan, Jie-Neng Chen, Shuai Liu, Cheng Yang, Alan Yuille).
This is an excellent work! Using cocoapi (https://github.com/cocodataset/cocoapi), I can have this segmentation but not sure how to get the head of the ibex only.
Thanks for your excellent work! However, Is there something wrong in Line 18403 - Line 18422 of val.json? When I used coco.annToMask(ann) to visualize its mask, an error was reported.
What is the meaning of each pixel label in the segmentation labels? They do not appear to match up with the 39 part labels and 10 whole labels. The json files also only contain the height and width of the image.
classes=[]
foriintqdm(range(len(dataset_train))):
image, whole_mask, part_mask=dataset_train[i]
classes+=np.unique(whole_mask).tolist()
c=Counter(classes)
print(c) # has counts for labels from 0 to 158
How is the area being calculated in the annotations? Straightforward method is pixel counting but the area has 2 decimal places. Also pixel counting and the area in annotations are not matching.
Do you describe what object categories you chose? For example, looking through the object annotations, it appears that dog gets mapped to multiple class values (e.g., 20, 48, 144). Does this refer to different breeds of dogs?
When I convert an object segment into a semantic mask using coco API, I find some intersection areas between the different objects.
How should I solve the overleaping area when generating semantic mask labels?
Thanks for your reply.
I notice that each annotation has a field named 'category_id', the total number of all unique 'category_id' is 40, consistently in 'train.json' and 'test.json'. I wonder whether 'category_id' is the id of the object part, but it seems that the original paper does not mention it.