PROJECT MANAGEMENT

Annotation Instruction

14min

An Annotation Instruction is a specification of what you want to be annotated, but also an explanation or guidance of how you want it to be annotated. For example, you may specify that you would like to annotate cars and pedestrians, which we call Classes. In addition, you may also want to clarify class-related annotation rules in a separate guideline document, for example, that the 3D box annotations around each car should not include the side mirrors.

Where can I find it?

Defining your Annotation Instruction is done in the project where you want the annotations delivered. The tool is available under the tab Annotation Instruction.

ο»Ώ

ο»ΏRevisionsο»Ώ

You can have multiple revisions of your annotation instruction. This becomes important when a version of your instruction has been used in production. Once used in production, it has to be left in that state to keep a version-controlled history that allows us to go back and see which version was used when producing a specific annotation. As you learn more about your dataset, you probably want to update your instruction, which is handled by creating new revisions.

Revision states

A newly created revision will always be in draft mode. The following flowchart describes the different states a revision must go through to be available to use in production.

Illustration of a revision's path towards being used in production.
Illustration of a revision's path towards being used in production.
ο»Ώ
  • ο»ΏDraft - A draft where everything is editable.
  • ο»ΏPublished - A published revision is considered completed and locked for further changes. However, to use it in production some configuration still needs to be added by Kognic experts.
  • ο»ΏReady for production - A revision that is ready for production has been extended with the required configuration and is ready to be used in production. The revision is locked for further changes.

Revision visibility

ο»ΏAll revisions that are either published or ready for production are visible to every project manager with access to the specific project. Revisions in draft mode can either be private or public.

  • Private drafts - Only visible to the creator when listing revisions. If the creator shares a link to their private draft, the revision is still viewable (and editable) by another manager with project access.
  • Public drafts - Visible (and editable) by any manager with project access. This is mainly used to ease collaboration when working on a revision together.

Revision content

Each revision contains Classes, Class Properties, Scene Properties, and a Guideline. A description of each part can be found below.

Classes

A class is a description of what type of objects you want to have annotated, e.g., cars or traffic signs.

Geometry Type

ο»ΏThe Geometry Type of the class determines which tool you want it to be annotated with, e.g., a 3D cube or a semantic segmentation polygon. Each annotated instance/object of a class will get a unique ID in the exported content. You can connect Class Properties to your class in order to annotate object attributes, e.g. if a car is parked or not.Β ο»Ώ

ο»ΏWe currently support the following Geometry Types:ο»Ώ

Geometry Type

Description

2D bounding box

ο»ΏMark an object in an image using a box.ο»Ώ

ο»Ώ3D bounding boxο»Ώ

ο»ΏMark an object in a point cloud using a cuboid.ο»Ώ

ο»Ώ2D & 3D bounding boxο»Ώ

ο»ΏMark an object in both an image and a point cloud using a box and a cuboid.ο»Ώ

ο»Ώ2D semantic segmentationο»Ώ

ο»ΏMark a class in an image using multiple polygons.ο»Ώ

ο»Ώ3D semantic segmentationο»Ώ

ο»ΏMark a class in a point cloud using multiple 3D polygons.ο»Ώ

ο»Ώ2D instance segmentationο»Ώ

ο»ΏMark an instance of a class in an image using a polygon.ο»Ώ

2D polyline

ο»ΏMark an object, e.g. lane marking or object boundary, in an image using a polyline.ο»Ώ

2D Point Cluster

Allows you to place a set amount of points and each with its' own properties.

Add condition to a property in a class card

Any property added to a classification can now be used under a condition of a another property. 
This is also available in Scene properties.

Document image
ο»Ώ

Class collections

With this feature, users can group classes into a class collection. It is also possible to add properties to a class collection.

Class collections are created in the classifications tab. Simply select the classes you want in your collection with the left hand checkboxes and then click the create class collection button at the bottom of the screen.

