Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

TinyML. Книга рецептов

Покупка
Артикул: 832700.01.99
Доступ онлайн
1 399 ₽
В корзину
TinyML - технология, призванная расширить использование искусственного интеллекта за счет устройств с малым энергопотреблением, таких как микро- контроллеры. Прочитав эту книгу, вы сможете свободно использовать передовые практики и фреймворки ML в своей работе. Для начала вы ознакомитесь с основами развертывания интеллектуальных приложений на Arduino Nano 33 BLE Sense и Raspberry Pi Pico, а затем на примере работы с реальными датчиками получите необходимые навыки для внедрения комплексных интеллектуальных приложений в различных сценариях. Издание предназначено для инженеров-разработчиков, заинтересованных в создании приложений машинного обучения на микроконтроллерах. Требуется базовое знакомство с C/C++, языком программирования Python и интерфейсом командной строки (CLI); предварительные знания о микроконтроллерах не обязательны.
Йодиче, Дж. TinyML. Книга рецептов / Дж. Йодиче. - Москва : ДМК Пресс, 2023. - 299 с. - ISBN 978-5-93700-169-6. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2150527 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джан Марко Йодиче

TinyML. Книга рецептов

Gian Marco Iodice

TinyML Cookbook

Combine artificial intelligence  
and ultra-low-power embedded devices  
to make the world smarter

BIRMINGHAM—MUMBAI

Джан Марко Йодиче

TinyML. Книга рецептов

Искусственный интеллект  
и интегрированные устройства 
со сверхнизким энергопотреблением  
делают мир умнее

Москва, 2023

УДК 004.04
ББК 32.372
И75

Йодиче Дж. М.
И75  TinyML. Книга рецептов / пер. с англ. Ю. В. Ревича. – М.: ДМК Пресс, 2023. – 
298 с.: ил. 

ISBN 978-5-93700-169-6

TinyML – технология, призванная расширить использование искусственного 
интеллекта за счет устройств с малым энергопотреблением, таких как микроконтроллеры. Прочитав эту книгу, вы сможете свободно использовать передовые практики и фреймворки ML в своей работе. Для начала вы ознакомитесь 
с основами развертывания интеллектуальных приложений на Arduino Nano 33 
BLE Sense и Raspberry Pi Pico, а затем на примере работы с реальными датчиками 
получите необходимые навыки для внедрения комплексных интеллектуальных 
приложений в различных сценариях.
Издание предназначено для инженеров-разработчиков, заинтересованных 
в создании приложений машинного обучения на микроконтроллерах. Требуется 
базовое знакомство с C/C++, языком программирования Python и интерфейсом 
командной строки (CLI); предварительные знания о микроконтроллерах не обязательны.

УДК 004.04
ББК 32.372

Copyright ©Packt Publishing 2022. First published in the English language under the title 
“TinyML Cookbook” – (9781801814973).

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-80181-497-3 (англ.)  
© 2022 Packt Publishing
ISBN 978-5-93700-169-6 (рус.)  
©  Перевод, оформление, издание,  
ДМК Пресс, 2023

Мне удалось завершить это уникальное путешествие  
в течение долгих ночей только благодаря поддержке  
моей жены Элеоноры. Я посвящаю эту книгу ей,  
с самого начала верившей в этот проект.

Содержание

От издательства ....................................................................................................13

Введение ..................................................................................................................14

Составители ............................................................................................................16

Предисловие ..........................................................................................................18

Глава 1. Начало работы с TinyML ................................................................25

Технические требования ...........................................................................................25
Представление TinyML ..............................................................................................26
Что такое TinyML? ..................................................................................................26
Почему ML на микроконтроллерах? ...................................................................26
Зачем запускать ML локально? ............................................................................27
Возможности и проблемы TinyML ......................................................................28
Среды развертывания для TinyML ......................................................................28
tinyML Foundation ..................................................................................................30
Краткое описание глубокого обучения (DL) ..........................................................30
Глубокие нейронные сети .....................................................................................31
Сверточные нейронные сети ...............................................................................32
Квантизация ...........................................................................................................35
Разница между мощностью и энергией .................................................................36
Различие между напряжением и током .............................................................36
Мощность и энергия ..............................................................................................38
Программирование микроконтроллеров ...............................................................39
Архитектура памяти ..............................................................................................42
Периферийные устройства ..................................................................................43
Вход/выход общего назначения (GPIO или IO) .............................................44
Аналого-цифровые преобразователи ............................................................45

