Реализация искусственного интеллекта на базе 32-битных микроконтроллеров

Опубликовано в номере:
PDF версия
Искусственный интеллект (ИИ) — одно из важных направлений развития современной науки. Первые попытки его создания относятся еще к 1950-м гг., а с 1980-х гг. начала развиваться такая ветвь ИИ, как машинное обучение. Оно позволяет машинам не только имитировать поведение человека, но и совершенствоваться, используя накопленный опыт. Дальнейшее развитие математических и статистических методов машинного обучения сделало доступным его реализацию не только на мощных компьютерах, но и на таких относительно простых устройствах, как 32-битные микроконтроллеры, о чем и будет рассказано в данной статье.

Общие сведения об ИИ

У большинства людей ИИ ассоциируется в первую очередь с устройствами распознавания лиц, в которых используются мощные графические процессоры. Это не совсем так: в современном мире ИИ может быть представлен и проще. Например, классификацией спама в электронном почтовом ящике или алгоритмом автозаполнения в поисковой программе интернет-браузера. В целом область применения ИИ очень широка (рис. 1), и для его реализации совсем необязательно использовать мощные микропроцессоры или ПЛИС.

Применение ИИ в современном мире

Рис. 1. Применение ИИ в современном мире

В последнее время ИИ развивается особенно быстро. Этому есть несколько причин:

  • благодаря технологии IoT на интернет-серверах собраны довольно большие сегменты данных, что позволяет гораздо быстрее, чем раньше, обучать нейронные сети;
  • в последние годы появились новые алгоритмы, благодаря которым нейронные сети могут работать эффективнее на таких периферийных устройствах, как 32-битные микроконтроллеры.

Применение ИИ дает разработчикам ряд преимуществ:

  • Рост прибыли. Машинное обучение позволяет анализировать накапливаемые данные и находить в них закономерности. Эти закономерности ложатся в основу новых бизнес-моделей, с помощью которых можно увеличить прибыль.
  • Возможность управления рисками. Если есть возможность отслеживать и анализировать поведение какой-либо машины, то можно прогнозировать ее аварийное состояние еще до того, как она будет ломаться. Таким образом, можно вовремя находить аномалии в любой работающей системе и выполнять превентивное техническое обслуживание.
  • Снижение затрат. «Интернет вещей» дает возможность каждую секунду отправлять в «облачные» хранилища огромные объемы данных. Внедрение машинного обучения в периферийных устройствах (таких как микроконтроллеры) позволяет проверять и оценивать данные, прежде чем отправлять их в «облако». Это может снизить эксплуатационные расходы IoT-системы, ведь плата за облачные сервисы пропорциональна объему передаваемых данных.

Помимо развития самой технологии, появляется множество доступных средств разработки для дизайнеров и инженеров. Сейчас на рынке представлены программные и аппаратные средства, которые позволяют создавать устройства ИИ даже разработчикам, не имеющим никакого опыта в этой сфере.

В чем же заключаются преимущества и трудности реализации алгоритмов машинного обучения по сравнению с классическими алгоритмами на основе правил?

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

Трудности заключаются в том, что для реализации машинного обучения нужны специалисты, которые разбираются в науке о данных. Только они смогут разработать правильную модель ИИ и обучить ее, особенно если планируется распознавать какие-то изображения или видео. Специалисты будут маркировать данные и разрабатывать сценарии, которые нужно реализовать. Другими словами, для внедрения ИИ необходимы предварительная подготовка и инвестиции в специалистов, способных сделать нужную работу.

 

Опыт Microchip Technology

Корпорация Microchip Technology фокусируется на четырех основных направлениях в рамках машинного обучения (рис. 2):

  • Интеллектуальное машинное зрение (Smart Embedded Vision). Для этого направления доступен ряд решений, реализованных на ПЛИС.
  • Превентивное техническое обслуживание (Smart Predictive Maintenance). Это очень актуальное направление для промышленного сектора, позволяющее реализовать интеллектуальные нейронные сети на периферийных устройствах низкой производительности. Для реализации превентивного техобслуживания можно использовать все данные, накапливаемые в системах электропривода, энергопотребления и управления тепловыми режимами. Можно просто добавить в эти системы уровень машинного обучения и научить их понимать и прогнозировать поведение механизмов.
  • Интеллектуальный человеко-машинный интерфейс (Smart HMI). Сегодня представлено множество научных трудов, объясняющих, как машинное обучение может помочь в распознавании человеческих жестов и прикосновений.
  • Машинное обучение для серверов и рабочих станций. Это направление применимо к центрам обработки данных: в этой сфере есть большая потребность в обучении работе с данными различных процессоров. Такое обучение требует больших вычислительных мощностей, которые подключаются к процессору через шины Microchip Technology разработала ряд решений по использованию производительных коммутаторов PCIe для подключения графических процессоров и обучения их способности делать логические выводы.
