How to label

Labeling your data is what Encord Annotate is about. Labeling is initiated in the Queue tab of your Project. Annotators use the Project's Ontology to label data from Datasets that are attached to the Project.

Three types of annotation can be created:

  • Objects: Label specific parts of the data unit using a specified shape.
  • Classifications: Apply to a whole image or frame. They do not have a specific location.
  • Attributes: Can be nested into objects and classifications to add more details to the annotation.

👍

Tip

For more information on annotation types, see our documentation on Ontology structure.

Introduction to image annotation

Introduction to video annotation

Creating classification labels

  1. Navigate to the Queue tab of your Project.

  2. Select the data unit you want to label.
    The task opens in the Label Editor.

  1. Select the classification you want to apply to the frame / image from the list of classes on the left side of the Label Editor.

  2. Provide a classification answer.

    • Text classification: Type the classification answer in the text field that appears.
    • Radio button: Select one classification answer from the list of options. Radio buttons can have nested options.
    • Checklist: Select all applicable classification answers.
  3. If labeling a video, several options appear above the editor timeline.

    • This frame & save (hotkey Z): Apply the classification to the current frame and save.
    • This frame (hotkey X): Apply the classification to the current frame.
    • Set start to current (hotkey C): Defines the current frame as the start of the range to which the classification is applied.
    • Set end to current (hotkey V): Defines the current frame as the end of the range to which the classification is applied.
    • Add range (hotkey N): Applies the classification to the range of frames defined in the bar above the buttons.
    • Save (hotkey M): Saves the classification
  1. Ensure you save the classification.
    The classification appears in the list of all labels on the left side of the Label Editor.

Creating object labels

  1. Navigate to the Queue tab of your Project.

  2. Select the data unit you want to label.
    The task opens in the Label Editor.

  3. Select the object you want to label from the list of classes on the left side of the Label Editor.

  4. Apply the instance label.

👍

Tip

We recommend creating automated labels using SAM when drawing bounding boxes, bitmasks, and polygons.

  • Bounding box: Click once to start drawing the shape. A second click completes the shape.
Drawing bounding box video
  • Rotatable bounding box: Click once to start drawing the shape. A second click completes the shape. The box can be rotated.
Drawing rotatable bounding box video
  • Polygon: Click once to start drawing the shape. Click again to add a vertex. Add as many vertices as necessary. To complete the shape, double-click or return to the first vertex.
Drawing polygon video
  • Polyline: Click once to start drawing the shape. Click again to add a vertex. Add as many vertices as necessary. Double-click to complete the shape.
Drawing polyline video
  • Keypoint: Click once to add a keypoint.
Drawing keypoint video
  • Bitmask: Click and hold to draw a bitmask using the brush tool. For detailed information on using bitmasks, see our documentation here.
Drawing bitmask video
  1. Save the label by clicking the Save icon on the editor header.

Adding attributes

After creating an object or a classification you can add any attributes defined in your Ontology.

  1. In the Labels section of the Label Editor, click the Edit attributes button to add an attribute to an object or classification label.
  1. Add an attribute answer.
    • Text attribute: Type the attribute answer in the text field that appears.
    • Radio button: Select one attribute answer from the list of options. May have nested options.
    • Checklist: Select all applicable attribute answers.

Dynamic attributes

Attributes marked as Dynamic can change value over the course of a data unit, and are therefore only applicable to videos, image sequences, and DICOM volumes.

Bulk apply dynamic attributes

You can efficiently apply dynamic attributes in bulk to save time and effort. This is accomplished by identifying frames where the attribute changes value as "keyframes," and then applying attribute values between these keyframes.

  1. Apply object labels to all relevant frames.

  2. Add the dynamic attribute to the label in the first frame that the object appears in.

  3. Navigate to the point of the video or image sequence where the dynamic attribute changes value, and apply the attribute to the object here.

  4. Use the icon highlighted above, or the keyboard shortcut Shift + L to set keyframes on frames where the attribute changes value.

  5. Use the icon highlighted above, or the keyboard shortcut Shift + P to apply attribute values to all frames following a keyframe, matching the value set in the keyframe.

Apply to new occurrences

The Apply to new occurrences checkbox in the Label Editor is available for the first instance of a label with a dynamic attribute. Selecting this option propagates the attribute to all future instance labels, meaning all labels created for this instance share the attribute value of the initial instance label.

The 'Apply to new occurrences' functionality also holds for instance labels created automatically using interpolation.

Relation attributes

The Relation attribute allows you link objects, and specify the relationship between them using text regardless of the annotation type used.

ℹ️

Note

Only one of the linked objects need a Relation attribute for the objects to be considered linked. For example, consider 2 Ontology objects: a chicken, and a chicken wing. To allow these objects to be linked, a Relation attribute must be created for the chicken or the chicken wing, while setting up the Ontology.

All Relation attributes must be text fields. They cannot be radio buttons or checklists. Relation attributes can be applied to object labels of any kind, but not classifications.

To create a Relation attribute, enable the Relation feature when creating an attribute during Ontology creation. The default name for all Relation attributes is #relation.

Relation Attribute

ℹ️

Note

Objects are linked in the Label Editor during annotation, not during Ontology creation.

Using Relation attributes in the Label Editor

Once an Ontology with Relation attributes has been set up, instances can be linked in the Label Editor during annotation.

  1. Create both instance labels. For example, a chicken and its wing are labeled using bounding boxes.

  2. Click the Edit classifications button for the object with the Relation attribute. For example, to the chicken wing.

  1. Click the Set relation... bar and select the instance you want to link the selected instance to. In this example the chicken and the wing appear on the same frame, and therefore appear under the This frame heading. Instances in different frames appear under the heading Rest.
  1. Click Done. The instances are now linked. This is shown in the Instance labels section with the name of the linked instance being displayed.

Automated labeling

Encord provides several automated labeling techniques to accelerate your labeling.

  1. Segment anything model (SAM) allows you to automatically create labels around distinct features in all supported file formats.

  2. Interpolation is an automated process to estimate the location of labels between two manually created labels. Simply put, it is "filling in the blanks" between labels you've created.

  3. Object tracking is a process to estimate the location of a label based on pixel information enclosed within the labels you have manually provided.

  4. Auto segmentation tracking accurately tracks polygon and bitmask labels across a range of frames.

ℹ️

Note

If you want to build and train models to detect specific objects, see our documentation on models!