Over 20+ new recipes, including recognizing music genres and detecting objects in a scene
Create practical examples using TensorFlow Lite for Microcontrollers, Edge Impulse, and more
Explore cutting-edge technologies, such as on-device training for updating models without data leaving the device
Description
Discover the incredible world of tiny Machine Learning (tinyML) and create smart projects using real-world data sensors with the Arduino Nano 33 BLE Sense, Raspberry Pi Pico, and SparkFun RedBoard Artemis Nano.
TinyML Cookbook, Second Edition, will show you how to build unique end-to-end ML applications using temperature, humidity, vision, audio, and accelerometer sensors in different scenarios. These projects will equip you with the knowledge and skills to bring intelligence to microcontrollers. You'll train custom models from weather prediction to real-time speech recognition using TensorFlow and Edge Impulse.Expert tips will help you squeeze ML models into tight memory budgets and accelerate performance using CMSIS-DSP.
This improved edition includes new recipes featuring an LSTM neural network to recognize music genres and the Faster-Objects-More-Objects (FOMO) algorithm for detecting objects in a scene. Furthermore, you’ll work on scikit-learn model deployment on microcontrollers, implement on-device training, and deploy a model using microTVM, including on a microNPU. This beginner-friendly and comprehensive book will help you stay up to date with the latest developments in the tinyML community and give you the knowledge to build unique projects with microcontrollers!
Who is this book for?
This book is ideal for machine learning engineers or data scientists looking to build embedded/edge ML applications and IoT developers who want to add machine learning capabilities to their devices. If you’re an engineer, student, or hobbyist interested in exploring tinyML, then this book is your perfect companion.
Basic familiarity with C/C++ and Python programming is a prerequisite; however, no prior knowledge of microcontrollers is necessary to get started with this book.
What you will learn
Understand the microcontroller programming fundamentals
Work with real-world sensors, such as the microphone, camera, and accelerometer
Implement an app that responds to human voice or recognizes music genres
Leverage transfer learning with FOMO and Keras
Learn best practices on how to use the CMSIS-DSP library
Create a gesture-recognition app to build a remote control
Design a CIFAR-10 model for memory-constrained microcontrollers
Having read the first edition of this book that I own, I received a pre-release copy of the second edition from <PACKT> to review for this book. I was a co-editor on another <PACKT> book related to RTOS (Real-time Operating Systems) so I get pre-release copies from time to time to review.This book is a great expansion of the first edition and includes more visual diagrams and expanded detail to explain hardware connectivity, MEMS sensors and how they operate, different types of machine learning inference with sensor devices, the Edge Impulse cloud-based no-code machine learning toolkit, and Tensorflow programming using the Arduino IDE.I wouldn't consider this book for absolute beginners but a beginner would need to read it a couple of times first to understand core concepts before trying to do the "How To Do It" sections at the end of each example project. This book is more suited with someone who has some exposure to embedded microcontroller programming with Arduino IDE, Arduino dev boards like the Nano 33 BLE Sense, the Raspberry Pi Pico dev board, and perhaps the ESP32 dev board variants from Espressif Systems.The new Arduino Nano 33 BLE Sense 2 has recently come out and should apply to this book as well for the Edge Impulse and Tensorflow chapters for deploying TinyML machine learning models. If you buy this book now and buy an Arduino Nano 33 BLE Sense dev board and peripherals for Christmas, you can have enough time to read the book and deploy TinyML models over the Christmas holidays after your dev board arrives!I work with embedded machine learning on intelligent wireless IoT devices for my business and can deploy TinyML models to almost any ARM Cortex-M embedded microcontroller out there. I use other machine learning tools to deploy TinyML models directly onto MEMS sensors as well.Gian Marco Iodice is an expert in the field of embedded machine learning due to his work at ARM in the UK and his education experience in researching the field of TinyML on embedded systems or resource-constrained embedded devices for computer vision. The principles of this book cover a wide range of TinyML possibilities with great examples from deploying machine learning models from scratch using the Arduino IDE with C and C++ code and ARM MBED OS to no-code tools like Edge Impulse.For anyone wanting to learn how to deploy machine learning models to an embedded microcontroller development kit like the Arduino Nano 33 Ble Sense or the Raspberry Pi Pico dev kit, you must get this book to learn how to do it easily while learning important concepts at the same time. You can also join the "Embedded Systems Professionals" Discord channel to ask the author of the book, Gian Mardo Iodice, questions about the contents of the book and to get some help on how to deploy TinyML models to your dev board.To conclude, I know you will enjoy the book as much as I did. The second edition is an improvement to the first edition with updated code fixes, more diagrams, expanded explanations of topics, and updated information. Buy an Arduino Nano 33 BLE Sense dev board, buy some peripheral sensors to connect to your Arduino dev board, and start deploying TinyML models with the "TinyML Cookbook: Combine machine learning with microcontrollers to solve real-world problems" today. I highly recommend this book if you want to learn about the future of machine learning on embedded devices and how to actually deploy TinyML models onto embedded systems to make those systems really smart.
Amazon Verified review
Heena ChouhanFeb 07, 2024
5
If you're into microcontrollers and machine learning like I am, this book is an absolute gem. It's the perfect fusion of both worlds, providing valuable insights on how to leverage machine learning to tackle real-world challenges on power and compute-constrained devices.
Amazon Verified review
D. KingDec 08, 2023
5
I’ve spent much of the past 7+ years working with various groups of software developers focused on the problem of 'cramming' AI/ML capabilities into various microcontrollers and microprocessors found in all sorts of resource-constrained devices. These ranged from tail tags on cows, gait monitors for Parkinson patients, engines on large scale mining equipment, and video cameras on mini-drones and low earth orbit satellites, to name just a few. During each of these projects a sizeable percentage of our time was spent gathering and assessing various books, papers, research papers and the like in order to address the problem. This is how I came across Gian Marco Iodice’s ‘TinyML Cookbook – both the the 1st edition (April 2022), and now the 2nd edition (November 2023) . If these editions had been published earlier, then they could have served as a valuable resource, saving us time, reducing our false starts, and introducing much more rigor to our development processes.Like its predecessor, this 2nd edition of the Cookbook has a decidely practical hands-on approach (much like the ‘Make’ books for microcontrollers). Starting with an intro to TinyML, ML, and deep learning (DL), it quickly guides readers through the steps required to setup the microcontroller hardware and software environments used to ‘cook’ the recipes in the remainder of the book. Most recipes in this Cookbook employ the Arduino Nano 33 BLE Sense, the Raspberry Pi Pico, and occasionally the SparkFun Artemis Nano. Likewise, the same dev environment (Arduino IDE or Arduino Web, TensorFlow, Edge Impulse, and TensorFlow Lite) and development procedures are in most of the chapters, taking the reader from initial project statement to prototype completion. Crudely put, for each project the reader starts on the cloud with the goal of building, training and testing the appropriate TensorFlow ML model. Once completed, TensorFlow Lite and quantization are used to create an ML model that can then be deployed on the various microprocessors of interest.What makes this Cookbook enjoyable is the non-trivial nature of its projects. While some may seem basic at first glance, such as predicting snowfall from sensor data or controlling LEDs with voice commands, diving into the details of these, as well as the other projects, reveals their complexity. These projects can serve as building blocks for more intricate applications.In the world of Amazon reviews, we often scrutinize 1s and 2s in deciding whether to purchase the product. For the earlier edition, there were no such ratings, just one 4 and the rest 5s (28 of them), with reviewers praising its practicality, readability, and comprehensive coverage. From my own experience, these accolades extend to the 2nd edition.Who should consider this book? It's not for non-programmers or beginners. Instead, it's ideal for those with ML and programming experience in Python and C/C++ who want to explore tinyML and Edge AI. Conversely, if you're comfortable with microcontrollers and programming but new to ML, this book is an excellent starting point. If you're well-versed in both ML and microcontrollers and seek a deeper understanding of tinyML, this book is a valuable addition to your library. Finally, if you already have the 1st edition, then the upgrade to the new edition is well worth it.
Amazon Verified review
Anuj DuttJan 28, 2024
5
This book is an invaluable resource for both enthusiasts and professionals interested in integrating machine learning with microcontrollers. This practical guide, focusing on tinyML, is perfect for those with a basic understanding of machine learning and an interest in applying it on microcontrollers like Arduino Nano 33 BLE Sense, Raspberry Pi Pico, and SparkFun RedBoard Artemis Nano.This book is a comprehensive journey into tinyML, starting with fundamental concepts and advancing to real-world sensor applications. It covers a wide range of topics including weather prediction, voice-controlled LEDs, music genre recognition, object detection, and gesture-based interfaces for YouTube playback. Practical projects using Edge Impulse, TensorFlow Lite for Microcontrollers, and Apache TVM are included, making it an essential read for those looking to explore tinyML applications.This edition of the book stands out with its hands-on approach and detailed recipes that guide the reader through various tinyML implementations. It's particularly useful for readers looking to apply machine learning in memory-constrained environments, offering insights into model optimization and deployment strategies.Whether you're a beginner or looking to expand your ML knowledge, this book's real-world examples and end-to-end project guidance make it a must-read for anyone venturing into the field of tinyML.
Amazon Verified review
SteveNov 29, 2023
5
TinyML is the set of technologies to enable using Machine Learning (ML) on microcontrollers (MCU’s) for embedded systems. My background is in embedded systems, but I’m a novice at ML.The book is excellent. It’s not a book on theory. Instead, it’s a thorough, practical hands-on guide to applying ML on embedded systems. It assumes no background knowledge in ML or working with MCU’s, providing enough detail to familiarize the reader with the concepts and terminology needed to execute the recipes. It provides a number of links and references for more information.ML is a complex topic, and applying it on MCU’s adds further complexity due to their constraints of limited CPU performance, limited electrical power, limited memory, and lack of floating point hardware. Making it work requires a combination of cloud, local host, and embedded system MCU on-device elements.The book starts with an overview of ML technologies, followed by an excellent brief introduction to working with MCU’s. Readers interested in learning more about MCU’s and the various devices that form embedded systems can use one of the many educational electronics sets for Arduino and Raspberry Pi.The recipes cover using ML on three different MCU development platforms: Arduino Nano 33 BLE Sense, Raspberry Pi Pico, and SparkFun RedBoard Artemis Nano. These provide a variety of on-board sensors and connections for external sensors.The book uses the Arduino and RPi as the primary platforms for detailed recipes, and the Artemis for additional exploration. In addition, it shows how to run ML on the QEMU emulator on your local host, which allows you to experiment with more platforms. This all shows you how to work with a variety of systems.One of the main challenges for the beginner is the bewildering array of software tools that need to be used for tinyML. The real strength of the book is showing how to do that.The recipes provide detailed instructions for setting up and using MCU development environments (Integrated Development Environment (IDE) and Command Line Interface (CLI)), CMSIS-DSP, MbedOS and Zephyr OS, QEMU, and the ML tools TensorFlow Lite, Edge Impulse, Apache TVM, and scikit-learn. They also include custom code snippets in C++ and Python for integrating and adapting items. They impart a wealth of practical knowledge that can be applied beyond the book.The projects covered by the recipes: a weather station that interprets temperature and humidity sensor data to predict snow; controlling LED’s with voice commands received over a microphone; recognizing music genres on the mic; detecting objects in camera images; and interpreting gestures with an Inertial Measurement Unit (IMU, i.e. accelerometer and gyroscope) to control YouTube playback.
Gian Marco Iodice is team and tech lead in the Machine Learning Group at Arm, who co-created the Arm Compute Library in 2017. The 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 cofounded the TinyML UK meetup group to encourage knowledge-sharing, educate, and inspire the next generation of ML developers on tiny and power-efficient devices.
A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content
How can I cancel my subscription?
To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.
What are credits?
Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.
What happens if an Early Access Course is cancelled?
Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.
Where can I send feedback about an Early Access title?
If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team.
Can I download the code files for Early Access titles?
We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.
When we publish the book, the code files will also be available to download from the Packt website.
How accurate is the publication date?
The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.
How will I know when new chapters are ready?
We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.
I am a Packt subscriber, do I get Early Access?
Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.
How is Early Access delivered?
Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.
How do I buy Early Access content?
Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.
What is Early Access?
Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.