Diy

Начните с распознавания изображений с помощью TensorFlow и Raspberry Pi

Начните с распознавания изображений с помощью TensorFlow и Raspberry Pi

TensorFlow — это библиотека нейронных сетей Google. Учитывая, что машинное обучение — самая горячая вещь в настоящее время, неудивительно, что Google является одним из лидеров в этой новой технологии.

В этой статье вы узнаете, как установить TensorFlow на Raspberry Pi и выполнить простую классификацию изображений в предварительно обученной нейронной сети.

Начиная

Чтобы начать распознавание изображений, вам понадобится Raspberry Pi (подойдет любая модель) и SD-карта с операционной системой Raspbian Stretch (9.0+) (если вы новичок в Raspberry Pi, воспользуйтесь нашим руководством по установке ).

Загрузите Pi и откройте окно терминала. Убедитесь, что ваш Pi обновлен, и проверьте версию Python.

sudo apt-get update python --version python3 --version 

Для этого урока вы можете использовать как Python 2.7, так и Python 3.4+. Этот пример для Python 3. Для Python 2.7 замените Python3 на Python , а pip3 на pip в этом учебном пособии.

Pip — менеджер пакетов для Python, обычно устанавливаемый в качестве стандартного в дистрибутивах Linux.

Если вы обнаружите, что у вас его нет, следуйте инструкциям по установке для Linux в этой статье, чтобы установить его.

Установка TensorFlow

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

Перед установкой TensorFlow установите библиотеку Atlas .

 sudo apt install libatlas-base-dev 

После этого установите TensorFlow через pip3.

 pip3 install --user tensorflow 

Это установит TensorFlow для вошедшего в систему пользователя. Если вы предпочитаете использовать виртуальную среду использовать виртуальную среду , измените ваш код здесь, чтобы отразить это.

Тестирование TensorFlow

После установки вы можете проверить, работает ли он с TensorFlow-эквивалентом Hello, world!

Из командной строки создайте новый скрипт Python, используя nano или vim (если вы не уверены, какой из них использовать, у них обоих есть преимущества ), и назовите его легко запоминающимся.

 sudo nano tftest.py 

Введите этот код, предоставленный Google для тестирования TensorFlow:

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

Если вы используете nano, выйдите, нажав Ctrl + X, и сохраните файл, набрав Y в ответ на запрос.

Запустите код из терминала:

 python3 tftest.py 

Вы должны увидеть «Hello, TensorFlow» напечатанным.

Если вы используете Python 3.5, вы получите несколько предупреждений во время выполнения. Официальные руководства TensorFlow признают, что это происходит, и рекомендуют игнорировать это.

TensorFlow и Python3.5 - ошибка

Оно работает! Теперь, чтобы сделать что-то интересное с TensorFlow.

Установка классификатора изображений

В терминале создайте каталог для проекта в вашем домашнем каталоге и перейдите в него.

 mkdir tf1 cd tf1 

TensorFlow имеет git-репозиторий с примерами моделей, которые можно опробовать. Клонируйте репозиторий в новый каталог:

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

Вы хотите использовать пример классификации изображений, который можно найти в models / tutorials / image / imagenet . Перейдите к этой папке сейчас:

 cd models/tutorials/image/imagenet 

Стандартный скрипт классификации изображений работает с предоставленным изображением панды:

Tiny TensorFlow Panda

Чтобы запустить стандартный классификатор изображений с предоставленным изображением панды, введите:

 python3 classify_image.py 

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

TensorFlow Panda Классифицирующий вывод

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

Использование пользовательского изображения

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

В этом случае вы увидите, сможет ли нейронная сеть TensorFlow идентифицировать Джорджа.

Георгий Динозавр

Знакомьтесь, Джордж. Джордж это динозавр. Чтобы вставить это изображение (доступно в обрезанном виде здесь ) в нейронную сеть, добавьте аргументы при запуске скрипта.

 python3 classify_image.py --image_file=/home/pi/george.jpg 

Image_file = после имени скрипта позволяет добавлять любое изображение по пути. Давайте посмотрим, как эта нейронная сеть сделала.

Результаты классификации динозавров TensorFlow

Неплохо! Хотя Джордж не является трицератопсом, нейронная сеть классифицировала изображение как динозавра с высокой степенью достоверности по сравнению с другими вариантами.

TensorFlow и Raspberry Pi, готовые к работе

Эта базовая реализация TensorFlow уже имеет потенциал. Это распознавание объектов происходит на Pi, и для его работы не требуется подключение к Интернету. Это означает, что с добавлением модуля камеры Raspberry Pi и батарейного блока , подходящего для Raspberry Pi , весь проект может стать переносимым.

Большинство учебных пособий только царапают поверхность предмета, но это никогда не было правдой, чем в этом случае. Машинное обучение — невероятно плотный предмет.

Один из способов углубить свои знания — это пройти специальный курс. В то же время, получите опыт машинного обучения и Raspberry Pi с этими проектами TensorFlow, которые вы можете попробовать сами.

Похожие посты
Diy

Вещи, которые вы должны иметь в виду, прежде чем брать ноутбук или смартфон в службу технической поддержки

Diy

Как использовать Arduino для съемки красивой скоростной фотографии

DiyLinux

Пять великолепных расширений Raspberry Pi, которые делают его еще более полезным

Diy

Первые шаги с Arduino: пристальный взгляд на печатную плату и структуру программы