Technology Executive  &  Engineering Leader

AI/ML

Seeing Causes, Not Tears — Computer Vision on the Paper Line

In 2003, while interning at Gulf States Paper Corporation, I built a system to automate defect detection on a paper manufacturing line — and stumbled onto something more interesting than I'd set out to find.

An Industrial Problem

Paper manufacturing runs at speeds and scales that punish human inspection. A tear in a roll doesn't just mean a defective product; it shuts the line down entirely, requiring manual labor to clear the machines before production can restart. Operators did their best with spot checks, but the line didn't pause for a second opinion. Gulf States wanted automation: continuous monitoring that could flag a defect before it became a line-stopping event.

The Vision Pipeline

This was 2003. There was no cloud ML, no pretrained ResNet, no labeled dataset waiting on Kaggle. We wired industrial cameras to PCs on the factory floor and built an image pipeline from scratch: capture frames from the moving line, strip color information to reduce each frame to a lower-bit-depth grayscale representation, then inspect the masked area of the resulting byte array against known-good thresholds. If the masked region fell outside acceptable bounds, a defect was flagged.

The approach was intentionally primitive — the constraints demanded it. Limited compute, harsh and variable lighting, vibration on the floor, and a hard requirement that false positives not stop a line worth thousands of dollars per hour idle. The system didn't need to match human judgment on ambiguous cases. It needed to catch what humans consistently missed at line speed, and do it reliably enough to be trusted.

Resourcefulness as a Feature

When off-the-shelf libraries didn't fit the line speed, we adapted them. When lighting calibration drifted between shifts, we built recalibration into the operator workflow instead of pretending the factory was a lab. The goal was always a system that worked in the real environment, not a proof-of-concept that required the environment to cooperate.

Where It Got Interesting

Catching a defect is useful. Knowing why it happened is valuable. The more interesting insight emerged from what we did the moment a failure was recorded: we eventually built an integration to pull data on every replaceable part on that section of the assembly line — age, installation date, recent maintenance history — and one to the time-card system to identify who was working the line at the time.

Most people assume defect patterns cluster by when failures happen. What we found was that they clustered at least as strongly by when the affected parts were installed. A component wasn't necessarily failing because of what happened today; it was aging out of tolerance on a predictable curve. By correlating defect events with part install dates rather than just failure timestamps, we could build leading indicators: this combination of part ages, under these operating conditions, has historically preceded a line stop within the next shift.

That predictive layer turned a reactive quality system into a proactive one. Maintenance could be scheduled around part age curves rather than waiting for the line to tell you something had gone wrong.

The Pattern That Stuck

What I took away from Gulf States wasn't a particular algorithm — it was a question worth asking on every project since: what's the adjacent data that nobody thought to connect? The defect was visible to the camera. The cause was hiding in the parts log.

Twenty years later, that same instinct — correlate the signal with its context, not just its timestamp — shows up in forecasting models, ML pipelines, and anywhere else the most useful feature turns out to be one the original system was never designed to surface.

gulf-states-cover
© 2026 by RJ Cantrell.