Attributes Concepts

Attributes for advanced Deep Learning Labeling.

📘

Guide for Admins

Introduction

In supervised Deep Learning a starting point is a single label, such as “Vehicle”.

However, real world input normally has more detail to it. For example this white vehicle is blocked (or Occluded) by the red vehicle. The light blue vehicle in the bottom right is out of the frame so it’s considered, Truncated.

806806

We may wish to further specify a percentage, for example we may say the white vehicle is 41–60% occluded. The Blue vehicle appears to be 81–100% truncated.

Here's an example of how attributes can display during annotation:

557557

For more examples nu scenes has a good guide.

Attributes are designed to provide an "infinite" level of detail to labels. Every instance (ie a bounding box) has unique attribute values. For example, one instance of Car may have the value "0 - 20%", while another has "61 - 80%"

As many Attribute Groups as Needed

Each label can have multiple groups. Labels may all shared the same groups or be all different.

656656

Attributes Templates

Template Groups are reusable. A label can have many Groups.

This saves a lot of work, if you have say 10 labels that all share similar Attributes!

  • Attributes templates are characteristics of a Label.
  • Attribute values are unique to every Instance
  • A label may have many Attribute Templates.

Process

  • Admins create Templates
  • Admins attach Templates to Labels
  • Annotators fill in the Values

Getting started creating Templates

Navigate to Attributes screen

Either diffgram.com/project/{your_project_string_id}/attributes
Or click the buttons in project/settings

826826

1. Create a new group

298298

2. Make a prompt and select a type

Internal Tag, this is for your use and is not shown to annotators by default
Prompt, text shown to Annotators.

19511951

3. Create Attributes

  • Does not apply if kind is Text.

This is the template for the the values that will be linked to the instances during selection.

925925

4. Attach label(s) to an Attribute Group

Can use "select all" if it applies to all labels.

855855

To remove a label from a group, select the label again.

Attribute Groups

A group of Attribute Templates

Name

For Internal use, not shown to annotators by default

Prompt

Text shown to Annotators.

Attribute Template

A single selection for a Group.

  • Name
  • Kind

Click edit or archive to remove an Attribute.

Defaults

Admin Perspective

For example "Is the car parked?" The default may be set to "Yes". Especially useful when the majority of Instances are a certain value. That way the user need only verify the value and/or choose the exceptions.

For selection types, you may choose any Attribute as the Default. In the case of text, may choose any text. More technically, for the Attribute, it's by reference. For text it is a string literal.

Considerations

  1. The Default is saved with the Instance. If the Default is changed, it will effect only future Instances.
  2. Only applies to Instances created through the Diffgram UI. Instances created through other processes (eg import), won't have the defaults applied until a user interacts with the data.
  3. Regular "timing" rules apply. So for example, the Default (Template) will be frozen along with other choices for the Task Template.
729729 618618

Studio Perspective

Defaults show up as a pre-selected value.

Caution: The Instance must be selected at least once for default value to populate. In some cases this selection happens automatically, otherwise select the instance to populate the default value.

590590

Export Spec

Exported attributes are available in the instance_list, for every instance under the key attribute_groups.

attribute_groups is a dictionary where the key is the id of the group and the value is the value for the template.

"instance_list": [
      {
        "type": "box",
        ... 
        "attribute_groups": {
          "8": {
            "name": "the template option that was selected",
            "archived": false,
            "display_order": null,
            "id": 15,
            "kind": "select",
            "value_type": null
          }
        }
      },
      { 
           ... another instance
       } 
...
]

Note: If there are no attributes for an instance the value of attribute_groups will be null.

Each export has a single key attribute_groups_reference which has information on the groups, for example:

"attribute_groups_reference": [
    {
      "id": 8,
      "is_root": true,
      "name": "test_group_name",
      "prompt": "a prompt written is a prompt earned",
    }
  ]

Note: If there are no attribute_groups_reference the value will be an empty array.

Permissions and Limits

Requirements to Create Templates

Editor or admin Permission

Limits

30 Templates per Group
5 Groups Per Label


What’s Next