Overview
EVA is a customizable VLM-based safety detection agent for manufacturing environments. Users define detection scenarios in natural language — such as "alert me when someone falls" or "detect missing helmets" — and EVA monitors CCTV footage in real time.
The challenge: manufacturing sites run dozens or hundreds of cameras simultaneously, and every site has different layouts, lighting conditions, and safety requirements. A rigid, one-size-fits-all model doesn't work.
Problem
Standard vision models struggle with context-sensitive safety events. A person lying on the floor might be an emergency — or someone working close to the ground. A missing helmet could be a violation — or the worker might be in an area where helmets aren't required. Without structured reasoning, models produce too many false positives or miss critical events.
Enriched Input (Query Expansion)
Users write natural language requests. EVA automatically expands them into two structured axes:
Detection Conditions — "Alert when this happens": e.g., one or more persons lying flat on the ground.
Exception Conditions — "Don't alert when this happens": e.g., person seated at a workstation, person mostly obscured by machinery, person resting on a sofa.
The user can keep refining: "…but exclude anyone working at a laptop." This structure turns vague requests into precise, AI-friendly specifications.
Results: False positive rate on fall detection dropped ~10% while maintaining 99% accuracy. Mask detection accuracy improved from 52% to 90%, with missed-detection rate cut by over 80%.
Two-Stage Reasoning (SDA)
Even with structured input, one-shot detection produces contradictions — the model tries to evaluate detections, exceptions, conclusions, and rationale all at once.
We separated the judgment into two independent stages:
Stage 1 — Detection (recall-focused): "Is this situation suspicious?" Exceptions are ignored. Cast a wide net — missing nothing is the goal.
Stage 2 — Exception (precision-focused): "Is this a normal situation?" The model sees only the image — not Stage 1's result — and independently decides whether the scenario is normal. This prevents confirmation bias.
Results (structural change only, same model): Fall detection precision improved from 0.87 → 0.99. Similar gains in recall and accuracy across mask and other scenarios. Difficult cases — shadows, low-quality footage, cluttered workspaces — saw large drops in false positives.
PPE Mode (v3.0)
Direct queries like "find someone without a helmet" trigger sycophancy and hallucination in some VLMs — the model over-eagerly confirms what the user asked for.
PPE mode restructures the agent as a three-stage pipeline:
Stage 1 — Target identification: Extract synonyms for the detection item. Use object detection + VLM to identify workers (with full image context), define which body parts are relevant (mask → face, helmet → head).
Stage 2 — Verification: Separately check (a) what protective items the worker is wearing, and (b) whether the relevant body parts are actually visible in the image.
Stage 3 — Rule-based decision: If the detected item is absent from the wearing list AND the relevant body part is confirmed visible → raise alert + generate explanation.
The key principle: separate "is the item worn?" from "can we even see the relevant area?" and standardize the final decision with an explicit rule.
Results (7 PPE scenarios): Precision improved from 0.62 → 0.87 compared to base mode. Operators can swap detection items without rewriting scenarios.
Impact
EVA is being prepared for deployment across approximately 3,000 cameras in manufacturing environments. The detection agent handles fire, fallen persons, missing PPE, and custom scenarios defined by site operators in natural language.