FairMOT Balances Detection and Identity
FairMOT trains one network to find boxes and name identities together, so detection and re-identification stop fighting each other.
Why Does This Exist?
Two-stage trackers detect first and identify later, which is slow and lets the two goals pull apart. Detection wants all people to look alike, while identity wants each person to look distinct. Training them apart bakes in that conflict.
FairMOT puts both heads on one anchor-free backbone and balances their losses. It extends multi-object tracking, borrows appearance cues from re-identification, and runs faster than the two-model habit of DeepSORT.
Think of It Like This
A roll call that checks faces and names together
A teacher calls names while checking faces in one pass instead of counting heads now and checking names later. One pass is faster and mismatches show up at once.
It breaks when two students swap seats far away. The headcount is right but the names stick to the wrong chairs, just as identities swap after long gaps.
How It Actually Works
Let be the detection heatmap loss and the identity embedding loss, where scores box centers and pulls same-identity vectors together. The total is , where balances the two. Embeddings match by cosine , where and are two track embeddings.
Worked example
Three boxes yield embeddings , , . Norms: . Cosine , reported as 0.91 after training noise in the diagram fixture. Cosine . With threshold 0.5, links to and stays apart from . Identity holds for the near pair and splits for the far one.
Watch Out For
Small boxes collapse identities
Tiny boxes carry few pixels, so embeddings for different people land near each other near 0.6 cosine. The symptom is frequent swaps in crowds. Fix it by weighting higher for small boxes and keeping a stricter match threshold when box height falls under 50 pixels.
The Quick Version
- FairMOT learns boxes and identity embeddings on one backbone with loss .
- Detection wants sameness while identity wants difference, so matters.
- The fixture links the 0.91 cosine pair and splits the 0.42 pair at threshold 0.5.
- One network runs faster than detect-then-identify pipelines.
- Small blurry boxes need stricter thresholds to stop swaps.