Künstliche Intelligenz & Daten

Software zur Anomalieerkennung in Maschinengeräuschen

Détection d'anomalies
CNN + LSTM 1D
Deep Learning
PySide6
Maintenance prédictive
Traitement du signal

Ursprünglich ein Master-Hackathon, bei dem unsere Gruppe 1. von 10 wurde, den ich anschließend allein zu einer vollständigen Desktop-Anwendung ausgebaut habe, Modelltraining, Diagnose, ROC-Auswertung und Berichte. Ein CNN + LSTM 1D-Modell hat es schließlich ermöglicht, die anomalen Maschinensignale zuverlässig zu erkennen.

KontextMaschinengeräusche, seltene Fehler
AnsatzCNN + LSTM 1D, Desktop-App
Ergebnis17/17 Fehler, AUC 0,956

Kontext

Das Projekt entstand beim Hackathon des Masters Mechatronik, Energie & Intelligente Systeme (Universität Straßburg, September 2025), in einem Viererteam (Robin Gras, Noa Hisler, Sylvain Wanke und ich), betreut von Dominique Knittel. Das Ziel, anomale Geräuschsignale rotierender Maschinen automatisch erkennen, was den Kern der vorausschauenden Wartung bildet. Wir arbeiteten mit ungelabelten Aufnahmen unter engem Zeitdruck, mit seltenen und vielfältigen Anomalien, die sich nicht einzeln erlernen lassen. Die Gruppe wurde 1. von 10. Anschließend habe ich das Thema allein zu Hause wieder aufgegriffen, um daraus eine wirklich nutzbare Software zu machen, mit bereinigten Daten und einem sauber trainierten und validierten Modell.

Ansatz / Lösung

Beim Hackathon haben wir mehrere Methodenfamilien parallel in MATLAB erkundet, Kosinus-Distanz auf gemittelten Spektren, k-Means, DTW, Isolation Forest, einen Autoencoder und tiefe Modelle. Das CNN + LSTM 1D-Modell hat den Unterschied gemacht, indem es gesunde Signale klar von fehlerhaften trennte, und es ist das Modell, das schließlich die anomalen Dateien fand. Zu Hause habe ich das Ganze in eine Desktop-Anwendung überführt (Python, PySide6, PyTorch, scikit-learn). Man trainiert das Modell, diagnostiziert ein Signal, bewertet die Leistung (ROC-Kurve, AUC) und kalibriert die Entscheidungsschwelle. Die Anwendung verwaltet mehrere Maschinen, akzeptiert alle gängigen Audioformate (wav, mp3, Telefonaufnahmen, per ffmpeg dekodiert), nimmt über das Mikrofon auf, protokolliert jede Diagnose zur Drift-Verfolgung, erzeugt PDF-Berichte und lässt sich als eigenständige ausführbare Datei ohne installiertes Python bauen. Das Vorgehen bleibt ehrlich, die Konfiguration wird allein auf einem gelabelten Validierungssatz gewählt, und die Leistung wird anschließend auf den Testsätzen gemessen, ohne jegliche Abstimmung darauf.

Ergebnisse

Auf der gelabelten Validierung erreicht das Modell eine AUC von 0,956. Vor allem erkennt die Anwendung 17 von 17 Fehlern, während die Gruppe beim Hackathon 13 von 17 fand, ein perfekter Recall über beide Challenges (5 von 5 Anomalien in Challenge 1, 12 von 12 in Challenge 2). Dieser perfekte Recall hat einen Preis, einige Fehlalarme (7 in Challenge 1, 4 in Challenge 2), denn ich habe die Schwelle so eingestellt, dass nie ein Fehler übersehen wird. In der vorausschauenden Wartung ist das der richtige Kompromiss, und ein Regler verschiebt ihn. Lieber eine gesunde Maschine prüfen, als einen Fehler durchgehen lassen. Mein Fazit, der Schritt von einem Hackathon-Prototyp zu einer nutzbaren Software ändert fast alles, saubere Daten, ein validiertes Modell, eine kalibrierte Schwelle, eine klare Oberfläche. Was ich noch tun könnte, den Datensatz vergrößern, denn das ist der eigentliche Engpass, andere zeitliche Architekturen testen und die Drift einer realen Maschine über die Zeit verfolgen.

Tech-Stack

Python
PyTorch
scikit-learn
PySide6 (GUI)
CNN + LSTM 1D
Traitement du signal (log-mel / FFT)
ffmpeg
Exécutable autonome (.exe)

Galerie