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"]
}
}