Zum Inhalt springen
Arcturis

Fallstudie · Anomalieerkennung ohne Grafikkarte

Auf diesem Bild ist ein Fehler.

Ein Verfahren, das noch nie einen Fehler gesehen hat, soll ihn finden — auf einer CPU von 2019, ohne Grafikkarte.

Urteilstafel der Endkonfiguration: drei Zeilen mit Originalbild, Segmentierung, Auffälligkeitskarte und Urteil. Bei der Schwelle 52,3456, allein aus fehlerfreien Bildern bestimmt, stehen 93 Treffer, 8 Fehlalarme und 7 durchgerutschte Fehler.
Erst der Erfolg, dann die beiden Fehlerarten. Ein Treffer, ein Fehlalarm, ein durchgerutschter Fehler — dieselbe Schwelle, dasselbe Modell, drei verschiedene Bilder. In dieser Reihenfolge liegt die Ehrlichkeit der Seite.
Kennzahlen93Treffer je 100 Fehler8Fehlalarme je 60 fehlerfreie Bilder52,3456Schwelle aus val_normal
Quelle92_capsules_korrigiert.json

Das Ergebnis, bevor die Herleitung beginnt

Vier Zahlen.

Auffälligkeitswert, Kapseln
0,7050 [0,6220, 0,7787] 0,9562 [0,9225, 0,9823]
von 100 Fehlern gefunden
44 93
gerechnet auf
AMD Ryzen 9 3900 von 2019, zwölf Kerne, keine Grafikkarte
Defektbilder im Training
keines · 434 fehlerfreie

Was die Hauptzahl bedeutet — einmal erklärt

Nimm ein fehlerfreies Teil und ein fehlerhaftes, beide zufällig gegriffen. Wie oft gibt das System dem fehlerhaften den höheren Wert? Bei 0,9562 sind es 95,6 von 100 Mal. Und die eckigen Klammern sagen, wie stark das Ergebnis geschwankt hätte, wenn wir andere Bilder erwischt hätten: breit heißt, die Stichprobe war klein; schmal heißt, darauf ist Verlass. Weil die beiden Klammern sich nicht berühren — 0,7787 gegen 0,9225 —, ist der Unterschied belegt und nicht Zufall.

Neben jeder Messzahl steht auf dieser Seite die Betriebszahl. 0,9562 heißt: von 100 Fehlern fangen wir 93, vorher waren es 44 — bei derselben Schwellenregel, die allein aus fehlerfreien Bildern bestimmt wurde. Im Betrieb sind das 141,5 Alarme je 1000 Teile statt 1000, also 86 % weniger Handprüfung.

Was in diesem Bericht wie gekennzeichnet ist

Der Bericht in vierzehn Abschnitten

Kennzahlen0,7050 → 0,9562Kapseln, Ganzbild → Instanz44 → 93gefundene Fehler je 10086 %weniger Handprüfung
QuelleZahlenblatt, 21. August 2026

01 — Ausgangslage

Die Bedingungen standen fest, bevor die erste Zahl entstand.

Der Umfang, damit die Intervalle einzuordnen sind

Bei den Kapseln stehen 542 fehlerfreie Trainingsbilder zur Verfügung. 434 gehen in die Vergleichsbank, 108 werden zurückgehalten und dienen ausschließlich dazu, die Grenze zu bestimmen, ab der ein Teil als auffällig gilt. Geprüft wird gegen 160 Testbilder — 60 fehlerfrei, 100 fehlerhaft. Nach der Zerlegung werden daraus 3164 Einzelobjekte, im Median 20 je Bild, Spanne 14 bis 27. Wer diese Zahlen kennt, weiß, wie viel eine Zahl auf dieser Seite wiegt.

Geht das überhaupt — oder braucht Bildprüfung zwingend teure Hardware und beschriftete Fehler?

Vier Produkte werden geprüft: Kapseln, Cashewkerne, Leiterplatten und Snack-Röhrchen. Die Antwort ist am Ende nicht eine Zahl, sondern der Weg zu ihr — einschließlich der beiden Wege, die nichts gebracht haben.

VerfahrenVisA (Amazon Science, CC BY 4.0) anomalib 2.6.0 PyTorch CPU SHA-256-Prüfung
Kennzahlen542 → 434Trainingsbilder → Bank160Testbilder (60 / 100)3164Einzelobjekte im Test
QuelleVisA_20220922.tar01_beschaffung.py

02 — Zuerst die Daten, nicht das Modell

Vier Befunde, bevor ein Modell gerechnet wurde.

Wer mit dem Modell anfängt, misst am Ende die Daten und weiß es nicht. Also zuerst vierzehn Prüfungen an den Bildern selbst. Die meisten davon ohne Befund.

StichprobeIntervallbreite [AUROC-Punkte]Kapseln6Leiterplatten6Cashewkerne5,6Snack-Röhrchen1,207
Vier Klassen, vier Intervallbreiten: bei den Snack-Röhrchen ist die Stichprobe scharf, bei Kapseln und Leiterplatten sechs Punkte breit.
AnnotationFehlerumrisse, die das ganze Teil markieren23 von 10023 von 100 Kapsel-Masken markieren das ganzeObjekt, nicht den Defekt.
Die Umrisse sind von Hand gezogen; 23 von 100 umfassen das komplette Teil statt des Fehlers.
Confoundimage-AUROC auf den Leiterplatten, mit IntervallPatchCore0,9408PaDiM0,8403nur Bildlage0,83660,501,00PatchCore leistet mehr als das Ablesen der Lage —die Intervalle überlappen nicht.
Drei Verfahren auf denselben Bildern — und ein Detektor, der nur die Lage kennt, liegt fast so hoch wie das zweitbeste Verfahren.
SzenenstarrheitBilder in pHash-Ketten > 1 [%]Leiterplatten86 %Cashewkerne86 %Kapseln0 %0100Kapseln: 160 Bilder in 160 Clustern, kleinsterAbstand 10 bei Schwelle 4 — kein Paar von 12.720.Snack-Röhrchen: kein Eintrag im Zahlenblatt.
Die Ketten messen, wie starr die Aufnahmeszene ist. Bei den Kapseln gibt es keine.

Die Kapseln sind auf fünf unabhängigen Achsen die saubere Klasse

160 Bilder in 160 Gruppen, kleinster Abstand 10 bei einer Schwelle von 4 — kein einziges Paar von 12.720 liegt darunter. Dazu der größte Abstand zum Trainingsmaterial (0,0275 gegen 0,0012 bei den Leiterplatten), fünf gleich große Falten von exakt 32 Bildern, praktisch keine Empfindlichkeit gegen den Schätzer (0,9358 / 0,9358 / 0,9357) und keine Strafe, wenn statt nach Datei nach Szene geteilt wird: −0,9 Punkte, also Rauschen. Die Klasse, auf der die ganze Erzählung ruht, ist die einzige ohne jedes dieser Probleme. Und sie ist gleichzeitig die schwerste — publiziert 0,741, die schlechteste der zwölf.

