In recent years, TinyML projects have become popular, and there are 216 relevant projects on Hackster.io, 83 of which received over 1,000 views, and 2 over 10,000. The following is an in-depth analysis on the top two popular projects:
ECG Analyzer Powered by Edge Impulse
The project aimed at building an Electrocardiography (ECG) machine to record electrocardiograms and to detect atrial fibrillation and first-degree atrioventricular block (AV Block 1). The goal is to reach an accuracy of over 90%, and the convener of the project hoped that data inference analysis could be conducted directly on the sensor, without the need for uploading a large amount of data, internet connection, or high performance computing.
For hardware, the main control system adopted the Arduino Nano 33 BLE Sense, the most common TinyML development board, produced by of the Arduino Foundation. There is also the single lead heart rate monitor AD8232, produced by SparkFun, coupled with a 0.96 inch OLED display by ElectroPeak, with resolution of 64×128 pixels. As for software, there were software development tools that included online services by Edge Impulse, MATLAB, Arduino IDE, and Microsoft Visual Studio 2017, which were all installed on the localhost. Microsoft Excel also came into play to help with some part of the work.
The artificial intelligence (AI) model after training occupies only 15 kb ROM space, which can run on any microcontroller unit (MCU) that runs TinyML. The finished product was able to identify and detect regular heart rate, atrial fibrillation, and first-degree atrioventricular block, and the accuracy from the actual test result reached 97.30%.
Cough Detection with TinyML on Arduino
This project came from the early detection of COVID-19 or influenza, and was intended to be deployed at as many places as possible. For this reason, the device must come in a friendly price.
For hardware, Arduino Nano BLE Sense was also used, or any system development board with Cortex-M4 Core (including those with performance higher than M4) can be substitutes. A microphone is optional, or a smart phone with Android or iOS system would do. For software and online services, we opted for Arduino IDE and Edge Impulse.
The development and training of the model were completed on the Internet, using online services by Edge Impulse. The audio files in WAV format that had been recorded on the localhost were uploaded as datasets through the Internet browser. The AI model after training was able to identify sound and other noises that are not coughing. The trained model occupies only 20 kb ROM space for running the program
To continue the model training, users can run the training application on websites via the browser on mobile phones to record sounds through the application. After recording, users have to confirm and label the soundtrack as coughing sound or other noises, which can also serve as materials for continuous training.
After these projects, the convener even bears more ideas to be put into practice. For instance, distinguishing other human sounds in addition to coughing, such as yawning and background dialogue. There can even be more sensors added, such as a 3-axis accelerometer, to lead to so much more other applications.