On December 16th, 2020 at 11 AM CT // 4 PM GMT: Jenny Plunkett of Edge Impulse will introduce the element14 community to Tiny ML with a Demo Using the Arduino Nano 33:
Over the past year, there has been tremendous interest in ML and Artificial Intelligence on the element14 community. About a year ago we had the Vision Thing project competition in Project14 and throughout the year we had many really interesting webinars and workshops that explored ML and Artificial Intelligence. One of the highlights of the past year was the PYNQ Workshop and since that time we've had more workshops with others being planned.
These can be viewed On Demand in case you missed them:
- Using Python Overlays to Experiment with Neural Networks
- PYNQ-Z2 Workshop: Getting Started with PYNQ
- PYNQ-Z2 Workshop: Getting Up and Running with PYNQ
- PYNQ-Z2 Workshop: Unlocking Your Inner PYNQ Hero
- In the Driver's Seat: A Deep Dive into ADAS and Driver Monitor Systems
We've also had a lot of great Essentials series around AI over the past year where we encouraged you to learn and then test your knowledge (and win a badge of course!):
Along the way there we celebrated the Arduino Nano with a NanoRama celebration to celebrate the combined birthdays of Project14 and Arduino like we do every year. In fact, its hard to imagine a program like Project14 existing without something Arduino to make electronics projects accessible to everyone. We did a fun poll to see which Nano board you were most interested in doing projects around in Arduino Day 2020: NanoRama: Which Board Are You Going to Use for Your Arduino Day Project? The most popular boards on that list were the Arduino Nano 33 Sense BLE and the Arduino Nano 33 IoT (to be fair Arduino Nano 33 BLE is just a lite version of the BLE Sense as they both use the same chip). There were a lot of stand out projects but one set up projects stood out to me in this competition that was running concurrently with our Fighting Germs competition (launched just four days after we went into lockdown due to Covid-19 and based on a suggestion from 14rhb in Re: Projects That Fight Germs ) and that was the work that jomoenginer was doing around TinyML and the Arduino Nano 33 Sense BLE.
AI (Artificial Learning), Machine Learning (ML), and Deep Learning (DL)
Artificial Intelligence (AI) is a broad term that includes both Machine Learning (ML) and Deep Learning (DL). AI involves any technique that enables computers to mimic human behavior. Although, you'll sometimes hear the terms AI used interchangeably with Machine Learning and Deep Learning, they are not the same thing. Machine Learning is a subset of Artificial Intelligence, consisting of more advanced techniques and models to enable computers to figure out things from data and deliver AI applications. It has been described as the science of getting a computer to act without being explicitly programmed. An Artificial neural networks (ANN) is one of the main tools used in machine learning. Essentially, machine learning is focused on developing algorithms that can learn to solve problems by analyzing data for interesting problems.
Just as Machine Learning is a subset of AI, Deep Learning is a subset of Machine Learning. Deep learning is a subset of Machine Learning that makes the computation of multi-layer neural networks possible, delivering high accuracy in tasks such as speech recognition, language translation, object detection, and many other breakthroughs. Deep learning can automatically learn/extract/translate the features data sets such as images, videos, or text without introducing hand-coded code or rules. Essentially, deep learning is a subset of machine learning that leverages neural networks and big data to make observations about interesting patterns in data.
What Is TinyML (Tiny Machine Learning)?
Tiny Machine Learning (TinyML) is one of the fastest-growing areas of Deep Learning and its becoming more and more accessible. The two components required to enable a TinyML solution are an embedded systems component and a machine learning component. Voice recognition is a good example of how TinyML works. In a smart speaker such as an Amazon Dot, a small physical device uses a sensor to pick up your voice. You speak and give it a wake word, in this case "Alexa", and the physical device generates an output, in this case an LED ring lighting up and the speaker speaks back to you. Fundamentally, TinyML is all about sensors. It could be an acoustic sensor such as a microphone in a smart speaker, a biometric sensor to detect a finger print or your heart rate, an image sensor in your smart phone, etc. The Oura ring, which you can win simply for registering for Introduction to TinyML by Edge Impulse (Register to Win an Oura Ring or an Arduino Nano Sense 33!) has a ton of sensors in a small form factor. It is a ring you wear around your finger and uses TinyML on the Edge Impulse Framework. For example, it includes a blood oxygen sensor, an accelerometer sensor, a body temperature sensor, Electrodermal (Skin) Conductivity Sensor, and an Ultra Violet (UV) Radiation Sensor.
- element14 Essentials: Sensors I
- element14 Essentials: Sensors II
- element14 Essentials: Sensors III
- element14 Essentials: Sensors IV
- element14 Essentials: Sensors V
Wio Terminal Sensor Fusion by ralphjy:
|Wio Terminal Sensor Fusion|
Running machine learning (ML) on microcontrollers has been one of the most exciting developments of the past years, allowing small battery-powered devices to detect complex motions, recognize sounds, or find anomalies in sensor data. TinyML enables devices to make smart decisions without needing to send data to the cloud which is great from an efficiency and privacy perspective. Even powerful deep learning models (based on artificial neural networks) are now reaching microcontrollers. Recently, there's been a lot of progress has been made to make deep learning models smaller, faster and runnable on embedded hardware through projects like TensorFlow Lite Micro, uTensor and Arm’s CMSIS-NN; but building a quality dataset, extracting the right features, training and deploying these models can be intimidating for most. During the NanoRama competition, jomoenginer provided a great guide to using TinyML on the Arduino Nano Sense 33:
TinyML on Arduino Nano 33 BLE Sense by jomoenginer:
|TinyML on Arduino Nano|
Arduino has formal support for the Arduino Nano 33 Sense and other 32-bit boards in Edge Impulse. This means you should be able to use any MKR board to quickly deploy simple ML-based applications combined with LoRa, NB-IoT cellular, or WiFi connectivity. In the not too distant future, there will be formal support for the Arduino Portenta H7 on Edge Impulse, to help enable higher performance industrial applications. You can find a guide to using Edge Impulse with Arduino Nano 33 BLE here:
The Edge Impulse framework enables you to quickly collect real-world sensor data, train ML models on this data in the cloud, and then deploy the model back to your Arduino device. From there you can integrate the model into your Arduino sketches with a single function call. Your sensors are then a whole lot smarter, being able to make sense of complex events in the real world. The built-in examples allow you to collect data from the accelerometer and the microphone, but it’s easy to integrate other sensors with a few lines of code. During the webinar, we will show you a live demo of how you would enable ML in minutes, not days using the Edge Network. We will also be giving a way a limited number of Arduino BLE Sense 33 boards for asking the best questions!
Another exciting board you may be interested in exploring TinyML using Edge Impulse is the ST Micro Discovery Kit. If you're not familiar with this kit, Check out the following RoadTests & Reviews from our members:
- STM32H7B3I-DK - DISCOVERY KIT - Review by abyraj
- STM32H7B3I-DK - DISCOVERY KIT - Review by jomoenginer
- STM32H7B3I-DK - DISCOVERY KIT - Review by jancumps
You can find a guide to using the ST IoT Discovery Kit here:
You can purchase both the Arduino Nano Sense 33 board or the ST IoT Discovery Kit from any of our stores:
In the future, TinyML will soon be everywhere, powering next gen smart embedded devices. These devices will not only be in our homes, but will be used for remote monitoring settings where 99% of raw sensor data is discarded, providing a wealth of data for machine learning! TinyML will can summarize and analyze all this data at the edge on lower power embedded devices, providing smart summary statistics that take previously lost patterns, anomalies, advanced analytics into account. In industrial settings, TinyML is currently used to improve productivity and safety by providing smarter sensing to enable advanced monitoring in predictive maintenance. While TinyML in still in its infancy, there are also many TinyML applications on the horizon in agriculture, healthcare, wildlife conservation, just to name a few.