Four checks on the outlet pipe, four on the air filter — 100% inline inspection at two stations, with missing and omitted parts alarmed and stopped on the spot.
Both parts are multi-component assemblies; watched by eye, one missed part becomes one warranty claim.
The outlet pipe carries a plastic ring, an iron ring, an iron hoop and a plastic post. The air filter must have all six screws present, the barcode applied, the foam ring fitted and the iron ring in place.
These parts are small, varied in colour and not fixed in orientation, so manual inspection tires and misses. The requirement is to move both parts from sampling to 100% inline inspection: any missing or omitted part raises an alarm on the spot and is stopped before the next process.
Turn "is it fitted, and fitted right" into a question the system answers on the spot.
The aim is not to replace people but to move the judgement off the human eye: the system decides each part's presence and seating on the spot, alarms and keeps the image for traceability, and the operator only handles the units that get stopped.
Listed item by item against the site requirement, each mapping to a decidable visual target.


One flow, five nodes — every check lives in the configuration layer, so a changeover edits configuration, not the model.

Drag operators from the library onto the canvas and wire them into a flow — that is the skeleton of the system. The pipe and the filter each get one flow, identical in structure; only the segmentation classes and the state-machine checklist differ. That is what makes the setup reusable: adding a station later means dragging out one more flow.

Build one class per part to judge: body + plastic ring / iron ring / iron hoop / plastic post for the pipe; screws / barcode / foam ring / iron ring for the filter. Label 1–10 site images per class, click "Transfer" to train and "Detect" to verify, and the class is live. Small parts, mixed colours and free orientation are just sample diversity to a few-shot segmenter — no per-pose modelling is needed.

Each part event needs a single "object present" primitive: once segmentation recognises the class, presence in the frame is the condition. "Piece arrived" and "piece left" watch the pipe body, the latter through "object absent". If a check needs to be stricter, drag in another primitive and join it with AND — parameters only change the decision, never the segmentation model.

No assembly order is enforced, so the state machine enforces none: a piece arriving enters "inspecting", the four part events tick their checklist entries in whatever order they fire, and when the piece leaves, four ticks mean OK while any gap raises an audible-visual alarm and keeps the image. The "start → inspecting → end" chain and the checklist on the dashboard are this state machine running.
For a changeover or a new part, a few sample images reconfigure the relevant class and one line is added to the checklist — no retraining of the whole model — which is what lets this approach fit high-mix, low-volume lines.
Two on-site recordings, one for each station's real-time inspection screen.