Pertamina PPE Compliance Monitoring
Production-deployed computer vision system for industrial safety at Pertamina facilities — full lifecycle from dataset curation to real-time dashboard.
- Role
- AI Engineer (Telkom Indonesia Internship)
- Timeline
- Jul 2025 – Sep 2025
- Team
- 4 people
- Client
- Pertamina Patra Niaga (via Telkom Indonesia)

The problem
Industrial sites must enforce strict personal protective equipment compliance, but nobody can reliably watch dozens of CCTV feeds for a missing helmet or vest. Manual monitoring was impractical and error-prone.
Constraints
- Had to work with the facility's existing CCTV and NVR infrastructure
- Heterogeneous RTSP streams, and cameras that drop out
- A single slow feed must never stall monitoring for every other camera
- A clean hand-off to the facility's operations team
Architecture
Step 1, Device
CCTV / NVR network
Existing cameras, RTSP streams
Step 2, Ingest
Stream ingestion
Normalisation + reconnection logic
Step 3, Compute
PPE detector
YOLOv11, trained in-house
Step 4, Interface
Compliance dashboard
Next.js, real-time violations
Engineering decisions
Decouple ingestion from inference
- Context
- With many cameras feeding one pipeline, a single slow or stalled RTSP stream could hold up detection for all of them.
- Decision
- Split stream ingestion from inference so every feed is read independently of the detector.
- Trade-off
- More moving parts to operate than one loop — but no single camera can stall monitoring.
Normalise and reconnect, don't replace
- Context
- The NVR network mixed heterogeneous RTSP streams, and some cameras were unreliable.
- Decision
- Normalised every stream on ingest and built reconnection logic for cameras that drop out.
- Trade-off
- Most of the effort went into integration rather than the model — which is where it belonged.
Own the full lifecycle
- Context
- The detector had to perform on this facility's own camera views, not on generic benchmark footage.
- Decision
- Curated and annotated the dataset, then trained, deployed, and monitored the YOLOv11 detector in-house.
Ship as containers
- Context
- The system had to be handed over to the facility's operations team.
- Decision
- Packaged every service as a Docker container.
Outcomes
Environment
Infrastructure
Dashboard
- Shipped to production at Pertamina Patra Niaga
- Continuous, real-time PPE compliance monitoring across the facility's camera network
- Full lifecycle delivered — dataset curation and annotation, training, deployment, and monitoring
Reflections
Lessons learned
That experience drove home that production computer vision is roughly 80% data and infrastructure engineering. Robust stream handling and an operations-friendly deployment story — not a marginally better mAP — were what separated a polished demo from a system the plant could actually rely on day after day.
Proof — verify it yourself
- Production Deployment at Pertamina Patra Niaga
Client footage, dashboards, and site details are not published here. A walkthrough is available on request.
Tech stack
- Python
- YOLOv11
- Next.js
- Node.js
- Docker
- NVR/CCTV Integration
Related writing
- War Story
Production computer vision is mostly plumbing
Two deployments — PPE compliance on an industrial CCTV network and camera-based parking occupancy — and why the detector was the easy part.
4 min read
- #computer-vision
- #edge-ai
- #yolo
- #reliability
Work with me
Facing a similar challenge?
I build systems like this end to end — from the first architecture sketch to production. Tell me about yours.