A computer vision deployment that passes acceptance testing and then degrades in production is almost always a lighting story. It is the single most common reason we see vision pilots judged successful in week two and unreliable by week six.
Why acceptance testing hides it
Acceptance runs happen during the day, on a scheduled visit, with the line running normally. That is one lighting condition. Production has several: daylight through roof panels, sodium and LED mixed at dusk, night shift under artificial light only, and the periods where both are present and the colour temperature shifts across the frame.
What actually degrades
- Detection confidence drops as contrast falls, so borderline detections cross the threshold and disappear.
- False positives rise where shadows produce edges the model reads as objects.
- Colour-dependent classes — high-visibility vests in particular — degrade fastest, because the colour that defines them is the first thing artificial light distorts.
- Reflective surfaces that were invisible during the day become the brightest thing in the frame at night.
What does not work
Lowering the confidence threshold to compensate. It recovers the missed detections and brings the false positives with them, and the operators stop trusting the alerts within about a week. Once trust is gone it does not come back on the same deployment.
What does work
- Collect training data across every lighting condition the camera will actually see, including the transition periods, before go-live rather than after.
- Treat shift as a feature. Model behaviour is measurably different at night, and the system should know which regime it is in.
- Calibrate per camera, not per site. Two cameras forty metres apart can sit in entirely different light.
- Monitor confidence distribution over time, not just accuracy. A drifting distribution is the early warning; an accuracy drop is the late one.
Written from deployment experience across multiple sites. Patterns are described without identifying any customer — we are under confidentiality with the operators involved.
Talk to an engineer about this