Содержание  7

Последовательная связь ...................................................................................45
Таймеры ..............................................................................................................45
Представление Arduino Nano 33 BLE Sense и Raspberry Pi Pico ...........................45
Настройка Arduino Web Editor, TensorFlow и Edge Impulse ..................................47
Подготовка веб-редактора Arduino Web Editor .................................................47
Подготовка TensorFlow ..........................................................................................47
Подготовка Edge Impulse ......................................................................................49
Как это делается… ..................................................................................................49
Запуск скетча на Arduino Nano 33 и Raspberry Pi Pico ..........................................51
Подготовка ..............................................................................................................51
Как это делается… ..................................................................................................52

Глава 2. Прототипирование на микроконтроллерах .........................53

Технические требования ...........................................................................................53
Отладка кода ...............................................................................................................54
Подготовка ..............................................................................................................54
Как это делается… ..................................................................................................55
Дополнительно .......................................................................................................58
Подключение светодиодного индикатора на макетной плате ...........................58
Подготовка ..............................................................................................................58
Размещение прототипа на макетной плате ..................................................60
Как это делается… ..................................................................................................62
Управление внешним светодиодом с помощью GPIO .........................................65
Подготовка ..............................................................................................................65
Представляем периферийное устройство GPIO ...........................................69
Как это делается… ..................................................................................................70
Включение и выключение светодиода с помощью кнопки ................................74
Подготовка ..............................................................................................................74
Как это делается... ..................................................................................................76
Использование прерываний для считывания состояния кнопки ......................79
Подготовка ..............................................................................................................79
Как это делается… ..................................................................................................80
Питание микроконтроллеров от батарей ...............................................................82
Подготовка ..............................................................................................................82
Увеличение выходного напряжения при последовательном  
подключении батарей .......................................................................................83
Увеличение энергетической емкости за счет параллельного  
подключения батарей .......................................................................................83
Подключение батарей к плате микроконтроллера ......................................84
Как это делается… ..................................................................................................85
Дополнительно .......................................................................................................86

Глава 3. Создание метеостанции с помощью библиотеки 
TensorFlow Lite for microcontrollers ...........................................................88

Импорт данных о погоде из WorldWeatherOnline .................................................89

 Содержание

Подготовка ..............................................................................................................89
Как это делается… ..................................................................................................90
Подготовка набора данных.......................................................................................92
Подготовка ..............................................................................................................92
Подготовка сбалансированного набора данных ..........................................92
Масштабирование параметров с помощью Z-score .....................................93
Как это делается… ..................................................................................................94
Обучение модели с помощью TF .............................................................................98
Подготовка ..............................................................................................................98
Как это делается… ..................................................................................................99
Оценка эффективности модели .............................................................................104
Подготовка ............................................................................................................104
Наглядное представление эффективности с помощью матрицы  
ошибок ..............................................................................................................104
Оценка полноты (recall), точности (precision) и критерия F-score...........106
Как это делается… ................................................................................................106
Квантизация модели с помощью конвертера TFLite ..........................................108
Подготовка ............................................................................................................109
Квантизация входной модели .......................................................................109
Как это делается… ................................................................................................112
Использование встроенного датчика температуры и влажности  
на Arduino Nano ........................................................................................................114
Подготовка ............................................................................................................114
Как это делается… ................................................................................................115
Использование датчика DHT22 с Raspberry Pi Pico .............................................116
Подготовка ............................................................................................................116
Как это делается… ................................................................................................117
Подготовка входных характеристик для просчета модели ...............................119
Подготовка ............................................................................................................119
Как это делается… ................................................................................................120
Запуск на устройстве с помощью TFLu .................................................................122
Подготовка ............................................................................................................122
Как это делается… ................................................................................................123

Глава 4. Голосовое управление светодиодами с помощью  
Edge Impulse ........................................................................................................127

Технические требования .........................................................................................128
Сбор аудиоданных с помощью смартфона ..........................................................128
Подготовка ............................................................................................................129
Сбор звуковых семплов для KWS ..................................................................129
Как это делается… ................................................................................................129
Извлечение параметров MFCC из аудиосемплов ................................................134
Подготовка ............................................................................................................134
Анализ звука в частотной области ................................................................134
Генерация Mel-спектрограммы .....................................................................136

Содержание  9

