В этом руководстве подробно описано, как создавать API-интерфейсы для обнаружения и распознавания любого настраиваемого объекта с помощью DeepStack AI Server.

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

Для большинства разработчиков, исследователей и ИТ-инженеров основными источниками интеграции современного компьютерного зрения являются:

  • Модели DNN
  • API-интерфейсы Vision из облачных сервисов

Большинство API-интерфейсов компьютерного зрения и моделей машинного обучения построены для распознавания и обнаружения обычных объектов, таких как люди, электроника, животные и т. Д. Хотя этого достаточно для многих приложений компьютерного зрения, большинство визуальных задач включают обнаружение и распознавание пользовательских объектов.

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

В этой статье мы покажем вам, как создать API компьютерного зрения для обнаружения любого объекта или набора объектов для ваших исследовательских, промышленных и автоматических нужд с помощью DeepStack.

Что такое DeepStack?

DeepStack - это сервер API искусственного интеллекта с открытым исходным кодом, который дает возможность каждому разработчику в мире легко создавать современные системы искусственного интеллекта как локально, так и в облаке. DeepStack не зависит от устройства и языка программирования. Вы можете запустить его в Windows, Mac OS, Linux, Raspberry PI и NVIDIA Jetson устройства. Следующие функции встроены в DeepStack.

  • API обнаружения, сопоставления и распознавания лиц
  • API обнаружения и распознавания общих объектов
  • API распознавания сцен
  • API обнаружения пользовательских объектов
  • Безопасность API


Для целей этого руководства мы будем использовать пользовательскую модель DeepStack, которая была обучена обнаруживать и распознавать все 352 стандартных логотипа в наборе данных OpenLogo. Следуйте инструкциям, описанным ниже:

  • Подготовьте свой набор данных
  • Обучите свою индивидуальную модель DeepStack
  • Разверните модель для создания вашего API

Шаг 1. Подготовьте набор данных

Первый шаг - собрать как минимум 350 изображений объекта, который вы хотите обнаружить (300 для поезда и 50 для проверки / тестирования). Вы также можете использовать существующий набор данных общедоступных изображений, если в нем есть объект, который вы собираетесь обнаружить и распознать. Для этого руководства мы собрали и подготовили набор данных OpenLogo, который вы можете использовать. Вы можете скачать этот набор данных по ссылке ниже

Https://deepquest.sfo2.digitaloceanspaces.com/deepstack/zeus/logo_dataset.zip

Чтобы подготовить собственный набор данных, используйте руководство по ссылке на документацию DeepStack, приведенной ниже.



Шаг 2. Обучите собственную модель DeepStack

Следующим шагом является обучение модели DeepStack на вашем пользовательском наборе данных. DeepStack в настоящее время использует архитектуру глубокой нейронной сети YOLOv5 для развертывания пользовательских моделей. Для целей этого руководства мы предоставили предварительно обученную модель DeepStack для обнаружения всех 352 общих логотипов в наборе данных Open Logo. Вы можете скачать файл модели openlogo.pt по ссылке ниже.



Для обучения вашей пользовательской модели используйте руководство по ссылке на документацию DeepStack ниже. Это руководство предоставляет

  • сквозной код и руководство по обучению и созданию вашей пользовательской модели
  • ссылка на бесплатный графический процессор Nvidia в облаке для обучения вашей модели


Шаг 3. Разверните модель для создания вашего API.

Получив файл модели (файл .pt), выполните следующие действия, чтобы создать API обнаружения для обнаружения ваших настраиваемых объектов. В случае с этим руководством мы создадим API для обнаружения логотипов. Следуйте инструкциям ниже:

  • Установите DeepStack на свой компьютер: установите DeepStack AI Server, следуя инструкциям в документации DeepStack на странице https://docs.deepstack.cc
  • Сохранение модели в папке. Создайте папку на своем компьютере и поместите в нее файл модели .pt (например, openlogo.pt).
  • Запустите DeepStack для создания API. Чтобы запустить DeepStack AI Server с пользовательской моделью, запустите команду, которая применяется к вашему компьютеру, как описано ниже, как подробно описано в этой ссылке документации DeepStack здесь
    Например,
    для Windows 10
deepstack — MODELSTORE-DETECTION 'C\Users\MyUser\Documents\DeepStack-Models' — PORT 80

Для Docker в Linux

sudo docker run -v /home/MyUser/Documents/DeepStack-Models:/modelstore/detection -p 80:5000 deepquestai/deepstack
  • После того, как вы запустите команду запуска DeepStack, вы увидите журнал терминала / консоли, подобный приведенному ниже.

  • Теперь ваш пользовательский API обнаружения логотипов активен через конечную точку enpoint http://localhost:80/v1/vision/custom/openlogo или http://your_machine_ip:80/v1/vision/custom/openlogo.
  • Теперь вы можете отправить POST запрос на конечную точку из любого приложения, использующего любой язык программирования, с параметром imageset для ваших данных / файла изображения. Для этой статьи мы предоставили образец изображения и кода Python, который использует DeepStack Python SDK для обнаружения логотипа на изображении.

  • Установите DeepStack Python SDK с помощью команды ниже.
pip install deepstack-sdk --upgrade
  • Затем запустите код ниже
  • После того, как вы запустите код и отправите запрос на конечные точки openlogo, вы получите следующие результаты от DeepStack.

Новое изображение с именем fedex_new.jpg будет сохранено с обнаруженным логотипом, отображаемым, как показано ниже.

  • DeepStack Python SDK упрощает обнаружение объектов на изображениях и видео с помощью DeepStack из кода и приложений Python. Посетите репозиторий DeepStack Python SDK, ссылка на который приведена ниже, для получения дополнительных примеров кода.


  • Теперь, когда вы создали свой собственный AI API, вы делаете столько запросов API и обрабатываете столько изображений, сколько вам нужно для вашего варианта использования и в ваших приложениях.
  • Чтобы просмотреть список всех 352 логотипов, которые может обнаружить пользовательская модель, перейдите по ссылке ниже
    https://github.com/OlafenwaMoses/DeepStack_OpenLogo/blob/main/openlogo_classes.txt

Чтобы узнать больше о DeepStack AI Server и его API, перейдите по ссылкам ниже.

Репозиторий DeepStack GitHub



Документация DeepStack



Центр разработки DeepStack



Форум DeepStack