An AI solution to reduce industrial downtime by diagnosing the failure of machines using their acoustic footprint.
Name | Github Page |
---|---|
Wrijupan Bhattacharyya | wrijupan |
Sara Ghasemi | saraghsm |
Niklas Hübel | NikoHobel |
The problem: Industries experience an average downtime of ~800 hours/year. The average cost of downtime can be as high as ~$20,000 per hour! Often a major cause of downtime is malfunctioning machines. Surveys show that a large number of companies cannot estimate when an equipment starts malfunctioning and only realise when it’s too late. If machine malfunctions can be detected early, downtime costs can be drastically reduced.
The proposed solution: The idea is to diagnose machine faillure using their acoustic footprint over time. A machine will produce a different acoustic signature in its abnormal state, compared to its normal state. An algorithm should be able to differentiate between the two sounds.
For a demonstration of the results, feel free to try yourself our front-end prototype user interface.
The dataset: A first of its kind, the MIMII dataset was released by Hitachi, Ltd. in September 2019. It contains ca. 100GB of wav files from normal and abnormal sounds of different types of machines, mixed with their industrial environment background noise.
Data preprocessing: The sound problem is converted to a computer vision problem by converting the sounds to their image representations, i.e. Mel spectrograms.
The Model: In real situation, only the sound of the normal state of a machin will be available, i.e. the algorithm will not know beforehand how a malfunctioning machine would possibly sound like. Therfore, for training our models we only use the sounds from normally working machines.
We use an unsupervised Deep Learning approach with Autoencoder architecture for anomaly detection. The Autoencoder is trained to reconstruct back the input sound with a high accuracy (low reconstruction error). Since the model has only been trained on normal sounds of the machin, if an abnormal sound is fed to the trained model as an input, it is not able to reconstruct it well (high reconstruction error). By thresholding on the reconstruction error, we can diagnose a broken machine from its sound.
We have used:
- Convolution Autoencoder
- Variational Autoencoder
- LSTM Autoencoder
Variational Autoencoder is our best model in terms of its speed and accuracy.
- Numpy
- Librosa
- Scipy
- Tensorflow, Keras
- Scikit-learn
- etc.
If interested, you can checkout a presentation of the project on YouTube for more details and a demo of the results.
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train` (To be added)
├── README.md <- The top-level README for description of this project and how to use it.
├── requirements.txt <- The requirements file for reproducing the analysis environment
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported (To be added)
│
├── conf <- (Directory) Configuration files
│
├── data <- (Directory) Processed data
│ └── mel_spectrograms <- Un-scaled Mel Spectrograms, 1 per audio file
│
├── docs <- (Directory) A default Sphinx project; see sphinx-doc.org for details (TBC)
│
├── models <- (Directory) Trained and serialized models
│
├── notebooks <- (Directory) Jupyter notebooks. Naming convention is the creator's initials,
│ a number for ordering (typically the date), and a short `-` delimited description.
│
├── references <- (Directory) Reading material can be saved here.
│
├── outputs <- (Directory) Model outputs, material for reporting (e.g. tabels, histograms, etc.)
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── TEST <- (Directory) Used for private experimentation
|
└── src <- (Directory) Source code for use in this project.
├── __init__.py <- Makes src a Python module
│
├── 00_utils <- Functions used across the project
│
├── 01_data_processing <- Scripts to turn raw data into features for modeling
│
├── 02_modelling <- Scripts to train models and then use trained models to make predictions
│
├── 03_modell_evaluation <- Scripts that analyse model performance and model selection
│
└── 04_visualization <- Scripts to create exploratory and results oriented visualizations
Project based on the cookiecutter data science project template. #cookiecutterdatascience