Die Leiterplatten sind nicht unabhängig voneinander

Die Aufnahmen liegen in zwei Lagen. Alle 214 fehlerfreien Bilder der zweiten Lage stehen im Nummernblock 610–832; von den 781 Bildern außerhalb dieses Blocks keines. Der Registrierungsrest nach Ausrichtung beträgt in Lage A im Median 3,3 px, in Lage B 12,2 px (p = 1,7 · 10⁻⁶⁶). Und teilt man nach Szene statt nach Datei, kostet das 5,2 Punkte (0,9929 → 0,9408) — bei allen anderen Klassen unter einem Punkt.

Was daraus nicht folgt: dass die Bilder der zweiten Lage aus einer eigenen Aufnahmesitzung stammen. VisA trägt keine EXIF-Daten — null von 1104 Dateien. Die Nummerierung ist damit vereinbar, mehr nicht. Die Beschriftungen stammen unverändert aus dem offiziellen Split: es ist eine Eigenschaft des Datensatzes wie veröffentlicht, kein Fehler unseres Aufbaus.

Der Duplikatverdacht war unbegründet — und das berichten wir genauso laut

Unsere Sorge war, dass sich Bilder innerhalb einer Klasse so stark gleichen, dass die veröffentlichten Intervalle zu eng geraten. Geprüft mit Bildhashes. Ergebnis: der mittlere Abstand innerhalb einer Gruppe liegt beim Doppelten der Schwelle — Leiterplatten 8, Cashewkerne 12, Snack-Röhrchen 10 bei einer Schwelle von 4. Die Gruppen entstehen über Ketten, die Mehrheit der Paare ist nur mittelbar verbunden. Sie messen damit, wie starr die Aufnahmeszene ist, nicht Duplizität. Die veröffentlichten VisA-Intervalle sind nicht pauschal zu eng. Der befürchtete Großbefund tritt nicht ein. Es ist der zweite Verdacht, den wir selbst zurückziehen mussten.

Acht Dateistämme kollidieren, 142 Dateien werden überschrieben

Zwischen den Teilmengen gibt es Dateinamen, die zweimal vorkommen. Wer Zwischenergebnisse über den Namen zusammenführt, überschreibt sich Werte — 142 Dateien wären betroffen. Daraus wurde die Regel: niemals über den Dateinamen verknüpfen. Wir haben sie aufgeschrieben, und in Abschnitt 09 werden wir sie selbst brechen.

Wie das gemessen wurde — vierzehn Prüfungen, die meisten ohne Befund

Prüfliste vollständig, mit Nullbefunden. Der größte Teil der Datenarbeit erzeugt kein Ergebnis, sondern die Erlaubnis, weiterzurechnen.

Prüfliste über vierzehn Datenprüfungen; die Mehrzahl endet mit Nullbefund, nur Stichprobe, Annotation und Bildlage tragen einen Befund.
Klassegrößte GruppeMedian im ClusterAnteil ≤ 4
Leiterplatten107 von 200815,25 %
Cashewkerne112 von 1501210,31 %
Snack-Röhrchen58 von 1501013,13 %
Kapseln1

Ein systematischer Helligkeitsversatz zwischen fehlerfreien und fehlerhaften Aufnahmen hätte jedes Ergebnis erklärt, ohne dass ein Verfahren etwas erkennt. Er ist nicht vorhanden.

Verteilung der Bildhelligkeit für fehlerfreie und fehlerhafte Aufnahmen; die Verteilungen liegen übereinander — kein systematischer Helligkeitsversatz.
VerfahrenPerceptual Hashing (pHash) Single-Linkage-Clustering
Kennzahlen160 / 160Kapseln: Bilder in Gruppen12.720geprüfte Paare, keins ≤ 4−5,2Punkte Strafe, Leiterplatten
QuellepHash-Läufe, Saat 20260817

03 — Die ersten Modelle

Vier Produkte, ein Verfahren, ein Durchlauf.

Drei landen dort, wo die Literatur sie erwartet. Eines nicht — und dieses eine trägt den Rest der Seite.

Vier Produkte mit Intervallen und Rechenzeit: Snack-Röhrchen, Cashewkerne und Leiterplatten liegen im publizierten Bereich, die Kapseln mit 0,7050 deutlich darunter; die Beurteilung kostet 0,19 bis 0,32 Sekunden je Bild, bei den Kapseln 6,62 Sekunden.
Der Messbalken am Rand rastet hier ein — bei 0,7050 für die Kapseln, mit breitem Intervall. Von hier aus bewegt er sich nur noch, wenn etwas belegt ist.

Der ganze Vergleich ist unterhalb von drei Punkten blind

Bei 100 fehlerfreien und 100 fehlerhaften Testbildern liegt das Intervall eines Werts um 0,95 bei rund ±3 Punkten. Zwei Verfahren sind je Produkt erst ab vier bis fünf Punkten Unterschied überhaupt trennbar. Das gilt je Klasse — nicht für den Mittelwert über zwölf Klassen, mit dem Ranglisten üblicherweise arbeiten. Auf Klassenebene liegen die meisten veröffentlichten Abstände dichter zusammen als die Messunsicherheit. Und es ist der Grund, warum die 24 Punkte bei den Kapseln später etwas bedeuten: sie liegen weit außerhalb dieser Blindzone.

Was das Rechnen kostet — und wie genau diese Zeiten sind

Ein Bild zu beurteilen kostet im Median 181,4 ms (Cashewkerne), 192,0 ms (Snack-Röhrchen), 213,4 ms (Kapseln) und 321,3 ms (Leiterplatten) — im Auslieferungsformat, das 2,2- bis 2,4-mal schneller ist als die Entwicklungsfassung und dieselben Zahlen liefert. Bei den Kapseln in der Endkonfiguration werden daraus 6,618 Sekunden, weil dort jedes der rund zwanzig Objekte einzeln bewertet wird. Alle Zeitangaben auf dieser Seite entstanden auf einer Maschine, die durchgehend mit Fremdlast lief: dieselbe Rechnung schwankt um rund 20 %. Das steht hier einmal und gilt danach für jede Zeit im Bericht.

Wie das gemessen wurde — Bootstrap, 1000 geschichtete Ziehungen

Die Intervalle entstehen durch wiederholtes Ziehen aus den Testbildern, geschichtet nach fehlerfrei und fehlerhaft, 1000 Ziehungen, Saat 12345, Perzentilgrenzen. Ob eine Abweichung echt ist oder Rauschen, ist damit keine Frage der Einschätzung mehr.

