Properties

Enhance data labeling and classification in V7 with Properties: your solution for comprehensive tagging, categorization, and metadata enrichment in annotations

Overview

Properties enable users to add and edit detailed information to their annotations. This feature streamlines the labeling process and enriches your dataset for downstream ML development.

Properties allow you to ask specific questions about each annotation. This interactive approach enables the collection of intricate details that go beyond basic labeling, thereby creating a richly annotated dataset. The benefits of this feature are multifold: it fosters a deeper understanding of the annotated objects, enhances the quality of the training data for ML models, and allows for more nuanced AI behaviours based on these detailed annotations.

Property Types

Depending on what your use case requires properties can be either:

  • Single Select
  • Multi-Select

Creating Properties

Properties can be seamlessly added to both new and existing Classes via the V7 Class menu. The process involves naming the property, framing a guiding question for labelers, and specifying the options.

Note: Labelers are restricted from adding new property options during the labeling process; these must be defined in advance.

Required Properties

When adding or editing properties through the V7 Class menu, you now have the option to mark properties as 'required' by simply toggling a switch. This designation means that labelers will not be able to complete an item without specifying these required properties.

Making a property required is a powerful tool for ensuring data completeness but it also adds a layer of mandatory interaction for labelers as it will prevent them from moving through stages if they are not complete.

📘

Changing Required Status

If you change a property from optional to required during an active workflow, there may be some files that have already completed the workflow that are missing the property. Additionally, labelers in this workflow will immediately be required to complete the property.

Annotating with Properties

Labelers can choose the appropriate properties for each annotation instance during labeling.

Property Editing

  • Select an annotation and use the right-hand toolbar in the workview.
  • Click on the centroid of an annotation to open the property editor.

📘

Viewing Properties

When working in the annotation interface, you can view the properties in the annotation side panel by using the "Toggle Sub-Annotations" button. If you prefer keyboard shortcuts for efficiency, simply press SHIFT-H to toggle the view of these properties.

Labeling with Required Properties

During the annotation process, the Review Panel will dynamically update to reflect the number of required properties that need to be specified before proceeding. These required properties are easily identifiable by a red star next to their names.

If a labeler attempts to finalize an annotation without completing all required properties, a pop-up notification will appear, preventing further progress. This will take the labeler to the Review panel and guide them to complete the properties before proceeding.

Importing Properties

When you download any export containing at least one property, you'll notice that the export contains a metadata.json file inside a hidden .v7 folder. This file contains various metadata about each property present in the export including:

  • The property name
  • Whether it's single-select or multi-select
  • It's description
  • Whether it's a required property or not
  • The property values themselves along with their colours

For example:

"properties": [
        {
          "name": "single1",
          "type": "single_select",
          "description": "Property description",
          "required": false,
          "property_values": [
            {
              "value": "123",
              "color": "rgba(219,255,0,1.0)"
            },
            {
              "value": "12",
              "color": "rgba(255,0,122,1.0)"
            },
            {
              "value": "1",
              "color": "rgba(219,0,255,1.0)"
            }
          ]
        }
  ]

It's included because without it, if you were to import property values that don't yet exist on the relevant classes, the definitions in metadata.json are used to create & link those properties to the relevant classes.

Therefore, when importing properties that don't yet exist on the relevant classes, you'll need to either:

  • 1: Construct a .v7/metadata.json file, or:
  • 2: Pre-create and assign all properties to their classes before importing. This can be done manually in the UI or with the API. In this case, you will not need to create a .v7/metadata.json file.

🚧

Successfully Importing Properties

To successfully import annotations with properties, please ensure that:

  • 1: The import is run from the same directory as the .v7 folder containing your metadata.json file. Otherwise, the importer will be unable to find this file

  • 2: Each annotation with properties has a unique ID, for example:

Deleting Properties

Deleting properties from a class can be performed within the Classes menu. Here's what you need to know:

❗️

Considerations Before Deletion

Data Impact: Be aware that deleting a property will remove all associated annotations of this property across all datasets. This action is irreversible!

Steps to Delete a Property

  1. Navigate to the Classes menu.
  2. Locate the class from which you want to remove a property.
  3. Select the property to be deleted.
  4. Confirm the deletion. Ensure you understand the implications of this action.