• 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’