Aller au contenu principal
Tous les articles
3 min read

Why your vision model gets worse over time

A vision model is not a bridge. You don't build it once, cut the ribbon, and walk away. A detector that scored well the day it shipped can quietly lose accuracy over the following months while every dashboard still shows green. The weights never changed — the world in front of the camera did. That slow divergence is drift, and planning for it is the difference between a system that earns trust and one that loses it the first time it's wrong about something that matters.

The model is frozen; reality isn't

When you deploy, you freeze a model against the world as it looked in your training data. Then the world keeps moving:

  • The scene changes. A camera gets nudged during maintenance. A new light is installed. Seasons change what "normal" lighting looks like. A wall is repainted and your background assumptions quietly break.
  • The subjects change. New equipment, new uniforms, a different vehicle in the fleet, a material you never saw in training comes down the line.
  • The optics change. Lenses get dusty. Sensors age. Compression settings get tweaked on the NVR. The pixels reaching your model are not the pixels you trained on.

None of these trip an error. The pipeline runs, frames flow, the model returns confident answers — they're just slowly becoming the wrong answers.

You can't fix what you don't measure

The dangerous thing about drift is that it's invisible if you only watch uptime. The service is up. Inference latency is fine. No exceptions in the logs. The only thing that's wrong is the part nobody is looking at: whether the predictions are still true. Catching it means monitoring the model's behaviour, not just the server's health:

  • Watch the score distributions. When the spread of confidence scores or the rate of detections per hour shifts away from the baseline you captured at launch, something upstream has moved — even before you can name it.
  • Keep a standing audit set. A small, fixed set of labelled frames you re-score on a schedule turns "I think it's still fine" into a number you can plot.
  • Make it easy to sample real misses. The fastest signal is the operator who says "it missed one." A system that lets them flag a frame in two clicks gives you ground truth that no synthetic test set will.

This is the same gap that sinks projects at launch, just on a slower clock — the one I wrote about in why computer vision fails in production.

Designing for drift from day one

The fix isn't a heroic re-training sprint six months in. It's building the system so that drift is expected and cheap to correct:

  • Keep models hot-swappable. If shipping a better model means rebuilding the whole pipeline, you'll put it off. If it's a config change, you won't. A streaming layer that treats the model as a replaceable component is what makes a retrain a routine event instead of a project.
  • Version the data, not just the code. When accuracy slips, you want to know exactly which footage the current model learned from — and add the new edge cases to it.
  • Close the loop. Flagged misses feed the next training set; the next model ships behind the same monitoring; the cycle repeats. That loop, not any single model, is the actual product.

The honest version

Drift isn't a flaw in computer vision — it's a property of putting any model in front of a changing world. The vendors who pretend a model is "done" at launch are the ones whose systems quietly rot. The useful promise isn't a model that's perfect forever; it's a system that notices when it's slipping and is built to be corrected without drama.

That's the part that decides whether a vision system is still earning its keep two years in. If you're running cameras and want them to stay trustworthy, not just live, book a call.