beltvision: A Reproducible Classical Computer-Vision Inspection Engine for Conveyor Belts, Verified on Ground-Truth Synthetic Scenes
Conveyor-belt inspection asks a vision system to find the belt, measure its geometry, tell an empty return strand from a loaded one, and flag damage or foreign objects, and the honest difficulty is that most published demonstrations run on private field footage that no one else can rerun. beltvision is a reusable inspection engine that bundles the classical vision methods (CLAHE preprocessing, belt-edge geometry, semantic layering, granulometry, anomaly and tracking) behind a staged pipeline, and it ships something a field demo cannot: a deterministic suite of synthetic belt scenes carrying their exact ground truth, so the engine can be benchmarked with no external or private data. This software note reports that benchmark. On six generated scenes spanning vertical, horizontal, diagonal, curved and laterally misaligned belts, the training-free classical chain recovers the belt-axis orientation to a mean error of 2.5 degrees (worst 7.5, all within the 8-degree product tolerance), recovers the belt footprint at a mean intersection-over-union of 0.81, segments the exposed belt rubber at 0.84 and the mineral load at 0.96, and recovers an injected lateral misalignment (-9 degrees ground truth) to -7.5 degrees, correct in sign and within 1.5 degrees. The whole classical chain runs in a mean of 71 ms per frame on one CPU core. It also reports the honest limitation the same ground truth exposes: the classical core does not isolate small foreign objects (per-class intersection-over-union 0.00), which is exactly the task the engine delegates to an optional, lazily imported learned lane (a convolutional auto-encoder, PaDiM and PatchCore, trained normal-only under the MVTec AD protocol). Every number regenerates from the seed and the committed code; no belt imagery is redistributed. Package (Apache-2.0): https://github.com/fsantibanezleal/beltvision .