Телефонуйте » (+38) 096 227 41 41

У цьому занятті дізнаємось, як встановити TensorFlow на мікрокомп’ютер Raspberry Pi та розглянемо просту класифікацію зображень у заздалегідь підготовленій нейронній мережі.

Вимоги:

1. RPi з встановленою на нього Raspbian OS (мікроSD-карта не менше 16 ГБ 10 класу).
2. Підключення до Інтернету.

Використаємо SSH для доступу до RPi з ноутбука. Можемо використати підключення VNC або підключити RPi до монітора.
RPi, будучи портативним і менш енергозатратним пристроєм, використовується у багатьох програмах для обробки зображень у режимі реального часу, таких як розпізнавання облич, відстеження об'єктів, домашній системі безпеки, камерах спостереження тощо. Використовуючи програмне забезпечення комп’ютерного зору, наприклад, OpenCV з RPi, можна створити багато ефективних програм обробки зображень.

Розробники ML та ШІ зробили операцію встановлення TF дуже простою і тепер TF можна встановити за допомогою лише кількох команд. Впевнений, що не виникне жодних проблем і ви зможете використати деякі приклади програм для вивчення.

Встановлення TensorFlow на RPi у віртуальному середовищі

Встановимо версію TF 1.14 на робочому столі Raspbian Stretch (якщо обираємо Python 3.5) – це для RPi3 B+ або на робочому столі Raspbian Buster (якщо обираємо Python 3.7 або 2.7) – це для RPi4.
Відкриємо термінал і виконаємо наведені нижче кроки.

Крок 1: Встановлюємо залежності

Оскільки будемо встановлювати tensorflow з Python 3.7.x, нам спочатку треба встановити деякі залежності.
Перш за все, встановимо pip за допомогою команди:

sudo apt-get install python3-pip

В результаті буде встановлена остання версія pip для Python 3. Крім того, налаштуємо інструменти розробки Python 3 за допомогою:

sudo apt-get install python3-dev

Крок 2: Встановлюємо віртуальне середовище

Ми плануємо встановити TF у віртуальному середовищі, яке буде ізольоване від інших установок python. Це захистить нас від проблем сумісності пакетів. Певним чином, у нас буде власний світ встановлених бібліотек, окремо від решти установок на Raspbian.

Тому введемо у терміналі наступну команду:

sudo apt-get install python-virtualenv

При встановленні, зі сховища будуть завантажуватися відповідні пакети і нас запитають:
Do you want to continue? [Y/n] (Ви хочете продовжити? [Y/n])
Натискаємо "y", а потім Enter, щоб продовжити. Установка буде завершена через 2 хвилини.

Крок 3: Створюємо нове віртуальне середовище.

Вводимо:

vitutalenv --system-site-packages -p python3 tensorflow

Створюється нове середовище під назвою "tensorflow" із встановленим Python 3.

Крок 4: Активуємо віртуальне середовище

Для того, щоб увійти в новостворене середовище, введемо команду:

source ~/tensorflow/bin/activate

Натискаємо Enter, і переходимо в середовища tensorflow. Тепер командний рядок повиненмати вигляд, як показано нижче (рис. 1):

Перехід в середовище tensorflow.
Рис. 1. Перехід в середовище tensorflow

Крок 5: Отримуємо доступ до wheel-архіва TensorFlow

Тепер вирішальна частина встановлення.
Нам треба знайти відповідні бінарні файли для апаратної архітектури RPi. На GitHub є сховище, яке може надати нам заздалегідь складені бінарні файли для останніх версій TF (рис. 2):

Бінарні файли у сховищі GitHub
Рис. 2. Бінарні файли у сховищі GitHub

Перейшовши на сторінку GitHub, побачимо найновіші wheel-файли TF, доступні для завантаження.
Завантажимо відповідний wheel-архів для RPi 3 (Python 3.5) або для RPi 4 (Python 3.7). Для цього копіюємо URL-адресу відповідного wheel-файла на сайті.

Крок 6: Встановлення Tensorflow за допомогою pip

Після копіювання URL-адреси wheel-файла переходимо в термінал, який все ще знаходиться в середовищі TF, і вводимо:

pip3 install 'URL-адреса wheel-файла'

Wheel-файл буде завантажений із сховища та встановлений. Процес завантаження займе деякий час, залежно від швидкості підключення до Інтернету. Завантажаться самостійно всі необхідні пакети TF. Це займе приблизно 5-10 хвилин.

Після завершення інсталяції pip повернемося до командного рядка.

Крок 7: Перевірка налаштування

Щоб перевірити встановлення, відкриємо інтерпретатор Python всередині терміналу, ввівши:

python

Тепер наберемо наступний невеликий код:

>>import tensorflow as tf
>>tf.__version__

Вище вказаний код приведе до відображення версії TF. Якщо ви встановили з Git версію 1.14, то буде виведено:

'1.14.0'

Зверніть увагу на рис. 2, що на GitHub вже доступна версія TF 2.0.
Введемо рядок за рядком наступний код (без коментарів):

>>hello=tf.constant('hello world') # буде створена константа hello
>>with tf.Session() as sess:
print(sess.run(hello))
#натискаємо Enter


В результаті виконання коду отримаємо:

b'hello world'

Це очікуваний вихід, який підтверджує успіх налаштування.

