New Real-World Data Collection and Expert Annotation Services by HumanSignal

VideoVectorLabels

The VideoVectorLabels tag creates labeled vectors on video frames. It combines VideoVector and Labels into one tag for convenient vector annotation, with keyframe-based interpolation across video frames.

Use with the following data types: video.

Availability

The VideoVector and VideoVectorLabels tags are currently available in Label Studio Enterprise (including self-hosted) and Starter Cloud only.

These tags pair well with SAM2 for video segmentation and object tracking. See VideoVector for details.

Parameters

Parameters

Param Type Default Description
name string Name of tag
toName string Name of video to label
[choice] single | multiple single Configure whether you can select one or multiple labels
[maxUsages] number Maximum number of times a label can be used per task
[showInline] boolean true Show labels in the same visual line
[opacity] number 0.2 Opacity of vector
[fillColor] string Vector fill color in hexadecimal
[strokeColor] string Stroke color in hexadecimal
[strokeWidth] number 1 Width of stroke
[closable] boolean false Allow closed shapes
[skeleton] boolean false Enables skeleton mode
[minPoints] number | none none Minimum allowed number of points
[maxPoints] number | none none Maximum allowed number of points

Example

Labeled vector annotation on video with closable paths

<View>
  <Video name="video" value="$video" />
  <VideoVectorLabels name="labels" toName="video" closable="true">
    <Label value="Road" />
    <Label value="Boundary" />
  </VideoVectorLabels>
</View>

Result parameters

Kind: global typedef Returns: VideoVectorRegionResult - The serialized video vector region data in Label Studio format Properties

Name Type Description
original_width number width of the original video frame (px)
original_height number height of the original video frame (px)
image_rotation number rotation degree of the video frame (deg)
value Object
value.sequence Array.<Object> array of keyframes; positions between keyframes are interpolated
value.sequence[].frame number frame number the keyframe applies to
value.sequence[].enabled boolean whether the vector is visible starting at this keyframe
value.sequence[].closed boolean whether the vector is closed (polygon) or open (polyline) on this keyframe
value.sequence[].vertices Array.<Object> array of point objects with coordinates, bezier curve information, and point relationships
value.labels Array.<string> array of label names assigned to this vector

Example results JSON export

{
  "original_width": 1920,
  "original_height": 1280,
  "image_rotation": 0,
  "value": {
    "sequence": [
      {
        "frame": 1,
        "enabled": true,
        "closed": true,
        "vertices": [
          { "id": "point-1", "x": 25.0, "y": 30.0, "prevPointId": null, "isBezier": false },
          { "id": "point-2", "x": 75.0, "y": 30.0, "prevPointId": "point-1", "isBezier": false },
          { "id": "point-3", "x": 50.0, "y": 70.0, "prevPointId": "point-2", "isBezier": false }
        ]
      }
    ],
    "labels": ["Road"]
  }
}
Designed for teams of all sizes Compare Versions