Für die Leiterplatten wird durchgehend die szenen-geteilte Variante berichtet (0,9408) und nicht die datei-geteilte (0,9929). Die datei-geteilte Zahl ist höher, weil ähnliche Aufnahmen dann auf beiden Seiten der Trennung liegen. Wir nennen die niedrigere, weil sie die betrieblich richtige ist.

Gemessene Abweichungen gegen die publizierten Werte mit Intervallen: nur die Abweichung bei den Kapseln liegt außerhalb des Rauschbereichs.

Und die Frage, die uns dabei am häufigsten gestellt wird: wie viele Fehlerbilder man eigentlich bräuchte. 434 fehlerfreie Bilder ohne ein einziges Fehlerbeispiel ergeben 0,7050; zehn Fehlerbilder ergeben 0,8906; fünfzig ergeben 0,9306. Die Warnung gehört dazu: bei zehn Beispielen lag die Spanne zwischen 0,43 und 0,97. Ausführlich in der Auskopplung Wie viele Defektbilder man wirklich braucht.

Lernkurve über die Zahl der Defektbilder: 0,7050 ohne Fehlerbeispiel, 0,8906 bei zehn, 0,9306 bei fünfzig — mit stark schwankender Spanne unterhalb von fünfzig.
VerfahrenPatchCore WideResNet-50, layer2+3 Coreset 0,10 Bootstrap, 1000 Ziehungen, geschichtet
Kennzahlen0,7050Kapseln, Ganzbild±3Punkte Messunsicherheit181–321 msBeurteilung je Bild
Quelle30_baseline.json

03b — Was der Aufbau kostet

Der Aufbau ist die Rechenarbeit, nicht die Prüfung.

Einmal je Produkt wird eine Vergleichsbank gebaut. Das ist der teure Teil: 1427,2 Sekunden für die Kapseln (434 Bilder, 199,4 MB, 34.025 Zeilen) und 4159,6 Sekunden für die Leiterplatten (724 Bilder, 332,6 MB). Danach kostet die Prüfung eines Bildes Millisekunden. Im Betrieb belegt eine Bank 3,4 bis 6,4 GB Arbeitsspeicher; bei 128 GB liegen damit rund zwanzig Produkttypen gleichzeitig bereit. Der Aufbau wächst quadratisch — bei 2000 Bildern grob das Sechsfache.

Die Auswahl der Vergleichsmuster selbst haben wir über eine algebraische Umformung neu geschrieben: der Abstand wird nicht als Ganzes gebildet, sondern aus zwei Längen und einem Skalarprodukt.

‖x−c‖² = ‖x‖² + ‖c‖² − 2·x·c

Der Teil, auf den es ankommt: es wurde nicht behauptet, sondern bewiesen. Beide Fassungen liefen auf denselben Daten, und die Auswahlreihenfolgen wurden Element für Element verglichen. Zwei Quelldateien nennen für denselben Bankbau Zeiten, die um bis zu 24 % auseinanderliegen — dieselbe Größe, anderer Lauf, belegte Maschine. Wir berichten durchgehend die eine festgelegte Quelle und erklären die Schwankung einmal, statt die günstigere Zahl zu nehmen. Der Messbalken bleibt hier unberührt: dieser Abschnitt kostet Zeit, keine Genauigkeit.

VerfahrenGreedy-k-Zentrum ‖x−c‖² = ‖x‖²+‖c‖²−2x·c verzögerte Aktualisierung
Kennzahlen1427 sBankbau Kapseln4160 sBankbau Leiterplatten3,4–6,4 GBArbeitsspeicher je Produkt
Quelle71_banken.json

04 — Der Confound

Die Leiterplatten verraten sich selbst.

Zwei Bilder, beide fehlerfrei. Sie unterscheiden sich nur in der Lage, in der sie aufgenommen wurden. Was ein Verfahren daraus machen kann, ist der eigentliche Befund dieses Abschnitts.

0,8366ein Detektor, der nur die Bildlage kennt

Diesen Wert erreicht ein Detektor, der nichts kennt außer der Bildlage. Kein Merkmal des Bauteils, keine Lötstelle, kein Kratzer — nur die Frage, wie das Teil auf dem Tisch lag. In der einen Lage sind 4 von 72 Bildern fehlerhaft, in der anderen 96 von 128; rein rechnerisch käme ein reiner Lage-Klassifikator damit auf (0,96 + 0,68)/2 = 0,82. Wer diese Verteilung lernt, sieht aus wie ein Prüfsystem und ist keines. Das Intervall lautet [0,7763, 0,8935] — und ein zweites, unabhängiges Verfahren liegt mit 0,8403 [0,7807, 0,8964] praktisch deckungsgleich darauf.

Was das Verfahren trotzdem leistet: es liegt mit [0,9080, 0,9683] ohne Überlappung über dem Lage-Detektor. Es liest also nicht nur die Lage ab. Beides gehört zusammen berichtet, sonst ist die Zahl entweder wertlos oder überhöht.

Das Bild aus dem Alltag dazu: eine Klausur, bei der die richtigen Antworten zufällig meist auf der rechten Seite stehen. Wer nur „rechts ankreuzen“ kann, kommt auf 84 Prozent — und weiß nichts. Deshalb steht in diesem Bericht kein Wert für die Leiterplatten, der nicht gegen die Bildlage kontrolliert ist.

Ein Detektor, der ausschließlich die Bildlage auswertet, erreicht bei den Leiterplatten 0,837 — die Fehlerquote ist zwischen den beiden Lagen extrem unterschiedlich verteilt: 4 von 72 gegen 96 von 128.
Ein Erfolg, der keiner ist. Der Messbalken bleibt unberührt — hier wurde nichts besser, hier wurde etwas ausgeschlossen.
Wie das gemessen wurde — Phasenkorrelation und Rangsummentest

Die Lage jedes Bildes wurde über Phasenkorrelation gegen eine Bezugsaufnahme bestimmt, die Trennung der beiden Gruppen mit einem Rangsummentest geprüft. Zusätzlich als Gegenprobe ein zweites Verfahren auf denselben Daten, damit der Befund nicht am Verfahren hängt.

Drehwinkel und Abstand zwischen den Bildgruppen der Leiterplatten: zwei klar getrennte Lagen, 722 zu 182 Aufnahmen.
VerfahrenPaDiM als Gegenprobe Kosinus-Abstand Phasenkorrelation Mann-Whitney-U
Kennzahlen0,8366nur aus der Bildlage3,3 / 12,2 pxRegistrierungsrest A / B1,7 · 10⁻⁶⁶p-Wert der Trennung
QuelleB4_bildlage.json

05 — Die Blockade

Bei den Kapseln kommt auch die Literatur nicht weiter.

0,7050 bei uns, 0,741 im veröffentlichten Vergleich. Die Differenz liegt innerhalb der Messunsicherheit — es ist also nicht unser Modell, das hier scheitert, sondern der Ansatz.

