Iβm currently developing a real-time multi-camera person tracking and re-identification system for a retail shop, and Iβm facing some identity consistency issues. I would really appreciate some advice from people who have experience with Person Re-ID or Multi-Camera Multi-Target Tracking (MTMCT).
My goal
I have multiple CCTV cameras in a retail environment, and I want to:
-
Detect and track multiple people in real time.
-
Assign each person a Global ID.
-
Keep the same Global ID when the same person appears on another camera.
-
Avoid assigning the same Global ID to different people.
Current Re-ID setup
For Person Re-Identification, I am using:
-
OSNet x1.0
-
A custom-trained model based on the Market1501 dataset
-
Person embeddings extracted from detected person crops
-
Cosine similarity to compare new embeddings with previously stored embeddings
-
A global gallery/database containing embeddings belonging to each Global ID
The basic workflow is:
Camera β Person Detection β Local Tracking β Person Crop β OSNet Embedding β Compare with Global Gallery β Assign Existing Global ID or Create New Global ID
The problem
The system works, but I am getting two major errors:
- Same person β Different Global IDs
For example:
Person A β Camera 1 β ID 5
Later:
Person A β Camera 2 β ID 12
Even though it is the same person.
- Different persons β Same Global ID
For example:
Person A β ID 5
Then another person with somewhat similar clothing:
Person B β ID 5
This is much more problematic because two different people become merged into one identity.
The retail environment also contains real-world challenges such as:
-
Occlusion
-
Similar clothing
-
Different camera angles
-
Different lighting conditions
-
Partial-body detections
-
People entering/leaving the camera view
-
Large pose changes between cameras
-
Overlapping camera views
What I would like help with
I would appreciate guidance on designing a more reliable real-time multi-camera Re-ID architecture.
In particular:
-
Is OSNet x1.0 trained/fine-tuned on Market1501 suitable for a retail CCTV environment?
-
Should I fine-tune OSNet using images collected from my own cameras?
-
What is the best strategy for choosing a cosine similarity threshold?
-
Is comparing against a single/average embedding per Global ID enough, or should I maintain multiple embeddings for every identity?
-
How can I prevent incorrect embeddings from contaminating a personβs global gallery?
-
Should Global ID assignment require multiple matching embeddings instead of one similarity match?
-
How should I handle people wearing very similar clothes?
-
Should camera topology, timestamps, entry/exit zones, and travel time between cameras be included in Global ID matching?
-
Would approaches such as FastReID, TransReID, CLIP-based Re-ID, or another modern Re-ID model provide a significant improvement?
-
What is the recommended architecture for combining the local tracker and global Re-ID system in real time?
-
Should Global ID matching be performed for every frame, every track, or only when a new local track is created?
-
How do production retail surveillance systems normally reduce ID switches, false merges, and identity fragmentation?
My main objective is not just high Re-ID accuracy on a benchmark dataset. I need stable Global IDs across multiple real-world cameras in real time.
If anyone has worked on multi-camera person tracking, MTMCT, Person Re-ID, retail analytics, or CCTV analytics, I would really appreciate suggestions, papers, architectures, repositories, or practical implementation advice.
Thank you!