60+ unit fleet covered
Replaces 8 manual checker jobs
Runs on existing CCTV — no new hardware
The Problem
With the Phase 1 ticketing platform live and producing a clean digital manifest, the harder problem surfaced. EPU needed a way to verify actual passenger counts against those manifests without stationing 8 checkers at terminals every day, plus a live operational view of where each bus is and whether it is on schedule. The brief was practical: cut headcount cost in 1 specific role, give the control room a single map, and do it without ripping out the existing CCTV hardware. No "AI strategy" theater — a working system that survives Monday morning.
Constraints
- [01]Existing Holowits CCTV + NVR hardware had to stay — no rip-and-replace (integrated via WVP-PRO / GB/28181 protocol)
- [02]Edge inference required: bandwidth from buses is unreliable
- [03]Indonesian operations team — UI and SOPs must be in Bahasa
- [04]Must run on commodity infrastructure, not hyperscaler GPU clusters
- [05]Compliance with Hino telemetry API contracts and refresh-token lifecycle
- [06]Single-team delivery — no room for a 10-person AI lab
Our Approach
We took full engineering ownership end-to-end. Hardware integration with the existing Holowits CCTV + NVR setup via WVP-PRO / GB/28181 protocol, snapshot pipeline into a YOLOv11 inference sidecar. To achieve production-grade accuracy, we built a custom dataset pipeline: raw frames from bus cameras were extracted, annotated using Label Studio, and used to fine-tune a YOLOv11 object detection model specifically optimized for bus interior layouts, ensuring precise passenger classification while strictly excluding active crew members from the count. We then reconciled passenger counts against the digital manifest from the Phase 1 ticketing platform, and integrated a Hino API client with token lifecycle management for GPS telemetry. On top of that — a real-time operations dashboard built on MapLibre + deck.gl with PostGIS-backed route geometry and OSRM polyline rebuilds for cleaner playback. The system is deployed on a multi-tenant Docker setup with Grafana, Prometheus, and Loki for observability. Clean Architecture in Go on the backend — domain, usecase, adapter, handler — so the modules survive past this project.
Integrating edge AI inference (YOLOv11) with legacy CCTV systems via standard telecommunication protocols (GB/28181) avoids heavy capital expenditure on new hardware while providing real-time operations assurance.
Gallery
Outcome
- Custom YOLOv11 model trained on domain-specific datasets annotated via Label Studio, achieving high classification accuracy and excluding active crew members
- AI passenger counting pipeline running on existing NVR hardware — no new CCTV needed
- Real-time map view consolidating GPS, status, and manifest data into one operations screen
- Reconciles live counts against the Phase 1 digital manifest
- Designed to replace 8 manual checker positions when fully rolled out
- Core modules (GPS pipeline, inference sidecar, multi-tenant infra) extracted as reusable patterns — future clients onboard faster
- Re-engaged organically by the client — Phase 2 awarded without a competitive pitch
Why this matters
Most "AI deployments" in Indonesia stop at the slide deck. This one runs at terminals every day, reconciles against real manifests, and is measured against a headcount line on the operations budget. That is the work we want. EPU is also a reminder of why we exist as an agency. The client came back to us directly — not through a marketplace, not through a sales funnel. Organic trust earned by shipping is the only acquisition channel that scales without burning capital.

