Here you can create and edit label classes and attributes that will be used in your project.

Label classes

Label classes are the different types of objects and regions you want to annotate.

Every label class needs a type, a name, and a color. Requirements on attributes depend on what type of attribute you use.

Don't give a label class the same color as the object you want to label. For example, if you are labeling bananas, it is not ideal if the banana label class color is yellow as it makes it harder to see the object underneath the annotation.

When to use object and when to use semantic classes

Something that's unique in Hasty is that we require you to sort your classes into object and semantic classes.
The reason for this distinction is to allow panoptic segmentation while allowing users to control which assistant a specific class should be used to train.

For those with some computer vision experience, it might suffice to say that object classes are used to train our object detection and instance segmentation assistants. Semantic classes are used to train our semantic segmentation assistant.

For those newer to the field, you can think about it in the following manner:

  • In "object" classes, you can put any objects where you want to know how many of a certain object or instance there are - like the apple or orange above.
  • In "Semantic" classes, you can put background regions that don't necessarily have uniform shapes - like a tray, or plate.
In some cases, when doing semantic segmentation of an image, you might want to add classes like apple, orange, and peach as semantic classes.

Creating a new label class

You can create a new label class by specifying a type of label class, picking a color, and then writing a name for the new class. When you are done, press "enter" to create the new class.

An attribute is an additional layer of information that you can add to your annotations - allowing you not only to detail what class something is, but also to add a range of different metadata.

For example, attributes can be used to capture what particular style and color a fashion garment is, or annotate the age and gender of an animal.

Here's an example of attributes from an animal identification project

Creating an attribute

You can create a new attribute by clicking "Create new". This will open the following modal:

Here, you can give the attribute a name and description. Then, you pick a type. There are 6 types to choose from. These are:

  • String
  • Boolean
  • Number
  • Integer
  • Single Choice
  • Multiple Choice

These types control what type of input the annotator will be shown in the UI.

Example of types of inputs users will see when annotating

For Single and Multiple choice attributes, you also have to add values the annotator should pick from.

You do so by filling in the name of the value in the "Attribute values" input, and then press "enter".

Here we are creating a fourth option for annotators to choose from

The values that you put in as attribute values will then be shown to annotators in the annotation environment - like here:

Assigning attributes to classes

You might not want to have all attributes shown for every class. As an example, imagine you want to label different types of drinks. You might want to have some attributes for alcoholic drinks that are not needed for non-alcoholic drinks (alcohol percentage, the age limit for buying, etc). Because of that, we require you to match classes with relevant attributes. This can be done in two ways - you can either select which classes should be affected by the attribute here:

...or you can set which attributes apply to an attribute by editing the class like we do here:

Then, when an annotator selects an object with a given class, all matched attributes will be shown in the right menu.

Editing attributes

You can edit an existing attribute by clicking on it while being in this view. When doing so, you will be able to change the name and description of the attribute, as well as change the type and assigned class of the attribute.

If you remove an assigned class by mistake, don't worry. By reconnecting the class and the attribute, we will automatically re-add the data for every annotation made with that combination.

We also have a fail-safe in place to prevent users are trying to remove a value for an attribute when it's already in use for one or more annotations.

Deleting Label attributes

Sometimes, rather than editing attribute values, the users might want to delete the attribute. In this case, there are some points the user should keep in mind. It is not enough to delete the attributes allocated to masks to remove an attribute that has already been applied during annotation.

For example, we want to delete the attribute "color" and try removing it. We will get the following error:

To solve this error, we just have to make sure to clear links to the assigned classes by opening the edit card of attributes.

Once the assigned classes are removed, the attributes can be easily deleted.

To support image classification, we built our "image tags" feature that lets you add tags easily to an image, while also offering you a prediction service to speed up the process of creating tags by 2-3x.

You can create an image tag class and an image tag group. Under an image tag group, several image tag classes can be added.

To create an image tag group, simply click on the "Create new group" under Tag classes. The following dialogue will appear:

Give a suitable name for the tag group.

Then to create the class, click on "create new tag class". The following dialogue will appear:

You can put this class under the group of your choice. All the tag classes will be under the "default" group by default.

The image tag classes are also accessible through the annotation environment:

More about the image tags and their detailed usage can be found under image tags.

Giving guidance to annotators

Attribute descriptions are shown to users in the annotation environment when they hover over the question mark like here:

These descriptions can sometimes be good to add to provide some additional information for the annotator on how something should be labeled.

Last updated on Oct 17, 2022

Get to production reliably.

Hasty is a unified agile ML platform for your entire Vision AI pipeline — with minimal integration effort for you.

Start for free Request a demo