Product & technology
How VisionDock turns footage into evidence
Built for Nigerian warehouses, depots and distributors investigating missing stock. A deterministic pipeline wraps a pretrained computer-vision model: the model proposes what it sees, our code decides what becomes an event, and every event is traceable to a frame in your footage.
Why we start with recordings, not live streams
Live monitoring needs steady power, fast upload bandwidth and someone watching around the clock, which many Nigerian sites can't count on. Recordings already sit on your DVR or NVR. When goods go missing, you export the clip and upload it once, from any connection, and the heavy processing happens on our servers.
The pipeline
- 01
Ingest
MP4 upload, validated with FFprobe for format, codec, size and duration before anything runs.
- 02
Decode & sample
OpenCV decodes the video and samples frames at a configurable rate, keeping the container's own timestamps.
- 03
Detect
A pretrained YOLO-family object detector finds people and vehicles in each sampled frame.
- 04
Build events
Deterministic rules merge detections into events with a start, an end, a peak confidence and a count.
- 05
Store evidence
Each event keeps the frame where the model was most confident, with the detection boxed.
- 06
Review
A web dashboard plays the source video and jumps to any event with a click.
Supported events
| Event | How it works | Caveat |
|---|---|---|
| Person detected | Object detector returns a person; consecutive sightings merge into one event. | Detects presence, never identity. |
| Vehicle detected | Cars, trucks, buses and motorcycles, each tracked as its own class. | Subclasses depend on the camera angle and footage. Night-time and low-resolution cameras miss more. |
After-hours alerts, zone entry (for example, someone at the store room door), dwell time, and custom objects such as cartons, forklifts or pallets are on the roadmap and need site-specific configuration or fine-tuning.
GPU acceleration roadmap
The analysis worker runs separately from the web API, so it can move to GPU machines without changing the product. We adopt each NVIDIA technology when measurements show it solves a real bottleneck. Planned items are labelled as planned.
- TodayLive
CPU baseline
Inference runs on standard CPUs with a pretrained detector. We measure runtime, frames processed and detections for every job, so later optimisation is judged against real numbers.
- NextPlanned
NVIDIA GPU inference
Move the analysis worker, which is already a separate process, onto NVIDIA GPUs with CUDA, and benchmark throughput and cost per video hour against the CPU baseline.
- ThenPlanned
TensorRT optimisation
Compile the detector with NVIDIA TensorRT once profiling shows inference is the bottleneck, to cut latency and cost per stream.
- Live videoPlanned
DeepStream for camera feeds
Use NVIDIA DeepStream to decode and analyse continuous RTSP camera streams, feeding the same event pipeline and timeline as uploads.
- ScalePlanned
Triton model serving
Serve several models behind NVIDIA Triton Inference Server with batching, once multi-camera sites need it.
What we measure
We track these from the first prototype, so claims about accuracy, speed and cost come from data.
- Event precision & recall
- How often events are right, and how many real events we catch, on labelled footage.
- Time to searchable result
- How long from upload until events can be searched.
- Processing throughput
- Video minutes analysed per minute of compute, by hardware.
- Cost per video hour
- What analysis costs us, which sets sustainable pricing.
- Investigation time saved
- Manual search time compared with VisionDock-assisted search for the same task.
Stack
- Computer visionPretrained YOLO-family detector, PyTorch, OpenCV, FFmpeg
- BackendPython, FastAPI, SQLAlchemy, background analysis worker
- FrontendNext.js, TypeScript, Tailwind CSS
- DeploymentDocker containers; GPU workers planned
- SecurityHashed passwords, HTTP-only sessions, per-account media access
Run a pilot at your site in Nigeria
Tell us where you are, what cameras you have, and what keeps going missing.