Annotation Instruction
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.
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.
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.
ο»Ώ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.
Each revision contains Classes, Class Properties, Scene Properties, and a Guideline. A description of each part can be found below.
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. |
Any property added to a classification can be used under a condition of a another property.β¨This is also available in Scene properties.
Nesting is only supported for properties of the type True / False and Multiple choicewhere the number of selectable options is Single.
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.
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 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 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 |
ο»Ώ
Upload the guideline associated with the annotation instruction here.
Below are some tips and tricks to help you succeed when creating your Annotation Instruction.
ο»Ώ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!
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.
You can also share the preview link by copying the URL if you want someone else to have a look at your work.