Operations · 7 min read
Active learning for computer vision on a line camera that never stops
The weld camera runs three shifts. The model returns the frames it doubts, the inspector corrects them, and past the threshold a new version trains and ships.
Summary
This post describes active learning as it runs on a fixed camera over a robotic weld cell: the model returns the frames it is unsure of, an inspector corrects them, the corrections count toward a threshold, and a new version trains and replaces the old one with no downtime. It concludes that the correction rate is the only signal the loop needs, and that the queue getting shorter is how you know it is working. It is for the engineers who own a deployed model.
Rob Hickey · Chief AI Officer · Sep 27, 2026

Robotic welding cell from the cell camera, part and robot arm boxed, generated scene with detections from our model
The camera over the exit of the weld cell on line 6 sees every seam a few seconds after the torch leaves it, three shifts a day, and the model boxes porosity, undercut and spatter on each one. It was trained in the spring on a few thousand seams the inspectors labeled by hand over a fortnight. It has not been touched since, and the seams have: a new wire lot in July, a fixture rebuilt in August, a second part number in September.
The model's accuracy on those seams is whatever it is. Nobody has a number, because the number would need fresh labels, and the labeling budget was spent in the spring. What the plant does have is an inspector who looks at the frames the model was unsure of every morning, and that turns out to be the whole of active learning, if the corrections go somewhere.
Passive collection buys a thousand pictures of the same good weld
The instinct when accuracy is in doubt is to record more. Pull a week of frames off the line 6 camera, send them for labeling, retrain. A week of frames from a fixed camera over a cell that runs the same part is a very large number of near-identical pictures of a good weld, with the defects the model actually struggles with appearing at their natural rate, which is rarely. The labeling budget goes on confirming what the model already handles.
The how much footage lesson puts it in one line: the unit that matters is distinct conditions, and a random draw from an archive is dominated by the ordinary. On a weld cell the ordinary is a clean seam under the same light, and the model was already good at those in spring.
The model chooses the frames by returning the ones it doubts
Active learning inverts the draw. Instead of a person choosing frames for the model, the model chooses frames for the person. They are the ones where its boxes are unstable across consecutive frames, where the porosity class sits at the edge of its threshold, and where the new part number's seam geometry puts a weld in a corner of the frame it has weak evidence for. Those come back as doubted frames. The clean seams do not.
On line 6 that means the morning queue holds the seams from the new wire lot, whose spatter looks different, and the seams on the second part number, which the spring model has never seen. It does not hold the thousand good welds from the night shift. The inspector's twenty minutes go on exactly the frames that will change the model.
One caution the queue needs built in. A model that only ever trains on its own doubts drifts toward a training set made entirely of hard cases, and forgets what an ordinary seam looks like. A small random draw of confident frames joins every batch, so the next version still knows a good weld when it sees one.
The frames it is confidently wrong about never reach the queue this way, and they exist. The fix is an inspector who can flag a seam from the station when the model passed a defect, and on the lines we run that flag drops the frame into the same queue.
The inspector's correction is the label and the signal at once
The inspector opens the queue. Lexi has already drawn a proposed box on each doubted seam; the inspector confirms the right ones, moves the close ones, and draws the undercut the model missed on the new part. Each verdict is checked against the plant's written guideline for what counts as porosity at what size, so the labels the next version trains on are the same labels the spring set was built from.
Each verdict is also counted. A confirmed box is agreement. A moved or redrawn box is a correction, logged against the class and the camera and the shift. The correction rate on the porosity class rising from the July wire lot, and again on the second part number in September, is the drift signal. There is no separate monitor. The inspector doing the morning's work is the monitor, and the number falls out of it.
Welders call porosity that runs in a line along the seam worm holes, and the inspector on line 6 labels it that way because the guideline says to. The model has a class called porosity and does not know the difference. It does not need to.
The threshold turns corrections into a version without anyone scheduling it
Corrections accumulate against a threshold the project set, and when they cross it a new version trains. Nobody raises a ticket. The training set is the spring set plus every correction since, never the corrections alone, because a model retrained only on July's spatter and September's part loses the seams it handled in spring. The retraining lesson has the rule: keep the old frames, add the new, weight up the rare condition rather than deleting history.
My own view, held against the common practice of a big quarterly retrain, is that a small retrain every time the threshold is crossed beats a large one on a calendar. The corrections are fresh, the condition that caused them is still on the line, and the version that fixes it arrives while the wire lot is still in use rather than after it has been consumed.
The new version is checked on the frames that triggered it before it rolls out
Better has to be defined before the new version replaces the old one. An aggregate accuracy figure hides the trade: a version one point better overall can be worse on undercut, which is the defect the cell was instrumented to catch. So the comparison is per class, and it is on the frames that caused the retrain, the July spatter and the September part, held out by time rather than drawn at random so the score measures generalisation instead of memory.
When the new version wins on those without losing the spring seams, it rolls out with no downtime, and the version it replaced keeps a record of what it was trained on so it can be brought back. That bookkeeping is the unglamorous half of active learning. A loop that cannot say which frames trained which version cannot be trusted with a spec change, and the weld guideline will change eventually.
LexData takes the weld model through its whole life. You type what to look for, Lexi puts a box on every frame, and a person checks each label before anything trains on it. The model then watches the cell camera line 6 already has, in the cloud, on your servers, or on a runner beside the recorder. Frames it is unsure of come back to a person, the corrections retrain it, and the new version replaces the old one with no downtime. Active learning is a description of that sentence's second half, and on the platform it is what happens by default rather than a project.
The queue getting shorter is how you know it is working
The measure of an active learning loop is the inspector's morning. In the week after the new wire lot arrived the queue was long and the corrections were mostly on spatter. After the version trained on those corrections rolled out, the queue on that class shrank, and the corrections that remained were on something else. The same happened for the second part number in September, faster, because by then the model had seen two changes and generalised better to the third.
A queue that does not shrink after a retrain is telling you something too. Either the condition is not learnable from this camera, which is a question for the what vision can see lesson, or the guideline is being read three ways by three inspectors, which is a labeling problem no amount of retraining fixes. Both show up in the same place, in the morning, on line 6.
See it on your own footage.
Start with your footageMore in Operations

Operations · 7 min read
Camera focus measurement for a fixed camera that slowly goes soft
A lens loosened by vibration fails over weeks, and the model suffers before anyone sees blur. A sharpness score against the camera's own history catches it.
Rajiya Sultana · Sep 27, 2026

Operations · 6 min read
Danger zone monitoring with object detection on a site camera
A polygon over the crane swing radius on a site camera. People and vehicles as classes, the bottom of the box as the test, the alert with the frame attached.
Esdras Ntuyenabo · Sep 27, 2026

Operations · 8 min read
Collecting image training data from a production line without keeping every frame
A carton line's model starts missing a new print. Sample the frames it doubts, drop near-duplicates, review them, and let corrections train the next version.
Sheikh Srijon · Sep 27, 2026