"Preface The field of Artificial intelligence has undergone a significant transformation in the last decade, moving from traditional machine learning approaches to more sophisticated deep learning techniques. This evolution has brought extraordinary advancements across various industries, including healthcare, finance, transportation, manufacturing, robotics, and consumer technology. For this reason, there is a growing need to incorporate deep learning technology in various research projects and academiccurricula. As customizable embedded devices become more affordable and portable for deploying AI models, the growing demand for exploring this technology is also spreading across all age groups, from children to the elderly. This book aims to address this demand and serves as a comprehensive hands-on guide to understanding the integration of deep learning with modern embedded systems, such as Jetson Nano and Raspberry Pi. It also focuses on the key components of deep learning models in simple terms without diving deeply into the statistical or mathematical theories behind them. A basic understanding of Python programming is necessary to follow the examples, as all the programs in this book are written in Python. The book introduces key concepts of deep learning and its architectures in chapters 2 and 3. Chapter 4 includes the configuration of the Windows PC used for setting up PyTorch and its related packages. This chapter also explains basic tensor operations using PyTorch. Chapter 5 and Chapter 13 include Jetson Nano and Raspberry Pi 5 configurations, respectively, along with the list of peripherals used for deploying deep learning models. As the operation of Jetson Nano and Raspberry Pi 5 involves using Linux terminals, Chapter 6 covers basic Linux terminal commands, focusing on file management and permissions. This chapter will be beneficial for readers who are unfamiliar with the Linux operating system. Chapter 7 presents the fundamentals of setting up the Docker engines and building Docker images, and demonstrates how to perform model inference within Jetson's Docker container. Chapter 11 explains how to create a deep-learning dataset for image classification and object detection using bounding boxes. The dataset developed in this chapter is utilized for model training in Chapters 9 and 10. Chapter 9 outlines the process for training a classification model, while Chapter 10 demonstrates the approach for training an object detection model with image classification"--
Comprehensive, accessible introduction to deep learning for engineering tasks through Python programming, low-cost hardware, and freely available software
Deep Learning on Embedded Systems is a comprehensive guide to the practical implementation of deep learning for engineering tasks through computers and embedded hardware such as Raspberry Pi and Nvidia Jetson Nano. After an introduction to the field, the book provides fundamental knowledge on deep learning, convolutional and recurrent neural networks, computer vision, and basics of Linux terminal and docker engines. This book shows detailed setup steps of Jetson Nano and Raspberry Pi for utilizing essential frameworks such as PyTorch and OpenCV. GPU configuration and dependency installation procedure for using PyTorch is also discussed allowing newcomers to seamlessly navigate the learning curve.
A key challenge of utilizing deep learning on embedded systems is managing limited GPU and memory resources. This book outlines a strategy of training complex models on a desktop computer and transferring them to embedded systems for inference. Also, students and researchers often face difficulties with the varying probabilistic theories and notations found in data science literature. To simplify this, the book mainly focuses on the practical implementation part of deep learning using Python programming, low-cost hardware, and freely available software such as Anaconda and Visual Studio Code. To aid in reader learning, questions and answers are included at the end of most chapters.
Written by a highly qualified author, Deep Learning on Embedded Systems includes discussion on:
- Fundamentals of deep learning, including neurons and layers, activation functions, network architectures, hyperparameter tuning, and convolutional and recurrent neural networks (CNNs & RNNs)
- PyTorch, OpenCV, and other essential framework setups for deep transfer learning, along with Linux terminal operations, docker engine, docker images, and virtual environments in embedded devices
- Training models for image classification and object detection with classification, then converting trained PyTorch models to ONNX format for efficient deployment on Jetson Nano and Raspberry Pi
Deep Learning on Embedded Systems serves as an excellent introduction to the field for undergraduate engineering students seeking to learn deep learning implementations for their senior capstone or class projects and graduate researchers and educators who wish to implement deep learning in their research.