vq_monitor
Real-time video quality monitoring tool with 25 perceptual metrics, spatial heatmap, and scenario testing engine.
GN · Internal Tool · Python
vq_monitor
Real-time video quality monitoring with live browser dashboard, 25 perceptual metrics, and scenario testing.
BRISQUE < 50
freeze_detected: false
vq_monitor is a Python tool that captures video from a camera, file, RTSP stream, or screen recording, then computes a set of quality metrics on each frame and streams the results to a browser dashboard in real time. It was built to support video quality evaluation work at GN, where there is a recurring need to monitor how a camera or codec behaves across different lighting conditions, motion levels, or compression settings without setting up a formal subjective study first.
Each frame is scored across 25 metrics spanning perceptual and signal-level dimensions: brightness, sharpness, noise, contrast, flicker, freeze detection, face-area quality, BRISQUE (a no-reference perceptual quality score), and SSIM against a reference frame, among others. Spatial issues are localised using an 8x6 grid heatmap that flags which regions of the frame are degraded, rather than collapsing everything into a single number.
The architecture is straightforward. OpenCV handles capture and frame processing, PyTorch runs the BRISQUE model, and FastAPI serves both a WebSocket stream of metric data and an MJPEG video stream to the browser dashboard. The dashboard updates in real time without requiring a page refresh.
A scenario testing engine allows structured test runs to be defined in YAML. Each scenario is a sequence of phases, each with a duration and a set of pass/fail criteria applied to the metric stream. This makes it possible to run a repeatable test protocol, for example: baseline, low-light, motion stress, high compression, recovery, and get a structured pass/fail report at the end rather than reviewing raw data manually.
Stack
Internal tool. No public repository. Built for the GN Perceptual Evaluation Team to support pre-study camera and codec assessment, scenario-based quality regression testing, and exploratory monitoring during hardware bring-up.