Example Manufacturing quality

A camera frame decides pass or reject. See which step's output moved, and whether the decision did.

A camera's frame of a bottle on a line comes in as a small array of brightness values. The pipeline measures the fill level, passes or rejects the bottle, and records the command a line would be given.

Invented example data, recorded when the demo was built. The demo records and compares; it controls nothing. The screenshots are from a build of the same demo: each build gives its runs new fingerprints and times, so those differ from the live demo's, and what the screenshots show is the same.

The pipeline

Three steps, from a frame to a reject command.

  • measure reads the fill level, with the tool fill-level-camera.
  • classify passes a bottle filled to the reject line or above, and rejects one below it.
  • reject_command records the command a line would be given.

What the demo plants

The runs, and what was changed in each.

RunWhat was changed
p6-36-fill-baselineNothing: the baseline.
p6-37-fill-exposure-changedThe camera's exposure, a setting of measure's tool.
p6-38-fill-below-reject-lineA bottle filled below the reject line.

What onetrace shows

Each change, located in the record.

The exposure change: the level moves, the decision doesn't

measure reads 130 mm where it read 110, so it is the first difference. The bottle still passes: classify and reject_command produce the same output as in the baseline, and the page marks them Same again. The exposure sits inside the tool's configuration, shown as its fingerprint differing.

The live demo's comparison of p6-36-fill-baseline and p6-37-fill-exposure-changed. First difference at stage 1, measure, whose recorded configuration differs; classify and reject_command are marked Same again.
Comparison page: first difference at measure, then Same again.

The under-filled bottle: rejected

The frame itself differs, so measure reads 70 mm, classify says reject where it said pass, and reject_command records "reject the bottle" where it recorded none. No setting changed: the page says the input differs.

The live demo's comparison of p6-36-fill-baseline and p6-38-fill-below-reject-line. First difference at stage 1, measure; classify and reject_command are marked Changed after it.
Comparison page: the new frame, and the reject it leads to.

What it doesn't say

A located change, not a reason.

The comparison shows where the outputs part and that the decision held or flipped. It doesn't say whether the exposure or the reject line is set right. See what each verdict means and what onetrace does not claim.

Try it yourself: this pipeline in the live demo, or on your machine with pip install onetrace-console and onetrace-console demo --open.