Skip to content
cd ../projects

JWC Line Monitoring System — Production Data from the Screen

A field-validated line monitoring system that uses OCR on a Raspberry Pi 5 to read the screens of production machines with no data output: 6/6 fields at 99%+ confidence, and a 90-second stoppage measured at 88 seconds.

Client
Adapha Yapay Zeka Ar-Ge (Samsun Teknopark) — internship
Period
2026
Stack
Raspberry Pi 5 · GStreamer · RapidOCR · ONNX Runtime · FastAPI · SQLAlchemy · WebSocket

Architecture

JWC line monitoring data pipelineThe machine panel's HDMI output reaches a Raspberry Pi 5 through a USB capture card. A GStreamer tee splits the video: one branch goes to the operator display, the other to OCR. The defined reading regions are read with RapidOCR (ONNX Runtime), the readings are cross-checked, and the central FastAPI service turns them into events, OEE figures and a WebSocket live feed.HDMIUSB captureGStreamertee: display + OCRROI + OCRRapidOCR / ONNXValidationcross-checkFastAPIevents · OEE · WSOnly the read values go over the network, not frames — a few hundred bytes per second

Problem

The factory's machines showed their production counters only on the operator screen; there was no PLC output, database, or report file. Nobody knew how many minutes of downtime had occurred by the end of a shift.

Solution

  • Field device: HDMI → USB capture → Raspberry Pi 5. A GStreamer tee splits the video in two: one branch goes uninterrupted to the operator screen, the other to OCR. Only the extracted values go over the network, not frames (a few hundred bytes per second).
  • OCR engine chosen by measurement: Cloud OCR (Mistral) was ruled out due to latency, cost, and data privacy. PaddleOCR and RapidOCR use the same model; RapidOCR (ONNX) was chosen because it installed cleanly on ARM. The small model matches the medium model's accuracy and is 3.7× faster.
  • Event engine: A state machine turns raw readings into events: stoppage, model changeover, counter reset, quality alert, and signal loss. Stoppages are backdated to the moment the counter last incremented, and OEE is calculated from the output.
  • Validation: The quality rate read from the screen is checked against the good/total calculation; readings that don't match are rejected.

Field results

Validated capabilityResult
OCR reading of 6 fields6/6 correct, 99%+ confidence score
Stoppage detectionActual 90 s → measured 88 s
Outage resilience38 pending readings restored from disk
Model changeover / counter resetCaught in both directions