TinyML Cookbook, published by Packt

Overview

TinyML Cookbook

TinyML Cookbook

This is the code repository for TinyML Cookbook, published by Packt.

Author: Gian Marco Iodice
Publisher: Packt

About the book

This book is about TinyML, a fast-growing field at the unique intersection of machine learning and embedded systems to make AI ubiquitous with extremely low-powered devices such as microcontrollers.

TinyML is an exciting field full of opportunities. With a small budget, we can give life to objects that interact with the world around us smartly and transform the way we live for the better. However, this field can be hard to approach if we come from an ML background with a little familiarity with embedded systems such as microcontrollers. Therefore, this book wants to dispel these barriers and make TinyML also accessible to developers with no embedded programming experience through practical examples. Each chapter will be a self-contained project to learn how to use some of the technologies at the heart of TinyML, interface with electronic components like sensors, and deploy ML models on memory-constrained devices.

Who is this book for

This book is for ML developers/engineers interested in developing machine learning applications on microcontrollers through practical examples quickly. The book will help you expand your knowledge towards the revolution of tiny machine learning (TinyML) by building end-to-end smart projects with real-world data sensors on Arduino Nano 33 BLE Sense and Raspberry Pi Pico.

Basic familiarity with C/C++, Python programming, and a command-line interface (CLI) is required. However, no prior knowledge of microcontrollers is necessary.

Technical requirements

You will need a computer (either a laptop or desktop) with an x86-64 architecture and at least one USB port for programming Arduino Nano 33 BLE Sense and Raspberry Pi Pico microcontroller boards. For the first six chapters, you can use Ubuntu 18.04 (or later) or Windows (for example, Windows 10) as an operating system (OS). However, you will need Ubuntu 18.04 (or later) for chapter 7 and chapter 8.

The only software prerequisites for your computer are:

  • Python (Python 3.7 recommended)
  • Text editor (for example, gedit on Ubuntu)
  • Media player (for example, VLC)
  • Image viewer (for example, the default app in Ubuntu or Windows 10)
  • Web browser (for example, Google Chrome)

Arduino Nano 33 BLE Sense and Raspberry Pi Pico programs will be developed directly in the web browser with the Arduino Web Editor. However, you may also consider using the local Arduino IDE following the instructions provided at this link.

The following table summarizes the hardware devices and software tools covered in each chapter:

Chapter Devices SW tools Electronic components
1 - Arduino Nano 33 BLE Sense
- Raspberry Pi Pico
- Arduino Web Editor None
2 - Arduino Nano 33 BLE Sense
- Raspberry Pi Pico
- Arduino Web Editor - A micro-USB cable
- 1x half-size breadboard
- 1x red LED
- 1x 220 Ohm resistor
- 1x 3 AA battery holder
- 1x 4 AA battery holder
- 4x AA batteries
- 5x jumper wires
3 - Arduino Nano 33 BLE Sense
- Raspberry Pi Pico
- Arduino Web Editor
- Google Colaboratory
- A micro-USB cable
- 1x half-size breadboard
- 1x AM2302 module with the DHT22 sensor
- 5x jumper wires
4 - Arduino Nano 33 BLE Sense
- Raspberry Pi Pico
- Arduino Web Editor
- Edge Impulse
- Python
- A micro-USB cable
- 1x half-size breadboard
- 1x electrect microphone amplifier - MAX9814
- 2x 220 Ohm resistor
- 1x 100 Ohm resistor
- 1x red LED
- 1x green LED
- 1x blue LED
- 1x push-button
- 11x jumper wires
5 - Arduino Nano 33 BLE Sense - Arduino Web Editor
- Google Colaboratory
- Python
- A micro-USB cable
- 1x half-size breadboard
- 1x OV7670 camera module
- 1x push-button
- 18 jumper wires
6 - Raspberry Pi Pico - Arduino Web Editor
- Edge Impulse
- Python
- A micro-USB cable
- 1x half-size breadboard
- 1x MPU-6050 IMU
- 4x jumper wires
7 - Arm Cortex-M3 Virtual Platform (QEMU) - Google Colaboratory
- Python
- Zephyr project
None
8 - Virtual Arm Ethos-U55 microNPU - Arm Corstone-300 FVP
- Python
- TVM
None

Citation

To cite TinyML Cookbook in publications use:

