After launch
A camera moved. Here is what it does.
Someone nudged a lens during a wash-down and the model has been looking slightly past the thing ever since.
From the floor
Nothing was reported. A crew cleaned the housing, a pole was re-tensioned, a bracket was replaced. The feed still looks correct to a human on the monitor because a human recognises the scene from any angle. The model does not: it learned an object at a framing, and four degrees moved the object into a part of the frame it has weak evidence for.
Which failure is it
Covariate shift
The thing being detected is unchanged and so is the definition of a defect. What changed is the input distribution, which is the textbook covariate case.
Four modes, and they need different responses: covariate, concept, prior, and a pipeline event wearing drift’s coat.
What moves first
Accuracy is the last thing to tell you.
Detection rate for one camera diverges from its own history while every other camera on the same site holds steady. Confidence typically falls broadly rather than for a single class. The change correlates with a maintenance date, not with a defect type.
Measuring accuracy directly needs fresh labels, so teams lean on proxies between audits. By the time a quarterly audit shows a drop, the system has been wrong for a quarter. The cheap signals are confidence per class, detection rate per camera against its own history, and how often a reviewer overrides the model.
What to do
Re-label a short window from the new framing and retrain on it. This is the cheapest condition on this list to correct, because the corrections come from footage you already have.
What it costs to ignore
A model that quietly stops covering part of its field of view. Nothing alerts, because an object that is never detected produces no low-confidence detection to alert on.
Where this shows up
What it gets first