This is compatible with the labels generated by Scalabel. A label json file is a list of frame objects with the fields below. Please note that this format is a superset of the data fields. For example, box3d
may be absent if the label is a 2d bounding box, and intrinsics
may not appear if the exact camera calibration is unknown.
- name: string
- url: string
- videoName: string (optional)
- attributes:
- weather: "rainy|snowy|clear|overcast|undefined|partly cloudy|foggy"
- scene: "tunnel|residential|parking lot|undefined|city street|gas stations|highway|"
- timeofday: "daytime|night|dawn/dusk|undefined"
- intrinsics
- focal: [x, y]
- center: [x, y]
- nearClip:
- extrinsics
- location
- rotation
- timestamp: int64 (epoch time ms)
- frameIndex: int (optional, frame index in this video)
- labels [ ]:
- id: int32
- category: string (classification)
- manualShape: boolean (whether the shape of the label is created or modified manually)
- manualAttributes: boolean (whether the attribute of the label is created or modified manually)
- score: float (the confidence or some other ways of measuring the quality of the label.)
- attributes:
- occluded: boolean
- truncated: boolean
- trafficLightColor: "red|green|yellow|none"
- areaType: "direct | alternative" (for driving area)
- laneDirection: "parallel|vertical" (for lanes)
- laneStyle: "solid | dashed" (for lanes)
- laneTypes: (for lanes)
- box2d:
- x1: float
- y1: float
- x2: float
- y2: float
- box3d:
- alpha: (observation angle if there is a 2D view)
- orientation: (3D orientation of the bounding box, used for 3D point cloud annotation)
- location: (3D point, x, y, z, center of the box)
- dimension: (3D point, height, width, length)
- poly2d: an array of objects, with the structure
- vertices: [][]float (list of 2-tuples [x, y])
- types: string (each character corresponds to the type of the vertex with the same index in vertices. ‘L’ for vertex and ‘C’ for control point of a bezier curve.
- closed: boolean (closed for polygon and otherwise for path)
Road object categories:
[
"bike",
"bus",
"car",
"motor",
"person",
"rider",
"traffic light",
"traffic sign",
"train",
"truck"
]
They are labeld by box2d
.
Drivable area category is drivable area
. There are two area types areaType
:
[
"alternative",
"direct"
]
Lane marking category is lane
. There are 8 lane styles laneStyle
:
[
"crosswalk",
"double other",
"double white",
"double yellow",
"road curb",
"single other",
"single white",
"single yellow"
]
Both drivable areas and lane markings are labeled by poly2d
. Please check the visulization code show_labels.py
for examples of drawing all the labels.
- name: string
- attributes:
- weather: "rainy|snowy|clear|overcast|undefined|partly cloudy|foggy"
- scene: "tunnel|residential|parking lot|undefined|city street|gas stations|highway|"
- timeofday: "daytime|night|dawn/dusk|undefined"
- frames [ ]:
- timestamp: int64 (epoch time ms)
- index: int (optional, frame index in this video)
- objects [ ]:
- id: int32
- category: string (classification)
- attributes:
- occluded: boolean
- truncated: boolean
- trafficLightColor: "red|green|yellow|none"
- direction: "parallel|vertical" (for lanes)
- style: "solid | dashed" (for lanes)
- box2d:
- x1: pixels
- y1: pixels
- x2: pixels
- y2: pixels
- poly2d: Each segment is an array of 2D points with type (array) "L" means line and "C" means beizer curve.
- seg2d: List of poly2d. Some object segmentation may contain multiple regions