| import json |
| import random |
|
|
| json_path = "/work/yuqian_fu/Ego/data_segswap/egoexo_val_framelevel_newprompt_all_instruction.json" |
| save_path = "/work/yuqian_fu/Ego/data_segswap/check_text_byname_600_select_scene.json" |
| filter_byname_path = "/work/yuqian_fu/Ego/filter_takes_byname.json" |
| |
| names = ["basketball", "bike", "music", "soccer"] |
|
|
|
|
| with open(json_path, "r") as fp: |
| datas = json.load(fp) |
|
|
| with open(filter_byname_path, "r") as fp: |
| take_names = json.load(fp) |
|
|
| result = {} |
|
|
| |
| for name in names[:-2]: |
| data_save = [] |
| result[name] = {} |
| takes_ids = take_names[name] |
| takes_ids = random.sample(takes_ids, 10) |
| for take in takes_ids: |
| data_tmp = [] |
| for data in datas: |
| if data["video_name"] == take: |
| data_tmp.append(data) |
| |
| data_save += data_tmp |
| data_save = random.sample(data_save, 200) |
| result[name] = data_save |
|
|
|
|
| |
| data_soccer = [] |
| result["soccer"] = {} |
| takes_ids = take_names["soccer"] |
| for take in takes_ids: |
| data_tmp = [] |
| for data in datas: |
| if data["video_name"] == take: |
| data_tmp.append(data) |
| data_tmp = random.sample(data_tmp, 50) |
| data_soccer += data_tmp |
| result["soccer"] = data_soccer |
|
|
| data_music = [] |
| result["music"] = {} |
| takes_ids = take_names["music"] |
| takes_ids = random.sample(takes_ids, 5) |
| for take in takes_ids: |
| data_tmp = [] |
| for data in datas: |
| if data["video_name"] == take: |
| data_tmp.append(data) |
| data_music += data_tmp |
| data_music = random.sample(data_music, 100) |
| result["music"] = data_music |
|
|
| for name in names: |
| print(name, len(result[name])) |
|
|
| with open(save_path, "w") as fp: |
| json.dump(result,fp) |