l5kit.geometry package¶
-
l5kit.geometry.
angle_between_vectors
(v1: numpy.ndarray, v2: numpy.ndarray) → float¶ angle_between_vectors returns the angle in radians between two vectors.
- Parameters
v1 (np.ndarray) – Vector 1 of shape (N)
v2 (np.ndarray) – Vector 2 of same shape as
v1
- Returns
angle in radians
- Return type
float
-
l5kit.geometry.
angular_distance
(angle_a: Union[float, numpy.ndarray], angle_b: Union[float, numpy.ndarray]) → Union[float, numpy.ndarray]¶ A function that takes two arrays of angles in radian and compute the angular distance, wrap the angular distance such that they are always in the [-pi, pi) range.
- Parameters
angle_a (np.ndarray, float) – first array of angles in radians
angle_b (np.ndarray, float) – second array of angles in radians
- Returns
angular distance in radians between two arrays of angles
-
l5kit.geometry.
compute_agent_pose
(agent_centroid_m: numpy.ndarray, agent_yaw_rad: float) → numpy.ndarray¶ Return the agent pose as a 3x3 matrix. This corresponds to world_from_agent matrix.
- Parameters
agent_centroid_m (np.ndarry) – 2D coordinates of the agent
agent_yaw_rad (float) – yaw of the agent
- Returns
3x3 world_from_agent matrix
- Return type
(np.ndarray)
-
l5kit.geometry.
compute_yaw_around_north_from_direction
(direction_vector: numpy.ndarray) → float¶ compute_yaw_from_direction computes the yaw as angle between a 2D input direction vector and the y-axis direction vector (0, 1).
- Args:
direction_vector (np.ndarray): Vector of shape (2,)
- Returns:
float: angle to (0,1) vector in radians
-
l5kit.geometry.
crop_rectangle_from_image
(image: numpy.ndarray, corners: numpy.ndarray) → numpy.ndarray¶ crop_rectangle_from_image
takes an image and 4 corners in pixel coordinates, it returns the sub-image inside that cropped area, rotated upright.- Parameters
image (np.ndarray) – image to crop from
corners (np.ndarray) – corners, array of shape (4,2)
- Returns
crop from input containing the corners
- Return type
np.ndarray
-
l5kit.geometry.
ecef_to_geodetic
(point: Union[numpy.ndarray, Sequence[float]]) → numpy.ndarray¶ Convert given ECEF coordinate into latitude, longitude, altitude.
- Parameters
point (Union[np.ndarray, Sequence[float]]) – ECEF coordinate vector
- Returns
latitude, altitude, longitude
- Return type
np.ndarray
-
l5kit.geometry.
geodetic_to_ecef
(lla_point: Union[numpy.ndarray, Sequence[float]]) → numpy.ndarray¶ Convert given latitude, longitude, and optionally altitude into ECEF coordinates. If no altitude is given, altitude 0 is assumed.
- Parameters
lla_point (Union[np.ndarray, Sequence[float]]) – Latitude, Longitude and optionally Altitude
- Returns
3D ECEF coordinate
- Return type
np.ndarray
-
l5kit.geometry.
normalize_intensity
(x: numpy.ndarray, max_intensity: float) → numpy.ndarray¶ Normalize (divide by max) and clip intensity values to fall between 0 and 1.
- Parameters
x (np.npdarray) – numpy array of any shape
max_intensity (float) – Maximum intensity value (anything above this will become 1)
- Returns
np.ndarray – array of same type and shape as x with values between 0 and 1 only
-
l5kit.geometry.
points_within_bounds
(coords: numpy.ndarray, shape: Union[Collection[int], numpy.ndarray]) → numpy.ndarray¶ - Parameters
coords (np.ndarray) – (N,3)-shaped array containing points.
shape (tuple of ints or np.ndarray) – shape to use as bounds, should be length 3
- Returns
Binary mask for given coords array which is True for points that fall within the bounds of shape.
-
l5kit.geometry.
rotation33_as_yaw
(rotation: numpy.ndarray) → float¶ Compute the yaw component of given 3x3 rotation matrix.
- Parameters
rotation (np.ndarray) – 3x3 rotation matrix (np.float64 dtype recommended)
- Returns
yaw rotation in radians
- Return type
float
-
l5kit.geometry.
transform_point
(point: numpy.ndarray, transf_matrix: numpy.ndarray) → numpy.ndarray¶ - Transform a single vector using transformation matrix.
This function call transform_points internally
- Parameters
point (np.ndarray) – vector of shape (N)
transf_matrix (np.ndarray) – transformation matrix of shape (N+1, N+1)
- Returns
vector of same shape as input point
- Return type
np.ndarray
-
l5kit.geometry.
transform_points
(points: numpy.ndarray, transf_matrix: numpy.ndarray) → numpy.ndarray¶ Transform a set of 2D/3D points using the given transformation matrix. Assumes row major ordering of the input points. The transform function has 3 modes: - points (N, F), transf_matrix (F+1, F+1)
all points are transformed using the matrix and the output points have shape (N, F).
- points (B, N, F), transf_matrix (F+1, F+1)
all sequences of points are transformed using the same matrix and the output points have shape (B, N, F). transf_matrix is broadcasted.
- points (B, N, F), transf_matrix (B, F+1, F+1)
each sequence of points is transformed using its own matrix and the output points have shape (B, N, F).
Note this function assumes points.shape[-1] == matrix.shape[-1] - 1, which means that last rows in the matrices do not influence the final results. For 2D points only the first 2x3 parts of the matrices will be used.
- Parameters
points (np.ndarray) – Input points of shape (N, F) or (B, N, F)
F = 2 or 3 depending on input points are 2D or 3D points. (with) –
transf_matrix (np.ndarray) – Transformation matrix of shape (F+1, F+1) or (B, F+1, F+1) with F = 2 or 3.
- Returns
Transformed points of shape (N, F) or (B, N, F) depending on the dimensions of the input points.
- Return type
np.ndarray
-
l5kit.geometry.
vertical_flip
(tm: numpy.ndarray, y_dim_size: int) → numpy.ndarray¶ Return a new matrix that also performs a flip on the y axis.
- Parameters
tm – the original 3x3 matrix
y_dim_size – this should match the resolution on y. It makes all coordinates positive
Returns: a new 3x3 matrix.
-
l5kit.geometry.
voxel_coords_to_intensity_grid
(voxel_coords: numpy.ndarray, shape: tuple, dtype: numpy.dtype = <class 'numpy.float32'>, drop_out_of_bounds: bool = True) → numpy.ndarray¶ Puts coords into a grid: for each grid cell the number of points is written there.
- Parameters
voxel_coords (np.ndarray) – input array with coords (N,3) in intensity grid
shape (tuple of ints) – intensity grid shape
- Keyword Arguments
dtype (data-type) – data type for the intensity grid (default: {np.float32})
drop_out_of_bounds (bool) – [description] (default: {True})
- Returns
np.ndarray – Array with given shape, the value of each cell is the amount of coords for that point.
-
l5kit.geometry.
yaw_as_rotation33
(yaw: float) → numpy.ndarray¶ Create a 3x3 rotation matrix from given yaw. The rotation is counter-clockwise and it is equivalent to: [cos(yaw), -sin(yaw), 0.0], [sin(yaw), cos(yaw), 0.0], [0.0, 0.0, 1.0],
- Parameters
yaw (float) – yaw rotation in radians
- Returns
3x3 rotation matrix
- Return type
np.ndarray