2022-01-04 13:17:03 +08:00
|
|
|
from pycocotools.coco import COCO
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
T2_CLASS_NAMES = [
|
|
|
|
"truck", "traffic light", "fire hydrant", "stop sign", "parking meter",
|
|
|
|
"bench", "elephant", "bear", "zebra", "giraffe",
|
|
|
|
"backpack", "umbrella", "handbag", "tie", "suitcase",
|
|
|
|
"microwave", "oven", "toaster", "sink", "refrigerator"
|
|
|
|
]
|
|
|
|
|
|
|
|
# Train
|
2022-01-06 11:18:38 +08:00
|
|
|
coco_annotation_file = '/home/datasets/mscoco/annotations/instances_train2017.json'
|
|
|
|
dest_file = '/home/OWOD/datasets/coco17_voc_style/ImageSets/t2_train_sel.txt'
|
2022-01-04 13:17:03 +08:00
|
|
|
|
|
|
|
coco_instance = COCO(coco_annotation_file)
|
|
|
|
|
|
|
|
image_ids = []
|
|
|
|
cls = []
|
|
|
|
for index, image_id in enumerate(coco_instance.imgToAnns):
|
|
|
|
image_details = coco_instance.imgs[image_id]
|
|
|
|
classes = [coco_instance.cats[annotation['category_id']]['name'] for annotation in coco_instance.imgToAnns[image_id]]
|
|
|
|
if not set(classes).isdisjoint(T2_CLASS_NAMES):
|
|
|
|
image_ids.append(image_details['file_name'].split('.')[0])
|
|
|
|
cls.extend(classes)
|
|
|
|
|
|
|
|
(unique, counts) = np.unique(cls, return_counts=True)
|
|
|
|
print({x:y for x,y in zip(unique, counts)})
|
|
|
|
|
|
|
|
with open(dest_file, 'w') as file:
|
|
|
|
for image_id in image_ids:
|
|
|
|
file.write(str(image_id)+'\n')
|
|
|
|
|
|
|
|
print('Created train file')
|
|
|
|
|
|
|
|
# Test
|
2022-01-06 11:18:38 +08:00
|
|
|
coco_annotation_file = '/home/datasets/mscoco/annotations/instances_val2017.json'
|
|
|
|
dest_file = '/home/OWOD/datasets/coco17_voc_style/ImageSets/t2_test.txt'
|
2022-01-04 13:17:03 +08:00
|
|
|
|
|
|
|
coco_instance = COCO(coco_annotation_file)
|
|
|
|
|
|
|
|
image_ids = []
|
|
|
|
cls = []
|
|
|
|
for index, image_id in enumerate(coco_instance.imgToAnns):
|
|
|
|
image_details = coco_instance.imgs[image_id]
|
|
|
|
classes = [coco_instance.cats[annotation['category_id']]['name'] for annotation in coco_instance.imgToAnns[image_id]]
|
|
|
|
if not set(classes).isdisjoint(T2_CLASS_NAMES):
|
|
|
|
image_ids.append(image_details['file_name'].split('.')[0])
|
|
|
|
cls.extend(classes)
|
|
|
|
|
|
|
|
(unique, counts) = np.unique(cls, return_counts=True)
|
|
|
|
print({x:y for x,y in zip(unique, counts)})
|
|
|
|
|
|
|
|
with open(dest_file, 'w') as file:
|
|
|
|
for image_id in image_ids:
|
|
|
|
file.write(str(image_id)+'\n')
|
|
|
|
print('Created test file')
|
|
|
|
|
2022-01-06 11:18:38 +08:00
|
|
|
dest_file = '/home/OWOD/datasets/coco17_voc_style/ImageSets/t2_test_unk.txt'
|
2022-01-04 13:17:03 +08:00
|
|
|
with open(dest_file, 'w') as file:
|
|
|
|
for image_id in image_ids:
|
|
|
|
file.write(str(image_id)+'\n')
|
|
|
|
|
|
|
|
print('Created test_unk file')
|