Приложение для распознавания изображений с использованием GoLang | Tensorflow | WasmEdge | Dapr | Docker

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

Это приложение для распознавания изображений, созданное с использованием языка Go, работает на модели Tensorflow и требует для выполнения Dapr и WasmEdge.

Небольшая справка об этих технологиях:

  • Для построения микросервисов Dapr является универсальным фреймворком. Для инициализации Dapr необходимы контейнеры, здесь мы используем Docker.
  • WebAssembly VM, например, WasmEdge, обеспечивает безопасную и высокопроизводительную среду выполнения для микросервисов.
  • Микросервисы на основе WebAssembly могут быть написаны на нескольких языках программирования, включая Rust, C/C++, Swift и JavaScript.
  • Программы WebAssembly встраиваются в приложения Dapr sidecar, поэтому они переносимы и не зависят от окружения хоста Dapr.
  • WasmEdge SDK упрощает создание микросервисов для выводов Tensorflow.
  • WasmEdge является совместимой с Kubernetes средой исполнения и может сыграть важную роль в качестве легковесной контейнерной альтернативы для запуска микросервисов.

Давайте приступим:

1) Нам нужно установить Go, Docker, Dapr, WasmEdge.

  • Go
sudo apt  install golang-go
Войти в полноэкранный режим Выйти из полноэкранного режима
  • WasmEdge
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash

Войти в полноэкранный режим Выход из полноэкранного режима

  • Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Dapr
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash

Войти в полноэкранный режим Выйти из полноэкранного режима

  • Инициализировать Dapr
dapr init
Войти в полноэкранный режим Выход из полноэкранного режима

  • Проверьте свой Docker для верификации
docker ps
Войдите в полноэкранный режим Выйдите из полноэкранного режима

2) Создайте каталог, для меня это imgpro_wasm.

mkdir imgpro_wasm
cd imgpro_wasm/
Войдите в полноэкранный режим Выйдите из полноэкранного режима

3) Клонируйте эту git-репо, созданную Second Stage.

git clone https://github.com/second-state/dapr-wasm.git
Войдите в полноэкранный режим Выйдите из полноэкранного режима

4) Перейдите в fuctions/classify и создайте функцию классификации

cd functions/classify
 ./build.sh
Войдите в полноэкранный режим Выйти из полноэкранного режима

5) Запустите веб-сервис для пользовательского GUI:

cd web-port
go build
./run_web.sh
Войти в полноэкранный режим Выйти из полноэкранного режима

6) Постройте и запустите микросервис для классификации изображений на основе тензорного потока:

cd image-api-go
go build --tags "tensorflow image"
./run_api_go.sh
cd ../
Войти в полноэкранный режим Выход из полноэкранного режима

7) Приложение готово к работе

  • Откройте браузер по умолчанию и перейдите в него:
http://localhost:8080/static/home.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Таким образом, модель будет выделять объекты на изображениях, которые будут загружены в приложение.

Wasm – это возможность создавать более эффективные, мощные, быстрые приложения. Ежедневно многие участники делают действительно хороший прогресс. Давайте создавать более интересные и крутые приложения, используя WebAssembly, чтобы сделать это более увлекательным!

Эта ML-модель была создана командой Second State. Ознакомьтесь с их крутыми разработками на github.

Ссылки:

  1. https://wasmedge.org/book/en/start/install.html
  2. https://docs.dapr.io/
  3. https://github.com/second-state/dapr-wasm
  4. https://www.infoq.com/articles/webassembly-dapr-wasmedge/
  5. https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04

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

Оцените статью
Procodings.ru
Добавить комментарий