Level up your TinyML skills

What I do, How I do it

Memory-efficient porting of scikit-learn classifiers

Even though a few transpiler already exists to port Machine Learning models from Python to C/C++, none is optimized for resource-constrained hardware like MCUs.

I created RAM-efficient, Flash-efficient implementations of a few of them with the aim to run even on Attiny hardware!

  • 1

    Memory efficient

    Most classifiers require less than 1 Kb of RAM to run. Tree-based models can fit even in 100 bytes of RAM!

  • 2

    Space efficient

    When the model requires space (SVM, PCA), I re-arranged to code to leverage variadic functions and circumvent resource constraints

  • 3

    Blazing fast

    You can run inference on 100+ features at sub-milliseconds speed


Embedded Computer Vision

I implemented a few image-processing and computer vision algorithms hand-crafted to run on the Esp32-cam hardware as fast as possible, while still fitting in the limited RAM available

  • 1

    Motion detection

    Fully configurable sensitivity, definition of custom regions-of-interest, visually debuggable in the browser

  • 2

    HOG transform

    To perform simple real-time object recnognition, you may not need a TensorFlow CNN. Sometimes simpler is better (and 100x faster)!

  • 3

    Color tracking

    A color-blob localization algorithm to track the position of custom objects in real-time


Custom software and tools

If your company needs custom software and tools for data acquisition, cleaning and management, I create those tools for you. Already tried and tested by a Fortune 100 organization, so you're in good company

  • 1

    Custom model creation

    If you have a specific use case and can't find a fit with the solutions already on the market, I create one tailored for you

  • 2

    Data collection

    Do you need to collect data remotely over BLE or WiFi? I got you covered

  • 3

    Data labelling and visualization

    It is often said that in Machine Learning 'Garbage in, Garbage out'. I throw the garbage out of your pipeline


TensorFlow-free advocate

When the industry went all-in on TensorFlow Lite for Microcontrollers, I went the opposite direction.

While recognizing that Tf has it's scope in the embedded world, I advocate that scope is much more limited that it is depicted nowadays

  • 1

    Sub-millisecond inference

    XGBoost can produce state-of-the-art performance on many tasks at a fraction of the execution time of Tf

  • 2

    Truly Tiny

    512 Kb of RAM is tiny compared to GPU-based networks, but it's not so tiny compared to the wide available hardware on the market today

  • 3

    Portable

    Did you know you can run XGBoost on the Attiny85? Check the post


My public work

  • EloquentTinyML: a boilerplate-free Arduino library to use TensorFlow on MCUs
  • EloquentEsp32Cam: Arduino library to use the Esp32-cam like an expert
  • micromlgen: port scikit-learn classifiers from Python to optimized C++
  • tinymlgen: port TensorFlow models from Python to C++
  • everywhereml: data loading, processing and classification for Python to be ported to C++

© Copyright 2023 Eloquent Arduino. All Rights Reserved.