Deep Learning on Microcontrollers: Learn how to develop embedded AI applications using TinyML 9789355518002

A step-by-step guide that will teach you how to deploy TinyML on microcontrollers. Key Features: - Deploy machine learn

809 257 12MB

English Pages 301 Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

Deep Learning on Microcontrollers: Learn how to develop embedded AI applications using TinyML
 9789355518002

Table of contents :
Introduction to AI
Introduction
Structure
Objectives
Artificial Intelligence
Continuum of code writing and artificial intelligence
Exercise
Changing the paradigm
Neural Network
Machine Learning
Intelligent IoT System vs. Cloud based IoT system
Arduino Nano 33 BLE Sense board
Limited compute resources
Battery power limits
TinyML and Nicla Voice board
>10x parameters
>200x Power advantage
>20x Throughput
TinyML Ecosystem
Key applications for Intelligent IoT systems
Smart agriculture
Smart appliances
Smart cities
Smart health
Smart homes
Smart industry
Conclusion
Key facts
Questions
References
2. Traditional ML Lifecycle
Introduction
Structure
Objectives
Traditional methods
Machine learning landscape
Supervised learning
Unsupervised learning
Reinforcement Learning (RL)
ML Performance Metrics
Confusion matrix
Basics of DL and different DL algorithms
Transfer Learning
Tools and Different ML, DL frameworks
Python
Jupyter Notebooks
Google Colaboratory
TensorFlow (TF), TFLite and TensorFlow Lite Micro
TensorFlow Lite
TensorFlow Lite Micro
AI Model Efficiency Toolkit (AIMET)
Convolutional Architecture for Fast Feature Embedding (Caffe)
CoreML
Open Neural Network Exchange (ONNX)
Open Visual Inference and Neural network Optimization (OpenVINO)
Pytorch and PyTorch Mobile
Embedded Machine Learning (EML)
Difference between Learning and Inference
ML model deployment and inferencing on different platforms
Conclusion
Key facts
Questions
References
3. TinyML Hardware and Software Platforms
Introduction
Structure
Objectives
Servers at Data Centers: CPUs, GPUs and TPUs
Mobile CPU, Raspberry Pi board and its types
Microcontrollers and Microcontroller with AI accelerator
TinyML Hardware Boards
Arduino and Arduino Nano 33 BLE
Arduino Nicla Sense ME
Adafruit Feather
SparkFun Edge
NVIDIA Jetson Nano
Google Coral Edge TPU
Qualcomm QCS605
NXP i.MX 8M
STMicroelectronics STM32L4
Intel Curie
Syntiant TinyML
TinyML Software Suites
TensorFlow Lite Micro (Google)
uTensor (ARM)
Arduino Create
EloquentML
EdgeML (Microsoft)
EON Compiler (Edge Impulse)
STM32Cube.AI and NanoEdge AI Studio (STMicroelectronics)
PYNQ
OpenMV
SensiML
Neuton TinyML
Metavision Intelligence Suite 3.0 (Vision applications)
Data Engineering Frameworks
Edge Impulse
SensiML
Qeexo AutoML
TinyML Model Compression Frameworks
Quantization
Pruning
Low ranked approximation
Knowledge distillation
TensorFlow Lite
STM32 X-CUBE-AI
QKeras
Qualcomm AIMET
Microsoft NNI
CMix-NN
OmniML
Conclusion
Key facts
Questions
References
4. End-to-End TinyML Deployment Phases
Introduction
Structure
Objectives
Understanding Embedded ML
Introduction to Edge-impulse and Arduino IDE
Edge-impulse
Arduino Integrated Development Environment (IDE)
Arduino Driver Installation
Data collection from multiple sensors
Data collection from an Arduino board
Data collection from Syntiant board
Data engineering steps for TinyML
Cleaning
Organizing
Transformation
Model Training in TinyML software platforms
EON Compiler (Edge Impulse)
Model Compression
Pruning
Knowledge distillation
Model conversion
Quantization
Inferencing/Prediction of results with test data
Model Deployment in TinyML Hardware board
Conclusion
Key facts
Questions
References
5. Real World Use Cases
Introduction
Structure
Objectives
Smart agriculture
Agriculture video analytics
Crop intruder detection
Crop yield prediction and improvement
Agribots
Insect detection and pesticide reduction
Weedicides elimination
Acoustic insect detection
Animal husbandry
Smart appliances
Vision AI for appliances
Audio AI for appliances
Sensors based AI for appliances
Smart cities
Safe and secure city
City maintenance
Parking enforcement systems
Traffic management
Maintaining bridges
Non-Smoking enforcement
Smart health
Cataract detection
Fall detection
Cough detection
Boxing Moves Detector
Mosquito detection
Snoring and sleep apnea detection
Smart home
Person detection at the door
Glassbreak detection
Smart baby monitoring
Voice recognition for home automation
Smart industry
Railway track defect detection
Telecom towers defect detection
Defect detection in components
Smart automotive
Drowsy driver alert
Advance collision detection
Conclusion
Key facts
Questions
References
6. Practical Experiments with TinyML
Introduction
Structure
Objectives
Introduction to Nano RP2040 TinyML board
Setting up Arduino IDE and testing the Nano RP2040 Board
High level steps involved in the air gesture digit recognition in Edge Impulse platform
Data collection for the air gesture digit recognition
Loading the dataset in Edge Impulse Platform
Setting up the development framework and design of neural network classifier
Model training in Edge Impulse platform
Model testing with the collected data
Model deployment in Nano RP2040 board
Inferencing/Prediction of results with RP2040
Conclusion
Key facts
Questions
References
7. Advance Implementation with TinyML Board
Introduction
Structure
Objectives
NDP101 Architecture
NDP120 Architecture
Practical implementation and deployment
Creating a project
Uploading Data
Impulse Design
Epochs Setting
Learning rate setting
Validation data set setting
Auto balance setting
Data augmentation
Neural network architecture
Neural network training
Model testing
Deployment
Conclusion
Key facts
Questions
References
8. Continuous Improvement
Introduction
Structure
Objectives
Expectation gap
Unique issues about audio application
Raw neural network output and softmax transformation
Handling anomalous behavior during target classifier testing
Method 1: Running window averaging
Method 2: Enriching target classifier
Method 3: Enriching open set classifier
False Acceptance Rate testing
Optimization of window size in running window averaging
Phrase recognition constraints to improve system level performance
FRR testing under noisy conditions
Improving FRR performance under noisy conditions
Data collection for continuous improvement
Conclusion
Key facts
Questions
References
9. Conclusion
Introduction
Structure
Objectives
Review of material covered in this book
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Advanced topics
Different types of neural networks
Neural network optimization
Zero-shot, One-shot or Few-shot learning
Federated learning
Transfer learning
Tuning pretrained networks
MLOps
Key facts
Questions
References

Polecaj historie