Направления развития ИИ

Рис. 2. Направления развития ИИ

Электронные компоненты, выпускаемые корпорацией Microchip Technology, можно использовать на всех стадиях работы систем ИИ (рис. 3).

Электронные компоненты для систем ИИ

Рис. 3. Электронные компоненты для систем ИИ

Естественно, для реализации любых нейронных сетей нужен микроконтроллер, микропроцессор или ПЛИС. Однако работа системы ИИ начинается со «стороны» сбора данных, т. е. там, где установлены датчики. А любой измерительный узел имеет в своем составе не только датчики, но и память, аналоговые микросхемы, микросхемы безопасности и иногда аудиопроцессоры. Все эти компоненты разрабатываются и выпускаются Microchip Technology.

Следующим этапом в работе ИИ является обучение при помощи данных. Для этого используются микросхемы программируемой логики (ПЛИС), память, коммутаторы PCIe и различные устройства связи, которые тоже могут быть представлены продуктами Microchip Technology.

Последнее звено в цепочке ИИ — системы проверки данных и формирования логических выводов. Здесь как раз и применяются такие вычислительные устройства, как микроконтроллеры, микропроцессоры или ПЛИС, также широко представленные в ассортименте Microchip Technology.

По сравнению с другими компаниями, которые разрабатывают продукты для систем машинного обучения, Microchip Technology имеет важное преимущество: корпорация производит значительную часть микроконтроллеров и микропроцессоров для мирового рынка. Множество клиентов уже знакомо с программными средствами разработки от Microchip Technology, в частности со средой MPLAB X. Теперь среда MPLAB X интегрирована в несколько программных платформ для разработки ИИ. Эти платформы созданы компаниями — партнерами Microchip Technology и являются одними из наиболее популярных среди разработчиков соответствующего направления.

Один из инструментов среды разработки MPLAB X — визуализатор данных (Data Visualizer), который позволяет пользователям видеть и понимать данные, поступающие в микроконтроллер с любых других устройств. С помощью этого визуализатора можно собирать данные и перемещать их на платформу ИИ, которая вырабатывает правильный управляющий алгоритм на основе полученных данных. Этот алгоритм и будет загружен в микроконтроллер в виде управляющей программы (рис. 4).

Взаимодействие платформы ИИ со средой разработки MPLAB X

Рис. 4. Взаимодействие платформы ИИ со средой разработки MPLAB X

 

Реализация ИИ на 32-битных микроконтроллерах

Для разработки систем ИИ Microchip Technology выпускает две оценочные платы. Они построены на базе 32-битного микроконтроллера SAMD21 (Cortex-M0+, 48 МГц) и совместимы со средой разработки MPLAB X, которая интегрируется в платформы разработки ИИ, разработанные компаниями-партнерами.

Оценочная плата EV18H79A

Рис. 5. Оценочная плата EV18H79A

Первая плата, EV18H79A (рис. 5), содержит инерционное измерительное устройство (фактически 3-мерный датчик движения) InvenSense ICM-42688-P от компании TDK. Вторая, EV45Y33A (рис. 6), включает инерционное измерительное устройство BMI160 от компании Bosch. Кроме датчиков движения, обе платы оснащены прецизионным температурным датчиком и датчиком освещенности. Данные с измерителей могут передаваться по протоколу Wi-Fi, поскольку обе платы содержат и Wi-Fi-модули. Таким образом, обе платы позволяют достаточно быстро накапливать данные, создавать модели машинного обучения и тренировать их.

Оценочная плата EV45Y33A

Рис. 6. Оценочная плата EV45Y33A

С использованием обеих оценочных плат разработан ряд примеров. Один из них — детектор аномальных вибраций, которые могут возникать при работе вентилятора (рис. 7). В этом примере для построения системы ИИ используется программная платформа NanoEdge AI Studio, разработанная компанией Cartesiam. С помощью инерционного измерительного устройства демо-плата измеряет вибрации, которые возникают при работе обычного бытового вентилятора. Путем накопления измеренных значений создается база данных нормальных и аномальных значений вибрации, которая затем используется для обучения системы ИИ. В результате плата может отличать нормальный характер вибраций вентилятора от аномального и, в случае нарушения нормальной работы, сигнализировать об аварийном состоянии.

Детектор аномальных вибраций вентилятора

Рис. 7. Детектор аномальных вибраций вентилятора

