Appearance
Model-free edge video analytics #
The model-free edge video analytics example processes JPEG or PNG images locally and publishes structured Product events through the agent-local Product Runtime. It requires no neural model, model mount, device credential, cloud credential, or container-runtime socket.
Use this path when deterministic computer vision, geometry, signal processing, decoding, or constrained OCR meets the product requirement. Use the Edge AI reference workloads when a qualified customer-owned model is required.
Know the honest boundary #
The supplied example supports:
- plate-like candidate localisation with OpenCV geometry and local Tesseract OCR;
- camera freeze, blur, darkness, glare, obstruction, and scene-change health;
- named motion zones, tripwires, dwell, and bounded moving-blob tracking;
- QR and common barcode decoding;
- constrained OCR regions with allowlists and regular-expression validation;
- dominant colour and calibrated status-light regions;
- perceptual-hash deduplication and unchanged-frame suppression.
It does not provide person detection, people counting, clothing colour, semantic vehicle detection or classification, make/model identification, PPE, smoke/fire, face recognition, identity, behaviour, sensitive-attribute inference, evidentiary-grade ANPR, or speed enforcement.
A plate read can be evidence of a likely vehicle, but the object type remains unknown. Motion contours must not be presented as people or vehicles.
Connect the image source #
The producer writes complete images into a shared directory using an atomic write and rename. Mount that directory read-only at /input. The analytics container:
- ignores incomplete and unsupported files;
- bounds image size, input rate, and files considered per scan;
- persists processed capture identities in SQLite/WAL;
- avoids re-emitting the same observation after restart;
- sends image SHA-256 and structured metadata, never image bytes.
The downloadable model-free-vision-config.json is a deterministic configuration for one camera, motion zone, tripwire, container-ID OCR region, and stack light.
Configure privacy before output #
Plate and identifying text output can be masked, plain, hash, or omit. The default is masked. Hash mode requires a tenant-held salt. Plain values need a deliberate legal, access, and retention decision.
The example defaults to no image retention or copying. Number plates and other identifiers may be personal data. Keep uncertainty as unknown; do not improve the appearance of results by lowering confidence or validation thresholds without requalification.
Consume typed events #
The example publishes:
edge.vision.observation;edge.vision.camera_health;edge.vision.motion;edge.vision.tripwire;edge.vision.code_read;edge.vision.region_state.
Events include source/camera identity, capture timestamp, source image digest, engine and configuration versions, processing duration, measured scores/confidence, thresholds or regions where applicable, degraded warnings, and deterministic event/correlation identity.
Fixture output is deterministic and always includes simulated: true.
Drive an offline Process #
The edge-ai-offline-process.json waits for an edge.vision.observation containing a masked plate, invokes the typed gate.request_open Command, waits for the OEM result, and emits an edge.gate.decision event.
The Process can continue without WAN connectivity because the Product event, Edge Process state, and Command path are local. The OEM gate handler must still validate local authority, enforce interlocks, deduplicate the invocation, and report the physical outcome. Reconnect uploads the event and outcome; it does not repeat the action.
Bound resource use #
Start at one frame per second. Set container CPU/memory limits and a maximum queue depth. Tesseract is CPU-bound, particularly on small ARM devices. The reference loop is single-threaded so input cannot create an unbounded processing backlog.
Test:
- unsupported, oversized, partial, and repeated input;
- full queue and slow OCR;
- source stale and camera-health transitions;
- analytics and Edge Runtime restart;
- duplicate Product event and Command delivery;
- WAN loss, local completion, and reconnect;
- masked/hash/omit privacy output;
- deterministic simulation markers.