| import mmcv |
| from typing import Dict, List |
| import pickle |
| import random |
| import os |
| import copy |
|
|
|
|
| datatomove = [ |
| "scene-0980", |
| "scene-0001", |
| "scene-0011", |
| "scene-0023", |
| "scene-0034", |
| "scene-0052", |
| "scene-0318", |
| "scene-0200", |
| "scene-0028", |
| "scene-0297", |
| "scene-0067", |
| "scene-0159", |
| "scene-0185", |
| "scene-0021", |
| "scene-0025", |
| "scene-0072", |
| "scene-0157", |
| "scene-0208", |
| "scene-0366", |
| "scene-0400", |
| ] |
|
|
|
|
| def remove_indices(original_list, indices_to_remove): |
| indices_to_remove_set = set(indices_to_remove) |
| return [ |
| item |
| for idx, item in enumerate(original_list) |
| if idx not in indices_to_remove_set |
| ] |
|
|
|
|
| def sort_data(data_dict: Dict): |
| return data_dict["token"] |
|
|
|
|
| predroot = "/mnt/hdd2/datasets/nuScenes/infos/e2e_av" |
| train_file = os.path.join(predroot, "nuscenes_infos_temporal_train.pkl") |
| val_file = os.path.join(predroot, "nuscenes_infos_temporal_val.pkl") |
| nuscenes_metadata = os.path.join(predroot, "../../v1.0-trainval/scene.json") |
| |
| |
|
|
| outputs_train_ori: Dict = mmcv.load(train_file) |
| outputs_train: List[Dict] = outputs_train_ori["infos"] |
| print(f"len of train is {len(outputs_train)}") |
|
|
| outputs_val_ori: Dict = mmcv.load(val_file) |
| outputs_val: List[Dict] = outputs_val_ori["infos"] |
| print(f"len of val is {len(outputs_val)}") |
|
|
| |
| |
|
|
| print(outputs_train_ori.keys()) |
|
|
|
|
| nuscenes_metadata = mmcv.load(nuscenes_metadata) |
| scene_token2name = dict() |
| for metadata_seq in nuscenes_metadata: |
| |
| |
|
|
| scene_token2name[metadata_seq["token"]] = metadata_seq["name"] |
|
|
|
|
| data_move_list = [] |
| data_add_list = [] |
| for index in range(len(outputs_train)): |
| data = outputs_train[index] |
| scene_token = data["scene_token"] |
| scene_name = scene_token2name[scene_token] |
| if scene_name in datatomove: |
| data_move_list.append(index) |
| data_add_list.append(copy.deepcopy(data)) |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| outputs_train_new = remove_indices(outputs_train, data_move_list) |
| outputs_val.extend(data_add_list) |
|
|
| print(f"len of new train is {len(outputs_train_new)}") |
| print(f"len of new val is {len(outputs_val)}") |
| |
| |
|
|
| output_path_train = os.path.join(predroot, "nuscenes_infos_temporal_train_new.pkl") |
| outputs_train_new = { |
| 'infos': outputs_train_new, |
| "metadata": outputs_train_ori['metadata'], |
| } |
| mmcv.dump(outputs_train_new, output_path_train) |
| |
| |
|
|
| output_path_val = os.path.join(predroot, "nuscenes_infos_temporal_val_new.pkl") |
| outputs_val_new = { |
| 'infos': outputs_val, |
| "metadata": outputs_val_ori['metadata'], |
| } |
| mmcv.dump(outputs_val_new, output_path_val) |
| |
| |