# Steps to Label

A labelling expert goes through the following steps to label an object. The[ Annotation Tool ](https://docs.imerit-prod.io/annotation-tool)provides features to aid with various steps of labelling:

1. [Scene Setup & Orientation](#id-1.-scene-setup-and-orientation)
2. [Navigation in Point Cloud](#id-2.-navigation-in-point-cloud)
3. [Object Identification](#id-3.-object-identification)
4. [Object Visibility](#id-4.-object-visibility)
5. [Object Labeling](#id-5.-object-labelling)
6. [Annotation Detail Input](#id-6.-annotation-detail-input), [Instance ID](#instance-id)
7. [Dimension Setting/ Modification](#id-7.-dimension-setting-modification)
8. [Interpolation](#id-7.-interpolation-for-a-moving-obj) (for a moving Obj.)
9. [Object Tracking](#id-9.-object-tracking)
10. [Cross-Checking](#id-10.-cross-checking)

## 1. Scene Setup & Orientation

* Setup point cloud visibility and density from Tool Settings (tool Footer).
* Fit the entire point cloud in the viewing window using Fit to Screen (tool Header).
* Jump to the centre (near the Ego vehicle) by using Jump to Origin (tool Header)
* Toggle to Fullscreen if desired (tool Header).

## 2. Navigation in point cloud

* Choose one of the two Navigation Controls to navigate in the point cloud based on your preference. (tool Header)

## 3. Object Identification

The tool provides multiple features & interactions that aid in object identification:

* Expand and collapse the image Panel whenever needed to cross-check the object/scene-related details.
* Use the help of the raycaster while navigating through the point cloud to see the respective coordinate highlighted in Camera Image(s).
* On hovering on the Cameras, a red cone (Frustum) will appear in the point cloud emerging from the Ego vehicle to indicate the direction the camera is facing.
* Enable the [Merge Point Clouds](https://docs.imerit-prod.io/annotation-tool/key-features/merged-point-cloud) across the frames to identify and mark stationary objects.

## 4. Object Visibility

For better object visibility during Drawing/ Marking use the following features:

* [Isolate](https://docs.imerit-prod.io/tool-layout#isolate) areas of the point cloud where the object is present by marking a boundary to hide surrounding/ background points.
* Hide points from bottom (ground) to top (ceiling) and vice-versa using the [Ground & Ceiling Mover](https://docs.imerit-prod.io/tool-layout#ground-and-ceiling-mover)

## 5. Object Labelling

* Switch to a desired view to start marking an object in the top view using [BEV Mode](https://docs.imerit-prod.io/tool-layout#bev-3d-mode) or 3 dimensionally using [3D Mode](https://docs.imerit-prod.io/tool-layout#id-2d-3d-mode).
* Identify the object either on the point cloud or on the camera sensors.
  * Pull up the Camera Sensors using the hotkey `Shift + Q` or double-clicking the camera sensor in the reference images.
* Click the '+' icon on the Class the object belongs to from the [Class List.](https://docs.imerit-prod.io/tool-layout#id-3.-class-list)
* All the Drawing Tools linked to the Class will appear. Select the appropriate one from the [Available Drawing Tools](https://docs.imerit-prod.io/annotation-tool/drawing-tools).

## 6. Annotation Detail Input

After marking the annotation, mark the annotation details in the popup that appears. Enter the Instance, Attribute Details and Relationship if any.&#x20;

### Attributes and Relationships

Once an annotation is created, the user needs to input the following:

#### a. Time-varying & Constant Attributes&#x20;

* Enter all the mandatory attributes ([constant](https://docs.imerit-prod.io/project-setup/create-recipe/3.-attributes#id-1.-attribute-type) and [time-varying](https://docs.imerit-prod.io/project-setup/create-recipe/3.-attributes#id-1.-attribute-type)).&#x20;

  <figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfF9LOoDhqOt5U6opjwdg7l61mSC7aMSSO02wJhkS7VG8cApGzmguaX85TEcG27HZMgr19-LCnsHieGDyHzh95783FnOZPZbpL54TQSSY8Kwks8XrVW5kq3ZRGneAtcko7jvNrDejbyMnGNf5BzaHIugOA?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>

#### b. Relationship

1. This tab is enabled if a [relation](https://docs.imerit-prod.io/project-setup/create-recipe/4.-associations#b.-create-relations) has been defined in the recipe generator.

   <figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXesi5FTa8Oid9ZxYYPfsUkeTqnOxmlSOMrCCbfGm5tSEKWOxB0QVNi8_GWeU_rnT3gUycq43XRzE11R1skrHWQ95NJvzZykMB0T8Hh8o1nSpdI08LTtCFMa6gspGg7PKKBZEEOLbC7ICL3u8RvYEAN71Bw?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>
2. Select the the Relation type from the dropdown.
3. Select the Instance it has a relationship with (multiple instances can be added).
4. The relationship between the two can be applied across all frames or only the current frame.
5. The view icon allows the user to see the list of frames the relationship exists on.

   <figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfaiA0rL1LnggBrc9_yACFoBdvLuZqYYYsCttf-npgaadc9t5h6Yyl1d2f2_AoURxnDg76PXoIhtEgumXl4KKDydDreJOM5lI1ZsYosfnzg8SAVTzOV5vLcH2yUEIsFxS7VhDL19CzIHTLoxxXHE03qfnk4?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>
6. Once the relationship is saved, the visual representation of the link is displayed over the point cloud with a line connecting the two instances.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfGAIKWWNC-KIYMQuWrz8SYLMUWE3ebP6xjv6s6SqH8JM3zzy8ypPbeSyJp3JFnBU-dmml57_fVOPmYmZBb1a0UM9b9xKMocTthly5nS_n06XqFzK0b1tZlvAUTyjE5OF3xsapwFw-OUhiU698gC_4It6tQ?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>

Learn more about the [Relationship feature](https://docs.imerit-prod.io/annotation-tool/key-features/relationship).

### Instance ID

An Instance ID is an identifier assigned to each labelled object across the batch of frames.&#x20;

* This instance ID can be used to track an object over multiple frames.&#x20;
* Instance ID can be viewed in the [status box](https://docs.imerit-prod.io/tool-layout#status) that appears on hover or selection of an annotation on the [class list](https://docs.imerit-prod.io/tool-layout#id-3.-class-list)
* Instances can be [created](#creating-instance), [modified](#changing-instance-id-for-an-annotation-across-frames) or [merged](#merging-instance-id).

  <div align="center"><figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfxR2LzhVWo-mhwAxVFlu75y0Tp5yiRmQneS9RQQFbtJ4dXmAZsx5wHV-5jPdq75bgVOmeGeoSnNlJX8GoivqXJ-xPhBiEZ8CNoZOBTFfYMI3k9rluyXld5evhf97gD5ubtJuQ1QgLqrSjii6kxtuGp2Xus?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure></div>

  <figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcCQNlz_uC92TRov9d1bfR8KLbBrQ3puPIka-xPeEbWDTsDOaIiflCzZWQS6jKkhatXpSMoMOGfLC51R_e5EATSGwWXjlyMp0uGlsOlBEgsCru-FfQrv5ojJDZ-IQCCUSUWHa1QFRQRq8xpB1fmYsVgmUE?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>

#### **Creating Instance**

After creating an object, the user is asked to:

1. Create a new instance or select *+ Create New*.

{% hint style="info" %}
There will always be one unique instance per Frame and Sensor.
{% endhint %}

For example, only one object will have the ID  car\_1 which is present in Frame 1. This car could be present in 3 Cameras and the point cloud of Frame 1. Hence each of the 4 Sensors (3 Camera, 1 LiDAR) will have an annotation with ID car\_1.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXe3Kksf8V3bNrdWXUOoiuVUlaBnlsjmw0dGqF639Aj0gX2VAOVf3CvzS-Fi0ubvUSoph64MeAaU6BVL09x7COaVMilwli63_myHWEc2_4gmfSNf1BHGW3-Ownn3QKlqV0fny0wJ2p0BrgOTlOmJRFubWt8?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>

The Instance Dropdown allows 2 things:&#x20;

* Will allow the user to create New Instances
* Lists all the created instances that are missing in that Sensor (car\_48 in above eg.)

#### **Changing Instance ID** (for an Annotation across Frames)

1. Select the object.
2. Open the annotation details pop-up
3. Select *+ Create new*'. The tool will allocate a new unique ID to it.
4. Save the new Instance ID. This replaces the old Instance ID in all frames for that annotation.

#### **Merging Instance ID**

If the user realises that two instances are the same object, then merging of instances is required. Eg. `car_2` on Frame 10 is actually `car_1.`

1. Select the annotation you want to merge into another instance. (car 2 on Frame 10).
2. Right-click and select *Annotation Details.*
3. Open the instance ID dropdown. This dropdown has a lists of annotation IDs missing from that current frame and the option to create a new one.
4. Select the appropriate existing ID that the selected one needs to merge with (`car_1`).
5. Save and the old instance gets changed to the new selected one (`car_1` becomes `car_2` in Frame 10).

{% hint style="warning" %}
Merging instances is only possible when both instances have no overlapping Keyframes.&#x20;
{% endhint %}

## 7. Dimension Setting/ Modification

* On selecting an annotation, the multiview mode will be enabled on the right-side. Hover on the multiview mode to enable the annotation to modify it from the top, side, and front views aiding accurate dimension modification.&#x20;
  * Learn how to modify annotations using [Shortcuts](https://docs.imerit-prod.io/tool-shortcuts#drawing-tools-and-modification).
  * Learn how to use [Drawing Tools](https://docs.imerit-prod.io/annotation-tool/drawing-tools).

## 8. Interpolation (for a moving Obj.)

If the Annotation created is for a moving object, use [keyframe interpolation](https://docs.imerit-prod.io/annotation-tool/key-features/keyframe-interpolation) feature to mark the object across all the sequential frames without having to create it in every frame.&#x20;

## 9. Object Tracking

* Use this feature when an object is required to be labeled in both point cloud and image sensors while sharing a unique [instance ID](#instance-id).
* The projection of the created cuboid in the point cloud is visible on the appropriate camera images.
* Double-click on that image to enlarge it.
* [Create a rectangle](https://docs.imerit-prod.io/drawing-tools/rectangle#create-rectangle) on that object.&#x20;
* [Annotation detail input](#id-6.-annotation-detail-input) opens up. Choose the instance ID the same as its parent annotation created in the point cloud. Fill in the remaining details and Save.
* The 2D Instance of the same object appears under the 3D Instance created on point cloud (sharing the same ID). Eg. Truck\_1 is a cuboid annotation created in the point cloud and the instance of the same object is created in Image. This will appear as Truck\_1 #2 (with a 2D icon on the left of the label)

  &#x20;

  <figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeU2ahp0amk3G9qy4aUUTPzrCLvl0sGlQCKsWOZ7mmh4JMHK0RxnNoQgEY_9_EmALtPF0z4_mfPXfI9w6Maxt24u0-Js5_Sun7IVUoIH7ETSyzeNsMyn-GA-Nze0Bvq5uCmcXWXlKbGvNQDfeakSGLHS55s?key=lGhAQLv5xC3Ciuwf6zBTGQ" alt="" width="375"><figcaption></figcaption></figure>

## 10. Cross-Checking

* Use the [outlier](https://docs.imerit-prod.io/annotation-tool/key-features/outlier) feature to locate points that have not been labelled.
* Use [object clipping](https://docs.imerit-prod.io/tool-layout#class-row) on the class row to identify if:
  * Any extra points have been labelled for an object
  * Or if required points have not been labelled for an object
* Conduct auditing and mark [issues](https://docs.imerit-prod.io/audit-tool#how-to-raise-issues) that are observed in the [Audit Tool](https://docs.imerit-prod.io/audit-tool)
* View the overall submissions of [batches](https://docs.imerit-prod.io/project-setup/pre-process-data#batch) using the [Visualization Tool](https://docs.imerit-prod.io/visualization-tool).
* Pull up the camera sensor `Shift + Q`, locate the object, press `Esc` to land in the point cloud in the same perspective as the camera sensor.