@book{iodice2022tinymlcookbook,
  title={TinyML Cookbook: Combine artificial intelligence and ultra-low-power embedded devices to make the world smarter},
  author={Gian Marco Iodice},
  year={2022},
  publisher={Packt},
  isbn = {9781801814973},
  url = {https://www.packtpub.com/product/tinyml-cookbook/9781801814973}
}

About the author

Gian Marco Iodice is team and tech lead in the Machine Learning Group at Arm, who co-created the Arm Compute Library in 2017. Arm Compute Library is currently the most performant library for ML on Arm, and it’s deployed on billions of devices worldwide – from servers to smartphones.

Gian Marco holds an MSc degree, with honors, in electronic engineering from the University of Pisa (Italy) and has several years of experience developing ML and computer vision algorithms on edge devices. Now, he's leading the ML performance optimization on Arm Mali GPUs.

In 2020, Gian Marco co-founded the TinyML UK meetup group to encourage knowledge sharing, educate, and inspire the next generation of ML developers on tiny and power-efficient devices.

Owner
Packt
Providing books, eBooks, video tutorials, and articles for IT developers, administrators, and users.
Packt
《Lerning n Intrinsic Grment Spce for Interctive Authoring of Grment Animtion》

Learning an Intrinsic Garment Space for Interactive Authoring of Garment Animation Overview This is the demo code for training a motion invariant enco

YuanBo 213 Dec 14, 2022
AFLFast (extends AFL with Power Schedules)

AFLFast Power schedules implemented by Marcel Böhme [email protected]

Marcel Böhme 380 Jan 03, 2023
Python implementation of Bayesian optimization over permutation spaces.

Bayesian Optimization over Permutation Spaces This repository contains the source code and the resources related to the paper "Bayesian Optimization o

Aryan Deshwal 9 Dec 23, 2022
PyTorch implementation for our paper "Deep Facial Synthesis: A New Challenge"

FSGAN Here is the official PyTorch implementation for our paper "Deep Facial Synthesis: A New Challenge". This project achieve the translation between

Deng-Ping Fan 32 Oct 10, 2022
Code for MarioNette: Self-Supervised Sprite Learning, in NeurIPS 2021

MarioNette | Webpage | Paper | Video MarioNette: Self-Supervised Sprite Learning Dmitriy Smirnov, Michaël Gharbi, Matthew Fisher, Vitor Guizilini, Ale

Dima Smirnov 28 Nov 18, 2022
Deep Text Search is an AI-powered multilingual text search and recommendation engine with state-of-the-art transformer-based multilingual text embedding (50+ languages).

Deep Text Search - AI Based Text Search & Recommendation System Deep Text Search is an AI-powered multilingual text search and recommendation engine w

19 Sep 29, 2022
Behavioral "black-box" testing for recommender systems

RecList RecList Free software: MIT license Documentation: https://reclist.readthedocs.io. Overview RecList is an open source library providing behavio

Jacopo Tagliabue 375 Dec 30, 2022
Code for the CIKM 2019 paper "DSANet: Dual Self-Attention Network for Multivariate Time Series Forecasting".

Dual Self-Attention Network for Multivariate Time Series Forecasting 20.10.26 Update: Due to the difficulty of installation and code maintenance cause

Kyon Huang 223 Dec 16, 2022
Run containerized, rootless applications with podman

Why? restrict scope of file system access run any application without root privileges creates usable "Desktop applications" to integrate into your nor

119 Dec 27, 2022
Heterogeneous Deep Graph Infomax

Heterogeneous-Deep-Graph-Infomax Parameter Setting: HDGI-A: Node-level dimension: 16 Attention head: 4 Semantic-level attention vector: 8 learning rat

52 Oct 31, 2022
Xintao 1.4k Dec 25, 2022
Official code for Next Check-ins Prediction via History and Friendship on Location-Based Social Networks (MDM 2018)

MUC Next Check-ins Prediction via History and Friendship on Location-Based Social Networks (MDM 2018) Performance Details for Accuracy: | Dataset

Yijun Su 3 Oct 09, 2022
A dual benchmarking study of visual forgery and visual forensics techniques

A dual benchmarking study of facial forgery and facial forensics In recent years, visual forgery has reached a level of sophistication that humans can

8 Jul 06, 2022
A collection of pre-trained StyleGAN2 models trained on different datasets at different resolution.

Awesome Pretrained StyleGAN2 A collection of pre-trained StyleGAN2 models trained on different datasets at different resolution. Note the readme is a

Justin 1.1k Dec 24, 2022
Binary Stochastic Neurons in PyTorch

Binary Stochastic Neurons in PyTorch http://r2rt.com/binary-stochastic-neurons-in-tensorflow.html https://github.com/pytorch/examples/tree/master/mnis

Onur Kaplan 54 Nov 21, 2022
This is RFA-Toolbox, a simple and easy-to-use library that allows you to optimize your neural network architectures using receptive field analysis (RFA) and create graph visualizations of your architecture.

ReceptiveFieldAnalysisToolbox This is RFA-Toolbox, a simple and easy-to-use library that allows you to optimize your neural network architectures usin

84 Nov 23, 2022
A modular framework for vision & language multimodal research from Facebook AI Research (FAIR)

MMF is a modular framework for vision and language multimodal research from Facebook AI Research. MMF contains reference implementations of state-of-t

Facebook Research 5.1k Jan 04, 2023
AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks.

AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks.

Adelaide Intelligent Machines (AIM) Group 3k Jan 02, 2023
Stacs-ci - A set of modules to enable integration of STACS with commonly used CI / CD systems

Static Token And Credential Scanner CI Integrations What is it? STACS is a YARA

STACS 18 Aug 04, 2022
Tightness-aware Evaluation Protocol for Scene Text Detection

TIoU-metric Release on 27/03/2019. This repository is built on the ICDAR 2015 evaluation code. If you propose a better metric and require further eval

Yuliang Liu 206 Nov 18, 2022