Українська   English
ДонНТУ   Портал магистров

Содержание

Введение

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

Но когда мы говорим об аппаратном обеспечении на периферии, мы все чаще говорим о двух разных типах оборудования. Мы видим, как машинное обучение выполняется на впечатляюще крошечном оборудовании, таком как плата камеры OpenMV или недавно выпущенный SparkFun Edge, вплоть до нового безбатарейного периферийного вычислительного оборудования Xnor, которое работает от солнечной энергии.

Однако мы также видели нестандартные микросхемы, такие как Intel Neural Compute Stick, BeagleBone AI и недавно выпущенное Google оборудование Edge TPU, предлагающее машинное обучение для ускорения вывода на периферию. Более энергоемкие, чем крошечные платы, эти платы, основанные на пользовательских ASIC, по сравнению с ними ослепительно быстры.

1. Обзор современных микрокомпьютеров и их возможностей

1.1 Общее понятие о современных компьютерах

Микрокомпьютер обычно представляет собой систему на чипе, включая классическую архитектуру фон Неймана с центральным процессором, видеокартой, оперативной памятью, сетями WiFi / Bluetooth и портами ввода-вывода. Современные микрокомпьютеры используют такие операционные системы, как Linux и Windows. Как правило, микрокомпьютеры имеют большую вычислительную мощность, чем микроконтроллеры, видеовыход на HDMI, высокоскоростной Wi-Fi и Bluetooth, подключение к картам флэш-памяти и M.2 и т.д. Недостатком микрокомпьютеров является более высокая цена и более высокое энергопотребление по сравнению с микроконтроллерами. Микрокомпьютеры используются в проектах IoT, если вам необходимо выполнять задачи высокого уровня, включая потоковое видео, сложные информационные системы, мини-серверы и т.д.

Размер в мире персональных компьютеров по-прежнему имеет значение. Размер экрана, например: на крупном куда удобнее бродить по сайтам или работать в Exсel. Но в одном отношении размер сегодня уже не так важен, как прежде. Имеется в виду вычислительная мощь. Да, разогнанный четырёхъядерный процессор Haswell с мощным кулером несопоставимо производительнее ARM-чипа внутри популярного мобильного терминала. Однако количество тех, кто продолжает покупать мощные стационарные ПК, сокращается уже который квартал подряд, а продажи смартфонов и планшетов, наоборот, растут. Мощные компьютеры, похоже, сейчас нужны только геймерам, которые не готовы идти на компромиссы в отношении реалистичности отображаемых на дисплеях виртуальных миров и скорости их прорисовки.

Настоящие же компьютерные энтузиасты не столько запускают написанные кем-то программы, сколько сами стремятся создавать новые программные продукты разной степени сложности. Простора для самописных приложений вокруг предостаточно — от карманного «приёмника» интернет-радиостанций со всем спектром необходимой функциональности до персонализированной под собственные нужды системы контроля «умного дома», от пожарных датчиков до сторожевых робопылесосов.

Raspberry Pi

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

Миниатюрность же и простота конструкции обеспечили доступную цену устройства. Именно на этих принципах был построен первый массовый компьютер такого рода — Raspberry Pi, увидевший свет в середине 2011 года. (рис. 1.1)

Модуль Raspberry Pi

Рисунок 1.1 – Модуль Raspberry Pi

1.2 Сильные стороны и преимущества

Как встраиваемая платформа, Raspberry Pi обеспечивает множество преимуществ, в том числе.

1. Низкая стоимость (от 5 долларов).

2. Низкое энергопотребление (для многих задач не требуется вентилятор или радиатор).

3. Разумная производительность процессора, графического ядра и памяти.

4. Широкая доступность по всему миру.

5. Хорошая документированность: от принципиальных схем до исходного кода для большинства программ.

6. Большая экосистема разработчиков, пользователей и поставщиков дополнительного оборудования.

7. Проверенный дизайн в третьем поколении.

8. Стабильный производитель (более семи лет).

9. Множество опций операционной системы, большинство из которых с открытым исходным кодом и не требуют затрат на лицензирование.

1.3 Недостатки

Производительность

Raspberry Pi удалось стать доступной по цене, срезав некоторые углы. В результате плата не справляется с некоторыми задачами по сравнению с ее конкурентами. В частности, она плохо работает как с сетью, так и с USB.

В устройстве используется микросхема SMSC LAN9514, которая подключается к SoC через один канал USB, действуя одновременно как адаптер USB-to-Ethernet и концентратор USB. Это означает, что Ethernet и USB являются общими и конкурируют друг с другом, что разрушает типичный вариант использования NAS для загрузки чего-либо по сети и сохранения его на USB-накопитель, не говоря уже о добавлении RAID к смеси.

По этой же причине, даже когда в прошлом году они наконец-то представили модель с Gigabit Ethernet, реальная сетевая производительность устройства далеко не приближается к реальной производительности Gigabit Ethernet, но составляет около 40 МБ / с при чистой скорости сети, максимум 20 МБ / с, если мы переносятся на USB-устройство. Некоторое время были доступные платы с настоящим Gigabit Ethernet и USB3.

2. Описание NVIDIA JETSON NANO

Jetson Nano (рис. 2.1) построен на 64-битном четырехъядерном процессоре Arm Cortex-A57 с тактовой частотой 1,43 ГГц вместе с графическим процессором NVIDIA Maxwell со 128 ядрами CUDA, способным выполнять 472 гигафлопс (FP16), и имеет 4 ГБ 64-битной оперативной памяти LPDDR4 на борту. с 16 ГБ хранилища eMMC и работает под управлением Linux для Tegra. Модуль 70 × 45 мм имеет 260-контактный разъем SODIMM, который разделяет интерфейсы, включая видео, аудио, USB и сеть, и позволяет подключать его к совместимой несущей плате.