Verteilung der Auffälligkeitswerte für vier Produkte: bei drei Produkten trennen sich fehlerfrei und fehlerhaft, bei den Kapseln liegen beide Verteilungen übereinander — das Verfahren ist dort blind.
Der Messbalken zieht kurz an und fällt zurück. Einmal, nicht wiederholt: mehr war an dieser Stelle nicht zu holen.

Die schwerste Klasse ist die einzige ohne Datenprobleme

Es wäre bequem, den schlechten Wert den Daten zuzuschreiben. Genau das geht hier nicht: die Kapseln haben keine Gruppen ähnlicher Bilder, den größten Abstand zum Trainingsmaterial, fünf gleich große Falten und keine Strafe durch die Szenen-Teilung. Eine Vorprüfung, die Fehlergröße gegen Kontrast rechnete, haben wir aufgestellt und wieder gestrichen — sie war durch die Daten nicht gedeckt. Was übrig bleibt, ist unbequem: an den Daten liegt es nicht.

Bevor man ein Verfahren verbessert, muss man wissen, ob es überhaupt etwas zu verbessern gibt.

Kennzahlen0,7050unser Wert, Ganzbild0,741publiziert, schlechteste der zwölf0,0275Abstand zum Trainingsmaterial
Quelle30_baseline.jsonASO-PatchCore 2026
Wie das gemessen wurde — Fehlergrößen über drei Größenordnungen

Die Fehlerfläche wurde je Bild aus den Umrissen bestimmt und über alle Produkte verglichen. Die Spanne reicht über drei Größenordnungen. Eine daraus abgeleitete Vorprüfung „Fläche mal Kontrast“ haben wir wieder zurückgezogen: sie hat in den Daten nicht gehalten. Die Abbildung bleibt, weil die Spanne selbst die Aufgabe beschreibt.

Fehlergrößen je Produkt über drei Größenordnungen; die kleinsten erkannten Fehler bei den Cashewkernen liegen bei 0,0065 Prozent der Bildfläche.

06 — Die Referenzhöhe

Steckt die Information überhaupt im Bild?

Bevor man ein besseres Mikroskop kauft, prüft man, ob die Sache mit einem guten überhaupt zu sehen ist. Genau diese Prüfung ist die Achse der ganzen Erzählung.

0,7050 Verfahrensarbeit 0,9357

Die Antwort ist keine Meinung, sondern eine Messung: ein kleiner überwachter Klassifikator auf eingefrorenen Merkmalen, die Falten nach Bildähnlichkeit getrennt statt nach Datei. Er erreicht 0,9357 [0,8882, 0,9733]. Damit ist bewiesen, dass die Information in den Aufnahmen steckt. Zwischen 0,7050 und 0,9357 liegt kein Datenproblem. Da liegt Arbeit.

Vier Klassen liegen auf der Diagonalen, zwei weit darunter

Trägt man den unüberwachten Wert gegen diese Schranke auf, liegen Snack-Röhrchen, Leiterplatten und Cashewkerne praktisch auf der Diagonalen: dort holt das Verfahren heraus, was in den Bildern steckt, und mehr ist nicht zu erwarten. Zwei liegen weit darunter — die Kapseln um 23 Punkte, die Makkaroni um 39. Und beide werden am Ende durch dieselbe Maßnahme geholt. Die Schranke sagt nicht, dass ein Verfahren schlecht ist. Sie sagt, wo Arbeit noch etwas bringt.

Unüberwacht gegen überwacht: wo Arbeit noch etwas bringt Unüberwachter Wert gegen überwachte obere Schranke, Fassung (c), cluster-geteilt. Snack-Röhrchen, Leiterplatten und Cashewkerne liegen auf der Diagonalen; Kapseln 0,7050 und Makkaroni 0,5787 liegen weit darunter und werden durch die Instanz-Zerlegung auf 0,9562 und 0,9559 geholt.Liegt es am Verfahren oder an der Aufnahme?Abstand zur Diagonalen = was das unüberwachte Verfahren liegen lässt0,550,600,650,700,750,800,850,900,951,000,900,951,00Diagonale: das Verfahren holt heraus,was im Bild steckt.Snack-RöhrchenLeiterplattenCashewkerneKapselnMakkaroni1,0000 — Intervall nicht bestimmbar(150 Bilder ohne Fehler, Obergrenze ≈ 3/n)Kapseln 0,7050 → 0,9562 · vorher GanzbildMakkaroni 0,5787 → 0,9559 · Entwicklungsklasseunüberwacht, ohne Defektbeispieleüberwachte obere Schranke (Fassung c, cluster-geteilt)Entwicklungsklasse — die Konfiguration wurde hierauf abgestimmt
Die Schranke sagt vor jeder Modellarbeit, ob das Ziel erreichbar ist. Vier Klassen liegen auf der Diagonalen — dort ist nichts zu holen. Zwei liegen weit darunter, und beide werden durch dieselbe Maßnahme geholt.

Und der Satz, der die Labelfrage beendet

Dieselbe Schranke, auf objektscharfen Merkmalen gerechnet, liegt bei 0,9642 [0,9471, 0,9812]. Das Endergebnis ohne ein einziges Fehlerbeispiel liegt bei 0,9562 — die Intervalle überlappen. Auf Ganzbild-Merkmalen kaufen beschriftete Beispiele 24 Punkte. Auf objektscharfen Merkmalen kaufen sie nichts mehr. Die bessere Repräsentation hat den Vorsprung der Labels aufgebraucht.

Wie das gemessen wurde — Fassung (c), gepoolt und cluster-geteilt

Die obere Schranke wird aus den out-of-fold-Vorhersagen aller Falten gebildet — gepoolt, 1000 geschichtete Ziehungen, Saat 12345, Perzentilgrenzen, Teilung nach Bildähnlichkeit statt nach Datei. Ein Mittel über die Falten wäre falsch gewesen: bei drei von vier Klassen sind die Falten entartet, eine Falte mit einem Bild wöge dann so viel wie eine mit 117, und die Näherung liefert Obergrenzen über 1,0. Bei den Snack-Röhrchen ist die Schranke nicht bestimmbar: 1,0000 ohne beobachteten Fehler bei 150 Bildern; die Obergrenze der Fehlerrate liegt dann näherungsweise bei 3/n. Wir weisen sie nicht als [1,0000, 1,0000] aus — ein Intervall der Breite null wäre auf einer Seite, die überall Intervalle setzt, ein Widerspruch.

KlasseunüberwachtReferenzhöhe (c)Abstand
Snack-Röhrchen0,99561,0000+0,004
Leiterplatten0,94100,9408 [0,9087, 0,9676]−0,000
Cashewkerne0,95880,9836 [0,9492, 0,9992]+0,025
Kapseln0,70500,9357 [0,8882, 0,9733]+0,231
Makkaroni (Entwicklung)0,57870,9711 [0,9498, 0,9867]+0,392

