Annotation Instructions
Annotation instructions can be created, viewed & managed by anyone with access to the project the has the workspace role Project manager, Developer or Admin .
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 the Classes cars and pedestrians. In addition, you may also want to clarify class-related annotation rules in a separate guideline document, for example, that the 3D bounding 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.

- 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 line | 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 each with its' own properties. |
2D point | Place a point in a 2D space. |
3D point | Place a point in a 3D space. |
3D line | Place a line using x, y, and z coordinates. |
3D lane | Place a polyline in 3D with a width that's defined by the left and right edges. At each node, you will get the left and right points which are orthogonal to the direction of the geometry. |
2D Instance segmentation & 3D Bounding box | Mark an instance of a class in an image using a polygon in 2D and an object in a point cloud using a cuboid in 3D |
2D line & 3D Line | Mark an object with a polygon in 2D and with a cuboid in 3D |
Add condition to a property in a class card
Any property added to a classification can be used under a condition of another property. This is also available in Scene properties.
Nesting is only supported for properties of the type True / False and Multiple choice where the number of selectable options is Single.

Class collections
With this feature, users can group classes into a class collection and add properties to it.
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 New Class button at the bottom of the screen.


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. |
Number | Used if you need number as input. |
Reference point | Corner point on a vehicle e.g. |
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.
Scene 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 |
Free form text | Used if you need text as input. |
Number | Used if you need number as input. |
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 |
|---|---|---|
Persist shape properties | Property shapes will be interpolated in the same way as normal shapes | false |
Enable Copilot | Use pre-annotations as predictions for copilot. | 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. | 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 | When enabled, machine-assisted drawing will be activated by default, and users will be forced to draw cuboids with machine-assisted center/side mode. When not enabled, users can select other drawing tools for cuboids, such as 'Point mode'. To use machine assistance, users must hold 'shift' when drawing. Without this setting, there's a risk that users will not use the tools available to them to be as productive as they can. | false |
Default point cloud color mode | Default point cloud color mode. Can be changed by the user. | Last selected by user |
Override multi-lidar colors | In a multi-lidar setup, each lidar sensor is assigned a default point cloud color based on its ID. If the default colors lack sufficient contrast, specify the sensors to override and customize their colors below. | false |
Region of interest | Defines one or more regions from a bird's eye perspective. The first region blocks annotation outside its boundary. Additional regions are visual guides only. Enable 'Join across frames' to unify a region across all frames following ego movement. Dimensions are in meters. In ISO8855, X is length and Y is width. | |
Enable Multi-Sensor | When enabled, annotators will be required to pick a primary lidar-sensor, for which an object is mostly visible in. The export will also be affected by this. Required for all inputs using multiple lidars to get compensated boxes for all lidar sensors. | false |
Disabled sensors | Disabled sensors can't be chosen as primary sensor. Their corresponding point clouds are also hidden by default, and need to be toggled on via a settings menu in the task view. | false |
Export at frame timestamp | Determines whether the exported open-labels should reflect the motion-compensated point cloud or revert to the original non-motion compensated point cloud. | false |
Disable field of view toggle | Enforces the user to see the tasks in configured point cloud highlight mode and prevents them from switching between field of view and full view modes. | false |
Disable interpolation | Disable interpolation for sequence data. | false |
Multi-lidar sensor coloring | When using a multi-lidar setup, you can specify the point cloud colors for the different lidar sensors, making sure that these become distinct. | Randomly generated colors |
Always export at image timestamps | Determines if multi-sensor exports should always contain cuboids projected to each camera's shutter time, or only if the annotated object is visible in the camera. | false |
Include 3D bounding box point count | The number of points inside each 3D bounding box will be added as a property to the export. If multi-sensor is enabled the point count from each sensor in the annotated box will be included. | false |
Include region of interest | The region of interest will be added to the export as a 3D Line. | false |
Include 3D bounding box & 3D line projections | Will calculate the projection of 3D bounding boxes and 3D lines and include in the export. 3D lines will be represented as a 2D line or a 2D polygon if the line is closed. 3D cubes will be projected into extreme point boxes. | false |
Aggregate point cloud | Aggregate sequential point clouds across frames in order to improve the visibility of static features, e.g. lanes and road markings. | false |
Densify during export | Controls the export. When enabled a shape will be created for every timestamp in the scene. Otherwise geometries will only be included for the first timestamp. | false |
Guideline
A guideline is a document that describes how to annotate.
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.
You can select the type of scene you would like to preview the revision for. Options are a generic single-lidar, generic multi-lidar, or a specific scene by providing its UUID.
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.

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