← All case studies
Case 01· Manufacturing & Logistics· 2025· Computer Vision

A 16-camera QC system that runs entirely on-premise.

Every pack photographed. Every docket searchable. Every anomaly surfaced — without a single frame leaving the warehouse.

Client
Havit Group
Sector
Wholesale lighting manufacturing
Engagement
Design, build & deploy
Timeline
Phase 1 — MVP delivered
§ 01 The brief

The problem

Havit's packing line runs 16 stations, each producing dockets that get taped to outgoing cartons. When a customer disputed an order, the QC team had two options: trust the paper trail, or spend hours reviewing raw CCTV.

Neither scaled. The existing cameras were only useful after the fact — there was no way to search by docket number, no confidence that anything had actually been captured, and no record tying a pack to the product leaving the door.

The approach

We proposed a local-AI vision system that monitors all 16 stations continuously, captures the best frame of every pack, reads the docket number with OCR, and makes the whole thing searchable in seconds.

Every part runs on hardware in the warehouse. No cloud APIs, no monthly per-seat fees, no data leaving the premises. The system was designed so the QC team could use it immediately and the engineering team could extend it without us.

Measured outcomes.

16
Cameras live
on one box
<5s
Docket number to
full photo record
100%
On-premise
zero cloud calls
0
Ongoing vendor
API fees
§ 02 How it works

A hybrid pipeline — OpenCV triggers, local AI answers.

Classic computer vision watches each station in real time and fires only when a docket appears or leaves the packing zone. At that moment — and only then — the local AI model runs on the captured frames. The result is continuous monitoring on modest hardware.

camera workers 16× RTSP streams · Python + OpenCV rolling 30s buffer · ROI watch Per-station config · lightweight detection │ events + frame batches ▼ inference Ollama · moondream2 (local) OCR · best-frame selection No cloud calls · runs on a Mac Studio │ structured results ▼ api FastAPI · SQLite records · hooks · storage Integration-ready from day one │ ▼ frontend Admin dashboard · QC lookup
Python / OpenCV Ollama · moondream2 FastAPI SQLite Docker Compose Alpine.js + Tailwind
§ 03 Inside the system

Two views, one application.

For operations

Admin dashboard

Commissioning tool and ongoing health monitor. Built for a warehouse manager who needs to see, at a glance, whether all 16 stations are healthy.

  • Camera status grid — live stream health, colour-coded
  • Drag-to-set ROI zones per station, no code required
  • Sensitivity sliders with manual trigger test
  • Alert feed — stream drops, runaway triggers, disk warnings
  • Editable OCR & frame-selection prompts per station
For QC managers

QC lookup

The daily tool. Type a docket number, get the full photo record in under five seconds. No training, no manual, no friction.

  • Instant docket search by order number
  • Event timeline — arrived → packing → completed
  • Best-frame gallery with per-image confidence score
  • One-click Correct / Incorrect feedback, feeds model tuning
  • Low-confidence packs automatically flagged for review
§ 04 Delivery

Three phases. MVP first.

01

MVP Live

The core system — everything needed to go live and be useful from day one.

  • Docker Compose stack, one-command deployment
  • RTSP ingestion for all 16 streams
  • Per-station ROI configuration via UI
  • OCR on docket appearance, best-frame on removal
  • QC lookup — photos, timeline, confidence scores
  • Circuit breakers, auto-reconnect, alerts
02

Intelligence Next

Make the system smarter using real operational data.

  • Confidence trend analytics in admin
  • Training data export for model fine-tuning
  • Per-station model selection, live-swappable
  • Prompt editing UI with live test mode
  • Station-level performance comparisons
03

Integration Planned

Connect the QC record to the broader business — at the customer's request.

  • Invoice & dispatch document linking
  • ERP / WMS webhook consumers
  • Item-level verification against order contents
  • Multi-station order tracking

"Every pack is accounted for — and we can pull the evidence in five seconds instead of half a day."

— Placeholder client quote · Havit Group

Got a similar problem?

If there's a workflow you'd quietly kill for — hours saved, photos you can't find, manual steps that never scale — we'd like to hear about it. Initial conversations are free.

Start a conversation