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...
Saved in:
Main Authors: | , , , , |
---|---|
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 |