Как отфильтровать классы и аннотации набора данных COCO для настраиваемого набора данных? - PullRequest
0 голосов
/ 14 февраля 2020

Мне удалось отфильтровать изображения с помощью приведенного ниже кода с помощью COCO API, я выполнил этот код несколько раз для всех нужных мне классов, это пример для категории person, я сделал это для car и et c.

Теперь я хочу отфильтровать аннотации набора данных (instances_train2017.json) и сохранить его в json instances_train2017.json.

# Load categories with the specified ids, in this case all
cats = coco.loadCats(coco.getCatIds())
nms = [cat['name'] for cat in cats]
print('COCO categories: \n{}\n'.format(' '.join(nms)))

# Get all images containing given categories
catIds = coco.getCatIds(catNms=['person'])
imgIds = coco.getImgIds(catIds=catIds)
images = coco.loadImgs(imgIds)
print("imgIds: ", len(imgIds))
#print("images: ", images)

# download images for specific category
for im in images:
    print("im: ", im)
    img_data = requests.get(im['coco_url']).content
    with open('customCoco/images/train2017/' + im['file_name'], 'wb') as handler:
        handler.write(img_data)

I пытался использовать COCO API, но я, который не дает мне формат COCO, я хочу, как intances_train2017. json)

# download annotation for specific category
for im in images:
    annIds = coco.getAnnIds(imgIds=im['id'], catIds=catIds, iscrowd=None)
    anns = coco.loadAnns(annIds)
    print("anns: ", anns)

Я нашел этот пост: https://github.com/cocodataset/cocoapi/issues/271 но он был сохранен в формате CSV, который я не хочу, я хочу тот же файл, но только что отфильтрованный.

...