def test_get_frame_indices_agent(frame_idx: int, zarr_dataset: ChunkedDataset, dmg: LocalDataManager, cfg: dict) -> None: cfg["raster_params"]["map_type"] = "box_debug" rasterizer = build_rasterizer(cfg, dmg) dataset = AgentDataset(cfg, zarr_dataset, rasterizer) frame_indices = dataset.get_frame_indices(frame_idx) # get valid agents from that frame only agent_slice = get_agents_slice_from_frames( dataset.dataset.frames[frame_idx]) agents = dataset.dataset.agents[agent_slice] agents = agents[dataset.agents_mask[agent_slice]] for agent, idx in zip(agents, frame_indices): id_agent = dataset[idx]["track_id"] assert id_agent == agent["track_id"]
confs=np.concatenate(confidences_list)) metrics = compute_metrics_csv( eval_gt_path, pred_path, [neg_multi_log_likelihood, time_displace]) for metric_name, metric_mean in metrics.items(): print(metric_name, metric_mean) gt_rows = {} for row in read_gt_csv(eval_gt_path): gt_rows[row["track_id"] + row["timestamp"]] = row["coord"] eval_ego_dataset = EgoDataset(cfg, eval_dataset.dataset, rasterizer) for frame_number in range( 99, len(eval_zarr.frames), 100): # start from last frame of scene_0 and increase by 100 agent_indices = eval_dataset.get_frame_indices(frame_number) if not len(agent_indices): continue # get AV point-of-view frame data_ego = eval_ego_dataset[frame_number] im_ego = rasterizer.to_rgb(data_ego["image"].transpose(1, 2, 0)) center = np.asarray(cfg["raster_params"]["ego_center"] ) * cfg["raster_params"]["raster_size"] predicted_positions = [] target_positions = [] for v_index in agent_indices: data_agent = eval_dataset[v_index]
model.eval() torch.set_grad_enabled(False) # Uncomment to choose satelliter or semantic rasterizer # validate_cfg["raster_params"]["map_type"] = "py_satellite" validate_cfg["raster_params"]["map_type"] = "py_semantic" rast = build_rasterizer(validate_cfg, dm) eval_ego_dataset = EgoDataset(validate_cfg, valid_dataset.dataset, rast) num_frames = 2 # randomly pick _ frames random_frames = np.random.randint(0, len(eval_ego_dataset) - 1, (num_frames, )) for frame_number in random_frames: agent_indices = valid_dataset.get_frame_indices(frame_number) if not len(agent_indices): continue # get AV point-of-view frame data_ego = eval_ego_dataset[frame_number] im_ego = rasterizer.to_rgb(data_ego["image"].transpose(1, 2, 0)) center = np.asarray(validate_cfg["raster_params"]["ego_center"] ) * validate_cfg["raster_params"]["raster_size"] predicted_positions = [] target_positions = [] for v_index in agent_indices: data_agent = valid_dataset[v_index]