Developing a TinyML Image Classifier in an Hour

Tiny machine learning technologies are bringing intelligence ever closer to the sensor, thus enabling the key benefits of edge computing (e.g., reduced latency, improved data security, higher energy efficiency, and lower bandwidth consumption, also without the need for constant connectivity). This p...

Full description

Saved in:
Bibliographic Details
Main Authors: Riccardo Berta, Ali Dabbous, Luca Lazzaroni, Danilo Pietro Pau, Francesco Bellotti
Format: Article
Language:English
Published: IEEE 2024-01-01
Series:IEEE Open Journal of the Industrial Electronics Society
Subjects:
Online Access:https://ieeexplore.ieee.org/document/10659231/
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1841526353235542016
author Riccardo Berta
Ali Dabbous
Luca Lazzaroni
Danilo Pietro Pau
Francesco Bellotti
author_facet Riccardo Berta
Ali Dabbous
Luca Lazzaroni
Danilo Pietro Pau
Francesco Bellotti
author_sort Riccardo Berta
collection DOAJ
description Tiny machine learning technologies are bringing intelligence ever closer to the sensor, thus enabling the key benefits of edge computing (e.g., reduced latency, improved data security, higher energy efficiency, and lower bandwidth consumption, also without the need for constant connectivity). This promises to significantly enhance industrial applications but requires suited development tools to deal with the complexity of the edge technologies and context. We propose an agile Jupyter Python notebook as a simple, manageable tool to efficiently and effectively develop microcontroller-based intelligent imaging classification sensors. The notebook implements a methodology involving hyperparameter tuning and comparison of different shallow and deep learning models, with quantization. It exports TensorFlow Lite models, deployable on several microcontroller families, and optionally exploits the STM32Cube.AI developer cloud service, which allows benchmarking the developed models on a set of real-world tiny hardware target platforms. Assessment concerns various types of metrics, both for machine learning (e.g., accuracy) and embedded systems (e.g., memory footprint, latency, and energy consumption). We have verified the support for development effectiveness and efficiency on four ultralow resolution image-classification datasets, with different levels of input and task complexity. In all cases, the tool was able to build microcontroller-deployment ready, beyond the state-of-the-art models, within 1 h on Google Colab CPUs.
format Article
id doaj-art-79f9ded951f14f74972fbbe36933185e
institution Kabale University
issn 2644-1284
language English
publishDate 2024-01-01
publisher IEEE
record_format Article
series IEEE Open Journal of the Industrial Electronics Society
spelling doaj-art-79f9ded951f14f74972fbbe36933185e2025-01-17T00:01:07ZengIEEEIEEE Open Journal of the Industrial Electronics Society2644-12842024-01-01594696010.1109/OJIES.2024.345195910659231Developing a TinyML Image Classifier in an HourRiccardo Berta0https://orcid.org/0000-0003-1937-3969Ali Dabbous1https://orcid.org/0009-0004-8978-4979Luca Lazzaroni2https://orcid.org/0000-0001-8092-5473Danilo Pietro Pau3https://orcid.org/0000-0003-1585-2313Francesco Bellotti4https://orcid.org/0000-0003-4109-4675Department of Electrical, Electronic and Telecommunication Engineering (DITEN), University of Genoa, Genova, ItalyDepartment of Electrical, Electronic and Telecommunication Engineering (DITEN), University of Genoa, Genova, ItalyDepartment of Electrical, Electronic and Telecommunication Engineering (DITEN), University of Genoa, Genova, ItalySystem Research and Applications STMicroelectronics, Agrate Brianza, ItalyDepartment of Electrical, Electronic and Telecommunication Engineering (DITEN), University of Genoa, Genova, ItalyTiny machine learning technologies are bringing intelligence ever closer to the sensor, thus enabling the key benefits of edge computing (e.g., reduced latency, improved data security, higher energy efficiency, and lower bandwidth consumption, also without the need for constant connectivity). This promises to significantly enhance industrial applications but requires suited development tools to deal with the complexity of the edge technologies and context. We propose an agile Jupyter Python notebook as a simple, manageable tool to efficiently and effectively develop microcontroller-based intelligent imaging classification sensors. The notebook implements a methodology involving hyperparameter tuning and comparison of different shallow and deep learning models, with quantization. It exports TensorFlow Lite models, deployable on several microcontroller families, and optionally exploits the STM32Cube.AI developer cloud service, which allows benchmarking the developed models on a set of real-world tiny hardware target platforms. Assessment concerns various types of metrics, both for machine learning (e.g., accuracy) and embedded systems (e.g., memory footprint, latency, and energy consumption). We have verified the support for development effectiveness and efficiency on four ultralow resolution image-classification datasets, with different levels of input and task complexity. In all cases, the tool was able to build microcontroller-deployment ready, beyond the state-of-the-art models, within 1 h on Google Colab CPUs.https://ieeexplore.ieee.org/document/10659231/Edge computingimaging sensorsJupyter notebookmicrocontroller units (MCUs)neural networks (NNs)quantization
spellingShingle Riccardo Berta
Ali Dabbous
Luca Lazzaroni
Danilo Pietro Pau
Francesco Bellotti
Developing a TinyML Image Classifier in an Hour
IEEE Open Journal of the Industrial Electronics Society
Edge computing
imaging sensors
Jupyter notebook
microcontroller units (MCUs)
neural networks (NNs)
quantization
title Developing a TinyML Image Classifier in an Hour
title_full Developing a TinyML Image Classifier in an Hour
title_fullStr Developing a TinyML Image Classifier in an Hour
title_full_unstemmed Developing a TinyML Image Classifier in an Hour
title_short Developing a TinyML Image Classifier in an Hour
title_sort developing a tinyml image classifier in an hour
topic Edge computing
imaging sensors
Jupyter notebook
microcontroller units (MCUs)
neural networks (NNs)
quantization
url https://ieeexplore.ieee.org/document/10659231/
work_keys_str_mv AT riccardoberta developingatinymlimageclassifierinanhour
AT alidabbous developingatinymlimageclassifierinanhour
AT lucalazzaroni developingatinymlimageclassifierinanhour
AT danilopietropau developingatinymlimageclassifierinanhour
AT francescobellotti developingatinymlimageclassifierinanhour