Image Project
When you export a Image Project, the download folder contains JSON files of your annotations. Each image has its own JSON file.
Annotation JSON in the Image tool contains 4 main fields:
{
"metadata": {},
"instances": [],
"tags": [],
"comments": []
}
Metadata
{
"lastAction": {
"email": "[email protected]",
"timestamp": 1610622159937
},
"width": 1920,
"height": 1080,
"name": "94573794",
"projectId": 9425,
"qaEmail": [email protected],
"annotatorEmail": [email protected],
"status": "Returned",
"pinned": false
}
Description:
- “lastAction”: The user who last edited the image. Edits include changing the class of an instance, adding or deleting attributes, adding point labels, approving or disapproving instances, and moving or scaling instances.
- “email”: string - The email address of the last user who added or edited an instance.
- “timestamp”: number - The date and time when the last instance edit was made.
- "width": integer - The image’s width.
- "height": integer - The image’s height.
- "name": string - The name of the image.
- "projectId": integer - The project ID.
- "qaEmail": string - The QA’s email address.
- "annotatorEmail": string - The annotator's email address.
- "status": string - The image status. It can be:
NotStarted
,InProgress
,QualityCheck
,Returned
,Skipped
, orCompleted
. - "pinned": boolean - If it’s
true
, then the image is pinned. If it’sfalse
, then the image isn’t pinned.
Comments
[{
"correspondence": [
{
"text": "Fix this",
"email": "[email protected]"
}
],
"x": 987.98,
"y": 722.87,
"resolved": false,
"createdAt": "2021-01-14T07:34:00.695Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T07:34:04.783Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}]
Description:
- "correspondence": array of objects - List of messages in the comment.
- "text": string - The comment.
- "email": string - The email address of the user who wrote the comment.
- “x”: number - X position of the comment on the image.
- “y”: number - Y position of the comment on the image.
- “resolved”: boolean - If it’s
true
, then the comment is resolved. If it’sfalse
, then the comment isn't resolved. - “createdAt”: string - The date and time when the comment was created.
- “createdBy”: objects - Information about the user who created the comment.
- “email”: string - The email of the user who created the comment.
- “role”: string - The role of the user who created the comment.
- “creationtype”: string - If it’s
Manual
, then the comment was created manually. If it’spre-annotation
, then the comment was imported with Python SDK. - “updatedAt”: string - The time the comment was updated.
- “updatedBy”: objects - Information about the user who last updated the comment.
- “email”: string - The email address of the user who last updated the comment.
- “role”: string - The role of the user who last updated the comment.
Tags
[
"Shapes",
"Vector"
]
Description:
- “Shapes”: string - The tag name.
Instances
Tag
{
"type": "tag",
"classId": 5005974,
"className": "Buildings",
"probability": 100,
"attributes": [
{
"id": 94853,
"groupId": 23650,
"name": "Houses",
"groupName": "Type"
}
],
"createdAt": "2021-12-24T12:12:07.324Z",
"createdBy": {
"email": "[email protected]",
"role": "Annotator"
},
"creationType": "Manual",
"updatedAt": "2021-12-24T12:12:58.011Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
]
}
- "type": string - Class type. It could either be
object
ortag
. - "classId": integer - Class ID (must be the same as “id”).
- "className": string - Class name (one of the class names in “classes.json”).
- "probability": integer - If the instance was created manually, then the probability value is 100.
- "attributes": array of objects - List of attributes for this polygon.
- "id": integer - Attribute ID (must be in “classes.json”)
- "groupId": integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- "createdAt": string - The date and time when the instance was created.
- "createdBy": objects - Information about the user who created the instance.
- "email": string - The email address of the user who created the instance.
- "role": string - The role of the user who created the instance.
- "creationType": string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - "updatedAt": string - The date and time when the instance was updated.
- "updatedBy": objects - Information about the user who updated the instance.
- "email": string - The email address of the user who updated the instance.
- "role": string - The role of the user who updated the instance.
Polygon
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "polygon",
"classId": 5005974,
"className":"pentagon",
"probability": 100,
"points": [
322.18,
249.03,
585.14,
261.22,
377.9,
449.31,
243.81,
410.99
],
"exclude": [
[
432.65,
369.79,
348.71,
507.55,
693.1,
389.17
]
],
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655170,
"groupId": 163382,
"name":"Green",
"groupName":"Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:26:54.441Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:02:20.097Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “points”: array of objects - Points of the polygon. The list of floats is: [x0, y0, x1, y1, ….. xN, yN].
- “exclude”: array of objects - The points of the subtracted polygon. The list of floats is: [x0, y0, x1, y1, ….. xN, yN].
- “groupId”: integer - Group ID of instances
- “pointLabels”: string - The keys are from “0” to “N-1” where a polygon has N vertices.
- “locked”: boolean - If it’s
true
, you won't be able to move the instance. If it’sfalse
, you will be able to move the instance. - “attributes”: array of objects - List of attributes for this polygon.
- “id”: integer - Attribute ID (must be in “classes.json”)
- “groupId”: integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - Information about the user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - Information about the user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role”: string - The role of the user who updated the instance.
Polyline
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "polyline",
"classId": 5005974,
"className":"pentagon",
"probability": 100,
"points": [
322.18,
249.03,
585.14,
261.22,
377.9,
449.31,
243.81,
410.99
],
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655170,
"groupId": 163382,
"name":"Green",
"groupName":"Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:26:54.441Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:02:20.097Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “points”: array of objects - Points of the polygon. The list of floats is: [x0, y0, x1, y1, ….. xN, yN].
- “groupId”: integer - Group ID of instances
- “pointLabels”: string - The keys are from “0” to “N-1” where a polygon has N vertices.
- “locked”: boolean - If it’s
true
, you won't be able to move the instance. If it’sfalse
, you will be able to move the instance. - “attributes”: array of objects - List of attributes for this polygon.
- “id”: integer - Attribute ID (must be in “classes.json”)
- “groupId”: integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - Information about the user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - Information about the user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role”: string - The role of the user who updated the instance.
Bounding box and rotated bounding box
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "bbox",
"classId": 5005974,
"className": "Square",
"probability": 100,
"points": {
"x1": 104.73,
"x2": 549.82,
"y1": 137.45,
"y2": 377.45
},
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655168,
"groupId": 163390,
"name":"Purple",
"groupName":"Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:24:51.287Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:01:48.565Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “points”: objects - Points of the bounding box. The list of floats is: "x1, y1" for the left upper corner, and "x2, y2" for the right lower corner.
- “groupId”: integer - Group ID of instances
- “pointLabels”: objects - The keys are from “0” to “7” for the 8 vertices of the bounding box.
- “locked”: boolean - If it’s
true
, you won’t be able to move the object on the canvas. - “attributes”: array of objects - List of attributes for this bounding box.
- “id”: integer - Attribute ID (must be in “classes.json”)
- “groupId”: integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - Information about the user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - Information about the user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role”: string - The role of the user who updated the instance.
Point
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "point",
"classId": 5005974,
"className": "Point",
"probability": 100,
"x": 1769.45,
"y": 425.45,
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655171,
"groupId": 163392,
"name": "Blue",
"groupName": "Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:27:14.130Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:02:12.113Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “x”: number - x-coordinate.
- “y”: number - y-coordinate.
- “groupId”: integer - Group ID of instances.
- “pointLabels”: objects - The key is "0".
- “locked”: boolean - If it’s true, you won’t be able to move the object on the canvas.
- “attributes”: array of objects - List of attributes for this polygon.
- “id”: integer - Attribute ID (must be in “classes.json”).
- “groupId”: integer - Group ID (must be in “classes.json”).
- "name": string - Attribute name.
- "groupName": string - Group name.
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - The user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - The user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role”: string - The role of the user who updated the instance.
Ellipse
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "ellipse",
"classId": 5005974,
"className": "Ellipse",
"probability": 100,
"cx": 377.46,
"cy": 806.18,
"rx": 316.36,
"ry": 134.18,
"angle": 0,
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655172,
"groupId": 163393,
"name": "Red",
"groupName": "Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:26:14.637Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:02:32.493Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “cx”: number - x-coordinate of the center
- “cy”: number - y-coordinate of the center
- “rx”: number - x radius
- “ry”: number - y radius
- "angle”: integer - rotation angle
- “groupId”: integer - Group ID of instances
- “pointLabels”: objects - The keys are numbers that range from "0" to "8", and the values are texts.
- “locked”: boolean - If it’s
true
, you won’t be able to move the object on the canvas. - “attributes”: array of objects - List of attributes for this polygon.
- “id”: integer - Attribute ID (must be in “classes.json”)
- “groupId”: integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - Information about the user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - Information about the user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role": string - The role of the user who updated the instance.
Cuboid
{
"id": "1f3e90aa-6f5f-4578-9e29-9ea89ddae38f",
"type": "cuboid",
"classId": 5005974,
"className":"Cuboid",
"probability": 100,
"points": {
"f1": {
"x": 835.63,
"y": 545.46
},
"f2": {
"x": 1232.72,
"y": 846.55
},
"r1": {
"x": 1082.18,
"y": 735.27
},
"r2": {
"x": 1474.91,
"y": 1042.91
}
},
"groupId": 0,
"pointLabels": {},
"locked": false,
"attributes": [
{
"id": 655173,
"groupId": 163394,
"name":"Green",
"groupName":"Color"
}
],
"error": null,
"createdAt": "2020-10-22T07:26:30.048Z",
"createdBy": {
"email": "[email protected]",
"role": "Admin"
},
"creationType": "Manual",
"updatedAt": "2021-01-14T11:02:26.265Z",
"updatedBy": {
"email": "[email protected]",
"role": "Admin"
}
}
Description:
- “id”: string - Unique instance ID.
- “type”: string - Instance type.
- “classId”: integer - Class ID (A class ID from the “classes.json” belonging to the instance’s corresponding class, or -1 if the instance is not classified).
- "className": string - Class name (one of the class names in “classes.json”, or an empty value if the instance is not classified).
- “probability”: integer - If the instance was created manually, then the probability value is 100.
- “points”: objects - “f1” and “f2” are front box points with “x” and “y” coordinates, and “r1” and “r2” are rear box points with “x” and “y” coordinates.
- “groupId”: integer - Group ID of instances
- “pointLabels”: objects - The keys are numbers that range from "0" to "8", and the values are texts.
- “locked”: boolean - If it’s true, you won’t be able to move the object on the canvas.
- “attributes”: array of objects - List of attributes for this cuboid.
- “id”: integer - Attribute ID (must be in “classes.json”)
- “groupId”: integer - Group ID (must be in “classes.json”)
- "name": string - Attribute name
- "groupName": string - Group name
- “error”: boolean - If the instance is approved, then it’s
false
. If it’s disapproved, then it’strue
. If you approve or disapprove an instance then undo the action, then it’snull
. If the instance is neither approved nor disapproved, thenerror
won’t appear in JSON. - “createdAt”: string - The date and time when the instance was created.
- “createdBy”: objects - Information about the user who created the instance.
- “email”: string - The email address of the user who created the instance.
- “role”: string - The role of the user who created the instance.
- “creationType”: string - The method that was used to create the instance. If it's
manual
, then the user created the instance in the editor. If it'spre-annotation
, then the instance was uploaded with Python SDK. - “updatedAt”: string - The date and time when the instance was updated.
- “updatedBy”: objects - Information about the user who updated the instance.
- “email”: string - The email address of the user who updated the instance.
- “role”: string - The role of the user who updated the instance.
Updated 12 days ago