The tools object is part of the task objectin the Ango Annotation Format. It contains all annotation data pertaining to labels created with tools, e.g. not classifications, relations, or brushes.
Annotations created with the following annotation tools will appear in the tools object:
Annotations created with the Brush and Medical Brush tools are not saved here. They are instead saved, respectively, in the brushDataUrl and the medicalBrushDataUrl objects within the task object. See the page on the Task object for more.
The page property, in the export, is 0-indexed, while in the Ango Hub user interface it is 1-indexed.
What this means in practice is that pages start at 0 in the export, but 1 in the UI.
So for example, if, in the UI, you create a bounding box at page "12", it will appear under page "11" in the export.
General Structure
"tools" : [{ bounding-box OR rotated-bounding-box OR polygon OR polyline OR segmentation OR ner OR point OR pdf OR spline// object, tool coordinate info
objectId // string, ID of the object schemaId, // string, ID of the labeling tool in the project classifications, // list, nested classifications title // string, title of the tool page // int, page where the object is located interpolationStopped // bool, whether, in videos, the object disappears from this frame on (info below) }, { ... }]
Coordinates in the Ango Annotation Format
This is the coordinate system used when determining the position of points in the Ango export.
The origin point lies at the top left corner, and each point has a (X, Y) coordinate pair determining its position, in pixels, on the image.
List of lists containing X, Y coordinates of each polygon point. List may contain any number of x, y coordinate pairs.
"polygon": [ [600.4611650485438,// x537.2912621359224// y ], [600.4611650485438,// x472.03883495145635// y ], [543.5388349514564,// x399.84466019417476// y ] ]
objectId
String
Object ID of the polygon. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Only appears if the Annotation Metadata toggle has been turned on before export.
createdAt: int, Time of creation in Unix epoch time in milliseconds. GMT.
createdBy: string, email of user creating the object
createdIn: string, ID of the stage in which the object was created.
updatedAt: int, optional. Time of last object update in Unix millisecond epoch time. GMT. Only appears if object has been updated.
updatedBy: string, optional. email of user last updating the object. Only appears if object has been updated.
updatedIn: string, optional. ID of the stage in which the object was last updated. Only appears if object has been updated.
schemaId
String
ID of the class to which the object belongs.
"schemaId": "4460fa700ef030c4e575604"
title
String
Name of the class to which the object belongs.
"title": "Vehicle"
Segmentation
Segmentation point coordinates will not be visible in your export unless you activate the "Segmentation Points" toggle in the Export tab under the Fields dropdown.
Metadata for segmentations will not appear even when enabling the Annotation Metadata toggle in the export settings.
Segmentations are composed of instances, zones, regions, and holes.
An instance may contain more than one zone. One zone contains exactly one region. A region can contain more than one hole.
Each of the points composing the segmentation is represented as an X/Y coordinate pair.
Object containing details about a segmentation instance.
A segmentation instance can be composed of multiple zones. Each zone contains at least one region and may optionally contain a hole, which is always included, coordinate wise, within the region. More details in the segmentation section above.
Object ID of the segmentation instance. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
x - The X coordinate of the top-left point
y - The Y coordinate of the top-left point
height - The height, in pixels, of the bounding box
width - The width, in pixels, of the bounding box
Object ID of the bounding box. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Object containing coordinate and dimension details about the rotated bounding box.
x - The X coordinate of the origin point (i.e. where the user first clicked) of the rotated bounding box
y - The Y coordinate of the origin point (i.e. where the user first clicked) of the rotated bounding box
width - The width of the rotated bounding box, in pixels
height - the height of the rotated bounding box, in pixels
rotation - the angle of rotation of the rotated bounding box, in degrees. Range: -180|+180
corners - A list of X, Y coordinate pairs pertaining to the location of the four corners of the rotated bounding box.
Object ID of the rotated bounding box. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Object containing coordinate details about the points making up the polygon.
A list of X, Y coordinates of its points. Points are represented consecutively. The first point in the list is the first point that was clicked when creating the polygon.
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Object containing coordinate details about the points making up the polyline.
A list of X, Y coordinates of its points. Points are represented consecutively. The first point in the list is the first point that was clicked when creating the polyline.
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Object containing coordinate details about the points making up the line.
A dict containing 3D coordinates, in pixels, of its points, as well as its length. (Length is only available for lines created or modified after the Ango Hub 3.21 update.)
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
List containing coordinate, width, and marking details about the points making up the spline.
A list of X, Y coordinates of its points, the width information of each point in pixels, as well as whether the point was marked (1) or not (0). Points are represented consecutively. The first point in the list is the first point that was clicked when creating the spline.
A spline may contain any number of points starting from 2.
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
Object containing coordinate details about the point.
The X, Y coordinates of the point.
"point": [
721.2065972222223,
146.8480902777778
]
objectId
String
Object ID of the point. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
position: dict, positional information regarding the object
boundingRect: dict, positional information regarding the object
x1 and y1 X, Y coordinates of the top left point of the PDF area
x2 and y2 X, Y coordinates of the bottom right point of the PDF area
rects: list, deprecated.
pageNumber: int, the number of the PDF page where the object is found. 1-indexed.
content: dict, information regarding the content of the object
text: string, if OCR was run for the object, the OCR result.
confidence: int, range: 0-100, if OCR was run for the object, the confidence in the OCR result as returned by Hub.
objectId
String
Object ID of the PDF area. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
{"ner": {"start":319,"end":429, "selection": "desk surface/wrist rest and still reach the buttons. I liked this enough to try to grip it a bit differently (h"
},"objectId":"b6846451de619fa72bf0466","classifications": [],"schemaId":"b1919d09c9770392ebdb948","title":"ent"}
Properties
Property
Type
Description
pdf
Object
Object containing start/end details about the entity selected.
"ner": {
"start": 319,
"end": 429,
"selection": "desk surface/wrist rest and still reach the buttons. I liked this enough to try to grip it a bit differently (h"
}
start
In text, int, 0-indexed index of the first character in the entity.
In audio, float, value in seconds where the entity starts.
end
In text, int, 0-indexed index of the last character in the entity.
In audio, float, value in seconds where the entity stops.
selection (text only): Text content of the entity.
objectId
String
Object ID of the entity. Unique in the asset.
"objectId": "6b8a4338d299c63b5ee7825"
classifications
List
List of nested classifications (if any). May contain further nested classifications in its own classifications property. Each object in the list is of the classification format. See its docs page for more information.
An annotator may choose to make an object disappear from a video at a certain frame. This can happen, for example, if the annotator was tracking a car in a video and the car left the frame.
To do this, Hub creates an object with the following format in the tools list:
Where the objectId noted matches with the objectId of the object disappearing.
The page property indicates the page at which the object disappeared, 0-indexed. e.g. in the example above, the object was visible in pages 0, 1, 2, and 3.
If the object, later, reappears again, Hub creates another object in the tools list, this time with the interpolationStopped property set to false:
In this case, it means that starting from frame 8 onwards, the object is visible again, until another interpolationStopped=true object appears or, if it doesn't appear, until the end of the video.