Anomaly Detection
Die Anomalieerkennung kennzeichnet Datenpunkte, Ereignisse oder Bildbereiche, die von normalen Mustern abweichen. Behandelt Anomalietypen, wichtige Methoden, visuelle Prüfung und Code.
Anomalieerkennung dient dazu, Datenpunkte, Ereignisse oder Bildbereiche zu erkennen, die von einem festgelegten Muster normalen Verhaltens abweichen. Sie wird auch Ausreißererkennung genannt; in der industriellen Bildverarbeitung spricht man häufig von Fehlererkennung oder automatisierter Sichtprüfung. Anomalien sind selten, vielfältig und oft zuvor unbekannt. Deshalb lernen die meisten Methoden anhand überwiegend normaler Daten, wie Normalität aussieht, weisen jeder neuen Eingabe einen Anomaliewert zu, der ihre Abweichung von diesem Muster angibt, und markieren Werte über einem Schwellenwert. Zu den Anwendungsbereichen gehören das Erkennen von Kratzern und Dellen auf Produktionslinien, betrügerischen Kartenzahlungen, Eindringversuchen in Netzwerke, Maschinenausfällen und verdächtigen Befunden in der medizinischen Bildanalyse.
Arten von Anomalien#
- Punktanomalien: Ein einzelner Wert oder ein Bild weicht stark von den übrigen ab, etwa eine Zahlung, die 50-mal so hoch ist wie die üblichen Ausgaben einer Kundin oder eines Kunden.
- Kontextuelle Anomalien: Werte, die in einem Kontext normal und in einem anderen ungewöhnlich sind. Eine Außentemperatur von 30 °C ist im Juli in New York üblich, im Januar dort jedoch besorgniserregend.
- Kollektive Anomalien: Folgen oder Gruppen, die gemeinsam ungewöhnlich sind, obwohl jedes Element für sich normal wirkt. Ein Beispiel ist eine Häufung von Anmeldeversuchen aus vielen Ländern innerhalb einer Minute, von denen jeder einzelne unauffällig wäre.
So funktioniert Anomalieerkennung#
Die Methoden unterscheiden sich darin, wie sie normale Daten modellieren:
- Statistische Regeln: Markieren Werte, die eine festgelegte Anzahl von Standardabweichungen vom Mittelwert entfernt liegen oder außerhalb des durch den Interquartilsabstand bestimmten Bereichs liegen.
- Abstand und Dichte: Markieren Punkte, die weit von ihren nächsten Nachbarn entfernt liegen oder sich in dünn besiedelten Bereichen befinden, wie es der lokale Ausreißerfaktor tut.
- Isolation: Ein Isolation Forest teilt die Daten mit zufälligen Schnitten auf. Anomalien werden nach weniger Schnitten isoliert als normale Punkte.
- Einklassenmodelle: Eine Einklassen-Support-Vektor-Maschine (SVM) lernt eine Grenze um die Trainingsdaten und markiert Punkte außerhalb dieser Grenze.
- Rekonstruktion: Ein nur mit normalen Daten trainierter Autoencoder rekonstruiert normale Eingaben gut und Anomalien schlecht. Der Rekonstruktionsfehler dient daher als Anomaliewert.
- Visuelle Merkmalsmethoden: PatchCore speichert Merkmale von Bildausschnitten fehlerfreier Bilder in einer Speichermatrix. Diese Merkmale werden von einem auf ImageNet vortrainierten Netzwerk extrahiert. Jeder Testausschnitt wird anhand seines Abstands zum nächstgelegenen gespeicherten Ausschnitt bewertet. Beim MVTec-AD-Benchmark erreicht die Methode auf Bildebene eine AUROC von bis zu 99,6 %.
scikit-learn unterscheidet zwischen Ausreißererkennung, bei der die Trainingsdaten bereits einige Anomalien enthalten, und Neuheitserkennung, bei der die Trainingsdaten fehlerfrei sind und nur neue Eingaben bewertet werden. Das folgende Skript trainiert einen Isolation Forest anhand von Messwerten einer intakten Maschine und bewertet vier neue Messwerte:
import numpy as np
from sklearn.ensemble import IsolationForest
# 1,000 readings from a healthy machine: temperature (C) and vibration (mm/s)
rng = np.random.default_rng(0)
normal = rng.normal([60, 2.0], [3, 0.3], size=(1000, 2))
# Learn what normal looks like, then score new readings
detector = IsolationForest(random_state=0).fit(normal)
new = np.array([[61, 2.1], [59, 1.8], [75, 2.0], [60, 4.5]])
labels = detector.predict(new) # 1 = normal, -1 = anomaly
scores = detector.decision_function(new) # below 0 = anomaly
for (temp, vibration), label, score in zip(new, labels, scores):
status = "anomaly" if label == -1 else "normal"
print(f"{temp:.0f} C, {vibration:.1f} mm/s -> {status} (score {score:+.3f})")Die beiden Messwerte nahe dem Trainingsmittelwert erhalten die Werte +0.080 und +0.076 und gelten als unauffällig. Der Überhitzungswert von 75 °C erhält −0.139 und der Messwert mit mehr als doppelt so starken Vibrationen wie üblich −0.152. Beide werden daher markiert, obwohl das Modell noch nie ein Beispiel für einen dieser Fehler gesehen hat.
Visuelle Anomalieerkennung#
Bei der visuellen Inspektion gibt es je nach Möglichkeit, Fehler zu sammeln und zu labeln, zwei Vorgehensweisen. Sind die Fehlertypen bekannt und liegen Beispiele vor, lokalisieren und benennen Modelle zur Objekterkennung oder Instanzsegmentierung jeden Fehler anhand von Klassen wie Kratzer, Delle und Riss. Ein YOLO26-Erkennungs- oder Segmentierungsmodell, das mit solchen Klassen feinabgestimmt wurde, gibt für jeden gefundenen Fehler in einem Bild eine Box oder Maske, eine Klasse und einen Konfidenzscore aus. Sind Fehler selten oder unvorhersehbar, werden Ein-Klassen-Verfahren nur mit Bildern fehlerfreier Teile trainiert. Sie markieren dann alles, was davon abweicht, und erfassen so auch nicht vorhergesehene Fehlerarten. Der MVTec-AD-Datensatz umfasst mehr als 5.000 Bilder in 15 Objekt- und Texturkategorien. Seine Trainingssätze enthalten ausschließlich fehlerfreie Bilder. Er ist ein gängiger Benchmark für diesen Ansatz. Ultralytics Platform bietet ihn zudem als Erkennungsdatensatz für das überwachte Verfahren an. Open-Source-Bibliotheken wie Anomalib implementieren PatchCore und ähnliche Methoden.
Anomaliedetektoren werden mit schwellenwertunabhängigen Kennzahlen wie der Fläche unter der ROC-Kurve (AUC) sowie mit Präzision und Recall beim gewählten Schwellenwert bewertet. Diese Kennzahlen spiegeln die Fehlalarme und übersehenen Fälle wider, die Bedienpersonal tatsächlich erlebt. Da Anomalien selten sind, wird der Schwellenwert häufig anhand der Werte normaler Validierungsbilder festgelegt, zum Beispiel auf den Wert, den nur 1 % der einwandfreien Teile überschreiten.
Anomalieerkennung und verwandte Begriffe#
- Objekterkennung: Findet Objekte aus einer festgelegten Auswahl beschrifteter Klassen. Ein auf Fehlern trainierter Objektdetektor erkennt nur die Fehlerarten, für die er trainiert wurde.
- Datenverschiebung: Eine zeitliche Veränderung der Verteilung eines gesamten Eingabestroms, etwa eine Woche mit dunkleren Bildern. Bei der Anomalieerkennung werden einzelne Eingaben bewertet.
- Erkennung von Daten außerhalb der Verteilung (OOD): Markiert Eingaben, die sich von den Trainingsdaten eines Modells unterscheiden, damit das Modell seine Vorhersage aussetzen oder an eine Person weitergeben kann. Dabei handelt es sich um Neuheitserkennung für die Eingaben eines eingesetzten Modells.
- Änderungserkennung: Vergleicht Bilder derselben Szene, die zu verschiedenen Zeitpunkten aufgenommen wurden, etwa Satellitenbilder vor und nach einer Überschwemmung, um Veränderungen zu finden.










