Skip to main content

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:

TopicTrigger
identity.createdA new face detected that does not belong to any active Identity in the sliding window — the first observation of a new individual
identity.updatedA 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.