unknownuser6666's picture
Upload folder using huggingface_hub
663494c verified
import numpy as np
from nuscenes.utils.data_classes import LidarPointCloud, Box
from pyquaternion import Quaternion
color_mapping = np.asarray([
[0, 0, 0],
[255, 179, 0],
[128, 62, 117],
[255, 104, 0],
[166, 189, 215],
[193, 0, 32],
[206, 162, 98],
[129, 112, 102],
[0, 125, 52],
[246, 118, 142],
[0, 83, 138],
[255, 122, 92],
[83, 55, 122],
[255, 142, 0],
[179, 40, 81],
[244, 200, 0],
[127, 24, 13],
[147, 170, 0],
[89, 51, 21],
[241, 58, 19],
[35, 44, 22],
[112, 224, 255],
[70, 184, 160],
[153, 0, 255],
[71, 255, 0],
[255, 0, 163],
[255, 204, 0],
[0, 255, 235],
[255, 0, 235],
[255, 0, 122],
[255, 245, 0],
[10, 190, 212],
[214, 255, 0],
[0, 204, 255],
[20, 0, 255],
[255, 255, 0],
[0, 153, 255],
[0, 255, 204],
[41, 255, 0],
[173, 0, 255],
[0, 245, 255],
[71, 0, 255],
[0, 255, 184],
[0, 92, 255],
[184, 255, 0],
[255, 214, 0],
[25, 194, 194],
[92, 0, 255],
[220, 220, 220],
[255, 9, 92],
[112, 9, 255],
[8, 255, 214],
[255, 184, 6],
[10, 255, 71],
[255, 41, 10],
[7, 255, 255],
[224, 255, 8],
[102, 8, 255],
[255, 61, 6],
[255, 194, 7],
[0, 255, 20],
[255, 8, 41],
[255, 5, 153],
[6, 51, 255],
[235, 12, 255],
[160, 150, 20],
[0, 163, 255],
[140, 140, 140],
[250, 10, 15],
[20, 255, 0],
])/255
class AgentPredictionData:
"""
Agent data class, includes bbox, traj, and occflow
"""
def __init__(self,
pred_score,
pred_label,
pred_center,
pred_dim,
pred_yaw,
pred_vel,
pred_traj,
pred_traj_score,
pred_track_id=None,
pred_occ_map=None,
is_sdc=False,
past_pred_traj=None,
command=None,
attn_mask=None,
traj_gt=None,
):
self.pred_score = pred_score
self.pred_label = pred_label
self.pred_center = pred_center
self.pred_dim = pred_dim
self.pred_vel = pred_vel
self.pred_traj = pred_traj
self.pred_traj_score = pred_traj_score
self.pred_track_id = pred_track_id
self.pred_occ_map = pred_occ_map
if self.pred_traj is not None:
if isinstance(self.pred_traj_score, int):
self.pred_traj_max = self.pred_traj
else:
self.pred_traj_max = self.pred_traj[self.pred_traj_score.argmax(
)]
else:
self.pred_traj_max = None
if pred_yaw is not None:
self.pred_yaw = -pred_yaw-np.pi/2
self.nusc_box = Box(
center=pred_center,
size=pred_dim,
orientation=Quaternion(axis=[0, 0, 1], radians=self.pred_yaw),
label=pred_label,
score=pred_score
)
else:
self.pred_yaw = None
if is_sdc:
self.pred_center = [0, 0, -1.2+1.56/2]
self.is_sdc = is_sdc
self.past_pred_traj = past_pred_traj
self.command = command
self.attn_mask = attn_mask
self.traj_gt = traj_gt # 6 x 2