Two classes selected
Classes selected
ο»Ώ
Document image
ο»Ώ

Class properties

If you want to annotate specific attributes on a class object you can add Class Properties. These can be reused for multiple classes in the revision. We support a variety of class Property Types ranging from true or false (boolean) questions, to drawing sub-objects within your annotated object.

Which properties you can connect to your class depends on its geometry type. Some property types, like Horizontal reference line, are only available for 2D bounding box geometries.

We currently support the following Property Types:

Property Type

Description

Multiple choice

Use when your question can be answered with either a single answer or multiple answers from a set of options. The different options can be configured to your need.ο»Ώ

True / False

Use when your question can be answered with either true or false

Connect object

ο»ΏUsed if you want the property to match with another annotated object. For example, used when you want to answer which object another object is pulling.ο»Ώ

Free form text

ο»ΏUsed if you need text as input.ο»Ώ

Horizontal reference line

ο»ΏUsed to mark a horizontal line within a 2D bounding box.ο»Ώ

Vertical reference line

ο»ΏUsed to mark a vertical line within a 2D bounding box, e.g. to indicate the closest corner of a vehicle.ο»Ώ

Scene properties

Scene Properties are questions/attributes on the uploaded scene instead of the class, for example, what the weather is. They are very similar to class properties, except that you can't use property types only applicable for classes, e.g., connect object aren't available.

Configuration

Configuration contains various advanced global task settings. Most of these settings can be edited in the UI, but it is also to edit settings throught the JSON editor since some advanced and experimental features are not yet available in the UI.

setting name

Description

Default value

Multiple time instances

Allow multiple feature instances over time with the same id. If an object reappears the id is preserved.

false

Persist shape properties

Property shapes will be interpolated in the same way as normal shapes

false

Interpolate polygons

Enables interpolation of regular Polygons (not MultiPolygons).

false

Allow outside image

Used for limiting drawing to be within a percent of the image width/height. Set it to 0 (zero) to force all shapes to be within the image. Value needs to be in range 0-1.

0.5

Disable histogram equalization

Disable the histogram equalization functionality

false

Disable image settings

Disable image settings for controlling brightness and contrast.

false

Use frustum

Show frustum in lidar based on the camera calibration to highlight the area which the image corresponds to.

true

Frustum length

How long you want the frustum to be in meters.

10000

Disable filter empty cuboids

Disable the filter empty stationary cuboid feature in lidar cuboid sequence tasks.

false

Disable field of view toggle

Disable the toggle function for fov in lidar

false

Projections

Enable time compensated projections both from 3D to 2D and 3D to 3D.

false

Require polygon coverage

Require that polygons covers the entire image

false

Enable 2D layering

If true all drawn 2D shapes will have an "order" which dictates which objects are in front of other objects.

false

Default to cuboid estimation

Use Cuboid Estimation automatically for all shapes that can use Cuboid Estimation.

false

Default point cloud color mode

Initial point cloud color mode. Can be changed by the user.

Last selected by user

ο»Ώ

Guideline

Upload the guideline associated with the annotation instruction here.

ο»Ώ

Tips & Tricks

Below are some tips and tricks to help you succeed when creating your Annotation Instruction.

Help annotators by keeping your elements in an intuitive order

ο»ΏAll items that can be moved and rearranged, e.g.ο»Ώ

  • Classes
  • A class's properties
  • A multiple-choice property's options
  • Scene properties

will also appear in the same order for the annotators in the Task view. Placing these entities in an intuitive order will help the annotator while annotating!

Preview your annotation instruction in a task context

While adding classes, class properties, etc., you can easily verify that the annotation instruction looks and behaves as intended by using the preview tool.

The preview tool will open the instruction together with some dummy data in the Task view. This is done by simply pressing the preview button.

Preview Button
Preview Button
ο»Ώ

You can also share the preview link by copying the URL if you want someone else to have a look at your work.