l5kit.sampling.agent_sampling module¶
- l5kit.sampling.agent_sampling.compute_agent_velocity(history_positions_m: numpy.ndarray, future_positions_m: numpy.ndarray, step_time: float) Tuple[numpy.ndarray, numpy.ndarray] ¶
Compute estimated velocities by finite differentiation on future positions as(pos(T+t) - pos(T))/t. This simple approach gives less than 0.5% velocity difference compared to (pos(T+t) - pos(T-t))/2t on v1.1/sample.zarr.tar.
- Parameters
history_positions_m (np.ndarray) – history XY positions in meters
future_positions_m (np.ndarray) – future XY positions in meters
step_time (np.ndarray) – length of a step in second
- Returns
history and future XY speeds
- Return type
Tuple[np.ndarray, np.ndarray]
- l5kit.sampling.agent_sampling.generate_agent_sample(state_index: int, frames: numpy.ndarray, agents: numpy.ndarray, tl_faces: numpy.ndarray, selected_track_id: Optional[int], render_context: l5kit.rasterization.render_context.RenderContext, history_num_frames: int, future_num_frames: int, step_time: float, filter_agents_threshold: float, rasterizer: l5kit.rasterization.rasterizer.Rasterizer, perturbation: Optional[l5kit.kinematic.perturbation.Perturbation] = None) dict ¶
Generates the inputs and targets to train a deep prediction model. A deep prediction model takes as input the state of the world (here: an image we will call the “raster”), and outputs where that agent will be some seconds into the future.
This function has a lot of arguments and is intended for internal use, you should try to use higher level classes and partials that use this function.
- Parameters
state_index (int) – The anchor frame index, i.e. the “current” timestep in the scene
frames (np.ndarray) – The scene frames array, can be numpy array or a zarr array
agents (np.ndarray) – The full agents array, can be numpy array or a zarr array
tl_faces (np.ndarray) – The full traffic light faces array, can be numpy array or a zarr array
selected_track_id (Optional[int]) – Either None for AV, or the ID of an agent that you want to
from (predict the future of. This agent is centered in the raster and the returned targets are derived) –
states. (their future) –
render_context (RenderContext) – The context for rasterisation
history_num_frames (int) – Amount of history frames to draw into the rasters
future_num_frames (int) – Amount of history frames to draw into the rasters
step_time (float) – seconds between consecutive steps
filter_agents_threshold (float) – Value between 0 and 1 to use as cutoff value for agent filtering
agent (based on their probability of being a relevant) –
Rasterizer (rasterizer) – Rasterizer of some sort that draws a map image
perturbation (Optional[Perturbation]) – Object that perturbs the input and targets, used
data (to train models that can recover from slight divergence from training set) –
- Raises
IndexError – An IndexError is returned if the specified
selected_track_id
is not present in the sceneor was filtered by applying the filter_agent_threshold probability filtering. –
- Returns
a dict object with the raster array, the future offset coordinates (meters), the future yaw angular offset, the future_availability as a binary mask
- Return type
dict
- l5kit.sampling.agent_sampling.get_agent_context(state_index: int, frames: numpy.ndarray, agents: numpy.ndarray, tl_faces: numpy.ndarray, history_num_frames: int, future_num_frames: int) Tuple[numpy.ndarray, numpy.ndarray, List[numpy.ndarray], List[numpy.ndarray], List[numpy.ndarray], List[numpy.ndarray]] ¶
Slice zarr or numpy arrays to get the context around the agent onf interest (both in space and time)
- Parameters
state_index (int) – frame index inside the scene
frames (np.ndarray) – frames from the scene
agents (np.ndarray) – agents from the scene
tl_faces (np.ndarray) – tl_faces from the scene
history_num_frames (int) – how many frames in the past to slice
future_num_frames (int) – how many frames in the future to slice
- Returns
Tuple[np.ndarray, np.ndarray, List[np.ndarray], List[np.ndarray], List[np.ndarray], List[np.ndarray]]
- l5kit.sampling.agent_sampling.get_relative_poses(num_frames: int, frames: numpy.ndarray, selected_track_id: Optional[int], agents: List[numpy.ndarray], agent_from_world: numpy.ndarray, current_agent_yaw: float) Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray] ¶
Internal function that creates the targets and availability masks for deep prediction-type models. The futures/history offset (in meters) are computed. When no info is available (e.g. agent not in frame) a 0 is set in the availability array (1 otherwise).
Note: return dtype is float32, even if the provided args are float64. Still, the transformation between space is performed in float64 to ensure precision
- Parameters
num_frames (int) – number of offset we want in the future/history
frames (np.ndarray) – available frames. This may be less than num_frames
selected_track_id (Optional[int]) – agent track_id or AV (None)
agents (List[np.ndarray]) – list of agents arrays (same len of frames)
agent_from_world (np.ndarray) – local from world matrix
current_agent_yaw (float) – angle of the agent at timestep 0
- Returns
position offsets, angle offsets, extent, availabilities
- Return type
Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]