
Object tracking
Enterprise preview
This feature is in preview mode and available for Enterprise customers only. Interested in also enabling object counting? Contact your Customer Success Manager (CSM).Configuring object tracking
1. Enabling object tracking
To enable the Object Tracking feature:- Open your Edge Impulse project.
- Go to the Dashboard.
- Scroll down to ‘Administrative zone’ and enable Post-processing / object tracking.
- Click Save experiments.

Post-processing in the navigation bar
2. Uploading data
To configure object tracking you’ll need to upload one or more video files of representable scenes. E.g. a video of your production line if you want to track products on a conveyor belt; or a video of people walking around if you’re building intruder detection systems. This data does not need to be labeled. To upload this data, go to Data acquisition > Post-processing; and click the upload icon. We support video files in the most common formats, but there’s a 100MB file size limit.
Post-processing dataset
3. Tuning object tracking parameters
After you’ve uploaded your data you can go to Post-processing (in the left navigation bar). This UI allows you to quickly iterate over all object tracking parameters to find the perfect configuration for your specific use case. This UI can also be used to see raw bounding box predictions overlaid onto your videos, which is a great way to assert model performance.
Object tracking Configuration - mobile client
4. Deploying your model
Once you’ve configured object tracking, all deployments (Linux, Mobile, EON Compiler, C++ library, WebAssembly, etc.) that contain an Object Detection block will automatically include the object tracking postprocessing layer. 🚀Re-configuring object tracking thresholds at runtime

Object tracking Configuration - mobile client
Linux CLI
Useedge-impulse-linux-runner --model-file <model.eim>
.
- The runner’s interactive console (and web UI via
http://localhost:PORT
) now includes configurable tracking thresholds (click the ‘gear’ icon).
Mobile client
If you’re running your impulse in the Edge Impulse mobile client, you can configure thresholds in the UI as well (click the ‘gear’ icon).Node.js SDK
In the Node.js SDK, there is a new function to set these thresholds at runtime:Code deployments (C++)
For C++ library deployments, you can configure thresholds inmodel-parameters/model_variables.h
(name may vary based on your project’s generated files). A typical configuration might look like:
set_threshold_postprocessing
.
Comparing object tracking vs. standard object detection
A simple way to see the difference between raw bounding boxes and tracked bounding boxes:
Standard object detection vs object tracking
Terminal 1:
Terminal 2:
http://localhost:9200
and http://localhost:9201
in two separate browser windows and observe the difference in bounding box stability.
You’ll see smoother, more persistent bounding boxes with object tracking enabled.
Accessing tracked objects in the inference output
C++ libraries
WebAssembly
EIM files
When reading inference metadata from an EIM file, look under theobject_tracking
field to retrieve tracked objects.