“Principal” FFT components as efficient features extrator

Fourier Transform is probably the most well known algorithm for feature extraction from time-dependent data (in particular speech data), where frequency holds a great deal of information. Sadly, computing the transform over the whole spectrum of the signal still requires O(NlogN) with the best implementation (FFT - Fast Fourier Transform); we would like to achieve faster computation on our microcontrollers.

In this post I propose a partial, naive linear-time implementation of the Fourier Transform you can use to extract features from your data for Machine Learning models.

FFT spectrum example

Continue reading

Better word classification with Arduino Nano 33 BLE Sense and Machine Learning

Let's revamp the post I wrote about word classification using Machine Learning on Arduino, this time using a proper microphone (the MP34DT05 mounted on the Arduino Nano 33 BLE Sense) instead of a chinese, analog one: will the results improve?

from https://www.udemy.com/course/learn-audio-processing-complete-engineers-course/

Continue reading

The Ultimate Guide to Wifi Indoor Positioning using Arduino and Machine Learning

This will be the most detailed, easy to follow tutorial over the Web on how to implement Wifi indoor positioning using an Arduino microcontroller and Machine Learning. It contains all the steps, tools and code from the start to the end of the project.

ri-elaborated from https://www.accuware.com/blog/ambient-signals-plus-video-images/

Continue reading

EloquentML grows its family of classifiers: Gaussian Naive Bayes on Arduino

Are you looking for a top-performer classifiers with a minimal amount of parameters to tune? Look no further: Gaussian Naive Bayes is what you're looking for. And thanks to EloquentML you can now port it to your microcontroller.


Continue reading

SEFR: A Fast Linear-Time Classifier for Ultra-Low Power Devices

A brand new binary classifier that's tiny and accurate, perfect for embedded scenarios: easily achieve 90+ % accuracy with a minimal memory footprint!

Binary classification - from https://towardsdatascience.com

Continue reading

Easy ESP32 camera HTTP video streaming server

This will be a short post where I introduce a new addition to the Arduino Eloquent library aimed to make video streaming from an ESP32 camera over HTTP super easy. It will be the first component of a larger project I'm going to implement.

Continue reading

Arduino dimensionality reduction (PCA) for Machine Learning projects

When working with Machine Learning projects on microcontrollers and embedded devices the dimension of features can become a limiting factor due to the lack of RAM: dimensionality reduction (eg. PCA) will help you shrink your models and even achieve higher prediction accuracy.

PCA application example

Continue reading

Anomaly detection on your Arduino microcontroller via One Class SVM

Support Vector Machines are very often used for classification tasks: but you may not know that they're so flexible they can be used for anomaly detection and novelty detection. Thanks to the micromlgen package, you can run One Class SVM on your Arduino microcontorller.

Novelty detection from sklearn documentation
Continue reading

Easier, faster pure video ESP32 cam motion detection

If you liked my post about ESP32 cam motion detection, you'll love this updated version: it's easier to use and blazing fast!

Faster motion detection

Continue reading

Incremental multiclass classification on microcontrollers: One vs One

In earlier posts I showed you can run incremental binary classification on your microcontroller with Stochastic Gradient Descent or Passive-Aggressive classifier. Now it is time to upgrade your toolbelt with a new item: One-vs-One multiclass classifier.

Continue reading