Repository navigation
SE Inspect 1.0.0-alpha.4 — tells foreign parts apart by appearance
Pre-release2026-11-01 · fourth public alpha · licence PolyForm Noncommercial 1.0.0 (LICENSE, commercial use: COMMERCIAL.md)
This alpha is about telling parts apart honestly. A cell that only sees outlines will call anything SD-card-shaped an SD card; alpha.4 adds what it takes to say "unknown" instead. It also contains a fix for a regression we introduced and caught on our own bench — described below, because that is how this project works.
Measured on the bench
Pi 5, four AKD1500 M.2 modules, Camera Module 3, white paper, 48-scene test set (15 × SD card, 15 × Allen key, 8 × both, 5 × empty, 5 × dark plastic foreign parts shaped like an SD card). Confidence threshold 60 %.
| before (build 1.9.75, 4 Oct) | alpha.4 (build 1.9.81, 1 Nov) | |
|---|---|---|
| Single parts named correctly | 30 / 30 | 29 / 30 |
| Empty table, nothing reported | 5 / 5 | 5 / 5 |
| Foreign parts reported as unknown | 0 / 5 | 4 / 5 |
| Two parts, both named, nothing extra | 2 / 8 | 2 / 8 |
| False-confident names (all scenes) | 5 / 61 | 1 / 59 |
One test set, one bench, two object types — a measurement, not a benchmark. Builds 1.9.82–1.9.83 (also in this release) add diagnostics and a switch that is off by default; they do not change these numbers.
New: foreign parts with the same outline
- Appearance check: from the training photos the cell learns what each object looks like — brightness, texture, bright and dark areas, colour, edge density inside the part — and compares a named part with its nearest training photo. The limit comes from the training photos themselves (how far each photo is from its nearest neighbour). A part with the right outline but foreign appearance becomes unknown, with a readable reason ("appearance does not match colour, bright areas, texture"). On the bench: real cards 0.39–1.01, plastic chips 3.0–3.4, limit 2.66.
- Stray parts can win: parts taught as Background now win when they match clearly better (≥ 10 points) and are reported as stray part (verdict reject).
Fixed: a regression we caught ourselves
Builds 1.9.76–1.9.79 measured the appearance of training photos and of live parts with different masks. Real SD cards were rejected as "foreign", and the M3 detector was then allowed to rename the rejected part — as "Allen key". Single parts dropped from 30/30 to 17/30 on the bench. Fixed in 1.9.80: same mask on both sides, and a part rejected by appearance can no longer be renamed by the detector. A bench with real images from the Pi (tools/test_aussehen_echt.py) now guards this.
New: one part stays one part (partly)
- Confidently named parts are not split by the M3 detector any more unless the pieces are clearly stronger and say something else; detector boxes that cover a part already found are dropped as duplicates; small gaps from glare are bridged.
- Not solved: a chrome Allen key on white paper mirrors the paper and is partly invisible against the empty image (gap of about a quarter of the image width, see
/api/diag_maske). No software bridging closes that. Use a mid-grey or matt black base for shiny metal parts. An edge-based switch (kanten) is included but off until measured.
New: see which scene fails, and why
- Individual scenes under the threshold curve: thumbnail, expected, found, status; filter "errors only"; view at the current threshold or the suggestion.
- Diagnostics: switches for appearance check, gap bridging and edge silhouette (
/api/erkennung_schalter), test runs on a selection of scenes ({aktion: start, szenen: [ids]}, does not overwrite calibration), the decision trail per scene, and the last foreground mask as an image (/api/diag_maske).
Known limitations
- Shiny metal on white: see above. Parts that differ neither in outline nor in appearance cannot be told apart — SE Inspect does not claim otherwise.
- Two parts touching or close together: 2 of 8 scenes fully correct on the bench.
- Digital I/O, the Modbus I/O-module driver and the PLC interface remain untested on real I/O hardware. Modbus has no authentication: isolated machine networks only.
- Alpha: interfaces, file layouts and the
vorsa_daten/format may change between alphas without migration. Nothing in this software is a safety function (SAFETY.md).
Upgrading from alpha.3
Pull, then sudo systemctl restart vorsa. Appearance profiles are rebuilt automatically within about a minute (aussehen.json; the earlier format is discarded). Run the test set once afterwards.
Changes
CHANGELOG.md lists builds 1.9.75 → 1.0.0-alpha.4; each has a reproducible patch script in tools/. New benches: test_fusion, test_glanzluecke, test_aussehen, test_aussehen_echt (real images from the bench in beispielbilder/). Specification: SE_INSPECT_1_1_SPEC.md.