Waymo-Open Dataset#
The NCore Waymo tool converts data from the Waymo-Open format (.tfrecords) into NCore V4 format.
Conventions#
Waymo-Open’s data convention consists of 6 sensors:
Camera Sensors#
Front Camera 50deg FOV (camera_front_50fov)
Front Left Camera 50deg FOV (camera_front_left_50fov)
Front Right Camera 50deg FOV (camera_front_right_50fov)
Side Left Camera 50deg FOV (camera_side_left_50fov)
Side Right Camera 50deg FOV (camera_side_right_50fov)
The camera intrinsics are compatible with the
OpenCVPinholeCameraModelParameters model.
- The Waymo camera frame convention is:
Principal axis along local camera’s +x axis
Local y-axis points left
Local z-axis points up
Note: The converter transforms this to NCore’s camera convention (principal axis +z, x-axis right, y-axis down).
Each camera provides panoptic segmentation data with 29 semantic classes.
LiDAR Sensors#
Top Lidar (lidar_top)
LiDAR data includes point clouds with multi-return support (primary and secondary returns) and 3D bounding box labels for 5 classes: unknown, vehicle, pedestrian, sign, cyclist.
For more information, see the Waymo Open Dataset paper.
Conversion#
The converter uses NCore V4’s component-based architecture. Each sequence is
parsed from .tfrecord files and written to NCore format via
SequenceComponentGroupsWriter with specialized component
writers for poses, intrinsics, lidar, cameras, masks, and 3D labels.
Usage#
Run the converter with Bazel from the repository root:
bazel run //tools/data_converter/waymo:convert -- \
--root-dir <PATH_TO_TFRECORDS> \
--output-dir <PATH_TO_OUTPUT> \
waymo-v4
Base arguments (required):
Argument |
Description |
|---|---|
|
Path to the directory containing |
|
Path where converted NCore V4 sequences will be written |
Base arguments (optional):
Argument |
Description |
|---|---|
|
Disable exporting all camera sensors |
|
Export only the specified camera (repeatable; defaults to all cameras) |
|
Disable exporting all lidar sensors |
|
Export only the specified lidar (repeatable; defaults to all lidars) |
|
Enable debug-level logging |
Subcommand arguments (waymo-v4):
Argument |
Default |
Description |
|---|---|---|
|
|
Output store format. |
|
|
Component group layout. |
|
enabled |
Whether to write a JSON metadata file alongside each converted sequence |
For the complete implementation, see
tools/data_converter/waymo/converter.py.
API Reference#
V4 Components (ncore.data.v4):
SequenceComponentGroupsWriter- Main writer for V4 sequencesPosesComponent- Static and dynamic pose storageIntrinsicsComponent- Camera and lidar intrinsicsLidarSensorComponent- Lidar frame dataCameraSensorComponent- Camera frame dataCuboidsComponent- 3D cuboid track observationsMasksComponent- Camera masks
Data Converter (ncore.data_converter):
BaseDataConverter- Abstract base class for convertersBaseDataConverterConfig- Base configuration dataclass
Sensor Models (ncore.data):
OpenCVPinholeCameraModelParameters- Camera intrinsics modelRowOffsetStructuredSpinningLidarModelParameters- Lidar intrinsics model