From the field

High-speed packaging checks on a food line

Film glare and SKU changes were killing presence and print checks. The fix started with light — not with another algorithm.

Context

A food packaging line needed reliable presence and seal/print checks at high takt. Engineering sat with the manufacturer; an integrator owned cell I/O. The cabinet was already crowded. Nobody wanted a science project — they wanted a station that operators trusted after the weekend changeover.

What was going wrong

False rejects from specular glare on film. Slight format changes between SKUs that shifted the region of interest. Desktop demos looked fine under soft office light. On the line, ambient reflections and motion made the same threshold unstable.

These failure modes show up across packaging: missing seal tape on cartons, misaligned or missing labels, loose caps, date-code presence, front/back orientation on glossy packs. The pattern is the same — contrast and stability beat cleverness.

Constraints

Washdown-adjacent station, limited working distance, fixed PLC brand, PoC in weeks. Primary decision: presence and print OK/NOK. Secondary wishes (full OCR, AI grading) explicitly parked.

Stack choice

Diffuse / dome-style lighting to kill hotspots on film. Optics matched to FOV, not to catalogue resolution. A smart camera for bounded presence and print tools where SKUs shared geometry. Escalate only if a class stayed unstable after light and optics were right. See lighting and quality inspection.

Result

Stable OK/NOK with recipes operators would own, and a documented PLC handshake. Exact scrap KPIs stay with the plant — the engineering win was repeatability and changeover discipline.

Lessons

Lighting was most of the project. Software was the last fifth. Format-change management mattered more than another tool. Write success criteria before you argue about camera brands.

Vincent van Montfoort

Talk through your application.

Share takt, samples and constraints — we help you select the stack, detect what matters and close the control loop.