Skip to content

Perception and Attributes

Emre Yavuz edited this page Aug 3, 2026 · 2 revisions

Perception & Attributes

Perception is the frame-level layer: what is in view, where it is, how it moves, and its fine-grained attributes.

Detection

  • YOLO11 runs on the live feed with a tuned per-class confidence floor. People get a lower floor (person_confidence) because sitting, swimming and awkward poses score low; other classes keep the normal floor so clutter does not turn into false vehicles or objects.
  • Class gating is applied at the detector. Disabling a class (person / vehicle / animal / accessory / weapon) removes it from the entire downstream budget, not just the overlay.
  • Sliced inference (detectors.yolo.slice) tiles the frame (2x2, 3x3) to recover tiny distant objects in wide scenes without lowering confidence.
  • Only people, vehicles, animals and weapons are auto-tracked in the overlay. Generic objects are tracked on demand as an object-of-interest (OOI).

Segmentation

A YOLO11-seg head produces instance and foreground masks that separate standing objects from the background plate. Masks feed cleaner geometry, occlusion-aware reconstruction and matching.

Depth

Depth Anything V2 produces a dense relative inverse-depth field per frame, temporally fused across several frames (per-pixel median) to suppress monocular noise on the static scene. A metric mode combines disparity with camera FOV and ground-plane priors to approximate real-world distance for spacing, speed and size read-outs (uncalibrated by default; calibration sharpens it).

Tracking

  • ByteTrack assigns persistent track ids across frames.
  • A coasting layer holds a last-known box briefly through a momentary detection drop, so tracklets do not flicker.
  • Each track carries velocity, dwell and trajectory history, feeding intent, speed, the predictive-ghost overlay and the tactical radar.

Fine-grained attributes

Every attribute is confidence-gated: Overseer would rather show nothing than a confident wrong guess. Attributes are searchable in the roster and forensic screens.

Vehicles

  • Body type - zero-shot CLIP reads the finer shape the detector cannot: sedan, hatchback, SUV, station wagon, coupe, pickup, minivan, van, minibus, bus, truck, motorcycle, bicycle. Shown as the TYPE on the card and filterable in the roster. Runs on the CPU in a throttled background reader (see Models).
  • Brand (make) - a ViT fine-tuned to 55 brands, confidence-and-margin gated so it never asserts a confident-but-wrong brand. Brand-level is the honest target (specific make + model + year classifiers are market-specific and date badly).
  • Colour and licence plate (ANPR) - see Identity, Re-ID & Forensics.
  • Speed - a rough km/h estimate from apparent size, ego-motion compensated so a car keeping pace on a dashcam does not read as stopped. Uncalibrated, so comparable rather than exact.

People

  • Stature - an estimated height band (short / medium / tall) plus an approximate cm value. The estimate is perspective-normalised by the foot position, so a close (large) and a far (small) person of the same height read alike, instead of the raw box fraction that used to read almost everyone as short. The cm gain is recalibrated so a normally framed adult reads around 170 cm (it used to saturate near 200). Uncalibrated, so approximate.
  • Clothing colour - read from the torso only (the head, arms and background are trimmed) and shown only when the crop is clearly that colour. A murky or contaminated crop shows nothing rather than a wrong colour. A shirtless torso is reported as bare skin rather than inventing a garment colour.
  • Behaviour (intent) - estimated from motion and posture, as a probability with a one-line reason, never asserted as fact. Categories include: loitering, waiting, sitting, lying down, swimming, standing, walking / transiting, strolling, hurrying, running, pacing, wandering, searching, monitoring surroundings, approaching and moving away. See Analytics, Alerts & Zones for how behaviours feed events.

Scene conditions

Per-frame analysers estimate day / night, fog, rain, wind and an overall weather read, each with onset and clear thresholds so the state is stable rather than flickering. These modulate expectations (for example, lower visibility) and are surfaced in the analytics rail.

Clone this wiki locally