MCPcopy Create free account
hub / github.com/InternRobotics/G2VLM / main

Function main

eval_code/recons/videodepth/eval.py:19–153  ·  view source on GitHub ↗
(hydra_cfg: DictConfig)

Source from the content-addressed store, hash-verified

17
18@hydra.main(version_base="1.2", config_path="../configs", config_name="eval")
19def main(hydra_cfg: DictConfig):
20 # setup_debug(hydra_cfg.debug)
21 logger = logging.getLogger("videodepth-eval")
22
23 all_eval_models: ListConfig = hydra_cfg.eval_models # see configs/evaluation/videodepth.yaml
24 all_eval_datasets: ListConfig = hydra_cfg.eval_datasets # see configs/evaluation/videodepth.yaml
25 all_data_info: DictConfig = hydra_cfg.data # see configs/data
26
27 for idx_model, model_keyname in enumerate(all_eval_models, start=1):
28 # 0. decide the model name (to save)
29 model_logger = logging.getLogger(f"monodepth-eval-{model_keyname}")
30 model_logger.info(f"[{idx_model}/{len(all_eval_models)}] Start evaluating {model_keyname} on {len(all_eval_datasets)} datasets...")
31
32 for idx_dataset, dataset_name in enumerate(all_eval_datasets, start=1):
33 # 1. look up dataset config from configs/data, decide the dataset name
34 if dataset_name not in all_data_info:
35 raise ValueError(f"Unknown dataset in global data information: {dataset_name}")
36 dataset_info = all_data_info[dataset_name]
37
38 # 2. get gt and pred depth pathes
39 output_root = osp.join(hydra_cfg.output_dir, model_keyname, dataset_name)
40 if dataset_info.type == "video":
41 # most of the datasets have many sequences of video
42 seq_list = get_all_sequences(dataset_info)
43 gt_paths = {
44 seq: list_depths_a_sequence(dataset_info, seq)
45 for seq in seq_list
46 }
47 pred_paths = {
48 seq: sorted(glob.glob(f"{output_root}/{seq}/*.npy"))
49 for seq in seq_list
50 }
51 for seq in seq_list:
52 if len(pred_paths[seq]) != len(gt_paths[seq]):
53 raise ValueError(f"Number of prediction and ground truth depth maps are not equal: {len(pred_paths[seq])} vs {len(gt_paths[seq])}")
54 else:
55 raise ValueError(f"Unknown dataset type: {dataset_info.type}")
56
57 # 3. get depth read function and evaluation kwargs
58 videodepth_metadata = EVAL_DEPTH_METADATA.get(dataset_name, None)
59 if videodepth_metadata is None:
60 raise ValueError(f"Dataset {dataset_name} doesn't have video depth metadata")
61 depth_read_func = videodepth_metadata["depth_read_func"]
62 depth_evaluation_kwargs = videodepth_metadata["depth_evaluation_kwargs"]
63 if hydra_cfg.align == "scale&shift":
64 depth_evaluation_kwargs["align_with_lad2"] = True
65 elif hydra_cfg.align == "scale":
66 depth_evaluation_kwargs["align_with_scale"] = True
67 elif hydra_cfg.align == "metric":
68 depth_evaluation_kwargs["metric_scale"] = True
69 else:
70 raise ValueError(f"Unknown alignment method: {hydra_cfg.align}")
71
72 gathered_depth_metrics = []
73 all_fps = []
74 total_time_per_seq = []
75 infer_time_per_seq = []
76

Callers 1

eval.pyFile · 0.70

Calls 7

get_all_sequencesFunction · 0.90
list_depths_a_sequenceFunction · 0.90
depth_evaluationFunction · 0.90
write_csvFunction · 0.90
getMethod · 0.80
resizeMethod · 0.80
joinMethod · 0.45

Tested by

no test coverage detected