Corridor Identity Grouping Service (CIGS)
CIGS tracks anonymous individuals across multiple cameras within a corridor or eGate unit. It groups face detections from different cameras and time points into a single coherent Identity, allowing the system to follow a person's presence throughout the corridor without relying on watchlist identification.
An Identity in CIGS is always anonymous — it represents a unique face track, not a named person. If VPP subsequently identifies the same person against a watchlist, that identification result can be linked to the Identity, but the Identity itself exists independently.
Responsibilities
- Detecting new faces that do not match any existing identity within the active sliding window
- Grouping subsequent face detections of the same person under a single Identity
- Tracking when an Identity was first and last seen
- Counting the number of unique individuals who have crossed the corridor
- Providing identity context for downstream services (CBS, Hub)
Key concepts
Sliding window — CIGS maintains a time-bounded window of active identities. A face detection that falls outside any existing identity's window creates a new Identity, so a person who leaves and re-enters after a significant time gap is treated as a new identity.
Identity vs Identification — an Identity is a face grouping (anonymous); an Identification is a watchlist match result (from VPP). These are separate concepts: an Identity may have zero or one linked Identification.
Notifications
The CIGS Adapter — a Hub component that contains no business logic, only translation and routing — subscribes to CIGS events and publishes normalized notifications to the biometric_events exchange:
| Topic | Trigger |
|---|---|
identity.created | A new face detected that does not belong to any active Identity in the sliding window — the first observation of a new individual |
identity.updated | A new face detected for an existing active Identity — the same person seen again, typically from another camera or later timestamp |
identity.created carries the Identity ID and timing metadata, not face image data — face images are managed by the Hub's identity_faces storage, where each identity.updated event results in a new face record.