> For the complete documentation index, see [llms.txt](https://docs.unitlab.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unitlab.ai/documentation/auto-labeling/bidirectional-auto-tracking.md).

# Bidirectional Auto-Tracking

Track objects forward, backward, or through the full video, DICOM, or NIfTI sequence from one reliable seed.

Bidirectional Auto-Tracking propagates a verified object from one reliable seed through a temporal sequence. It supports full, forward, and backward runs so an annotator can start from the clearest frame or slice rather than the beginning.

![Multi-object Auto-Tracking in a video sequence](https://292810646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGjVLUz4wthGkGlRKM6rM%2Fuploads%2FY4avHbZ9JCa8LZitk56d%2Fvideo-bidirectional-auto-tracking.webp?alt=media)

*Current Unitlab product visual: a selected group of objects is propagated while separate identities are preserved.*

![Bidirectional lesion tracking across a medical sequence](https://292810646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGjVLUz4wthGkGlRKM6rM%2Fuploads%2FDWAO99Jly9LCTsgGvonS%2Fmedical-bidirectional-auto-tracking.webp?alt=media)

*Current Unitlab medical visual: the same region is tracked across the sequence and remains available for expert correction.*

### Supported data and actions

| Surface | Sequence unit                            | Current tracking actions           |
| ------- | ---------------------------------------- | ---------------------------------- |
| Video   | Frames                                   | Full annotation, forward, backward |
| DICOM   | Frames or slices in the medical sequence | Full annotation, forward, backward |
| NIfTI   | Volume slices / sequence positions       | Full annotation, forward, backward |

Supported temporal object geometries include bounding boxes, polygons, masks/brush annotations, and cuboids where the active editor and class allow them.

### Choose a direction

| Action                    | Range                                   | Use it when                                                          |
| ------------------------- | --------------------------------------- | -------------------------------------------------------------------- |
| **Track full annotation** | Both directions from the selected frame | The best seed is in the middle and the complete sequence is required |
| **Track forward**         | Selected frame to later frames          | The object first appears clearly at or after the seed                |
| **Track backward**        | Selected frame to earlier frames        | A later frame contains the clearest appearance                       |

Backward is unavailable on the first frame. Forward is unavailable when no later frame remains.

### Track one object

{% stepper %}
{% step %}

#### Choose a reliable seed

Navigate to the frame or slice where the object is clear, sufficiently large, and minimally occluded.
{% endstep %}

{% step %}

#### Create precise geometry

Draw the object using the project’s required class and geometry. A loose or incorrect seed propagates error.
{% endstep %}

{% step %}

#### Open the object action

Right-click the object or its selected timeline segment, choose **Auto track**, and select full, forward, or backward.
{% endstep %}

{% step %}

#### Monitor progress

The timeline displays the growing object track and keyframes. The object menu changes to **Stop Tracking** while a run is active.
{% endstep %}

{% step %}

#### Review discontinuities

Inspect occlusion, re-entry, camera cuts, fast motion, blur, scale changes, and crossings with similar objects.
{% endstep %}

{% step %}

#### Correct and continue

Edit the first unreliable frame, preserve identity, and rerun a shorter segment when necessary.
{% endstep %}
{% endstepper %}

### Track multiple objects

Hold **Command** on macOS or **Ctrl** on Windows/Linux and select several supported objects. Open **Auto track**, then choose the direction. Unitlab submits the selected objects together but writes each result to its own track.

{% hint style="info" %}
Multi-object tracking preserves separate identities. It does not merge selected objects into one annotation.
{% endhint %}

### Tracking versus interpolation

| Question                            | Auto-Tracking                              | Interpolation                               |
| ----------------------------------- | ------------------------------------------ | ------------------------------------------- |
| How intermediate labels are created | Model prediction                           | Geometry between manual keyframes           |
| Best fit                            | Complex but visually trackable motion      | Smooth change between known states          |
| Main risk                           | Identity drift or confident false geometry | Missed non-linear motion or topology change |
| Review focus                        | Occlusion, re-entry, crossings, drift      | Keyframe placement and transition shape     |

### Video demo

{% embed url="<https://homepage-files.s3.us-east-2.amazonaws.com/hero-videos/hero/auto-labeling-2.mp4>" %}

### Medical guidance

For DICOM and NIfTI work:

* start from the slice where the finding or anatomy is most distinct;
* verify every anatomical plane or synchronized view used by the project;
* inspect entry and exit slices carefully;
* correct partial-volume boundary drift;
* route clinically significant output through expert review;
* avoid treating propagation as volumetric ground truth without slice-level inspection.

### Review a completed track

* Confirm the track begins and ends at the correct positions.
* Scrub through every transition around occlusion, re-entry, and motion change.
* Check identity when similar objects cross.
* Inspect geometry at representative zoom.
* Verify required dynamic properties at their change points.
* Confirm the object’s class and relations remain correct.
* Submit the item through the configured review route.

{% hint style="warning" %}
Full tracking is bidirectional propagation from one seed, not automatic approval. A reviewer must still verify the complete temporal range.
{% endhint %}

### Troubleshooting

| Symptom                      | Recovery                                                                 |
| ---------------------------- | ------------------------------------------------------------------------ |
| Tracking action is disabled  | Move away from the first/last boundary or select a supported object      |
| Track drifts after occlusion | Stop, correct the first unreliable frame, and restart from a new seed    |
| Two identities swap          | Split the run around the crossing and verify each object separately      |
| Mask degrades over time      | Add a corrected mask keyframe and rerun a shorter segment                |
| Medical boundary disappears  | Seed a clearer slice and review the entry/exit range under expert policy |

### Related guides

* [Video Annotation](/documentation/annotations/video-annotation.md)
* [Medical Annotation](/documentation/annotations/medical-annotation.md)
* [Validation and conditional logic](/documentation/ontologies/validation-and-conditional-logic.md)
