Skip to main content

Face Matcher in the corridor

Face Matcher is the real-time face identification server the corridor is built on. It is a product in its own right with its own documentation; this page only covers what the corridor takes from it and how the two are joined.

What the corridor takes from Face Matcher​

  • Cameras — every corridor camera is a Face Matcher camera (server-side RTSP or an edge stream). Register and tune them in Station or through the REST API; the corridor only maps camera IDs to units.
  • Watchlists and members — enrolled in Face Matcher (Manage Watchlists, Watchlists). The corridor only knows which watchlist IDs grant GREEN clearance.
  • The identification stream — every match, no-match and condition violation Face Matcher publishes, which the VPP Adapter turns into corridor events. Detection sensitivity, matching thresholds and liveness are Face Matcher settings: see Detection and Matching Settings and Tuning Identification.

The Hub's GraphQL API additionally proxies cameras, watchlists and members read-only for the dashboard; it never writes to Face Matcher. Management always happens on the Face Matcher side.

The vendored copy and the integration list​

The smart-corridor package ships Face Matcher as a byte-identical copy of its release in the face-matcher/ folder — never edited, replaced as a whole on upgrade, started first by start.sh. The corridor services join face-matcher-network and depend on Face Matcher only through its published integration list: the network name, six container names and ports (api:8080, graphql-api:8080, fm-station:8000, rmq, pgsql, seaweedfs), the credentials, the license file and the start order. Because that boundary is explicit, the vendored copy can be replaced by a separately deployed Face Matcher in a future release without touching the corridor services. See Architecture and Network Ports on the Face Matcher side.

VPP Adapter​

The VPP Adapter is the Hub component that bridges Face Matcher's identification events to the Hub's unified event model; it keeps its historical name from Face Matcher's predecessor, and so does its setting VPP_ADAPTER_ALLOWED_WATCHLISTS. It subscribes to Face Matcher's GraphQL endpoint, determines the identification outcome of each event, and publishes normalized notifications to the biometric_events exchange. It contains no business logic — only translation and routing.

Topic publishedTrigger
identification.matchFace matched against any watchlist
identification.no_matchNo match found in any watchlist
identification.clearance.greenMatch on a watchlist listed in VPP_ADAPTER_ALLOWED_WATCHLISTS
identification.clearance.redMatch on any other watchlist
identification.condition_violationFace obscured — identification not possible

See the Event Catalog for the full topic list and Add People to Watchlists for the clearance wiring.