- V2X-Seq-TFD preprocess for V2X-Traj
- v2x_df: [ego_df, road_df]
- left actor,, which appears at least first 50 time steps → check vehicle-side ids, infra-side ids have different agent id space
- av_index, agent_index → search “AV, TARGET_AGENT” tags index in v2x_dif
- translate + rotation with t=49 AV (align in AV local coordinate)
- num_nodes = actor number
- x: [N, 100, 2], padding_mask: [N, 100], bos_mask: [N, 50], edge_index: [2, N(N-1)]
- padding mask for True=padding, False=valid, bos_mask for identify first appear checker in history timeline
- ego_mask, road_mask for identify vehicle-side, infra-side actor
- v2x_df.groupby(’id) for group by actor id
- node_steps for the index actor_id appears, padding_mask[node_index, node_steps]=False, x[node_idx, node_steps] for save aligned av coordinate.
- bos(t) = ~valid(t01) & valid(t)
- position: absolute coordinate before translation + rotation
- x[:, t] ← x[:, t] - x[:, t-1], t=1..39, x[:, 0]=0, x[:,50:100]←x[:,50:100]-x[:,49] ← this is displacement with last observation
- get_lane_features(): find r=50 radius, clip lane centerline to shorter lane vectors, then attach some metadat (is transaction, turn direction, traffic control,…) and make lane_actor_index for closest lane segment with actor
- get_traj_match_labels(asso_path, actor_ids): v2x_edge_index ← in V2X-Graph label is generated from psuedo-GT algorithm (hungarian)
- not only GT edges, save type mask, AA box overlap, rotated box intersection for various experimental settings
- with saving, edge_ego, edge_road, cross-view(v2x) gt,.. so we can what edges to utilize for training the V2X-Graph
- save as ‘pt’