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 — 25 metrics — browser dashboard — scenario engine

OpenCV FastAPI PyTorch WebSocket MJPEG NumPy BRISQUE SSIM YAML scenarios 8x6 heatmap
vq_monitor — localhost:8000 LIVE
Frame metrics
brightness
0.71
sharpness
0.58
noise
0.12
contrast
0.83
BRISQUE
34.1
SSIM
0.91
flicker
0.04
freeze
none
Spatial heatmap (8x6)
ok warn issue dim
Scenario engine
baseline_60sPASS
low_lightPASS
motion_stressRUNNING
compression_hiWAITING
recovery_checkWAITING
Active phase criteria
sharpness > 0.40
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 at GN, where there is a recurring need to monitor how a camera or codec behaves across different lighting, motion, or compression conditions 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, and SSIM against a reference frame. 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. The dashboard updates in real time without page refresh.

A scenario testing engine allows structured test runs to be defined in YAML. Each scenario is a sequence of phases with a duration and a set of pass/fail criteria applied to the live metric stream. This makes it possible to run a repeatable test protocol and get a structured report at the end, rather than reviewing raw logs manually.

Stack

OpenCV FastAPI PyTorch NumPy WebSocket MJPEG BRISQUE SSIM YAML config RTSP / screen / file / camera
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.