Offenzulegen: Die Schranke ist eine logistische Regression mit 3072 Merkmalen auf 150 bis 200 Bildern, C = 1,0, L2, Standardisierung je Falte. Nur die Kreuzvalidierung bindet sie. Und die gepoolten Wahrscheinlichkeiten stammen aus fünf verschiedenen Modellen und sind zwischen den Falten nicht kalibriert. Das gehört in den Text, nicht in eine Fußnote. Makkaroni ist eine Entwicklungsklasse — auf ihr wurde die Konfiguration abgestimmt, über ihre Schranke ist nicht entschieden.

Auflösungsvermögen der Stichprobe: welche Unterschiede bei dieser Zahl von Testbildern überhaupt nachweisbar sind — unterhalb von drei bis fünf Punkten keine.
Verfahrenlogistische Regression auf eingefrorenen Merkmalen geschichtete Kreuzvalidierung Cluster-Split statt Datei-Split
Kennzahlen0,9357Referenzhöhe, Ganzbild0,9642Referenzhöhe, Instanz3072Merkmale auf 150–200 Bildern
QuelleB7_referenzhoehe.jsonB3_schranke_instanz.json

07 — Zwei verworfene Wege

Zwei Wege, gemessen und verworfen.

Beide waren begründet, beide sind dokumentiert, keiner hat gehalten. Der Messbalken bleibt in diesem Abschnitt zweimal stehen — Stillstand heißt hier: gemessen, verworfen, weitergegangen.

Weg 1 — den Kontrast anheben

Der Ansatz zielte auf die gemessene Ursache: wenn der Fehler im Bild zu schwach abgesetzt ist, hebe den lokalen Kontrast. Das Ergebnis war nicht „kein Effekt“, sondern ein Schaden. Bei den Makkaroni bricht die Trennung von 0,79 auf 0,25 ein — schlechter als Raten. Die Erklärung ist einfach: die Anhebung verstärkt auch die Struktur der fehlerfreien Oberfläche, und das Verfahren vergleicht am Ende Rauschen mit Rauschen.

Weg 2 — höher auflösen

Die höhere Auflösung kauft Lokalisierung, nicht Erkennung: sie verbessert, wo der Fehler liegt, nicht ob er gefunden wird. Für ein Urteil je Bild bringt sie damit nichts — und sie kostet erheblich Rechenzeit. Der gemeldete Rückgang lag im Rauschen und durfte nicht als Befund berichtet werden; das war der zweite unserer eigenen Irrtümer. Aufgeschrieben bleibt der Weg trotzdem: für eine Anlage, die den Fehlerort braucht, wäre er der erste, den man wieder aufnimmt.

VerfahrenCLAHE lokale Kontrastnormalisierung AUPRO
Kennzahlen0,79 → 0,25Kontrast, Makkaroni0belegte Verbesserung2verworfene Wege
QuelleB1_kontrast.json

08 — Die Zerlegung

Nicht das Bild bewerten, sondern jedes Objekt.

Ein fauler Apfel in einer Kiste mit zwanzig: wer die Kiste im Durchschnitt beurteilt, findet ihn nie. Also wird jede Kapsel einzeln bewertet, und das Bild bekommt den Wert seiner auffälligsten.

Dieselbe Schwellenregel auf zwei Auswertungen der Kapseln: als Ganzbild fängt sie 44 Prozent der Fehler, nach der Zerlegung in einzelne Objekte 93 Prozent. Die Schwelle stammt in beiden Fällen allein aus fehlerfreien Bildern.
Links das Ganzbild, rechts die Zerlegung — der Übergang lässt sich vor- und zurückziehen. Dieselben Spalten wie in der Urteilstafel ganz oben: Segmentierung, Auffälligkeitskarte, Urteil.

Warum die Auflösung der eigentliche Grund ist

Ein Ganzbild misst 1500 × 1000 px und wird auf 224 × 224 gebracht: die Breite schrumpft auf 224/1500 = 0,149, die Höhe auf 224/1000 = 0,224. Ein einzelner Kapsel-Ausschnitt misst im Median 211 × 212 px und wird auf dieselben 224 × 224 vergrößert. Von der Kapsel bleiben im Ganzbild damit rund 31 px Breite und 47 px Höhe; als Ausschnitt behält sie 224 × 224. Das ist je Richtung das Fünf- bis Siebenfache — nachgerechnet, nicht geschätzt. Nicht das Modell wurde besser, die Kapsel wurde sichtbar. Über 3164 Ausschnitte reicht die Spanne von 58 × 39 px bis 508 × 641 px.

Der Beleg, dass es nicht am Datensatz liegt

Auf einem zweiten Produkt, Makkaroni, springt der Wert nach derselben Zerlegung von 0,5787 auf 0,9559 [0,9291, 0,9774]. In einer früheren Auswertung stand hier ein Sprung von 37,7 Punkten; darin war die Namenskollision aus Abschnitt 02 noch nicht korrigiert. Der Messbalken fährt hoch — und hält bei 0,9089. Warum er dort noch nicht richtig steht, steht im nächsten Abschnitt.

Was hier nicht behauptet wird

Kein „wir schlagen das Standardverfahren“. Verglichen wird die veröffentlichte Ganzbild-Konfiguration mit einer Kette aus Segmentierung plus demselben Verfahren. Das ist legitim und üblich — aber es ist so zu benennen. Und die Segmentierung ist teilespezifisch: für ein Kundenteil muss sie neu gemacht werden. Genau dort liegt die Ingenieursarbeit, für die man bezahlt.

VerfahrenOtsu-Kanalwahl Distanztransformation Wasserscheide Max-Aggregation
Kennzahlen1500 × 1000Ganzbild, skaliert auf 224211 × 212Ausschnitt, Median3164Einzelobjekte
Quelle92_capsules_korrigiert.json

09 — Eigene Fehler

Wo wir uns selbst im Weg standen.

Dieser Abschnitt hat einen hellen Grund und keine Bewegung. Er ist der einzige der Seite, und das ist Absicht.

Fehler 1 — wir haben Glanzlichter segmentiert, keine Kapseln

Die erste Zerlegung fand nicht die Objekte, sondern die Lichtreflexe darauf. Das Verfahren lief durch, die Zahlen sahen plausibel aus, und keine Kennzahl hat etwas gemeldet. Aufgefallen ist es beim Ansehen der Zwischenbilder. Kennzahlen schlagen bei dieser Art Fehler keinen Alarm — sie melden nur, wenn etwas abstürzt oder auffällig schlecht wird.

Fehler 2 — wir sind in unsere eigene Falle gelaufen