Другой пример (рис. 8) позволяет классифицировать различные виды движений. В качестве прототипов используются движения, выполняемые при упражнениях с гантелями. Человек выполняет различные упражнения с гантелями, на одной из которых закреплена оценочная плата. После создания и тренировки модели ИИ демо-плата может различать и классифицировать физические упражнения. Нетрудно понять, что на практике подобная система может распознавать и классифицировать движения, выполняемые роботами или другими исполнительными механизмами, а также находить в них аномалии. В этом примере для построения системы ИИ использовалась программная платформа Edge Impulse Studio, разработанная компанией Edge Impulse.

Классификатор движений

Рис. 8. Классификатор движений

Помимо рассмотренных примеров, существует еще один учебный проект, позволяющий создать устройство распознавания голосовых команд. Для его реализации используется оценочная плата общего назначения DM320210 с микроконтроллером SAME54. Для подключения микрофона и преобразования аналоговых звуковых сигналов в цифровой код применяется дополнительная плата AC328904 c микросхемой аудиокодека Wolfson WM8904. Плата AC328904 передает кодированный звуковой сигнал на микроконтроллер SAME54 по интерфейсу I2S. Микроконтроллер выполняет программу, позволяющую распознавать две голосовые команды: «да» и «нет». В первом случае на оценочной плате загорается левый светодиод, а во втором — правый. Индикация неизвестных команд выполняется путем одновременного свечения обоих светодиодов. Кроме сигнальной индикации команд, может выполняться также текстовая индикация. В этом случае информация о распознанных голосовых командах передается по интерфейсу UART и отображается на экране компьютера, к которому подключена оценочная плата DM320210.

Этот учебный проект содержит обучающие данные, модель ИИ и программный код. Пользователю остается только запрограммировать этот код в микроконтроллер и проверить устройство в действии. В дополнение к этому разработчики проекта объясняют, как научить систему ИИ воспринимать другие команды. Для этого нужно загрузить новые обучающие данные в программную платформу Edge Impulse Studio, которая используется для данного проекта. Эта платформа выполняет обучение модели с помощью загруженных данных, а затем создает программный код на языке С++, который программируется в микроконтроллер.

Таким образом, основная сложность заключается в поиске или создании правильного набора данных для обучения модели. Создатели учебного проекта, например, использовали набор Google Speech Commands Dataset v0.02, в то время как пользователь может подготовить свои данные.

Практическая польза рассмотренного проекта заключается, например, в создании интеллектуального датчика для систем пожарной охраны или систем «умный дом». Такой датчик может воспринимать ограниченный набор голосовых команд («Пожар», «Тревога» и т. п.) и передавать соответствующий сигнал на приемный терминал противо-пожарной системы. При этом стоимость датчика, состоящего из микрофона, 32-битного микроконтроллера и микросхемы аудиокодека, будет относительно небольшой.

Корпорация Microchip Technology работает с тремя партнерами, разрабатывающими платформы ИИ для 32-битных микроконтроллеров.

Первая — компания Cartesiam. Ее программные продукты помогают разработчикам электронных устройств стать специалистами в области машинного обучения. Специализацией этой компании является работа с ультразвуковыми датчиками и датчиками вибрации, давления, летучих органических веществ (т. е. загрязнителей атмосферы), тока, магнитного поля, температуры и т. д. Компания Cartesiam не специализируется на обработке видео и голосовых данных.

Вторым партнером является компания Edge Impulse, которая также работает с различными видами датчиков. Особенностью программных продуктов Edge Impulse является наличие официальной бесплатной лицензии.

Третий партнер — это Motion Gestures. Как видно по названию, компания специализируется на работе с сенсорным интерфейсом и на распознавании жестов, то есть на реализации двухмерного и трехмерного человеко-машинных интерфейсов.

 

Выводы

В современном мире системы ИИ становятся все более популярными. Разработка таких систем больше не требует колоссальных финансовых затрат и не является прерогативой государственных и оборонных компаний. Реализовать ИИ теперь возможно даже на 32-битных микроконтроллерах. Налицо рост мирового спроса на системы ИИ с целью их применения прежде всего в «Интернете вещей». Корпорация Microchip Technology работает над удовлетворением этого спроса и предлагает аппаратные и программные средства для разработки систем ИИ. Эти средства отличает техническая и финансовая доступность, кроме того, работать с ними могут даже специалисты-электронщики, не имеющие опыта создания таких систем.

Литература
  1. Artificial Intelligence and Machine Learning: Solutions for Smart Applications on the Edge or in the Server or Data Cen-ter Environment.
  2. Machine Learning Plugin User’s Guide.
  3. SAMD21 Machine Learning Evaluation Kit with TDK InvenSense 6-axis MEMS.
  4. SAMD21 Machine Learning Evaluation Kit with Bosch IMU.
  5. Create a Smartbell with Edge Impulse.
  6. Integrating the Edge Impulse Inferencing SDK.
  7. Keyword Spotting with Edge Impulse.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *