Waymo

class tri3d.datasets.Waymo(root, split='training')

Waymo Open dataset (parquet file format).

cam_sensors: List[str] = ['CAM_FRONT', 'CAM_FRONT_LEFT', 'CAM_FRONT_RIGHT', 'CAM_SIDE_LEFT', 'CAM_SIDE_RIGHT', 'CAM_REAR_LEFT', 'CAM_REAR', 'CAM_REAR_RIGHT']

Camera names.

img_sensors: List[str] = ['IMG_FRONT', 'IMG_FRONT_LEFT', 'IMG_FRONT_RIGHT', 'IMG_SIDE_LEFT', 'IMG_SIDE_RIGHT', 'IMG_REAR_LEFT', 'IMG_REAR', 'IMG_REAR_RIGHT']

Camera names (image plane coordinate).

pcl_sensors: List[str] = ['LIDAR_TOP', 'LIDAR_FRONT', 'LIDAR_SIDE_LEFT', 'LIDAR_SIDE_RIGHT', 'LIDAR_REAR']

Point cloud sensor names.

det_labels: List[str] = ['UNKNOWN', 'VEHICLE', 'PEDESTRIAN', 'SIGN', 'CYCLIST']

Detection labels.

sem_labels: List[str] = ['UNDEFINED', 'CAR', 'TRUCK', 'BUS', 'OTHER_VEHICLE', 'MOTORCYCLIST', 'BICYCLIST', 'PEDESTRIAN', 'SIGN', 'TRAFFIC_LIGHT', 'POLE', 'CONSTRUCTION_CONE', 'BICYCLE', 'MOTORCYCLE', 'BUILDING', 'VEGETATION', 'TREE_TRUNK', 'CURB', 'ROAD', 'LANE_MARKER', 'OTHER_GROUND', 'WALKABLE', 'SIDEWALK']

Segmentation labels.

sequences()

Return the list of sequences/recordings indices (0..num_sequences).

timestamps(seq=None, sensor='LIDAR_TOP')

Return the frame timestamps for a given sensor .

Parameters:
  • seq (int | None) – Sequence index.

  • sensor – Sensor name.

Returns:

An array of timestamps.

Note

frames are guarenteed to be sorted.

image(seq, frame, sensor='CAM_FRONT')

Return image from given camera at given frame.

A default sensor (for instance a front facing camera) should be provided for convenience.

semantic(seq, frame, sensor='LIDAR_TOP')

Return pointwise class annotations.

Parameters:
  • seq (int) – sequence

  • frame (int) – frame

Returns:

array of pointwise class label

instances(seq, frame, sensor='LIDAR_TOP')

Return pointwise instance annotations.

Parameters:
  • seq (int) – sequence

  • frame (int) – frame

Returns:

array of pointwise instance label

frames(seq=None, sensor=None)

Return the frames in the dataset or a particular sequence.

Parameters:
  • seq – Sequence index.

  • seq – Sequence index.

Returns:

A list of (sequence, frame) index tuples sorted by sequence and frame.

alignment(seq, frame, coords)

Return the transformation from one coordinate system and timestamp to another.

Parameters:
  • seq (int) – The sequence index

  • frame (int | tuple[int, int]) – Either a single frame or a (src, dst) tuple. The frame is respective to the sensor timeline as specified by coords.

  • coords (str | tuple[str, str]) – Either a single sensor/coordinate system or a (src, dst) tuple. The transformation also accounts for mismatches in sensor timelines and movement of the ego-car.

Returns:

A transformation that projects points from one coordinate system at one frame to another.

boxes(seq, frame, coords=None)

Return the 3D box annotations.

This function will interpolate and transform annotations if necessary in order to match the requested coordinate system and timeline.

Parameters:
  • seq (int) – Sequence index.

  • frame (int) – Frame index.

  • coords (str | None) – The coordinate system and timeline to use.

Returns:

A list of box annotations.

points(seq, frame, sensor=None, coords=None)

Return an array of 3D point coordinates from lidars.

The first three columns contains xyz coordinates, additional columns are dataset-specific.

Parameters:
  • seq (int)

  • frame (int)

  • sensor (str | None)

  • coords (str | None)

poses(seq, sensor, timeline=None)

Return all sensor to world transforms for a sensor.

World references an arbitrary coordinate system for a sequence, not all datasets provide an actual global coordinate system.

Parameters:
  • seq (int) – sequence

  • sensor (str) – sensor name

  • timeline (str | None) – When specified, the sensor poses will be interpolated to the timestamps of that timeline if necessary.

Returns:

Sensor poses as a batched transform.

rectangles(seq, frame)

Return a list of 2D rectangle annotations.

Note

The default coordinate system should be documented.

Parameters:
  • seq (int) – sequence

  • frame (int) – frame or None to request annotations for the whole sequence

Returns:

A list of 2D annotations.