01 — What you are building
A small inspection cell — two cameras, a Raspberry Pi 5, up to four AKD1500 cards, a conveyor and a robot arm — and what each part is for.
SE Inspect is an inspection cell in miniature. Parts arrive in a delivery zone, are segmented and identified, receive a verdict (good / unknown / reject), travel on a conveyor to a pickup zone, and a robot arm removes them. The system is taught directly at the machine with a handful of photos and learns in seconds — no GPU, no cloud.
Who does what
The design principle that survived every rewrite: the Pi knows where, Akida knows what.
| Task | Runs on | Why there |
|---|---|---|
| Camera capture, foreground/background, contours, geometry, tracking, UI, line state, alarms, recipes | Raspberry Pi 5 (OpenCV, Python 3.11) | spatial reasoning is cheap on a CPU and needs pixel coordinates |
| Recognising a learned part from its silhouette | AKD1500 cards 0–2 ("silhouette ensemble") | prototype learning on the chip: ~2 ms per example to learn, milliseconds to recognise |
| Finding several, possibly overlapping parts in one frame (SE-M3 detector) | AKD1500 card 3 | one card, one hardware pass — the research goal of the project |
What you need at minimum
- One AKD1500 is enough. With one card you get on-chip learning, recognition, "Why recognised?", the line, belt and arm. Cards 2–3 add view coverage (the ensemble); card 4 adds the optional M3 detector. The software adapts to the number of cards it finds.
- One camera is enough. The second camera gives you a second angle on the delivery zone ("second view" fusion) or a separate camera per zone.
- No belt, no arm is fine for learning and recognising. The belt then runs in simulation (
VORSA_BAND=sim), the arm is simply absent. - No hardware at all:
python3 tools/run_web.py --synthetischruns the whole UI on a laptop with synthetic scenes.
What it is not
An alpha. Recognition rates of the M3 detector on real images are not yet evaluated (see Evidence → Limitations). The software is not a certified safety system: the belt and the arm move, and chapter 12 is mandatory reading before either is powered.
The two learning paths, once and for all
People mix these up, so here they are side by side:
| Chip learning (productive) | M3 training (experimental) | |
|---|---|---|
| What | 48 × 48 binary silhouettes → FullyConnected layer with AkidaUnsupervised (prototypes, no gradients) |
Convolutional detector trained in TensorFlow/Keras, quantised with cnn2snn, converted to .fbz |
| Where | on the card, from the UI, ~2 ms/example | in a separate Python environment on the Pi (or a PC), minutes to hours |
| Output | one part per crop, with the learned photo that won | several parts per frame with rotated boxes, angle, occlusion |
| Cards | 0–2 | 3 |
Checkpoint: you can say which of the four parts lists above you are going to build, and whether you need the training environment (chapter 06, step 4) at all.