Die Ausschnitte wurden über den Dateinamen mit den Bildern verknüpft — genau das, wovor unsere eigene Datenprüfung in Abschnitt 02 gewarnt hatte. Acht Bilder bekamen dadurch fremde Werte. Die Folge war ein zu niedriges Ergebnis: 0,9089 statt 0,9562. Wir hatten die Regel aufgeschrieben, bevor wir sie gebrochen haben. Gefunden haben wir es, weil jeder Zwischenschritt angesehen wurde.

Derselbe Fehler, zwei entgegengesetzte Zahlen

Dieselbe Namenskollision erzeugte je nach nachgelagertem Code zwei gegenläufige Fehler. Ein Lauf meldete 0,9089 — zu niedrig, weil acht fehlerfreie Bilder fremde Ausschnitte bekamen. Ein anderer meldete 0,9625 — zu hoch, weil dieselben acht herausfielen und nur 52 statt 60 fehlerfreie Bilder gerechnet wurden. Richtig ist 0,9562. Die zu hohe Fassung hätte 123,7 statt 141,5 Alarme je 1000 Teile gemeldet, also 88 % statt 86 % Einsparung. Alles einen Tick zu gut, nichts davon auffällig.

Die Irrtümer — jede Vorhersage und ihre Messung
VorhersageMessungwarum die Begründung falsch war
Das Mittel der besten k Patch-Scores verdünnt kleine Defekte und schadet.k = 20 gewinnt in 4 von 4 Konfigurationen, gepaart in 2 von 4 belegt.Das Maximum ist die empfindlichste, aber auch die rauschanfälligste Statistik.
Höhere Auflösung behebt das Kleindefekt-Problem.Erkennung: kein nachweisbarer Effekt. Lokalisierung: +0,047 AUPRO, belegt.Von der Gittergeometrie auf Trennbarkeit geschlossen, ohne den Kontrast zu bedenken.
Die Lücke bei den Cashewkernen erklärt sich durch kleine Defekte.Split am Median belegt keine Trennung (0,9488 gegen 0,9688).Eine Korrelation mit r² ≈ 0,08 als Erklärung ausgegeben.
Die Kapseln scheitern an kleinen Defekten.Ohne die 23 Ganzobjekt-Masken verschwindet die Trennung (0,5154 gegen 0,7228).Maskenfläche als Stellvertreter für Defektgröße genommen; sie markiert eine Defektart.
Die Segmentierung verwirft systematisch die defekten Kapseln.Median-Abdeckung der Defektfläche 0,980; 3 von 100 außerhalb.Zwei Vorschaubilder überinterpretiert, statt zu messen.
Normierung der Instanzwerte im Bild hilft.0,8918 gegen 0,9562; Fehlalarmrate von 0,133 auf 0,467.Die Normierung wirft die absolute Skala weg und hebt in fehlerfreien Bildern die zufällig höchste Instanz an.
top-k über Instanzen hilft wie top-k über Patches.Maximum bleibt vorn, bei 4 und bei 20 Instanzen je Bild.Instanzen sind bereits objektscharf; es gibt kein Patch-Rauschen mehr zu unterdrücken.
Abbildung 4 zeigt die Orientierungs-Kurve.Sie stand nur in der Legende, gezeichnet wurde sie nie.Toter Code beim Umbau stehen geblieben; erst die Sichtprüfung fand es.
Instanz-Ausschnitte können nach dem Dateistamm benannt werden.8 kollidierende Stämme, 142 überschriebene Dateien, Kapselwert ungültig.Die eigene Regel der Datenprüfung verletzt: nie über den Dateistamm verknüpfen.
Die Hauptspur der Kapselklasse in drei Zugriffen: 0,7050, dann 0,9089 als ungültiger Zwischenwert mit Namenskollision, dann 0,9562 nach der Korrektur.
Der Messbalken springt hier nach oben — weil ein Fehler gefunden wurde, nicht weil das Modell besser wurde. Es ist die einzige Korrektur nach oben im ganzen Projekt.

10 — Das Ergebnis

0,9562, und die Intervalle berühren sich nicht.

Ausgangslage 0,7050 [0,6220, 0,7787], Endstand 0,9562 [0,9225, 0,9823]. Weil die Klammern getrennt liegen, ist die Verbesserung belegt und nicht Zufall.

Die Betriebszahl daneben: dieselbe Schwellenregel, allein aus fehlerfreien Bildern bestimmt, fing vorher 44 von 100 Fehlern. Jetzt fängt sie 93. Bezahlt wird das mit 8 Fehlalarmen je 100 fehlerfreien Bildern — die Tafel ganz oben zeigt beide Fehlerarten an je einem Beispiel.

Zwei belegte Verbesserungen, nicht eine

Neben den Kapseln (0,7050 → 0,9562) hält auch der zweite Fall: Makkaroni von 0,5787 auf 0,9559 [0,9291, 0,9774]. Bei beiden trennen sich die Intervalle. Alles andere, was in diesem Projekt gemessen wurde, liegt innerhalb der Messunsicherheit — und steht deshalb hier ohne Verbesserungsanspruch. Makkaroni ist dabei eine Entwicklungsklasse: auf ihr wurde die Konfiguration abgestimmt. Der Messbalken erreicht sein Ziel und verschwindet.

Verfahrenimage-AUROC 95-%-Perzentilintervall
Kennzahlen0,9562Kapseln, Instanz0,9559Makkaroni, Instanz2belegte Verbesserungen
Quelle92_capsules_korrigiert.json

11 — Im Betrieb

Was das in Alarmen je 1000 Teile bedeutet.

Ein Betrieb vergleicht dieses System heute nicht gegen ein anderes System, sondern gegen 100 % Handprüfung. Die Bezugslinie ist also 1000 von 1000 Teilen. Deshalb wird hier nicht in Punkten gerechnet, sondern in Alarmen und durchgerutschten Fehlern.

Bei den Kapseln im Endstand sind das 141,5 Alarme je 1000 Teile — 86 % weniger, als heute angesehen werden. Bei den Snack-Röhrchen 29 Alarme, also 97 %; bei den Leiterplatten 306, also 69 %. Je teurer ein übersehener Fehler ist, desto weiter rechts liegt der richtige Arbeitspunkt — und diese Abwägung kann nur der Betrieb treffen, nicht wir.

Der Arbeitspunkt · zwanzig gemessene Stützstellen

80 %85 %90 %95 %99 %

Alarme je 1000 Teile
141,5gemessen, bei 1 % Ausschuss
weniger Handprüfung als heute
86 %heute schaut jemand alle 1000 an
durchgerutschte Fehler je 1000
0,5
Produkt
Kapseln

Alarme je 1000 = 1000 × [ E × p + F × (1 − p) ]
Einsparung = 1 − Alarme je 1000 / 1000
E = Erkennungsrate · F = Fehlalarmrate · p = Ausschussanteil des Betriebs

