Exploring more complex forms of annotation.
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.
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.
Attributes can also cover other concepts, for example common in self driving:
For more examples nu scences has a good guide.
How do we actually create these templates for our own projects?
In Diffgram here’s our approach.
1. Create a new group
Groups are reusable. This saves a lot of work, if you have say 10 labels that all share similar Attributes!
2. Name your group and make a prompt
The Prompt is the text shown to Annotators.
3. Create Attributes
This is the template for the the values that will be linked to the instances during selection. Like a form builder, where we lay out the questions, and allow each response to be different.
4. Attach label(s) to an Attribute Group
To annotate attributes
- Select an Instance by clicking on it
2. Select the attribute value
3. Save it
- When the file is saved it saves all instances. If you are using the normal complete and save flow, then saving is handled as part of that and no further action is needed.
Exported attributes are available in the
instance_list , for every
instance under the key
attribute_groups is a dictionary where the key is the
id of the group and the value is the value for the template.
"name": "the template option that was selected",
... another instance
Note: If there are no attributes for an instance the value of
attribute_groups will be
Each export has a single key
attribute_groups_reference which has information on the groups, for example:
"prompt": "a prompt written is a prompt earned",
Thanks for reading!