Refonte AI

Lidar Annotation Overview

Data Types and the Frame Objects

A set of rendered and labeled points, radar points, and camera images will be the input for our sensor fusion program. We will need the data to be JSON-encoded (or protobuf-encoded) and available through a URL supplied through the task request due to the size of the objects involved. To annotate a point cloud frame, you basically need to format the data in one of our supported formats, upload the file, and then, in a manner akin to how we handle picture files, send a request to the Refonte.AI API.The definitions of each of our several object types for a point cloud frame and the JSON format are provided below.

Definition: Vector2

Vector2 objects are used to represent positions, and are JSON objects with 2 properties.

x float x value

y float y value

Example Vector2 object

{
  "x": 1,
  "y": 2
}

Lidar Segmentation Overview

Start From Completed LIDAR Task

The following differences from the previous approach will take effect:

  • The identifier of the LiDAR Annotation task to be utilized as the source will be contained in a new parameter called lidar_task. There must be a completed state for the lidar_task.
  • The Frame objects will be collected from the source LiDAR Annotation task, thus you don't need to provide the attachments and attachment_type arguments.
  • You can choose which subset of the LiDAR Annotation task's frames to use by specifying an array of frame indexes using a new optional parameter called lidar_task_frames. Every frame will be used if it is omitted.
    • For example, assuming we start from a completed LiDAR Annotation task with five frames and we wanted to use all frames except the last one, the parameter will look like lidar_task_frames: [0, 1, 2, 3]
  • The labels parameter needs to be a super set of the set used on the original LiDAR Annotation task.

2D / 3D Lidar Linking Overview

Inherited Lidar Attributes

When lidarlinking tasks are produced from lidarannotation tasks, the appropriate object in those tasks may inherit the object characteristics set in the lidarannotation task.

Option 1:

Inherited lidar attributes can be enabled by using the copy_all_lidar_task_attributes flag when creating the lidarlinking task. If using this option, you can NOT set the same attributes in the lidarlinking task, because it will be copied over automatically from the lidarannotation task.

Option 2:

Setting copy_from_lidar_task: true on one or more annotation_attributes defined in the lidar linking task. These attributes will be copied from the lidarannotation task to the lidarlinking task and cannot be modified in annotations derived from the lidarannotation task.

In both cases, for any new annotations that are added in, they can be used.

Example with inherited lidar attributes

{ // ... in the linking task payload
  "annotation_attributes": {
    "Size": {
      "copy_from_lidar_task": true,
      "type": "category",
      "description": "An attribute that was set in the original lidar task.
        Note that the attribute name must match the original attribute name.
        If this attribute is copied from an annotation existing in the lidar task,
        its value cannot be changed.",
      "choices": [ "Large", "Small" ]
    },
    "Shape": {
      "type": "category",
      "description": "This is a new attribute that is specific to the 2d task",
      "choices": [ "Parallelogram", "Square", "Rhombus" ]
    }
  }
}

Updated about 2 months ago