edgefirst-tracker
Multi-object tracking for edge AI applications.
This crate provides object tracking algorithms for associating detections across video frames, enabling applications like counting, path analysis, and re-identification.
Algorithms
| Algorithm | Description | Use Case |
|---|---|---|
| ByteTrack | High-performance MOT using byte-level features | Real-time tracking |
Features
- UUID-based track IDs - Globally unique identifiers for each tracked object
- Kalman filtering - Smooth trajectory prediction and state estimation
- Configurable association - IoU-based matching with tunable thresholds
- Track lifecycle - Automatic creation, update, and deletion of tracks
Quick Start
use ;
use ByteTracker;
// Create tracker
let mut tracker = new;
// Process detections each frame
let detections = get_detections_from_model;
let timestamp = frame_number as u64;
let tracks = tracker.update;
// Each detection gets associated track info (or None if untracked)
for in detections.iter.zip
// Get all currently active tracks
for track in tracker.get_active_tracks
Track Information
Each TrackInfo contains:
| Field | Type | Description |
|---|---|---|
uuid |
Uuid |
Globally unique track identifier |
tracked_location |
[f32; 4] |
Kalman-filtered bounding box [x1, y1, x2, y2] |
count |
i32 |
Number of frames this track has been active |
created |
u64 |
Timestamp when track was created |
last_updated |
u64 |
Timestamp of last detection match |
Integration
Works with any detection source implementing DetectionBox:
use DetectionBox;
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.