我如何从 MSCOCO 数据集中获取人物 class 和细分?

How can i get person class and segmentation from MSCOCO dataset?

我只想从 COCO 数据集中下载人 class 和二进制分割。我该怎么做?

使用 pycocotools .

  • 导入库
    from pycocotools.coco import COCO
    
  • 加载coco注解的json文件
    coco = COCO('/home/office/cocoDataset/annotations/instances_train2017.json')
    
  • 获取coco数据集的类别ID
    category_ids = coco.getCatIds(catNms=['person'])
    
  • 获取单张图片的标注
    annotations = coco.getAnnIds(imgIds=image_id, catIds=category_ids, iscrowd=False)
    
  • 这里每个人的标注都不一样,第i个人的标注是annotation[i]所以合并所有的标注保存
    if annotations:
      mask = coco.annToMask(annotations[0])
      for i in range(len(annotations)):
        mask |= coco.annToMask(annotations[i])
      mask = mask * 255
      im = Image.fromarray(mask)
      im.save('~/mask_name.png')