File size: 2,335 Bytes
625a17f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import json
from natsort import natsorted
import os 

json_path = "/work/yuqian_fu/Ego/data_segswap/egoexo_val_framelevel_newprompt_all_instruction.json"
data_path = "/work/yuqian_fu/Ego/data_segswap"
split_path = "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/split.json"
with open(json_path, "r") as fp:
    datas = json.load(fp)
with open(split_path, "r") as fp:
    split = json.load(fp)
takes = split["val"]

datas_final_save = []
for take in takes:
    datas_tmp = []
    gt_path = f"{data_path}/{take}/annotation.json"
    with open(gt_path, 'r') as fp:
        gt = json.load(fp)
    # 创建逆字典
    objs = natsorted(list(gt["masks"].keys()))
    coco_id_to_cont_id = {cont_id + 1: coco_id for cont_id, coco_id in enumerate(objs)}
  

    for data in datas:
        if data["video_name"] == take:
            datas_tmp.append(data)
    
    if len(datas_tmp) == 0:
        print("No data found for take:", take)
        continue
    
    for data in datas_tmp:
        annos = data["first_frame_anns"]
        annos_new = []
        for anno in annos:
            category_id = anno["category_id"]
            obj_name = coco_id_to_cont_id[category_id]
            anno["text"] = obj_name
            annos_new.append(anno)
        data["first_frame_anns"] = annos_new
        del data["instruction"]
        datas_final_save.append(data)





print("datas_final_save:", len(datas_final_save))
save_path = "/work/yuqian_fu/Ego/data_segswap/egoexo_val_framelevel_newprompt_all_objname.json"
with open(save_path, "w") as fp:
    json.dump(datas_final_save, fp)




            





        
# path = "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/split.json"
# with open(path, "r") as fp:
#     data = json.load(fp)
# takes = data["test"]
# print("takes:", len(takes))


# takes_new = os.listdir("/work/yuqian_fu/Ego/data_segswap_test_20250508_new888_v2")
# print("takes_new:", len(takes_new))

# # 找出 takes 中有但 takes_new 中没有的元素
# diff_in_takes = set(takes) - set(takes_new)

# # 找出 takes_new 中有但 takes 中没有的元素
# diff_in_takes_new = set(takes_new) - set(takes)

# # 打印结果
# print("takes 中有但 takes_new 中没有的元素:", diff_in_takes)
# print("takes_new 中有但 takes 中没有的元素:", diff_in_takes_new)