В этом руководстве описывается, как создавать изображения с помощью ESP32-CAM с использованием переноса стиля и Magenta.js. Одной из областей, где можно применять ИИ и машинное обучение, является область искусства. В этом уроке мы рассмотрим, как изменить изображение, сделанное ESP32-CAM, с помощью машинного обучения. Этот пример демонстрирует, как мы можем смешивать различные технологии, чтобы создать что-то новое и необычное. Кроме того, в этом руководстве показаны бесконечные возможности, которые мы можем получить при использовании ESP32-CAM.

Что такое передача нейронного стиля?

Neural Style Transfer — это набор алгоритмов, которые манипулируют изображениями. Он использует два изображения:

  • изображение контента
  • стильный образ

Цель этого процесса — смешать эти два изображения вместе, применяя стиль одного изображения к содержимому другого. Конечный эффект — это одно изображение, содержащее содержимое исходного изображения, нарисованное в стиле другого изображения. Мы будем использовать изображение, сделанное ESP32-CAM, в качестве изображения содержимого, а другое изображение – в качестве изображения стиля. Мы будем смешивать их вместе. Передача нейронного стиля используется для создания искусственных художественных образов. В этом руководстве мы поэкспериментируем с тем, как подать заявку на передачу нейронного стиля с помощью ESP32-CAM с использованием Magenta.js.

Что такое Magenta.js?

Magenta.js — это библиотека javascript с открытым исходным кодом, построенная на TensorFlow. Мы уже рассказывали, как использовать Tensorflow с ESP32 в предыдущих постах. Это руководство расширяет концепции, рассмотренные в статье Как классифицировать изображения с помощью машинного обучения с помощью ESP32-CAM, используя тот же процесс, который описан ранее. Magenta — это попытка изучить, как машинное обучение можно применить к искусству. Как и в предыдущем посте, мы не можем запустить эту модель машинного обучения непосредственно на ESP32, потому что это потребует слишком много энергии. Поэтому мы используем мощность клиента. Более подробно мы будем использовать браузер, потому что Magenta.js запускается внутри него.

Как применить перенос стиля к изображению с помощью ESP32-CAM

Для достижения нашей цели мы создадим простой веб-интерфейс HTML с использованием ESP32. Этот интерфейс имеет три разные задачи:

  • Потоковое видео и захват изображения
  • Позвольте пользователю выбрать стиль изображения
  • Примените Style Transfer с помощью Magenta.js к изображению, снятому ESP32.

Интерфейс пользовательского интерфейса очень прост. Подробнее о том, как его создать, вы можете прочитать в предыдущем посте. Более того, мы будем использовать тот же код ESP32-CAM, разработанный ранее:

Предварительный просмотр пользовательского интерфейса

Это предварительный просмотр пользовательского интерфейса:

Установка кода в ESP32-CAM

Клонируйте репозиторий на Github и установите его в свою ESP32-CAM, используя предпочитаемую вами IDE.

Обратите внимание, что HTML-страница имеет шестнадцатеричный формат. Это простой способ избежать использования файловой системы в ESP32-CAM для предоставления HTML-страницы.

Применение передачи стиля с использованием Magenta.js и ESP32-CAM

После того, как вы установили код на свое устройство ESP32-CAM, мы можем протестировать его подключение к вашему устройству с помощью браузера.

Ниже несколько примеров:

Ниже другой пример:

Как вы можете заметить на изображении выше, изображение содержимого, то есть изображение ESP32-CAM, преобразуется с использованием стиля другого изображения.

Подведение итогов

В конце этого поста мы узнали, как использовать ESP32-CAM с Magenta.js. Это библиотека javascript для создания произведений искусства с использованием машинного обучения. Мы узнали, как применить Style Transfer к изображению, снятому ESP32-CAM. Мы можем изменить эти изображения, применив стиль другого изображения, которое мы выберем.

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

Первоначально опубликовано на https://www.survivingwithandroid.com 5 июля 2020 г.