Label Editor - Annotation
This documentation provides a comprehensive guide to using the Label Editor for annotation, covering its components, features, and the display of various elements.
For information on how to label, see our documentation here.
Annotation
Introductory Video Tutorials
The following video goes through the basics of annotating images in the Label Editor.
The following video goes through the basics of annotating videos in the Label Editor.
Annotation mode components:
- A. Editor menu
- B. Quick toolbar
- C. Classes
- D. Instances and Frame labels
- E. Automated labeling
- F. Editor timeline (for videos and image sequences only)
- G. Annotation canvas: displays the media asset and provides interface for drawing and editing labels.
- H. Editor header
- I. Skip or Submit
Copy / Paste Labels & Instances
Using the copy and paste features in the Label Editor can significantly save time and effort. Here’s how you can efficiently use these features:
-
Copy: To copy both the label and the instance, use the keyboard shortcut CMD + C on Mac or Ctrl + C on Windows.
-
Paste instance: To paste the copied instance, use CMD + V on Mac or Ctrl + V on Windows. Instances can only be pasted onto a different frame from where they were copied.
-
Paste Label: To paste just the label / shape, use CMD + Shift + V on Mac or Ctrl + Shift + V on Windows. Labels can be pasted onto any frame.
Bulk Label Operations
Fixing incorrect labels is an important step in producing high-quality datasets. With bulk label operations, annotators can merge labels which should really be one instance, or efficiently delete multiple labels in bulk.
Bulk label operations are accessed in the editor menu.
Merge operations
Merge one or more label objects into a single object.
- Select all objects to be merged in the Select objects to be merged drop-down menu.
- Select the target object in the Select objects to be merged into field.
- Click Merge.
Delete operations
Encord lets you perform bulk delete operations as follows:
Remove labels of a specific class:
- Select a class to delete from the Select class menu.
- Specify the frame range.
- Click the Delete button.
Delete all labels within a frame range:
- Navigate to the Delete all labels from range section.
- Set a range to delete labels from.
- Click Delete.
Delete labels below a specified confidence level:
- Navigate to the Delete labels below confidence section.
- Set the minimum confidence threshold. All labels with a confidence value below this threshold are deleted.
- Specify a range of frames to delete the specified labels from.
- Click Delete.
Classes
In annotation mode, the Classes section of the Label Editor shows you the available Ontology classes, both objects and classifications. You can create a new instance by either clicking the desired class, or by using the indicated instantiation hotkeys. Learn more about Ontologies in general here or learn more about the details of Ontology structure on Encord.
Instances and Frame labels
The canvas is your labeling area to annotate the instances of the Ontology classes.
-
An instance is a specific occurrence of a class. For example, if you have a class called “Car”, an instance of this class could be “Car(0)”, which might represent a specific black sedan. This single instance can appear in a single frame or a range of frames, and therefore, instances may contain multiple labels across frames. You can think of an instance as a unique object that belongs to a certain class.
-
A frame label is a frame-specific annotation of an instance. For example, the annotation of “Car(0)” on frame 201 is a label. Labels are used to annotate instances in specific frames, providing more detailed information about the instance in the context of that frame.
Skip or Submit labels
Submit tasks
Labels are applied in the Label Editor. Click the Submit button to submit your labels for review.
Skip tasks
Users have the option to skip tasks in instances where, for example, the file is blurred, or if they suspect the task was erroneously added.
When a user skips a task, it is automatically unassigned from them, and the task’s status is updated to Skipped. If another task is available, it automatically opens in the Label Editor and is assigned to the user.
- Click the Skip button to skip an annotation task.
- A dialog appears. Enter a reason for skipping the task - the reason is added as a comment to the task that annotators and reviewers can see. If no reason is entered “This task was skipped” is added by default.
View Annotator Instructions
The Annotator instructions button is available in the top-left corner of the Label Editor if annotation instructions are provided by the Admin or Team Manager.
Confidence Score
Each instance or label is assigned a confidence score (denoted with the symbol α) that appears next to the label name.
The confidence score is a measure of a machine learning model’s certainty that a given prediction is accurate. The higher the confidence score, the more certain a model is about its prediction.
Manual labels are always assigned α = 100%, while label predictions created via models and automated methods such as interpolation will have a confidence score below 100% (α < 100%).
Models allow you to select a Minimum confidence threshold that determines the lowest confidence that label predictions can have to appear as annotations. It ranges from 0 to 1.
A Minimum confidence threshold of 0.6, as seen in the image above, states that only labels above a confidence score α = 60% will be accepted as labels.
Labels pane
The Labels pane shows all the instantiated objects and classifications for a data unit. Objects are grouped first by class, and sorted by creation time within each class, with earlier objects on top. They are named in an “ABC (0)” format, where ABC is the Ontology class and 0 is the first instance annotation.
- A: Toggle between showing displaying all labels, or only labels in the current frame.
- B: Show / Hide details for this instance.
- C: The range of frames the instances appears on.
- D: Attributes the object has and the frames they appear on.
- E: Filter by frame range.
- F: Sort label instances.
- G: Search for an instance.
- H: Show / Hide labels.
- I: Show / Hide labels for this instance.
- J: Additional actions. Described below.
- K: Keyboard shortcut to create a label for this instance.
- L:Edit attributes for this instance.
- M: Add a new label for this instance.
- N: Toggle auto-annotation for SAM.
Click the three dots icon to access additional actions:
Copy URL: Copies the URL for the particular object.
Copy identifier: Each object instance is automatically assigned a unique alphanumeric ID, which can be used to identify it within the project. This ID is sometimes known alternately as a feature hash, instance hash, or instance identifier. For objects and classifications, it may also be known as the object hash or classification hash. Use this button to copy the instance identifier to your clipboard — which may help in workflows using specific instances in source code or for other purposes.
Track from this frame: Initiates single object tracking. This type of automated labeling creates labels for the specified object from the current frame, according to the Single object tracking settings section in the editor settings.
Interpolate: Interpolates this object’s location for a range between specified frames. Please see our documentation on interpolation for more details.
Go to object: Navigate to the specified object in the data asset. If it is present in more than one frame, the first frame the object appears it will be shown.
Split object track: In some cases, particularly when many objects overlap, labels may be associated with the correct instance in several frames, but later become associated with a different instance. In those cases, use the Split object track feature, which will split the labels from one instance into two at the frame specified.
Change class: Use the drop-down in the modal to change the current class of an instance. You can only switch within classes of the same annotation type. For example, you cannot switch from a bounding box to a polygon.
Delete object: Delete an object from a single frame or a range of frames. To delete labels between frame ranges, move the frame slider to the desired frames, or input the From and To (exclusive) values in the relevant form. Delete actions are recorded in the User activity log. You can view the deleted objects in the Activity reports.
Attributes
The details pane allows you to modify attributes efficiently. For dynamic attributes, use the ‘Preserve chosen state’ feature. When this feature is toggled ‘ON’, any subsequent labels for that instance automatically inherit the same dynamic attribute value as the frame where ‘Preserve chosen state’ was enabled.
If you have numerous attributes, use the search bar to quickly find specific attributes or attribute values.
Automated Labeling
Automated labeling includes several techniques to quickly create labels and classifications automatically.
- models must be created and trained before use.
- Object tracking and interpolation do not require set up or training, and are always available.
- Click the Automated labeling button to open the Automated labeling panel.
- Select the type of automated labeling you want to use.
- Run automated labeling for the selected objects.
Alternatively, run object tracking or interpolation on videos, image groups, and image sequences by:
- Right-clicking a label.
- Selecting Track from this frame to initiate object tracking or auto-segmentation tracking, or select Interpolate to interpolate the selected object instance.
Segment anything model (SAM)
Segment anything model (SAM) allows you to create labels around distinct features in all supported file formats.
- Click the wand icon within the polygon class.
- Click on the part of the frame or image you want segmented.
- Left-click a section you want to add to your label.
- Right-click a part of the selected area to remove it from the label.
- Click Add label once the area you want labeled is highlighted.
Edit polygons and polylines
Encord provides multiple tools to edit polygon and polyline labels after they have been created.
Move vertices:
Click and drag a vertex to move it to a new location.
Adding a polygon or polyline vertex:
You can add more vertices to a polygon after it has been created.
- Click the polygon you want to add a vertex to
- Click the position along the edge of the polygon you want to add a vertex. Repeat to add as many vertices as necessary.
Removing a polygon or polyline vertex:
You can remove the last vertex by pressing the Backspace key.
Remove vertices from a polygon as follows:
- Click the polygon you want to remove vertices from
- Right-click a vertex to delete it
Polygon and polyline brush tool:
Use the brush tool to modify the edge of a polygon or polyline in a free-hand manner.
- Right-click the polygon you would like to edit.
- Click Edit with brush or click the G hotkey. A floating brush tool menu appears.
- Adjust the brush size to suit your needs.
- Mouse over location you would like to start editing from, and click and hold to start the edit process.
- Drag the cursor freely to draw out the new polygon edge let go of mouse to finish editing.
Eraser tool:
Use the eraser tool to remove any part of a polygon in a free-hand manner.
- Right-click the polygon you would like to edit.
- Click Edit with brush or click the G hotkey. A floating brush tool menu appears.
- Select the eraser tool.
- Adjust the brush size to suit your needs.
- Mouse over location you would like to start editing from, and click and hold to start the edit process.
- Drag the cursor freely to draw out the new polygon edge let go of mouse to finish editing.
Editor Canvas Interactions
Shape-specific interactions:
Shape | Interactions | Modalities |
---|---|---|
Bitmask | Ability to move (one or multiple) | All |
Ability to ‘select multiple’ with Shift + click | All | |
Draw using polygon ‘pen’ | All | |
Panoptic mode | All | |
Polygon | All | |
Add vertex with left-click | All | |
Remove vertex with right-click | All | |
Polyline | All | |
Add vertex with left-click | All | |
Remove vertex with right-click | All |
Right-click interactions:
Shape | Right-click Interactions | Modalities |
---|---|---|
Bounding Box | Track from this frame | Videos, image groups, and image sequences only |
Bounding Box | Interpolate | Videos, image groups, and image sequences only |
Bounding Box | Split object track | All |
Bounding Box | Change class | All |
Bounding Box | Copy identifier | All |
Bounding Box | Delete object | All |
Bounding Box | Copy URL | All |
Rotatable Bounding Box | Track from this frame | Videos, image groups, and image sequences only |
Rotatable Bounding Box | Interpolate | Videos, image groups, and image sequences only |
Rotatable Bounding Box | Split object track | All |
Rotatable Bounding Box | Change class | All |
Rotatable Bounding Box | Copy identifier | All |
Rotatable Bounding Box | Delete object | All |
Rotatable Bounding Box | Copy URL | All |
Polygon | Interpolate | All |
Polygon | Split object track | All |
Polygon | Change class | All |
Polygon | Copy identifier | All |
Polygon | Delete object | All |
Polygon | Copy URL | All |
Polygon | Track from this frame | Videos |
Polygon | Edit with brush | All |
Polygon | Freehand edge touchup | All |
Polyline | Track from this frame | Videos, image groups, and image sequences only |
Polyline | Interpolate | Videos, image groups, and image sequences only |
Polyline | Split object track | All |
Polyline | Change class | All |
Polyline | Copy identifier | All |
Polyline | Delete object | All |
Polyline | Copy URL | All |
Polyline | Freehand edge touchup | All |
Keypoint | Track from this frame | Videos, image groups, and image sequences only |
Keypoint | Interpolate | Videos, image groups, and image sequences only |
Keypoint | Split object track | All |
Keypoint | Change class | All |
Keypoint | Copy identifier | All |
Keypoint | Delete object | All |
Keypoint | Copy URL | All |
Bitmask | Interpolate | Videos, image groups, and image sequences only |
Bitmask | Change class | All |
Bitmask | Copy identifier | All |
Bitmask | Delete object | All |
Bitmask | Copy URL | All |
Bitmask | Select more bitmasks to combine | All |
Bitmask | Track from this frame | Videos |
Object Primitive | Track from this frame | Videos, image groups, and image sequences only |
Object Primitive | Interpolate | Videos, image groups, and image sequences only |
Object Primitive | Change class | All |
Object Primitive | Copy identifier | All |
Object Primitive | Delete object | All |
Object Primitive | Copy URL | All |
Controls Common To Both Modes
Editor Layout
Contact support to gain access to custom editor layouts.
You can customize the default Label Editor layout by uploading a JSON file that defines your preferred arrangement. These JSON files can be added in the Project settings and are applied to all tasks in a Project.
Custom editor layouts depend on a file’s client_metadata
or their DICOM tags. This means that custom editor layouts only work for files that contain client_metadata
or DICOM tags. Watch the video tutorials below to learn how it fits together.
To upload an editor layout:
- Navigate to the Project settings.
- Click on Layouts.
- Click Upload JSON.
- Select the JSON file containing the layout you want the Label Editor to have.
JSON file requirements:
The JSON file must follow the JSON schema defined here. The following fields are required:
Complete example
Add client metadata to files
Editor layouts are based on DICOM tags for DICOM files or on client_metadata
for all other use cases. We provide templates for common mammography layouts based on DICOM tags here.
This example uses client_metadata
. The following SDK script can be used to add client metadata to specific data units in a Dataset.
Create a JSON file
Create a JSON for specifying the editor layout that suits your needs.
In the JSON file below:
-
The
grid
arrangement is configured to display two files side by side in the Label Editor. -
The
gridContent
section specifies that tasks in either position (0 or 1) can have client metadata values forencord-EditorGridPosition
set to eitherA
orB
. -
The
topLevelGridFilter
is defined asencord-LayoutGroup
, meaning tasks with matchingencord-LayoutGroup
metadata values are displayed together in the Label Editor, ensuring they appear side by side when they share the sameencord-LayoutGroup
values.
Create a JSON file
Upload the JSON file to your Project in Encord.
- Navigate to the Project settings.
- Click on Layouts.
- Click Upload JSON.
- Select the JSON file containing the layout you want the Label Editor to have.
Create a JSON file
Open any task in the task queue of your Project.
The JSON file in this example results in the following Label Editor layout.
Editor Menu
Open the editor menu by clicking the menu icon in the top left corner of the Label Editor.
The editor menu contains the following controls:
- Return to Project - Returns the user to the Project navigation.
- Save changes - Saves the current state of all labels.
- View - Allows users to change what information is displayed next to all labels.
- Bulk label operations (annotation mode only) - Allows the user to perform actions on many labels at once.
- Automated labeling (annotation mode only) - Lets the user choose between several automated labeling techniques.
- Dark mode - Toggle dark mode on and off.
- Keyboard shortcuts - Displays a full list of keyboard shortcuts.
- Editor settings - Opens the Editor settings.
Editor Header
The Editor header at the top-right of the navigation bar contains buttons and menu items to perform labeling activities as well as manage general app settings and notifications.
Icon | Name | Description |
---|---|---|
Help | Links to the: quick start guide, documentation, learning hub, and Encord support team. | |
Notifications | Shows the current status and history of actions taken in the application. This includes uploading datasets, training models, and exporting labels. | |
Share | Copies the URL of the asset currently being labeled or reviewed. | |
Save labels | Manually saves labels on the Encord server. | |
Label editor settings | Settings controlling your labeling and reviewing experience. | |
Comments | Add and view comments pertaining to a frame, or the entire data unit. | |
Issues | Shows any issues with submitting the current task, such as any objects or classifications marked as Required. |
Quick Toolbar
A toolbar with handy tools to:
- Rotate the label editor.
- Adjust filters; contrast, brightness, gamma, and pixelated scaling.
- Remove polygon vertices.
- Add comments to a frame or image.
- Quickly center an image.
- Zoom in and out.
Rotate the Label Editor
Click the Rotate toolbar icon on the quick toolbar to bring up a pop-up that enables you to rotate the label editor by using the slider, as shown below.
Pixelated Scaling
The Pixelated scaling feature enhances the visibility of individual pixels in an image or frame by disabling the browser’s automatic edge smoothing. This increased pixel clarity aids annotators in creating precise, pixel-perfect annotations, thereby improving their annotation accuracy, especially when zooming into an image.
Pixelated Scaling turned on | Pixelated Scaling turned off |
---|---|
Enable Pixelated scaling by selecting the Adjust filters icon ()in the Quick toolbar and enabling the Pixelated scaling checkbox, as shown below.
Pixelated scaling is a browser-specific feature. The table below shows which types of files Pixelated scaling works for Firefox and Chrome.
File type | Chrome | Firefox |
---|---|---|
Image | ✅ | ✅ |
Image group | ✅ | ✅ |
Video | ❌ | ✅ |
Image sequence | ❌ | ✅ |
Media Navigation Controls
The video frame slider lets you quickly scroll through frames in a video asset. Below the frame slider are a range of controls to let you play, skip and navigate through media. Notice that the navigation controls are not displayed in single images files, as well as any media with only 1 frame.
Icon descriptions:
The Time and Frame rate information for each frame is displayed in the far lower right corner.
Comments
Comments can be added during the annotation or review stages and are visible to any user accessing the data unit. All comments are visible in the comments pane, where any user can add a reply.
You can add comments to:
Task comments
Task comments relate to the entire task / data unit. For example, a comment relating to the resolution of a video is a task comment.
To add a comment to the entire task:
- Open the comments pane.
- Click + New comment.
- In the Apply to section, ensure that Entire file is selected.
- Type your comment.
- Press Enter on your keyboard to add the comment.
To reply to a task comment:
- Open the comments pane.
- Click Reply on the comment you want to reply to.
- Type the reply you want to add.
- Press the Enter key to add the reply.
Frame comments
Frame comments relate to the entire frame. For example, comments relating to all annotations on a particular frame are frame comments.
- Open the comments pane.
- Click + New comment.
- In the Apply to section, ensure that Current frame is selected.
- Type your comment.
- Press Enter on your keyboard to add the comment.
To reply to a frame comment:
- Open the comments pane.
- Click Reply on the comment you want to reply to.
- Type the reply you want to add.
- Press the Enter key to add the reply.
In-frame comments
In-frame comments can be added anywhere on a frame. For example, a comment regarding a particular object label is an in-frame comment. Comments cannot be added directly on an object label.
To add a comment to a specific location:
- Right-click the location you want to add the comment and select Add comment.
- Type your comment.
- Press the Enter key to add the comment. The comment icon now indicates in-frame comment.
To reply to an in-frame comment:
- Click the comment icon to open the in-frame comment. =
- Click Reply.
- Type the reply you want to add.
- Press the Enter key to add the reply.
Comments Pane
The comments pane allows you to see all comments on a data unit and to filter comments by type. Access the comments pane by clicking the icon, located in the top right corner of the Label Editor.
The symbols to the left of each comment imply whether the comment pertains to a particular frame, or the entire task.
Icon | Meaning |
---|---|
This comment applies to the entire task | |
This comment applies to a particular frame | |
This comment applies to a particular location within a frame |
To filter comments by type, click the settings icon in the comments pane and select the type of comment you want to display.
Issues Drawer
The Issues drawer will show any outstanding issues the user needs to resolve before moving on to the next task. It is accessed by clicking the icon on the editor header. The red number next to the icon indicates the number of issues that need to be resolved.
Issues include objects and classifications that have been marked as Required in the ontology.
Resolving Issues
To resolve all outstanding issues follow the steps below:
- Click the Issues icon to open the issues drawer.
- Click Create.
- Create the Required object or classification that’s missing and click Confirm.
- Re-open the Issues drawer and resolve the next issue.
Editor Lock
The “Editor lock” is a safety feature we implemented to prevent several people making changes to the same file - annotators labeling, or reviewers reviewing the same data unit.
A warning is triggered in two cases:
- When you have the same task open in two different tabs or browser windows:
- When a different user is editing the same task:
WACOM Tablet Support
Our Label Editor fully supports Wacom tablets and pens. You get the best experience if you enable freehand drawing mode.
Label Editor V1 (Legacy)
The following actions vary significantly between the legacy Label Editor V1 and the new Label Editor. To see how to perform these in the new Label Editor, see our documentation here.
Adding a polygon vertex - Label Editor V1
To add more vertices to a polygon after it has been created:
- Click the polygon you want to add a vertex to
- Click the Add vertex icon in the floating window that appears, or use the A hotkey to activate ‘Add vertex mode’
- Move the mouse, which should now be in a ’+’ icon, over the edge where you wish to add a vertex. The edge in question should highlight indicating you’ve placed the mouse correctly. Click to place a vertex
- Continue placing vertices until you’re satisfied. Press A or click the Add vertex icon on the floating toolbar to turn off add vertex mode
Removing a polygon or polyline vertex - Label Editor V1
To remove vertices from a polygon::
- Click on the polygon you want to remove a vertex from.
- Click the Remove vertex icon in the toolbar that appears, or use the S hotkey to activate ‘Remove vertex mode’.
- Move the cursor to the vertex you want to remove. The cursor should have a ‘cancel’ icon attached.
- Click the vertex you want to remove.
- Continue removing any vertices until you are satisfied.
- Click the icon from step 2 again, or press the S hotkey again to exit ‘Remove vertex mode’.
Freehand edge touchup - Label Editor V1
If you need to modify the edge of a polygon to account for complicated shapes or other requirements, the freehand edge touchup feature allows you edit the edge of the polygon in a free-hand manner, from one vertex to another.
- Click the polygon you would like to edit.
- Click the Freehand edge touchup icon in the floating toolbar that appears, or use the F hotkey to activate ‘freehand edge touchup’ mode.
- Mouse over the vertex you would like to start editing from, and click to start the edit process.
- Drag the cursor freely to draw out the new polygon edge. Navigate the cursor to the pre-existing vertex you want to finish on, and click to finalize the new edge boundary.
Was this page helpful?