File size: 1,555 Bytes
032e687
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import os
import json

if __name__ == "__main__":
    for dataset in ["refcoco-unc", "refcocog-umd", "refcocoplus-unc", "refcocog-google"]:
        in_json_path = "datasets/SeqTR/%s/instances.json" % dataset
        out_json_path = "datasets/SeqTR/%s/instances_cocofied.json" % dataset
        os.system("python3.9 datasets/tools/seqtr2coco/convert_ref2coco.py --src_json %s --des_json %s" %(in_json_path, out_json_path))

    # merge train split
    merged_dir = "datasets/SeqTR/refcoco-mixed"
    if not os.path.exists(merged_dir):
        os.makedirs(merged_dir)

    merged_json = "datasets/SeqTR/refcoco-mixed/instances_cocofied_train.json"
    inst_idx = 0 # index of the instance
    new_data = {"images": [], "annotations": [], "categories": [{"supercategory": "object","id": 1,"name": "object"}]}
    for dataset in ["refcoco-unc", "refcocog-umd", "refcocoplus-unc"]:
        json_path = "datasets/SeqTR/%s/instances_cocofied_train.json" % dataset
        data = json.load(open(json_path, 'r'))
        # for split in data.keys():
        for (img, anno) in zip(data["images"], data["annotations"]):
            inst_idx += 1
            img["id"] = inst_idx
            anno["image_id"] = inst_idx
            anno["id"] = inst_idx
            new_data["images"].append(img)
            new_data["annotations"].append(anno)
    print({k: len(v) for k, v in new_data.items()})
    assert len(new_data["images"]) == 126908
    assert len(new_data["annotations"]) == 126908
    json.dump(new_data, open(merged_json, 'w')) # 126908 referred objects