ContexteSons de machines, pannes rares
ApprocheCNN + LSTM 1D, appli desktop
Résultat17/17 pannes, AUC 0,956
Contexte
Hackathon du master MESI (Université de Strasbourg, septembre 2025), avec Robin Gras, Noa Hisler et Sylvain Wanke, encadrés par Dominique Knittel. Il fallait repérer des sons anormaux de machines tournantes, sans étiquettes et en temps limité. J'ai ensuite repris le sujet seul.
Ce que j'ai fait
- Au hackathon, nous avons comparé plusieurs méthodes sous MATLAB (distance cosinus, k-means, DTW, Isolation Forest, auto-encodeur, modèles profonds).
- Seul ensuite, j'ai écrit une application Python (PySide6, PyTorch) pour entraîner, diagnostiquer, tracer la ROC et calibrer le seuil.
- J'y ai ajouté des rapports PDF, la gestion de plusieurs machines et un exécutable autonome.
- J'ai choisi les réglages sur la validation seule, jamais sur les jeux de test.
Ce que j'ai remarqué et appris
- Passer d'un prototype de hackathon à un logiciel utilisable change presque tout.
- En maintenance prédictive, mieux vaut inspecter une machine saine que rater une panne.
Mes erreurs
- Le jeu de données reste trop petit. C'est la principale limite.
Résultats
- 1ᵉʳ sur 10 au hackathon, avec 13 pannes sur 17 repérées par le groupe.
- 17 pannes sur 17 avec l'application, et une AUC de 0,956 en validation.
- En contrepartie, 7 fausses alertes au Challenge 1 et 4 au Challenge 2. Le seuil se règle par curseur.
Stack technique
Python
PyTorch
scikit-learn
PySide6 (GUI)
CNN + LSTM 1D
Traitement du signal (log-mel / FFT)
ffmpeg
Exécutable autonome (.exe)