Машинное обучение (Machine Learning) и искусственный интеллект (Artificial Intelligence) – сегодня это одни из самых быстро развивающихся отраслей на рынке современных инфо-коммуникационных услуг. Уже сейчас большинство приложений вычислительной техники используют машинное обучение (Machine Learning) для анализа и предсказания результатов действий. Даже камеры в современных смартфонах используют технологии машинного обучения и искусственного интеллекта для обнаружения лиц на снимках.
Одним из пионеров в области машинного обучения была компания Google. Именно она разработала свои фреймворки ML (Machine Learning) и AI (Artificial Intelligence), которые мы сейчас можем использовать в своих приложениях. В настоящее время одним из самых известных приложений машинного обучения от компании Google является библиотека нейронных сетей с открытым исходным кодом под названием TensorFlow. Она может использоваться для классификации изображений, обнаружения объектов и многих других применений.
Многие эксперты полагают, что в ближайшие годы искусственный интеллект заменит человека в таких задачах как управление автомобилем, заказ продуктов в онлайн режиме, управление домашними устройствами и многое другое. Так почему бы не использовать такие потрясающие возможности современных технологий в таком портативном вычислительном устройстве как Raspberry Pi?
В данной статье мы рассмотрим установку программного обеспечения (ПО) TensorFlow на плату Raspberry Pi и рассмотрим несколько примеров его использования для задач простой классификации изображений на заранее обученной нейронной сети. Ранее на нашем сайте мы решали похожую задачу распознавания лиц людей с помощью платы Raspberry Pi и библиотеки OpenCV.
Необходимые компоненты
- Плата Raspberry Pi (купить на AliExpress) (Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158).
- SD карта (объемом не менее 16 Гб).
- Соединение с сетью Интернет.
Установка TensorFlow на Raspberry Pi
Раньше установка TensorFlow была весьма трудоемкой задачей, однако сейчас в связи с развитием технологий машинного обучения и искусственного интеллекта ее установка уже не вызывает никаких проблем и производится при помощи выполнения всего лишь нескольких команд.
Если вы знакомы с основами машинного обучения и глубокого обучения (deep learning) то для вас, скорее всего, будет интересным узнать что скрывается внутри нейронных сетей. Но даже если вы новичок в этой области, то все равно эта статья будет полезной для вас – вы на конкретных примерах посмотрите использование этих технологий.
Для установки TensorFlow на Raspberry Pi выполните следующую последовательность шагов.
Шаг 1. Установите последние обновления на вашу плату Raspberry Pi с помощью команд:
1 2 |
sudo apt-get update sudo apt-get upgrade |
Шаг 2. Установите библиотеку Atlas чтобы иметь возможность работы с Numpy и другими необходимыми нам инструментами.
1 |
sudo apt install libatlas-base-dev |
Шаг 3. Установите TensorFlow с помощью pip3.
1 |
pip3 install tensorflow |
Установка TensorFlow займет некоторое время. Если вы столкнетесь с ошибками во время ее установки, просто запустите еще раз на выполнение выше приведенную команду для ее установки.
Шаг 4. После успешной установки TensorFlow проверим корректность ее установки с помощью небольшой программы под названием Hello world. Для этого откройте текстовый редактор nano с помощью команды:
1 |
sudo nano tfcheck.py |
Скопируйте следующие строчки в терминал nano и сохраните его с помощью ctrl+x и нажатия клавиши enter.
1 2 3 4 |
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) |
Шаг 5. После этого в терминале запустите этот скрипт на выполнение с помощью команды:
1 |
python3 tfcheck.py |
Если все рассмотренные ранее пакеты корректно установлены, то вы в результате выполнения этой команды увидите сообщение "Hello Tensorflow!" в окне терминала как показано на следующем рисунке.
Как видите, библиотека TensorFlow работает. В этом проекте никаких глубоких знаний технологий машинного и глубокого обучения вам не понадобится. Мы будем загружать изображение в заранее подготовленную модель, а библиотека TensorFlow будет идентифицировать это изображение с максимально возможной вероятностью.
Установка классификатора изображений на Raspberry Pi
Классификатор изображений (Image Classifier) в нашем проекте будет использоваться для распознавания изображений. Для его установки на Raspberry Pi выполните следующую последовательность шагов.
Шаг 1. Создайте каталог и войдите в него с помощью следующих команд:
1 2 |
mkdir tf cd tf |
Шаг 2. Скачаем модели, которые доступны в GIT репозитории для TensorFlow.
1 |
git clone https://github.com/tensorflow/models.git |
Выполнение этого шага может занять достаточно продолжительное время из-за большого объема этих моделей.
Шаг 3. Вначале мы протестируем работу классификатора изображений на примере, который находится в каталоге models/tutorials/image/imagenet. Войдем в данный каталог:
1 |
cd models/tutorials/image/imagenet |
Шаг 4. Загрузим изображение в заранее подготовленную нейронную сеть с помощью команды:
1 |
python3 classify_image.py --image_file=/home/pi/image_file_name |
Замените в этой команде image_file_name на имя своего изображения, которое вы хотите загрузить в классификатор.
На следующих рисунках приведены примеры обнаружения и распознавания изображений с помощью библиотеки TensorFlow.
На наш взгляд неплохо. Нейронная сеть классифицировала изображение как Египетская кошка (Egyptian cat) с высокой степенью достоверности.
А на следующей картинке нейронная сеть определила Альпы с высокой степенью вероятности. На картинке также виден небольшой кусок равнины (на переднем плане) и на представленном скрине работы библиотеки видно, что нейронная сеть "увидела" этот участок равнины.
Также вы можете проверить работу библиотеки на своих изображениях.
1 470 просмотров