Exporting labels
Exporting labels from Annotation Projects (Workflows)
Follow the steps below to export your labels from Workflow Projects.
- Navigate to Labels on the Project Dashboard and make sure you have the Data tab selected.
- Select the data units for which you want to export labels for.
- Click the Export and save button. The following pop-up will appear.
- Give this label version a name.
- Select whether you want your labels to be exported in JSON or COCO format.
- Toggle this if you want to include signed URLs in your export.
- Select which label status(es) to include in the export.
- Select what objects to include in the export.
- Click Export and save to export your labels.
Exporting labels from Manual QA Projects
Learn how to export data Manual QA Projects by watching this video.
The Export tab is where you export the labels and classifications created in a Project.
A. Select the files you want to export labels for by clicking the checkboxes next to the files you'd like to include in your export. Click the Export to export the selected data.
B. Select the format for your exported data; COCO or JSON.
C. Toggle this switch if you want to include signed URLs in your export.
D. Select the label status of the annotations you want to be included in the data export.
E. Select the objects you want to include in the data export.
F. Select which classifications to include in the data export.
Note
Download files are tagged with a unique id for the Project they are exported from and the time at which the export is made.
After the Export button is pressed, progress can be monitored using the notification bell icon in the top-right of the page.
Once the process completes a notification will appear in the top-right corner of your screen telling you the export is complete. Click Click to download to download your labels.
Tip
You can also download your labels in the notification menu (), and clicking the export icon next to the export you want to download.
Label editor coordinates
Label coordinates are normalized to be between 0 and 1. This means that the corners of the frame or image correspond to the coordinates (1,1), (1,0), (0,0), (0,1) regardless of frame dimensions.
To get the pixel values of any normalized coordinates, multiply them by the width or height of the label (given in pixels).
- "x" and "h" coordinates of a label should be multiplied by the pixel height.
- "y" and "w" coordinates of a label should be multiplied by the pixel width.
Export data format
All labels export to a single JSON or COCO file and both formats contain the exact same information. The information below uses the JSON format as an example. Refer to the COCO documentation for details on the COCO format.
Tip
We recommend viewing the exported JSON using a web-browser or a JSON parser.
The tables below provide descriptions of all values contained in the exported files.
Note
Exports of label versions for which the data unit has been deleted will vary from the examples shown below - the
data_type
isdeleted
, while image groups and image sequences will only contain a singledata_unit
.
Single images
The export contains a list of JSON objects, with each JSON object representing a single data unit and containing detailed information for all exported labels.
The example below describes all the keys for a single exported data unit.
[
{
"label_hash": "781dd0ff-e4c2-48f1-bcd1-09f2f0756701",
"created_at": "2023-03-23 11:42:14",
"last_edited_at": "2023-10-02 13:53:03",
"dataset_hash": "4a4141ed-8d8b-4518-b1f7-97a5c53e992b",
"dataset_title": "Cologne images",
"data_title": "dom-hbf.jpg",
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_type": "image",
"is_image_sequence": null,
"video_link": null,
"data_units": { },
"classification_answers": { },
"object_actions": { },
"label_status": "LABELLED",
"export_history": [
{
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"user_email": "[email protected]"
}
],
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"annotation_task_status": "COMPLETE"
}
]
Key | Description | Notes |
---|---|---|
label_hash | The label's hash | The 'hash' represents a unique identifier |
created_at | Time and date the label was created | |
last_edited_at | Time and date the label was last edited | |
dataset_hash | The Dataset's hash | The 'hash' represents a unique identifier |
data_type | The data unit's file format | Always "video" for videos |
is_image_sequence | "true" when the data unit is an image sequence | Always "null" for images |
video_link | Contains a private cloud URL for videos | Always "null" for images |
data_units | List of all files the data unit is composed of | Details of the export information for `data_units`` can be found below. |
object_answers | All the attributes in this data unit | The object attributes are identified using their hash |
classification_answers | All the classifications in a particular data unit | The classification labels are identified using their hash |
object_actions | The number of states a dynamic attribute can be in. | A change in state occurs each time the attribute answer changes. The objectHash within the object_actions is the attribute answer's ID. |
label_status | Indicates whether the data unit has been labeled. | |
export_history | Contains a record of the export history for this data unit | Exporting labels to confirm export history generates an export history entry. |
export_hash | The hash for this particular export instance | The 'hash' represents a unique identifier |
exported_at | The date and time when a particular export instance took place. | |
annotation_task_status | Shows the task status of Manual QA Projects. | annotation_task_status is only applicable for Manual QA Projects and will be deprecated in January 2024. |
data_units
The data_units
key contains all files that compose the data unit. For a given image there will only ever be one element in this list. This element will contain the following information.
Caution
data_units
here refer to individual files that compose a data unit, as defined in our glossary, and are not to be confused with data units elsewhere in the platform. Encord will update this nomenclature soon, but we always communicate changes to all customers first.
"data_units": {
"9c588f63-ad87-4987-a074-06ba0d6980cd": {
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_title": "dom-hbf.jpg",
"data_type": "image",
"data_sequence": 0,
"labels": { },
"data_fps": "23.976023976023978" ,
"data_duration": "29.0786",
"data_link": "www.my-private-cloud.com/how-to-make-apple-pie.mp4",
"width": 512,
"height": 512
}
}
Key | Description | Notes |
---|---|---|
data_hash | The file's hash | The 'hash' represents a unique identifier |
data_title | The file's title | |
data_type | The file type | |
data_sequence | The sequence number of this file within the data unit | Always 0 for images, as single images are composed of a single file by definition |
labels | A container for the image's label information | This contains the label information for the image. |
data_link | A link to the file stored in your private cloud | |
width | The width of the image in pixel (px) | |
height | The height of the image in pixel (px) |
labels
labels
contains all object labels, classification labels, and attributes present in the image.
"labels": {
"0": {
"objects": { },
"classifications": [ ]
}
}
Key | Description | Notes |
---|---|---|
objects | A list of label objects in this frame | Contains geometric information for object labels |
classifications | A list of classifications applying to image as a whole |
objects
objects
contains all object label information for the image. A key with the name of the object shape is always present - bounding_box
in the example below. All shapes contain coordinates for each vertex.
Tip
Navigate to the ontology shapes section to see how all ontology classes are represented in the exported file.
The example below shows a single object instance.
"objects": [
{
"name": "Apple",
"color": "#D33115",
"shape":"bounding_box",
"value": "car",
"boundingBox": {
"0": {
"h": 0.3235,
"w": 0.1697,
"x": 0.0153,
"y": 0.254,
}
},
"createdAt": "Thu, 07 Sep 2023 09:47:35 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"objectHash": "P6gqJT/3",
"featureHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The object's name | As specified in the ontology |
color | The color used to draw the object | As specified in the ontology |
shape | The Ontology class used to create the object | As specified in the ontology |
value | The name given to the object | |
createdAt | Date and time the object was created | |
createdBy | The email of the user that created this object | |
confidence | The confidence score for this object | A confidence score of 1 is given for all labels created manually. More info can be found here |
objectHash | The specific label's hash | The 'hash' represents a unique identifier |
featureHash | The Ontology object's hash | Corresponds to the FeatureNodeHash in the ontology |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
boundingBox | A list containing the coordinates for the bounding box | Refer to the ontology shapes section for more details |
classifications
classifications
contains all classification information for the image.
The following example shows a single object instance.
"classifications": [
{
"name": "Time of day",
"value": "time_of_day",
"createdAt":"Tue, 10 Oct 2023 14:16:14 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"featureHash": "wUS7p9B6",
"lastEditedAt": "Tue, 10 Oct 2023 14:16:14 GMT",
"classificationHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The classification's name | As specified in the ontology |
value | The classification value | Same as the name |
createdAt | Time and day the classification was created | |
createdBy | The email of the user that created this classification | |
confidence | The confidence score for this classification | A confidence score of 1 is given for all labels created manually. More info can be found here |
featureHash | The classification instance hash | Corresponds to the FeatureNodeHash in the Ontology |
lastEditedAt | Time and date of the last time this classification was edited | |
classificationHash | The classification instance hash hash | |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
object_answers
object_answers
is a list of objects that have at least one nested attribute and contains information for all attributes. Expanding object_answers
reveals the following:
"object_answers": {
"Gqh06ypx"
"objectHash": "Gqh06ypx",
"classifications" [
"name": "Size",
"value": "size",
"answers": "Medium",
"featureHash": "GZnFumFq",
"manualAnnotation": true
]
}
Key | Description | Notes |
---|---|---|
objectHash | The hash of the object containing the attributes | The 'hash' represents a unique identifier |
classifications | A list of attributes related to the object. Will include Dynamic attributes and Relation attributes | Not to be confused with classifications as defined in our glossary, which apply to a frame |
name | The attribute name | |
value | The attribute value | Always the same as the name |
answers | The value(s) the attribute(s) were set to | If the attribute was a radio button, the answer will be the option selected by the annotator |
featureHash | The attribute's hash | The 'hash' represents a unique identifier |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
classification_answers
Contains a list of classifications that apply to entire frames or slices. classification_answer
is represented by its hash. Expanding classification_answers
reveals the following:
"classification_answers": {
"OFX2jzwE": {
"classificationHash": "OFX2jzwE",
"classifications": [{
"name": "Time of day",
"value": "time_of_day",
"answers": [{
"name": "Night",
"value": "night",
"featureHash": "j/7dpSmi"}],
"featureHash": "uZmB5YZC",
"manualAnnotation": true
}]
}
}
Key | Description | Notes |
---|---|---|
classificationHash | The classification's hash | Corresponds to the featureNodeHash in the Ontology |
classifications | A list of classification information | |
name | The classification name | As set in the Ontology (Quality in the example above) |
value | The classification value | Always the same as the classification name |
answers | A list of all classification answers | "answers" refer to the values the classification were set to. |
name | The name of the classification answer | "Night" in the example above |
value | The classification answer's value | Always the same as the classifications answer's name |
featureHash | The hash for the particular classification answer | Included in answers |
featureHash | The hash for the particular classification | |
manualAnnotation | "true" for all manually created labels. "false" for all labels created with automated labeling techniques |
export_history
The export_history
contains a list of all exports for this data unit, the first entry being the current export. Each instance contains the following:
"export_history": {
"0"
"export_hash": "Gqh06ypx",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
Key | Description | Notes |
---|---|---|
export_hash | The export instance's hash | The 'hash' represents a unique identifier |
exported_at | Date and time of the export | |
user_email | The email of the user that made this export |
Image groups and image sequences
Tip
Confused about the difference between image groups and image sequences? See our documentation here to learn about different data types in Encord.
The export contains a list of JSON objects, with each JSON object representing a single image group or image sequence, and containing detailed information for all exported labels.
The example below describes all the keys for a single exported data unit.
[
{
"label_hash": "781dd0ff-e4c2-48f1-bcd1-09f2f0756701",
"created_at": "2023-03-23 11:42:14",
"last_edited_at": "2023-10-02 13:53:03",
"dataset_hash": "4a4141ed-8d8b-4518-b1f7-97a5c53e992b",
"dataset_title": "cooking_image_sequences",
"data_title": "image-group-67bdc95d",
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_type": "image_group",
"is_image_sequence": null,
"image_sequence_link": "www.my-private-cloud.com/how-to-make-apple-pie.mp4",
"data_units": { },
"classification_answers": { },
"object_actions": { },
"label_status": "LABELLED",
"export_history": [
{
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"user_email": "[email protected]"
},
{
"export_hash": "2e0ee531-41ce-4ce9-a859-b6b47697e5d2",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
],
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"annotation_task_status": "COMPLETE"
}
]
Key | Description | Notes |
---|---|---|
label_hash | The label's hash | The 'hash' represents a unique identifier |
created_at | Time and date the label was created | |
last_edited_at | Time and date the label was last edited | |
dataset_hash | The dataset's hash | The 'hash' represents a unique identifier |
data_type | The data unit's file format | Always "img_group" for image groups and image sequences |
is_image_sequence | true when the data unit is an image sequence | false for all other types of data, including image groups. This is what distinguishes image groups and image sequences in your export |
video_link | Contains a link to file storage location if file is a video | Always "null" for image groups and image sequences |
data_units | List of all files the data unit is composed of | Details of the export information for data units can be found below. |
object_answers | All the attributes in this data unit | The object attributes are identified using their hash |
classification_answers | All the classifications in a particular data unit | The classification labels are identified using their hash |
object_actions | The number of states a dynamic attribute can be in. | A change in state occurs each time the attribute answer changes. The objectHash within the object_actions is the attribute answer's ID. |
label_status | Indicates whether the data unit has been labeled. | |
export_history | Contains a record of the export history for this data unit | Exporting labels to confirm export history generates an export history entry. |
export_hash | The hash for this particular export instance | The 'hash' represents a unique identifier |
exported_at | The date and time when a particular export instance took place. | |
annotation_task_status | Shows the task status of Manual QA Projects. | annotation_task_status is only applicable for Manual QA Projects and will be deprecated in January 2024. |
data_units
The data_units
key contains a list of all files that compose the image group or image sequence (sometimes referred to as frames). It contains the following information.
Caution
data_units
here refer to individual files that compose a data unit, as defined in our glossary, and are not to be confused with data units elsewhere in the platform. Encord will update this nomenclature soon, but we always communicate changes to all customers first.
"data_units": {
"9c588f63-ad87-4987-a074-06ba0d6980cd": {
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_title": "rhein-hafen.jpg4",
"data_type": "image/jpg",
"data_sequence": 0,
"labels": { },
"data_link": "www.my-private-cloud.com/how-to-make-apple-pie.mp4",
"width": 512,
"height": 512
}
}
Key | Description | Notes |
---|---|---|
data_hash | The file's hash | The 'hash' represents a unique identifier |
data_title | The file's title | |
data_type | The file type | |
data_sequence | The sequence number of this file within the data unit | 0 represents the first file |
labels | A list of all frames contained in image group or sequence, and any labels on each frame | This contains the label information for each frame. |
width | The width of the frame in pixel (px) | |
height | The height of the frame in pixel (px) |
labels
Each number within labels
represents an individual frame within the image group or sequence. Each frame contains the following:
"labels": {
"0": {
"objects": { },
"classifications": [ ],
"metadata":{ }
}
}
Key | Description | Notes |
---|---|---|
objects | A list of label objects in this frame | Contains geometric information for object labels |
classifications | A list of classifications applying to the entire frame | Will be the same value for all instances of this classification. |
objects
objects
contains label information for all object instances in a frame. A key with the name of the object shape is always present - bounding_box
in the example below. All shapes contain coordinates for each vertex.
Tip
Navigate to the ontology shapes section to see how all ontology classes are represented in the exported file.
The example below shows a single object instance.
"objects": [
{
"name": "Apple",
"color": "#D33115",
"shape":"bounding_box",
"value": "apple",
"boundingBox": {
"0": {
"h": 0.3235,
"w": 0.1697,
"x": 0.0153,
"y": 0.254,
}
},
"createdAt": "Thu, 07 Sep 2023 09:47:35 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"objectHash": "P6gqJT/3",
"featureHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The object's name | As specified in the ontology |
color | The color used to draw the object | As specified in the ontology |
shape | The Ontology class used to create the object | As specified in the ontology |
value | The name given to the object | |
createdAt | Date and time the object was created | |
createdBy | The email of the user that created this object | |
confidence | The confidence score for this object | A confidence score of 1 is given for all labels created manually. More info can be found here |
objectHash | The specific label's hash | The 'hash' represents a unique identifier |
featureHash | The Ontology object's hash | Corresponds to the FeatureNodeHash in the ontology |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
boundingBox | A list containing the coordinates for the bounding box | Refer to the ontology shapes section for more details |
classifications
classifications
contains all frame level classification information for the image group or sequence.
The example below shows a single classification instance.
"classifications": [
{
"name": "Time of day",
"value": "time_of_day",
"createdAt":"Tue, 10 Oct 2023 14:16:14 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"featureHash": "wUS7p9B6",
"lastEditedAt": "Tue, 10 Oct 2023 14:16:14 GMT",
"classificationHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The classification's name | As specified in the ontology |
value | The classification value | Same as the name |
createdAt | Time and day the classification was created | |
createdBy | The email of the user that created this classification | |
confidence | The confidence score for this classification | A confidence score of 1 is given for all labels created manually. More info can be found here |
featureHash | The classification instance hash | Corresponds to the FeatureNodeHash in the Ontology |
lastEditedAt | Time and date of the last time this classification was edited | |
classificationHash | The classification instance hash hash | |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
object_answers
object_answers
is a list of objects that have at least one nested attribute and contains information for all attributes. Expanding object_answers
reveals the following:
"object_answers": {
"Gqh06ypx"
"objectHash": "Gqh06ypx",
"classifications" [{
"name": "Size",
"value": "size",
"answers": "Medium",
"featureHash": "GZnFumFq",
"manualAnnotation": true
}]
}
Key | Description | Notes |
---|---|---|
objectHash | The hash of the object containing the attributes | The 'hash' represents a unique identifier |
classifications | A list of attributes related to the object. Will include Dynamic attributes and Relation attributes | Not to be confused with classifications as defined in our glossary, which apply to a frame |
name | The attribute name | |
value | The attribute value | Always the same as the name |
answers | The value(s) the attribute(s) were set to | If the attribute was a radio button, the answer will be the option selected by the annotator |
featureHash | The attribute's hash | The 'hash' represents a unique identifier |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
classification_answers
Contains a list of classifications that apply to entire frames or slices. classification_answer
is represented by its hash. Expanding classification_answers
reveals the following:
"classification_answers": {
"OFX2jzwE": {
"classificationHash": "OFX2jzwE",
"classifications": [{
"name": "Quality",
"value": "quality",
"answers": [{
"name": "out of focus",
"value": "out_of_focus",
"featureHash": "j/7dpSmi"}],
"featureHash": "uZmB5YZC",
"manualAnnotation": true
}]
}
}
Key | Description | Notes |
---|---|---|
classificationHash | The classification's hash | The 'hash' represents a unique identifier |
classifications | A list of classifications information | |
name | The classification name | As set in the Ontology (Quality in the example above) |
value | The classification value | Always the same as the classification name |
answers | A list of all classification answers | "answers" refer to the values the classifications were set to. |
name | The name of the classification answer | "out of focus" in the example above |
value | The classification answer's value | Always the same as the classification answer's name |
featureHash | The hash for the particular classification answer | Included in answers |
featureHash | The hash for the particular classification | |
manualAnnotation | "true" for all manually created labels. "false" for all labels created with automated labeling techniques |
export_history
The export_history
contains a list of all exports for this data unit, the first entry being the current export. Each instance contains the following:
"export_history": {
"0"
"export_hash": "Gqh06ypx",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
Key | Description | Notes |
---|---|---|
export_hash | The export instance's hash | The 'hash' represents a unique identifier |
exported_at | Date and time of the export | |
user_email | The email of the user that made this export |
Videos
The export contains a list of JSON objects, with each JSON object representing a single data unit and containing detailed information for all exported labels.
The example below describes all the keys for a single exported data unit.
[
{
"label_hash": "781dd0ff-e4c2-48f1-bcd1-09f2f0756701",
"created_at": "2023-03-23 11:42:14",
"last_edited_at": "2023-10-02 13:53:03",
"dataset_hash": "4a4141ed-8d8b-4518-b1f7-97a5c53e992b",
"dataset_title": "cooking_videos",
"data_title": "how-to-make-apple-pie.mp4",
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_type": "video",
"is_image_sequence": null,
"video_link": "www.my-private-cloud.com/how-to-make-apple-pie.mp4",
"data_units": { },
"classification_answers": { },
"object_actions": { },
"label_status": "LABELLED",
"export_history": [
{
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"user_email": "[email protected]"
},
{
"export_hash": "2e0ee531-41ce-4ce9-a859-b6b47697e5d2",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
],
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"annotation_task_status": "COMPLETE"
}
]
Key | Description | Notes |
---|---|---|
label_hash | The label's hash | The 'hash' represents a unique identifier |
created_at | Time and date the label was created | |
last_edited_at | Time and date the label was last edited | |
dataset_hash | The Dataset's hash | The 'hash' represents a unique identifier |
data_type | The data unit's file format | Always "video" for videos |
is_image_sequence | "true" when the data unit is an image sequence | Always "null" for videos |
video_link | Link to the video saved on your private cloud | Always "null" for all other file types |
data_units | List of all files the data unit is composed of | Details of the export information for `data_units`` can be found below. |
object_answers | All the attributes in this data unit | The object attributes are identified using their hash |
classification_answers | All the classifications in a particular data unit | The classification labels are identified using their hash |
object_actions | The number of states a dynamic attribute can be in. | A change in state occurs each time the attribute answer changes. The objectHash within the object_actions is the attribute answer's ID. |
label_status | Indicates whether the data unit has been labeled. | |
export_history | Contains a record of the export history for this data unit | Exporting labels to confirm export history generates an export history entry. |
export_hash | The hash for this particular export instance | The 'hash' represents a unique identifier |
exported_at | The date and time when a particular export instance took place. | |
annotation_task_status | Shows the task status of Manual QA Projects. | annotation_task_status is only applicable for Manual QA Projects and will be deprecated in January 2024. |
data_units
The data_units
key contains all files that compose the data unit. For a given video there will only ever be one element in this list. This element will contain the following information.
Caution
data_units
here refer to individual files that compose a data unit, as defined in our glossary, and are not to be confused with data units elsewhere in the platform. Encord will update this nomenclature soon, but we always communicate changes to all customers first.
"data_units": {
"9c588f63-ad87-4987-a074-06ba0d6980cd": {
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_title": "how-to-make-apple-pie.mp4",
"data_type": "video/mp4",
"data_sequence": 0,
"labels": { },
"data_fps": "23.976023976023978" ,
"data_duration": "29.0786",
"data_link": "www.my-private-cloud.com/how-to-make-apple-pie.mp4",
"width": 512,
"height": 512
}
}
Key | Description | Notes |
---|---|---|
data_hash | The file's hash | The 'hash' represents a unique identifier |
data_title | The file's title | |
data_type | The file type | |
data_sequence | The sequence number of this file within the data unit | 0 represents the first file |
labels | A list of all frames contained in the video and any labels on each frame | This contains the label information for each frame. |
data_fps | The frames per second for this video | |
data_duration | The video length | In seconds |
data_link | A link to the file stored in your private cloud | |
width | The width of the frame in pixel (px) | |
height | The height of the frame in pixel (px) |
labels
Each number within labels
represents an individual frame within the data unit. Each frame contains the following:
"labels": {
"0": {
"objects": { },
"classifications": [ ],
"metadata":{ }
}
}
Key | Description | Notes |
---|---|---|
objects | A list of label objects in this frame | Contains geometric information for object labels |
classifications | A list of classifications applying to the entire frame | Will be the same value for all instances of this classification. |
objects
objects
contains label information for all object instances in a frame. A key with the name of the object shape is always present - bounding_box
in the example below. All shapes contain coordinates for each vertex.
Tip
Navigate to the ontology shapes section to see how all ontology classes are represented in the exported file.
The example below shows a single object instance.
"objects": [
{
"name": "Apple",
"color": "#D33115",
"shape":"bounding_box",
"value": "apple",
"boundingBox": {
"0": {
"h": 0.3235,
"w": 0.1697,
"x": 0.0153,
"y": 0.254,
}
},
"createdAt": "Thu, 07 Sep 2023 09:47:35 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"objectHash": "P6gqJT/3",
"featureHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The object's name | As specified in the ontology |
color | The color used to draw the object | As specified in the ontology |
shape | The ontology class used to create the object | As specified in the ontology |
value | The name given to the object | |
createdAt | Date and time the object was created | |
createdBy | The email of the user that created this object | |
confidence | The confidence score for this object | A confidence score of 1 is given for all labels created manually. More info can be found here |
objectHash | The specific label's hash | The 'hash' represents a unique identifier |
featureHash | The Ontology object's hash | Corresponds to the FeatureNodeHash in the ontology |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
boundingBox | A list containing the coordinates for the bounding box | Refer to the ontology shapes section for more details |
classifications
classifications
contains all frame level classification information for the video.
The example below shows a single classification instance.
"classifications": [
{
"name": "Time of day",
"value": "time_of_day",
"createdAt":"Tue, 10 Oct 2023 14:16:14 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"featureHash": "wUS7p9B6",
"lastEditedAt": "Tue, 10 Oct 2023 14:16:14 GMT",
"classificationHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The classification's name | As specified in the ontology |
value | The classification value | Same as the name |
createdAt | Time and day the classification was created | |
createdBy | The email of the user that created this classification | |
confidence | The confidence score for this classification | A confidence score of 1 is given for all labels created manually. More info can be found here |
featureHash | The classification instance hash | Corresponds to the FeatureNodeHash in the Ontology |
lastEditedAt | Time and date of the last time this classification was edited | |
classificationHash | The classification instance hash hash | |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
object_answers
object_answers
is a list of objects that have at least one nested attribute and contains information for all attributes. Expanding object_answers
reveals the following:
"object_answers": {
"Gqh06ypx"
"objectHash": "Gqh06ypx",
"classifications" [
"name": "Size",
"value": "size",
"answers": "Medium",
"featureHash": "GZnFumFq",
"manualAnnotation": true
]
}
Key | Description | Notes |
---|---|---|
objectHash | The hash of the object containing the attributes | The 'hash' represents a unique identifier |
classifications | A list of attributes related to the object | Not to be confused with classifications as defined in our glossary, which apply to a frame |
name | The attribute name | |
value | The attribute value | Always the same as the name |
answers | The value(s) the attribute(s) were set to | If the attribute was a radio button, the answer will be the option selected by the annotator |
featureHash | The attribute's hash | The 'hash' represents a unique identifier |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
classification_answers
Contains a list of classifications that apply to entire frames or slices. classification_answer
is represented by its hash. Expanding classification_answers
reveals the following:
"classification_answers": {
"OFX2jzwE": {
"classificationHash": "OFX2jzwE",
"classifications": [{
"name": "Quality",
"value": "quality",
"answers": [{
"name": "out of focus",
"value": "out_of_focus",
"featureHash": "j/7dpSmi"}],
"featureHash": "uZmB5YZC",
"manualAnnotation": true
}]
}
}
Key | Description | Notes |
---|---|---|
classificationHash | The classification's hash | The 'hash' represents a unique identifier |
classifications | A list of classifications information | |
name | The classification name | As set in the ontology (Quality in the example above) |
value | The classification value | Always the same as the classification name |
answers | A list of all classification answers | "answers" refer to the values the classifications were set to. |
name | The name of the classification answer | "out of focus" in the example above |
value | The classification answer's value | Always the same as the classification answer's name |
featureHash | The hash for the particular classification answer | Included in answers |
featureHash | The hash for the particular classification | |
manualAnnotation | "true" for all manually created labels. "false" for all labels created with automated labeling techniques |
export_history
The export_history
contains a list of all exports for this data unit, the first entry being the current export. Each instance contains the following:
"export_history": {
"0"
"export_hash": "Gqh06ypx",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
Key | Description | Notes |
---|---|---|
export_hash | The export instance's hash | The 'hash' represents a unique identifier |
exported_at | Date and time of the export | |
user_email | The email of the user that made this export |
DICOM
The export contains a list of JSON objects, with each JSON object representing a single data unit and containing detailed information for all exported labels.
The example below describes all the keys for a single exported data unit.
[
{
"label_hash": "781dd0ff-e4c2-48f1-bcd1-09f2f0756701",
"created_at": "2023-03-23 11:42:14",
"last_edited_at": "2023-10-02 13:53:03",
"dataset_hash": "4a4141ed-8d8b-4518-b1f7-97a5c53e992b",
"dataset_title": "BB: CT thin slices",
"data_title": "9c58",
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_type": "dicom",
"is_image_sequence": null,
"video_link": null,
"data_units": { },
"classification_answers": { },
"object_actions": { },
"label_status": "LABELLED",
"export_history": [
{
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"user_email": "[email protected]"
},
{
"export_hash": "2e0ee531-41ce-4ce9-a859-b6b47697e5d2",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
],
"export_hash": "02b56519-9664-4e38-9713-4817a5caf648",
"exported_at": "Mon, 02 Oct 2023 14:35:30 UTC",
"annotation_task_status": "RETURNED"
}
]
Key | Description | Notes |
---|---|---|
label_hash | The label's hash | The 'hash' represents a unique identifier |
created_at | Time and date the label was created | |
last_edited_at | Time and date the label was last edited | |
dataset_hash | The dataset's hash | The 'hash' represents a unique identifier |
data_type | The data unit's file format | Always "dicom" in a DICOM series |
is_image_sequence | "true" when the data unit is an image sequence | Always "null" for a DICOM series |
video_link | Link to the video or image sequence | Always "null" for a DICOM series |
data_units | List of all files the data unit is composed of | Details of the export information for `data_units`` can be found below. |
object_answers | All the object attributes in this data unit | The object attribute are identified using their hash |
classification_answers | All the classifications in a particular data unit | The classification labels are identified using their hash |
object_actions | The number of states a dynamic attribute can be in. | A change in state occurs each time the attribute answer changes. The objectHash within the object_actions is the attribute answer's ID. |
label_status | Indicates whether the data unit has been labeled. | |
export_history | Contains a record of the export history for the data unit | Exporting labels to confirm export history generates an export history entry. |
export_hash | The hash for this particular export instance | The 'hash' represents a unique identifier |
exported_at | The date and time when a particular export instance took place. | |
annotation_task_status | Shows the task status of Manual QA Projects. | annotation_task_status is only applicable for Manual QA Projects and will be deprecated in January 2024. |
data_units
The data_units
key contains all files that compose the data unit.
Caution
data_units
here refer to individual files that compose a data unit, as defined in our glossary, and are not to be confused with data units elsewhere in the platform. Encord will update this nomenclature soon, but we always communicate changes to all customers first.
"data_units": {
"9c588f63-ad87-4987-a074-06ba0d6980cd": {
"data_hash": "9c588f63-ad87-4987-a074-06ba0d6980cd",
"data_title": "9c58",
"data_type": "application/dicom",
"data_sequence": 0,
"labels": { },
"metadata": { },
"data_links": { },
"width": 512,
"height": 512
}
}
Key | Description | Notes |
---|---|---|
data_hash | The file's hash | The 'hash' represents a unique identifier |
data_title | The file's title | |
data_type | The file type | |
data_sequence | The sequence number of this file within the data unit | 0 represents the first file |
labels | A list of all slices contained in the series and any labels on each slice | This contains the label information for each slice. |
metadata | The DICOM series metadata. | Contains the ID for the patient, the study, and the series. |
data_links | Links to all slices within the series, ordered by their sequence number | |
width | The width of the slice in pixel (px) | |
height | The height of the slice in pixel (px) |
labels
Each number within labels
represents an individual slice or frame within the data unit. Each slice or frame contains the following:
"labels": {
"0": {
"objects": { },
"classifications": [ ],
"metadata":{ }
}
}
Key | Description | Notes |
---|---|---|
objects | A list of label objects on this slice | Contains geometric information for object labels |
classifications | A list of classifications applying to the entire slice or frame | This will be the same value for all instances of this classification. |
metadata | Slice specific metadata |
objects
objects
contains label information for all object instances in a frame. A key with the name of the object shape is always present - polygon
in the example below. All shapes contain coordinates for each vertex.
Tip
Navigate to the ontology shapes section to see how all ontology classes are represented in the exported file.
The example below shows a single object instance.
"objects": [
{
"name": "lungs",
"color": "#D33115",
"shape":"polygon",
"value": "lungs",
"polygon": {
"0": {
"x": 0.2423,
"y": 0.5115,
},
"1": {
"x": 0.4167,
"y": 0.4218,
}
},
"createdAt": "Thu, 07 Sep 2023 09:47:35 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"objectHash": "mQ+yKcF5",
"featureHash": "pRwpsg1H",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The object's name | As specified in the ontology |
color | The color used to draw the object | As specified in the ontology |
shape | The ontology class used to create the object | As specified in the ontology |
value | The name given to the object | |
polygon | A list containing the x and y coordinates of each vertex on the polygon | Refer to the ontology shapes section for more details |
createdAt | Date and time the object was created | |
createdBy | The email of the user that created this object | |
confidence | The confidence score for this object | A confidence score of 1 is given for all labels created manually. More info can be found here |
objectHash | The specific label's hash | The 'hash' represents a unique identifier |
featureHash | The ontology object's hash | Corresponds to the FeatureNodeHash in the ontology |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
classifications
classifications
contains all frame level classification information for the slice.
The example below shows a single classification instance.
"classifications": [
{
"name": "State",
"value": "state",
"createdAt":"Tue, 10 Oct 2023 14:16:14 GMT",
"createdBy": "[email protected]",
"confidence": "1",
"featureHash": "wUS7p9B6",
"lastEditedAt": "Tue, 10 Oct 2023 14:16:14 GMT",
"classificationHash": "jiOiEq76",
"manualAnnotation": true
}
]
Key | Description | Notes |
---|---|---|
name | The classification's name | As specified in the ontology |
value | The classification value | Same as the name |
createdAt | Time and day the classification was created | |
createdBy | The email of the user that created this classification | |
confidence | The confidence score for this classification | A confidence score of 1 is given for all labels created manually. More info can be found here |
featureHash | The classification instance hash | Corresponds to the FeatureNodeHash in the ontology |
lastEditedAt | Time and date of the last time this classification was edited | |
classificationHash | The classification instance hash hash | |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
metadata
"metadata": {
"dicom_instance_uid": "1.3.9.1.4.7.14219.5.2.8.1600.1202.0357967439694942",
"multiframe_frame_number": "null",
"file_uri":"cord-dicoms/H7sLTXjYbrou3GhfmHRiuE5m92/5adba3dd-09f6-5c95-b954-e76542fe0ed7",
"width": "512",
"height": "512",
}
Key | Description | Notes |
---|---|---|
dicom_instance_uid | The DICOM instance UID | DICOM tag value (0008,0018). More information can be found here |
multiframe_frame_number | A field indicating the frame number when the JSON contains only a single label | Displays null when each slice has its only expandable labels instance |
file_uri | This slice's URI | Identifies this slice |
height | The slice's height (in pixel) | DICOM tag value (0028,0010). More information can be found here |
width | The slice's width (in pixel) | DICOM tag value (0028,0011). More information can be found here |
metadata
The slice metadata contains information on the DICOM study, the DICOM series, as well as the patient.
"metadata": {
"patient_id": "ENC-ORD-LUV-031023",
"study_uid": "null",
"series_uid":"cord-dicoms/H7sLTXjYbrou3GhfmHRiuE5m92/5adba3dd-09f6-5c95-b954-e76542fe0ed7",
}
object_answers
object_answers
is a list of objects that have at least one nested attribute and contains information for all attributes. Expanding object_answers
reveals the following:
"object_answers": {
"Gqh06ypx"
"objectHash": "Gqh06ypx",
"classifications" [
"name": "Size",
"value": "size",
"answers": "Medium",
"featureHash": "GZnFumFq",
"manualAnnotation": true
]
}
Key | Description | Notes |
---|---|---|
objectHash | The hash of the object containing the attributes | The 'hash' represents a unique identifier |
classifications | A list of attributes related to the object. Will include Dynamic attributes and Relation attributes. | Not to be confused with classifications as defined in our glossary, which apply to a frame |
name | The attribute name | |
value | The attribute value | Always the same as the name |
answers | The value(s) the attribute(s) were set to | If the attribute was a radio button, the answer will be the option selected by the annotator |
featureHash | The attribute's hash | The 'hash' represents a unique identifier |
manualAnnotation | A field indicating whether the object was drawn manually or not | true means it was drawn manually, while false means it was created using a model or an automated labeling technique |
classification_answers
classification_answers
a list of frame classifications in which each classification is represented by its hash. Expanding classification_answers
reveals the following:
"classification_answers": {
"OFX2jzwE": {
"classificationHash": "OFX2jzwE",
"classifications": [{
"name": "Quality",
"value": "quality",
"answers": [{
"name": "out of focus",
"value": "out_of_focus",
"featureHash": "j/7dpSmi"}],
"featureHash": "uZmB5YZC",
"manualAnnotation": true
}]
}
}
Key | Description | Notes |
---|---|---|
classificationHash | The classification's hash | The 'hash' represents a unique identifier |
classifications | A list of information about the classification | |
name | The classification name | As set in the ontology (Quality in the example above) |
value | The classification value | Always the same as the classification name |
answers | A list of all classification answers | "answers" refer to the values the classification were set to. |
name | The name of the classification answer | "out of focus" in the example above |
value | The classification answer's value | Always the same as the classification answer's name |
featureHash | The hash for the particular classification answer | Included in answers |
featureHash | The hash for the particular classification | |
manualAnnotation | true for all manually created labels. false for all labels created with automated labeling techniques |
export_history
The export_history
contains a list of all exports for this data unit, the first entry being the current export. Each instance contains the following:
"export_history": {
"0"
"export_hash": "Gqh06ypx",
"exported_at": "Mon, 02 Oct 2023 13:47:45 UTC",
"user_email": "[email protected]"
}
Key | Description | Notes |
---|---|---|
export_hash | The export instance's hash | The 'hash' represents a unique identifier |
exported_at | Date and time of the export | |
user_email | The email of the user that made this export |
Ontology shapes
All ontology shapes can be represented within an export.
Bounding Box
x
and y
represent coordinates of the top-left corner of the box. h
and w
respectively represent the height and width of the box.
"boundingBox": {
"h": 0.118,
"w": 0.1643,
"x": 0.6985,
"y": 6204
}
Polygon
Polygons contain the x
and y
coordinates for each vertex.
"polygon": {
"0": {
"x": 0.2423,
"y": 0.5115,
},
"1": {
"x": 0.4167,
"y": 0.4218,
},
"2": {
"x": 0.5821,
"y": 0.4641,
},
"3": {
"x": 0.5808,
"y": 0.5756,
},
"4": {
"x": 0.4564,
"y": 0.6397,
}
}
Polyline
Polylines contain the x
and y
coordinates for each vertex.
"polyline": {
"0": {
"x": 0.2423,
"y": 0.5115,
},
"1": {
"x": 0.4167,
"y": 0.4218,
},
"2": {
"x": 0.5821,
"y": 0.4641,
},
"3": {
"x": 0.5808,
"y": 0.5756,
},
"4": {
"x": 0.4564,
"y": 0.6397,
}
}
Keypoint
Keypoints are represented in the export using only x
and y
coordinates.
"point": {
"0": {
"x": 0.3192,
"y": 0.1547,
}
}
Rotatable Bounding Box
x
and y
represent the coordinates of the top-left corner of the unrotated box. h
and w
respectively represent the height and width of the box, while theta
represents the angle of clockwise rotation of the bounding box about the centre of the box.
"rotatableBoundingBox": {
"h": 0.118,
"w": 0.1643,
"x": 0.6985,
"y": 6204,
"theta": 305.7762
}
Bitmask
The rleString
encodes the Bitmask label, and has to be decoded. See our SDK documentation to learn how to decode an rleString
.
"objects": [
{
"bitmask": {
"rleString": "02220N:0F20N",
"top": 0,
"left": 0,
"width": 6,
"height": 6
}
}
]
Object primitive
Object primitives are referred to as skeleton
s in the export. Each point on the object primitive is represented in the export using x
and y
coordinates.
Below is an example of an object primitive with 3 points.
"skeleton": {
"0": {
"x": 0.5719,
"y": 0.7615,
"name": "point_0",
"color": "#fcc400",
"value": "point_0",
"featureHash": "qPCTeIci"
},
"1": {
"x": 0.5428,
"y": 0.6734,
"name": "point_1",
"color": "#fcc400",
"value": "point_1",
"featureHash": "o1NKWqKP"
},
"2": {
"x": 0.4865,
"y": 0.6464,
"name": "point_2",
"color": "#fcc400",
"value": "point_2",
"featureHash": "9bgJBA85"
}
}
Key | Description | Notes |
---|---|---|
name | Name of this point | As set in the ontology |
color | The hexadecimal color code used to represent this point | As set in the ontology |
featureHash | The hash for this particular point | the 'hash' is a unique identifier |
Exporting Bitmasks
Bitmask labels are exported as rleString
s. See our SDK documentation to learn how to decode an rleString
.
Tip
We strongly recommend exporting Bitmask labels using the Encord SDK. Bitmasks will be exported in the JSON format.
Tip
Use the COCO API to decode Bitmasks when using the COCO export format.
Exporting data using the Python SDK
Go here to learn how to export JSON files from Encord's Python SDK. Reach out to us to if you need to export COCO labels.
Updated 10 days ago