lightningdot
copied
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Readme
Files and versions
45 lines
1.5 KiB
45 lines
1.5 KiB
"""
|
|
This code converts all RefCOCO(+/g) detections from Mask R-CNN
|
|
(https://github.com/lichengunc/MAttNet)
|
|
to image_id -> [box], where each box is {box, category_id, category_name, score}
|
|
"""
|
|
import json
|
|
import os
|
|
import os.path as osp
|
|
|
|
dets_dir = 'datasets/refer/detections'
|
|
image_set = set()
|
|
dataset_names = ['refcoco_unc', 'refcoco+_unc', 'refcocog_umd']
|
|
Detections = {}
|
|
for dataset_name in dataset_names:
|
|
dets_file = osp.join(dets_dir, dataset_name,
|
|
'res101_coco_minus_refer_notime_dets.json')
|
|
detections = json.load(open(dets_file, 'r'))
|
|
for det in detections:
|
|
image_set.add(det['image_id'])
|
|
Detections[dataset_name] = detections
|
|
num_images = len(image_set)
|
|
|
|
iid_to_dets = {}
|
|
for dataset_name in dataset_names:
|
|
detections = Detections[dataset_name]
|
|
for det in detections:
|
|
image_id = det['image_id']
|
|
if image_id in image_set:
|
|
box = {'box': det['box'],
|
|
'category_id': det['category_id'],
|
|
'category_name': det['category_name'],
|
|
'score': det['score']}
|
|
iid_to_dets[image_id] = iid_to_dets.get(image_id, []) + [box]
|
|
for det in detections:
|
|
image_id = det['image_id']
|
|
if image_id in image_set:
|
|
image_set.remove(image_id)
|
|
|
|
num_dets = sum([len(dets) for dets in iid_to_dets.values()])
|
|
print(f'{num_dets} detections in {num_images} images for {dataset_names}.')
|
|
|
|
# save
|
|
with open('index/iid_to_dets.json', 'w') as f:
|
|
json.dump(iid_to_dets, f)
|
|
|