Nachgerechnet am vollständig belegten Arbeitspunkt der Kapseln: E = 0,930, F = 0,1333, p = 0,01 ergibt 1000 × [0,930 × 0,01 + 0,1333 × 0,99] = 141,3, gemessen sind 141,5 — und damit 86 % weniger Handprüfung. Die Schwelle 52,3456 stammt allein aus fehlerfreien Bildern: 93 gefangen · 8 Fehlalarme · 7 durchgerutscht.

Die fünf Stufen sind gemessene Arbeitspunkte, keine Kurve: die Fehlalarmrate kann nur Vielfache von 1/50 bis 1/100 annehmen, alles dazwischen wäre behauptet. Der Regler rastet deshalb ein und endet, wo die Messung endet. Grundlage sind die fünf Arbeitspunktdateien mit 152 bis 202 Stützstellen je Produkt; die Feinauflösung dazwischen liegt vor und wird als messwerte.csv zum Herunterladen nachgeliefert — ⛔ Export steht noch aus.

Zwei Sätze gehören zwingend dazu. Null beobachtete Fehlalarme heißt nicht null: bei 50 fehlerfreien Bildern liegt die obere 95-%-Grenze näherungsweise bei 3/n, also rund 6 %. Und der Betriebspunkt ist selbst unsicher: bei den Cashewkernen liegen 27 Punkte Spanne in der Erkennungsrate, allein aus der Schätzung der Schwelle bei 90 fehlerfreien Rückhaltebildern. Dort helfen mehr fehlerfreie Bilder, nicht mehr Defektbilder.

Gesamtkosten je 1000 Teile über die Erkennungsrate für Cashewkerne und Snack-Röhrchen, bei drei Kostenverhältnissen von Alarm zu durchgerutschtem Fehler: je teurer der Schlupf, desto weiter rechts liegt der kostenoptimale Arbeitspunkt.
Der beste Arbeitspunkt hängt davon ab, was ein übersehener Fehler kostet — nicht davon, welcher Wert am besten aussieht.

Der Vergleich mit der Handprüfung ist ein Literaturwert

Die Kurve zur nachlassenden Aufmerksamkeit bei der Sichtprüfung durch Menschen ist aus der Literatur übernommen und keine eigene Messung. Sie steht hier, weil der Vergleichsmaßstab im Betrieb tatsächlich die Handprüfung ist — aber sie trägt keine unserer Aussagen. Eine Maschine ermüdet nicht; wie stark ein Mensch nach zwei Stunden nachlässt, haben wir nicht selbst erhoben und behaupten es deshalb nicht.

Literaturwert, keine eigene Messung: die Trefferquote menschlicher Sichtprüfung fällt über die Schichtdauer, die Maschine bleibt konstant.
Literaturwert, ausdrücklich gekennzeichnet — im Titel der Abbildung, in ihrer Legende und hier im Text.
VerfahrenSchwelle p95 aus val_normal Regel 3/n für Nullbeobachtungen
Kennzahlen141,5Alarme je 1000, Kapseln86 %weniger Handprüfung27Punkte Spanne, Cashewkerne
QuelleB6_arbeitspunkt_fein_*.json

11b — Vom Modell auf die Maschine

Der Export macht es schneller — und kann es stumm ruinieren.

Das Modell in ein Auslieferungsformat zu überführen macht es 2,2- bis 2,4-mal schneller und liefert exakt dieselben Zahlen: Abweichung 0,0000 in allen vier Produkten.

Schieben Sie den Fehler selbst herbei

Auffälligkeitswert, Snack-Röhrchen
0,9956
korrekt / ohne Antialiasing
0,9956 / 0,7744
Differenz
−0,2212 [−0,3042, −0,1434]

In der abgebildeten Klasse hebt der Export die Werte der fehlerfreien Bilder um 10,40 an, die der fehlerhaften nur um 2,77 — 3,8-mal stärker. Genau deshalb fällt es nicht auf: das Modell lädt fehlerfrei, die Zahlen sehen plausibel aus, nichts stürzt ab. Ein Fehler, der abstürzt, kostet einen Nachmittag. Ein Fehler, der plausible Zahlen liefert, kostet ein Projekt.

Was daran neu ist — und was nicht

