Русский   English
ДонНТУ   Портал магістрів

Зміст

Введення

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

Але коли ми говоримо про апаратне забезпечення на периферії, ми все частіше говоримо про два різні типи обладнання. Ми бачимо, як машинне навчання виконується на вражаюче крихітному устаткуванні, такому як плата камери OpenMV або нещодавно випущений SparkFun Edge, аж до нового безбатарейного периферійного обчислювального обладнання Xnor, яке працює від сонячної енергії.

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

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), і біт оперативної пам'яті 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.