Встановлення TensorFlow безпосередньо на ОС Raspbian

Починаючи з версії TF 1.9, на офіційному сайті є підтримка встановлення TF на RPi.

Крок 1: Перш ніж встановлювати TF на RPi, спочатку треба оновити ОС Raspbian, використовуючи команди:

sudo apt-get update
sudo apt-get upgrade

Крок 2: Встановимо бібліотеку Atlas, щоб отримати підтримку Numpy та інших залежностей.

sudo apt install libatlas-base-dev

Крок 3: Встановимо TF з pip3 за допомогою команди:

pip3 install tensorflow

Для встановлення TF знадобиться деякий час. Якщо виникне повідомлення про помилку, ігноруємо його, або просто повторюємо встановлення за допомогою вищевказаної команди.

Крок 4: Щоб перевірити, чи встановився TF, спробуємо ввести

python3

А потім

import tensorflow

Якщо використовуємо версію Python більше 3.4, то може з’явитися повідомлення про помилку, ігноруємо його — все буде працювати.
Для перевірки версії встановленого TF вводимо (рис. 3):

tensorflow.__version__

Перевірка версії
Рис. 3. Перевірка версії

Тепер можемо перевірити роботу TF, запустивши невелику програму Hello world. Для цього відкриваємо текстовий редактор nano за допомогою команди:

sudo nano tfcheck.py

Копіюємо і всталяємо наведені нижче рядки у терміналі nano та зберігаємо файл за допомогою ctrl+x. Натискаємо клавішу Enter.

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

Крок 5: Запускаємо збережений скрипт у терміналі, використовуючи команду:

python3 tfcheck.py

Якщо всі пакети встановлені належним чином, то побачимо повідомлення Hello Tensorflow! в останньому рядку, як показано нижче (рис. 4):

Запуск тестової програми
Рис. 4. Запуск тестової програми

Якщо працюємо з версією Python вище 3.4, то можемо отримати кілька попереджень при виконанні програми. Офіційні підручники TF визнають, що це відбувається, але рекомендують ці попередження ігнорувати.

Все чудово працює? Тоді зробимо щось більш цікаве за допомогою TF. Не треба мати ніяких знань з машинного та глибокого навчання, щоб зробити наступний проект.

Встановлення класифікатора зображень

Спочатку створимо новий каталог, який буде зберігати моделі TensorFlow.

mkdir tensorflow
cd tensorflow

Тепер клонуємо сховище моделей TensorFlow у цей новий каталог.

git clone https://github.com/tensorflow/models.git

Ми використаємо приклад класифікації зображень, що постачається з моделями, тому перейдемо до вказаної папки:

cd models/tutorials/image/imagenet

Запускаємо сценарій. Він подасть стандартне зображення "panda" в нейронну мережу, яка взамін здогадається, що це зображення містить оцінку.

python3 classify_image.py

Виконання сценарію classify_image.py
Рис.5. Виконання сценарію classify_image.py

Дамо нейронній мережі наше зображення і подивимося, чи може вона ідентифікувати об'єкти на зображенні чи ні.
Автор помістив зображення собаки в ту саму папку, з якою ми вже працюємо. Запускаємо сценарій, щоб побачити, що він виведе як передбачення.

Зображення собаки, використане автором
Рис.6. Зображення собаки, використане автором

python3 classify_image.py –image_file=dog.jpg

Він пропонує наступні здогадки:

Результат розпізнавання нового зображення
Рис.7. Результат розпізнавання нового зображення

Як бачите, класифікатор визнав, що з найбільшою ймовірністю на цьому зображенні є мопс.

Література

1. https://circuitdigest.com/microcontroller-projects/intalling-machine-learning-software-tensorflow-on-raspberry-pi
2. https://github.com/lhelontra/tensorflow-on-arm/releases
3. https://maker.pro/raspberry-pi/tutorial/how-to-set-up-the-machine-learning-software-tensorflow-on-raspberry-pi

Попереднє заняття - Наступне заняття

Новини

  • SDR в IoT

    iotSDR пропонує платформу розробок для IoT-радіо та мережевих доменів. На платі два передавачі Microchip AT86RF215, для вводу-виводу модему на Xilinx ZYNQ SoC, приймач GNSS MAX2769 для GPS, Galileo, BieDou та Glonass. Плата сумісна з ПЗ GNURadio SDR. Дозволяє розробити протоколи фізичного рівня LoRa, SigFox, WightLess, Bluetooth, BLE, 802.15.4, ZigBee тощо для IoT, або шлюз IoT через TheThingsNetwork, LPWAN або Google Thread. Пам'ять EEPROM: 1x AT24MAC602 , flash-пам'ять: 1x QSPI 128 Мб, RAM: 256 MБ DDR3,слот для Micro SD карти, входи/виходи: 2x 8-бітних інтерфейси PL, інтерфейс 8-бітного PS, Gigabit Ethernet, USB 2.0 (USB3310), USB 2.0 (CP2104), 2x SMA RF-роз'єми для приймача діапазонів IoT, 2x SMA RF-роз'єми для приймача 2,4 ГГц , RF-роз'єм приймач GNSS, FPGA-роз'єм JTAG для програмування. Розміри плати: 76,2 мм x 101,6 мм.

     

    in Новини

Записатися на курс