Модуль Jetson Nano

Рисунок 2.1 – Модуль Jetson Nano

Это подводит нас к набору разработчика Jetson Nano (рис. 2.2). Выпущенный вместе с модулем Jetson Nano, набор действует как оценочная плата для модуля и как образец несущей платы. Помимо прочего, он поддерживает Gigabit Ethernet, 4 разъема USB 3.0, порты HDMI и DisplayPort, разъем для камеры MIPI-CSI, слот для карты microSD и Power-over-Ethernet (PoE).

Комплект для разработчика Jetson Nano, вид сверху вниз

Рисунок 2.2 – Комплект для разработчика Jetson Nano, вид сверху вниз

Технические характеристики Nvidia Jetson Nano (рис. 2.3)

Плата также предлагает GPIO, I2C, I2S, SPI, PWM и UART через 40-контактный блок заголовка GPIO, подозрительно похожий на тот, который используется в Raspberry Pi.

Потребляемая мощность платы оценивается от 5 до 10 Вт, и она может питаться от одного порта micro USB рядом с разъемом Ethernet. Однако, глядя на требования к комплекту, я сразу бросаю в глаза в отношении новой платы - это потенциально проблемно высокие требования к характеристикам источника питания.

NVIDIA рекомендует, чтобы комплект Jetson Nano Developer Kit питался от источника питания micro-USB от 5 В / 2 А до 5 В / 3,5 А, с дополнительной рекомендацией использовать источник питания 5 В / 4 А, если вы «… выполняете тесты или выполняете большую нагрузку».

Технические характеристики Nvidia Jetson Nano

Рисунок 2.3 – Технические характеристики Nvidia Jetson Nano

3. Искусственный интелект

Ещё буквально 10-15 лет назад споры вокруг искусственного интеллекта (ИИ, AI - Artificial Intelligence) разгорались только в ключе гипотетических теорий и представлений о нем, как о чём-то фантастическом и нереально далёком. Однако взрывное развитие технологий и скоростей компьютерных вычислений в наше время не оставляет шансов фантастике оставаться сказкой и всё больше подтверждает то, что эффективные с точки зрения приносимой пользы устройства и технологии однозначно должны быть реализованы и служить на благо людям.

Само понятие ИИ - это довольно неопределённая субстанция, по крайней мере современные мыслители пока не пришли к однозначному определению что это такое, но при этом разделились на 2 лагеря: одни настроены пессимистически и считают, что ИИ угрожает человечеству и сможет заменить и вытеснить человека из цивилизации.

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

1-й уровень (самый низкий в приоритете) — слова-функции, определяющие набор команд и движений (например: «принеси», «дай», «подними» и т.д.);

2-й уровень — слова-системы, позволяющие описывать, создавать, реализовывать систему, технологию, процессы (например: «результативность», «эффективность», «качество», «система», «цель», «алгоритм», «процесс», «проект», «продукт», «управлять» и т.д.);

3-й уровень — слова-отношения, определяющие ключевые смыслы, формирующие человека как личность, особенности восприятия самого себя, людей, природы и окружающего мира в целом (например: «уважение», «достоинство», «честь», «Бог», «любовь», «свобода», «радость», «обида», «человек», «мужчина», «женщина» и т.д.).

Так вот, компьютеры и ИИ (имеется ввиду собирательный образ) могут работать, превосходя человека на 1-м и 2-м уровнях, поскольку они напрямую связаны с уровнем отработки команд и работы сложных алгоритмов по анализу данных. Но попасть на 3-й уровень компьютеры не в состоянии, поскольку отношения в понимании человека невозможны для создания их компьютером, особенно учитывая часто иррациональное поведение человека. Компьютер может воспроизвести отношения, заложенные в него программно, но это не будут первичные человеческие отношения как таковые, а, следовательно, полностью заменить человека в принципе невозможно.

Выводы

В ходе выполнения работы были рассмотрены одноплатные компьютеры Raspberry Pi и Nvidia Jetson Nano совместно с камерой Raspberry Pi V2 для обнаружения объектов.

Был использован Nvidia Jetson Nano, сильные стороны которого в том, что при достаточно малых размерах, мы получаем достойную производительность, возможность работать с нейросетями и любым поддерживаемым язком программирования. Я использовал язык программирования Python в связи простого синтаксиса.

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

Также был получен и закреплен опыт программирования на Python, развертывание необходимых библиотек для нейросетей, установка драйверов, подбор платы питания и сервоприводов для Nvidia Jetson Nano и интеграция программного кода с сервоприводами.

Плата у NVIDIA получилась вполне интересной и весьма производительной. Она немного больше по размеру и дороже, чем Raspberry Pi, но если кому-то нужна большая вычислительная мощность при компактном размере, то оно вполне стоит того.

Список источников

  1. Анучин А.С. Системы управления электроприводов/ Анучин А.С .: Издательский дом МЭИ, 2015. – 54 с.
  2. Raspberry Pi 4 Model B specifications [Электронный ресурс]. – Режим доступа: https://www.raspberrypi.org/....
  3. PCA9685 [Электронный ресурс]. – Режим доступа: https://micro-pi.ru/....
  4. OpenCV [Электронный ресурс]. – Режим доступа: https://opencv.org/about/.
  5. NumPy [Электронный ресурс]. – Режим доступа: https://numpy.org/.
  6. SciPy [Электронный ресурс]. – Режим доступа: https://www.scipy.org/.
  7. Adafruit CircuitPython [Электронный ресурс]. – Режим доступа: https://circuitpython.readthedocs.io/projects/servokit/en/latest/.
  8. Simulink. [Электронный ресурс]. – Режим доступа: https://matlab.ru/products/Simulink.