Извлечение MFCC ............................................................................................137
Как это делается… ................................................................................................138
Дополнительно .....................................................................................................140
Пример проектирования и обучения нейронной сети (NN) .............................142
Подготовка ............................................................................................................142
Как это делается… ................................................................................................142
Настройка эффективности модели с помощью EON Tuner ...............................144
Подготовка ............................................................................................................144
Как это делается… ................................................................................................145
Классификация в реальном времени с помощью смартфона ..........................147
Подготовка ............................................................................................................147
Как это делается… ................................................................................................147
Классификация в реальном времени с помощью Arduino Nano ......................149
Подготовка ............................................................................................................149
Как это делается… ................................................................................................149
Непрерывное распознавание на Arduino Nano ...................................................151
Подготовка ............................................................................................................151
Изучение примера приложения KWS в реальном времени ......................151
Как это делается… ................................................................................................153
Схема для голосового управления светодиодами на Raspberry Pi Pico ...........157
Подготовка ............................................................................................................157
Представляем модуль электретного микрофона с усилителем  
MAX9814 ............................................................................................................158
Подключение микрофона к АЦП Raspberry Pi Pico ....................................159
Как это делается… ................................................................................................159
Выборка звука на Raspberry Pi Pico с помощью АЦП и прерываний  
по таймеру .................................................................................................................164
Подготовка ............................................................................................................164
Выборка звука на Raspberry PI Pico с помощью АЦП и прерываний  
по таймеру ........................................................................................................164
Как это делается… ................................................................................................165
Дополнительно .....................................................................................................169

Глава 5. Распознавание интерьеров помещений с помощью 
TensorFlow Lite  for Microcontrollers и Arduino Nano .......................171

Технические требования .........................................................................................172
Съемка с помощью модуля камеры OV7670 ........................................................172
Подготовка ............................................................................................................173
Как это делается… ................................................................................................173
Захват кадров камеры через последовательный порт с помощью  
Python ................................................................................................................176
Подготовка ............................................................................................................177
Передача изображений RGB888 через последовательный порт ..............177
Изучаем, как преобразовать RGB565 в RGB888 ...........................................179
Как это делается… ................................................................................................179

 Содержание

Преобразование изображений QQVGA из YCbCr422 в RGB888 .........................183
Подготовка ............................................................................................................183
Преобразование YCbCr422 в RGB888 ............................................................184
Как это делается… ................................................................................................184
Создание набора данных для распознавания интерьеров помещений ..........186
Подготовка ............................................................................................................186
Как это делается… ................................................................................................187
Трансфертное обучение с помощью Keras API ....................................................189
Подготовка ............................................................................................................189
Изучение вариантов дизайна сети MobileNet .............................................190
Как это делается… ................................................................................................191
Подготовка и тестирование квантизованной модели TFLite ............................194
Подготовка ............................................................................................................195
Как это делается… ................................................................................................195
Сокращение объема RAM за счет объединения функций обрезки ,  
изменения размера, масштабирования и квантизации ....................................197
Подготовка ............................................................................................................198
Изменение размера с помощью билинейной интерполяции ..................199
Как это делается… ................................................................................................200

Глава 6. Создание интерфейса на основе жестов  
для управления воспроизведением  на YouTube...............................206

Технические требования .........................................................................................207
Подключение к MPU-6050 IMU через интерфейс I2C .........................................207
Подготовка ............................................................................................................208
Представляем MPU-6050 IMU ........................................................................208
Связь с помощью I2C ......................................................................................209
Как это делается… ................................................................................................211
Получение данных акселерометра ........................................................................214
Подготовка ............................................................................................................214
Как это делается… ................................................................................................217
Построение набора данных с помощью инструмента пересылки данных   
Edge Impulse data forwarder ....................................................................................220
Подготовка ............................................................................................................221
Как это делается… ................................................................................................222
Разработка и обучение модели ML ........................................................................225
Подготовка ............................................................................................................225
Использование спектрального анализа для распознавания жестов .......226
Как это делается… ................................................................................................228
Классификации в реальном времени с помощью инструмента  
пересылки данных  Edge Impulse data forwarder ..................................................231
Подготовка ............................................................................................................231
Как это делается… ................................................................................................231
Распознавание жестов на Raspberry Pi Pico в ОС Arm Mbed ..............................232
Подготовка ............................................................................................................232

Доступ онлайн
1 399 ₽
В корзину