NuScenes

class tri3d.datasets.NuScenes(root, subset='v1.0-mini', det_label_map=None, sem_label_map=None)

NuScene dataset

Note

Notable differences with original NuScenes data:

  • Size encoded as length, width, height instead of width, length, height.

  • Lidar pcl is rotated by 90° so x axis points forward.

NuScenes website

cam_sensors: List[str]

Camera names.

img_sensors: List[str]

Camera names (image plane coordinate).

pcl_sensors: List[str]

Point cloud sensor names.

det_labels: List[str]

Detection labels.

sequences()

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

timestamps(seq, sensor)

Return the frame timestamps for a given sensor .

Parameters:
  • seq – Sequence index.

  • sensor – Sensor name.

Returns:

An array of timestamps.

Note

frames are guarenteed to be sorted.

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

Return image from given camera at given frame.

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

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.

semantic(seq, frame, keyframe=True)

Return pointwise class annotations.

Parameters:
  • seq – sequence

  • frame – frame

Returns:

array of pointwise class label

instances(seq, frame, keyframe=True)

Return pointwise instance annotations.

Parameters:
  • seq – sequence

  • frame – frame

Returns:

array of pointwise instance label

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.

frames(seq=None, sensor=None)

Return the frames in the dataset or a particular sequence.

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

  • seq – Sequence index.

  • sensor (str | None)

Returns:

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

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.

sem_labels: List[str]

Segmentation labels.