Permalink
Switch branches/tags
Nothing to show
Find file Copy path
ddcf50a Oct 28, 2018
2 contributors

Users who have contributed to this file

@fyu @xanderchf
124 lines (111 sloc) 3.99 KB

Format

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)
    - 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)

BDD100K Details

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.

Old Format (Before 08-28-2018)

  • 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