Die Ursache ist seit 2022 offen dokumentiert: beim Export wird die Bildverkleinerung ohne Antialiasing nachgebildet (pytorch#80033, torchvision#6806, pytorch#128818). Wir haben keinen Fehler gefunden — wir haben seine Folge beziffert: 22 Punkte, gemessen mit Intervall. Nachgewiesen und nicht vermutet: dieselbe Rechnung mit abgeschaltetem Antialiasing reproduziert die Zahlen des Auslieferungsformats auf 0,000 über alle geprüften Bilder. Die Wirkung ist labelabhängig — über die Klassen hinweg werden fehlerfreie Bilder um 15 bis 30 Punkte angehoben, fehlerhafte kaum. Wer die Vorverarbeitung mit exportiert, verliert das stumm.

Und was der Speicherpfad kostet

Die ganzzahlige Fassung war in allen vier Produkten langsamer (+6 bis +59 %); gewonnen wird ausschließlich Speicher, Faktor rund 2,4. Der Grund liegt in der Maschine: diese CPU-Generation kennt die passenden Rechenbefehle nicht — sie kamen bei diesem Hersteller zwei Generationen später. Alles darüber hinaus ist Erwartung und wird hier als solche gekennzeichnet.

Einzelheiten und Reproduktionsschritte in der Auskopplung ONNX-Export verliert Antialiasing.

Verteilungen mit und ohne Antialiasing beim Export: die fehlerfreien Bilder verschieben sich um 10,40, die fehlerhaften nur um 2,77; der Auffälligkeitswert fällt von 0,9956 auf 0,7744, Differenz −0,2212 [−0,3042, −0,1434].
Wie wenig sich verschiebt — und was es kostet. Die Aliasing-Artefakte wirken selbst wie Auffälligkeiten und treffen saubere Bilder am härtesten.
Beurteilungszeit je Bild vor und nach dem Export in das Auslieferungsformat: 2,2- bis 2,4-mal schneller bei identischen Werten.
2,2- bis 2,4-mal schneller, Abweichung 0,0000. Die Angabe steht bewusst ausgeschrieben: ein gerundeter Faktor an dieser Stelle war der gefährlichste Fehler in unseren eigenen Unterlagen.
VerfahrenOpenVINO ONNX NNCF INT8 AVX-512 VNNI
Kennzahlen2,2–2,4 ×schneller, Δ 0,0000−0,2212ohne Antialiasing+6 bis +59 %INT8: langsamer
QuelleB8_export.json

12 — Der Prüfpfad

Wie oft wir hätten schummeln können.

33 Auswertungen auf dem Testsplit — Leiterplatten 10, Kapseln 11, Cashewkerne 7, Snack-Röhrchen 5 — dazu 2 labelfreie Zugriffe. Jeder mit Begründung, keiner nachträglich herausgerechnet.

Jeder Zugriff auf den Testsplit, mit Begründung
#DatumKlasseKonfigurationGrund
Σ33 AuswertungenLeiterplatten 10 · Kapseln 11 · Cashewkerne 7 · Snack-Röhrchen 5+ 2 labelfreigetrennt ausgewiesen, nicht eingerechnet

pruefpfad.json ist noch nicht exportiert. Die Tabelle ist gebaut und füllt sich, sobald die Datei aus dem append-only Variantenbuch daneben liegt — Spalten nr, datum, klasse, config_hash, grund. Bis dahin stehen hier die Summen, und die sind belegt. Als Tabelle statt als Bild, weil 33 Zeilen deutscher Text in einer Rasterdatei für jede Maschine nicht vorhanden sind.

Die Zählregel war nicht einheitlich — auch das steht hier

Bei einem der Läufe wurde ein Wiederholungslauf mitgezählt (Nummer 1 und 2: gleiche Klasse, gleicher Grund, gleicher Konfigurations-Hash, 31 Minuten auseinander), bei drei anderen ausdrücklich nicht. Die Zahl der tatsächlichen Läufe ist nachträglich nicht mehr feststellbar. Wir zählen künftig jeden Lauf und hören auf, klug zu sein: die Zahl ist nicht der Punkt, die Vollständigkeit ist es. Eine Regel mit Ausnahmen ist die einzige Angriffsfläche eines Abschnitts, der sonst keine hat.

Zwei Läufe, ein Hash — nachrechnen mit einem Vergleich

Dieselbe Konfiguration zweimal gerechnet: alle Zahlwerte gleich, alle vier Binärausgaben byte-identisch, größte absolute Differenz 0,0. Die einzige Abweichung war das mitgeschriebene Feld für die Laufzeit (23,0 gegen 17,9 Minuten). Ohne dieses Feld hashen beide Ergebnisdokumente gleich:

0884ce3b8e977207b066697b6e0e190227025b02e6b06eca4b783fac820aba30

Damit kann jeder mit einem einzigen Vergleich prüfen, ob er dasselbe herausbekommen hat. Die Laufzeit wandert dafür aus dem Ergebnisdokument in ein Protokoll — sie ist eine Eigenschaft der Maschine, nicht des Ergebnisses. Aus einer Liste, die uns angreifbar macht, wird damit eine Einladung, es zu versuchen.

Die Stützstellen zum Nachrechnen

Die Punkte, aus denen der Rechner in Abschnitt 11 rechnet, gehören als Datei hierher: klasse, erkennungsrate, fehlalarmrate, alarme_je_1000, n_normal, quelldatei. Sie liegen fertig vor — Leiterplatten 202 Stützstellen, Leiterplatten ausgerichtet 202, Cashewkerne 152, Snack-Röhrchen 152, Kapseln 162. Es ist ein Export, keine Messung: messwerte.csv steht noch aus. Wer nachrechnen will, braucht dafür nicht uns.

Ablauf in vier Schritten: Standardverfahren scheitert bei 0,705, gemessen ob es überhaupt lösbar ist mit einer Schranke von 0,936, zwei Wege dokumentiert verworfen, der richtige Weg bei 0,956 — und ein Rückpfeil, der nach jedem Schritt erneut prüft.
Prüfen, bauen, wieder prüfen. Der gelbe Rückpfeil kommt zuletzt: nicht einmal messen, sondern nach jedem Schritt.
Verfahrenappend-only Variantenbuch
Kennzahlen33 + 2Auswertungen / labelfrei0884ce3bReproduktionsprüfsumme0,0größte Differenz zweier Läufe
Quellec1_pruefpfadDeterminismusläufe

13 — Was das nicht ist

Das hier ist eine Vorstufe.

Was fehlt, steht benannt und nicht umschrieben. Vier Punkte.

Geschwindigkeit

6,618 Sekunden je Bild für rund zwanzig einzeln bewertete Objekte — das sind 181,3 Teile je Minute. Davon gehen 106,9 ms auf die Segmentierung (1,6 %) und 6.517,9 ms auf die Einzelbewertung (98,4 %). Und die Bedingung, ohne die die Zahl irreführt: die Einzelbewertung läuft in der Entwicklungsfassung mit Stapelgröße 1 — zwanzig einzelne Modellaufrufe je Bild, unoptimiert, auf einer CPU von 2019 bei laufendem Fremdprozess. Die Auslieferungsvariante mit Stapelverarbeitung ist nicht gemessen, und deshalb steht hier keine Zahl dafür. Untertreiben ist auf dieser Seite derselbe Fehler wie Übertreiben.

Qualität, Betrieb, Zeit

Andere Merkmalsauszüge sind nicht geprüft, acht der zwölf Produkte des Datensatzes nicht angefasst, eine Ausführung auf Grafikkarte nicht gemessen. Die ganzzahlige Fassung war langsamer und bringt nur Speicher. Kamera-Anbindung, Auslösung, Übergabe an die Anlage, Bedienoberfläche und Nachschulung bei Produktwechsel sind nicht gebaut. Und wie sich das Verfahren über Monate verhält, ist offen — dafür bräuchte es eine Linie, keinen Datensatz.

Wir sagen nicht, dass etwas nicht geht. Wir sagen, wie weit wir gekommen sind, womit wir es belegen, und was der nächste Schritt kosten würde.

14 — Der Übergang

Das ist kein Verfahren für Kapseln.

Es ist die Art, wie wir jedes Problem angehen: erst messen, ob es lösbar ist. Dann messen, was hilft. Dann veröffentlichen, was nicht geholfen hat.

Datengrundlage: VisA (Visual Anomaly), Amazon Science, veröffentlicht unter CC BY 4.0. Namensnennung ist Lizenzbedingung und steht deshalb sichtbar hier, nicht nur im Markup. Alle Auswertungen dieses Berichts sind auf diesem öffentlichen Datensatz gerechnet und nachvollziehbar. Herkunft: Archiv VisA_20220922.tar, 1.929.840.640 Bytes, SHA-256 2eb8690c803ab37de0324772964100169ec8ba1fa3f7e94291c9ca673f40f362; Aufbereitung spot-diff, Commit 2a692ab5. Saaten: 12345 Bootstrap, 42 Splits und Modell, 20260817 Cluster. Stand der Zahlen: 21. August 2026. Fassung dieser Seite: 2. September 2026.

Für Institute und geförderte Projekte

Diesen Bericht gibt es, weil wir genau diese Arbeit anbieten — ein Verfahren umsetzen, messen und aufschreiben, was nicht funktioniert hat: Wir bauen und messen, was gerechnet werden muss.