Learning to anticipate problems and solve them before they happen is a practice that can pay dividends in all aspects of our lives. The consequences of not doing so can be costly, and this is especially true when it comes to manufacturing. A 2016 report by the Aberdeen Group found that, on average, the cost of unplanned downtime resulting from equipment failure is a staggering $260,000 per hour. A typical downtime lasts about four hours, leading to costs in excess of one million dollars per incident. These sorts of problems provide the motivation behind the Industry 4.0 movement, which seeks to integrate technologies such as machine learning into traditional industrial processes in order to diagnose issues and enhance automation.
Always searching for ways to improve the world around him, machine learning enthusiast Manivannan S. set out to show that these megascale problems in industry can be solved with a microscale budget and minimal technical knowledge. Using an inexpensive Arduino development kit and the Edge Impulse platform, he demonstrated a method to predict failures of industrial equipment before they have a chance to occur — no crystal ball needed.
Specifically, the industrial-grade, low-power Arduino Portenta H7 board was chosen for this project. The H7 boasts a dual-core STM32H747 processor, including a Cortex M7 running at 480 MHz and a Cortex-M4 running at 240 MHz. With a whopping 8 MB of SDRAM and 16 MB of NOR Flash also onboard, the H7 is a tinyML powerhouse. It is ideally suited to fit into a network of connected devices, with both WiFi and 10/100 ethernet available.
From past experience, Manivannan knew that a neural network classifier was the right tool for the job, so he first sought out a dataset to train such a model. He came across the MIMII Dataset, which consists of audio samples from malfunctioning industrial equipment. The dataset was uploaded to Edge Impulse, where the samples were labeled with the data acquisition tools.
To maximize the accuracy of the predictions, Manivannan created three separate models — one for each type of equipment to be monitored: fans, pumps, and valves. Each impulse consists of a preprocessing step that converts audio samples into spectrograms, then a neural network that predicts potential maintenance issues from those spectrograms. After tweaking a few hyperparameters, the models were trained. Validation of the trained models revealed that an excellent classification accuracy had been achieved, with the fan model reaching 96.33% accuracy.
With the models ready for use, the next step was to deploy them to the H7 hardware for real world use. Edge Impulse’s EON compiler was utilized during deployment to optimize the models. These optimizations reduce resource utilization and inference latency — always important in tinyML applications — while maintaining high-accuracy predictions. A few more clicks is all that was needed to produce downloadable firmware that can be flashed directly to the Arduino.
Manivannan provides all the details in his project write-up, and be sure to also take a peek at his public Edge Impulse projects to get yourself on the fast track to predicting the future: fan model, pump model, valve model.
Want to see Edge Impulse in action? Schedule a demo today.