Ask a modern anomaly detector to find a scratch on a metal surface, a crack in a casting, or a stain on fabric, and it will do an excellent job. Ask that same class of model to notice that a microplate is sitting in the wrong nest, rotated ninety degrees, or still wearing its lid, and performance falls off a cliff. This is not a tuning problem. It is a structural gap in how visual anomaly detection is built and benchmarked, and it happens to sit exactly where lab automation faults live.
Two kinds of "wrong"
It helps to separate anomalies into two families. Structural (or textural) anomalies are local: a defect appears in a small patch of pixels that looks different from the material around it. A scratch, a dent, a discoloration, a missing thread. You can detect these by learning what "normal texture" looks like and flagging regions that deviate. The rest of the image can be ignored.
Logical (or arrangement) anomalies are global. Every individual object in the scene can look perfectly normal, yet the configuration is wrong: the right parts in the wrong places, the wrong count of an otherwise-fine object, a valid item in an invalid position, or two things that should never co-occur. Nothing is locally defective. The relationship is the defect.
That distinction matters because most of the anomaly-detection literature — and most of the models shipped from it — was optimized for the structural case.
The published gap
The clearest public evidence comes from MVTec LOCO, a benchmark released specifically to separate these two failure modes. It reports scores for structural defects and logical defects side by side, on the same scenes. The pattern in the literature is consistent: methods that score in the mid-80s AUROC on structural/textural defects drop toward the low-60s on the logical-anomaly split. Same detectors, same images, roughly twenty points of AUROC lost the moment the fault becomes about arrangement rather than texture.
The uncomfortable summary: the state of the art can reliably tell you a part is scratched, and struggles to tell you the parts are in the wrong order. For a lab deck, the wrong order is the whole problem.
We cite these figures as public research, not as AssayEye results. The point is not our number; it is that the field's best general-purpose detectors are weakest precisely on the fault class that dominates a workcell deck.
Lab placement faults are logical anomalies
Walk through the faults that actually stop an automated run and notice how few of them are textural:
- Rotated plate — a perfectly good plate, oriented A1-to-the-wrong-corner. Every pixel is "normal."
- Wrong nest — the right labware, seated in the position meant for something else.
- Lid on — a valid lid, present when the next step needs it absent.
- Wrong count — nine tip boxes staged where the method expects ten; each box is fine.
- Hotel/stacker occupancy — a slot that should be empty is full, or vice versa.
None of these is a scratch. They are relationships between known objects and known positions. A texture-first detector, dropped onto this deck, is being asked the one question it was never trained to answer well.
Why factory-floor benchmarks measure the wrong thing
Most off-the-shelf industrial-vision tooling is validated against the structural case, because that is where the historical demand lived: surface inspection, defect grading, cosmetic QC. Those benchmarks reward pixel-level sensitivity to local deviation. Score well there and you have proven you can find a scratch — you have proven almost nothing about whether you can catch a lid-on plate in the wrong nest. Picking a vision stack on factory-floor defect metrics, and then pointing it at a liquid-handler deck, is optimizing for the wrong test.
How we approach it
Our engineering response is to stop treating deck verification as an open-ended anomaly-detection problem, and instead collapse most of it into questions a deterministic system can answer with high confidence. Two ideas do the work.
Geometry first, learning second
The deck is not an unconstrained natural scene. It is a known layout: fixed nest positions, known labware footprints, a defined method that says what belongs where at each step. That structure lets us pose most checks as geometry rather than as learned appearance — is an object present at this coordinate, does its footprint and orientation match the expected part, is the count right, is the lid plane present. These are deterministic checks with clear pass/fail logic, not probabilistic guesses, which is what you want on the safety-relevant path that decides whether to release or hold a run.
A constrained scene that collapses logical faults into position checks
Because the scene is constrained and the expected configuration is known ahead of time, a "logical" fault — wrong arrangement — reduces to a "positional" question we can actually verify: is this object where the method says it should be, in the state the method says it should be in. The hard, global, relationship-reasoning problem becomes a set of local, checkable assertions against a known plan. A small learned layer is then reserved for the genuinely subtle cases where deterministic geometry is not enough — a not-fully-dropped tip, a questionable seal, a mis-seated plate that is only slightly proud of its nest — rather than being asked to carry the whole load.
This is a design philosophy, not a benchmark claim. We are pre-launch and forming a design-partner cohort, and we will publish honest numbers on real decks as we validate them. What we are confident stating today is the shape of the problem: the faults that matter most on a workcell are the faults generic detectors handle worst, and building for that reality means putting deterministic geometry first and using learning where it genuinely earns its place.
See how the smart visual sensors fit together on the platform overview, or book a demo and bring a deck we can reason about.