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



Введение

Я хочу написать статью, представляющую модель YOLOv7, когда она будет выпущена на Github. После того, как я прочитал статью и понял модель, я закончил содержание. В этой статье я расскажу вам о методе прогнозирования модели YOLOv7 и развертывании модели YOLOv7 путем развертывания PrimeHub. Надеюсь, вы сможете понять модель YOLOv7, когда прочитаете эту статью.

В 2020 году исследователь Ван Чиен Яо из Academia Sinica выпустил модель YOLOv4. Это повышает точность прогнозирования результатов изображения. В сентябре 2022 года они выпустили новую базовую модель YOLO, модель YOLOv7. Это уменьшает 40% переменных и 50% вычислительной мощности в модели SOTA обнаружения объектов в реальном времени. Его можно улучшить по структуре, скорости вычислений и точности. Вы можете проверить документ, чтобы узнать подробности модели YOLOv7.



Автор также предоставляет информацию о Github, которая содержит:

  1. Как использовать командную строку для обучения и прогнозирования модели.
  2. Используйте среду docker и Nvidia-docker для разработки модели.
  3. Предоставьте предварительно обученную модель YOLOv7 и выполните точную настройку модели.
  4. Предоставьте сторонний инструмент. Например, Colab, HuggingFace и State of the art.

Мы можем увидеть подробную информацию в файле README.md.



Разверните модель YOLOv7

Если мы хотим использовать простой код Python для прогнозирования модели YOLOv7, нам нужно понять функцию и код модели. Когда я нашел некоторую информацию на веб-сайте Kaggle, я обнаружил код обмена, который может предсказать модель YOLOv7, когда блокнот импортирует функцию YOLOv7.



from models.experimental import attempt_load
from utils.general import non_max_suppression

Теперь мы можем использовать развертывание PrimeHub для развертывания модели YOLOv7 на платформе. Развертывания Primehub основаны на основном сервере Seldon. Мы можем использовать простой код Python и базовую среду Seldon, чтобы использовать нашу модель в качестве службы RestAPI. Это удобный инструмент для развертывания модели машинного обучения.



По сравнению с традиционным сервисом Restful API модель как сервис имеет некоторые особенности:

  1. Службе вывода модели требуется устройство GPU для более быстрого прогнозирования результата. Чем больше модель, тем больше вычислительная мощность.
  2. Службе логического вывода машинного обучения требуется некоторая логика предварительной и постобработки. В некоторых повторяющихся сценариях это может быть связано с несколькими моделями.

Поэтому нам нужен лучший инструмент, чтобы сделать это. PrimeHub интегрирует Seldon Core для получения преимуществ.

После того, как мы поняли, зачем нам нужно использовать ядро ​​Seldon, мы пишем класс-оболочку сервиса модели. Следующий код нацелен на логику ввода и вывода YOLOv7. Вы можете изменить его в соответствии с вашими требованиями.

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

$ make build
$ make push

Теперь мы можем развернуть модель в основном сервисе Seldon. В PrimeHub мы можем использовать интерфейс веб-интерфейса для развертывания модели. Подробная информация представлена ​​ниже. Имейте в виду, что URI модели должен указывать правильный путь к файлу. В своей витрине я поместил предварительно обученную модель, которую можно получить на веб-сайте Github, в общую папку файлов PrimeHub.

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

$ curl -F '[email protected]' <model-endpoint-url>
{"data":{"names":["t:0","t:1","t:2","t:3","t:4","t:5"],"tensor":{"shape":[3,6],"values":[123.073974609375,199.46484375,1123.720458984375,718.7385864257812,0.9323439598083496,0.0,748.6097412109375,42.15193176269531,1160.1611328125,717.9664916992188,0.8973875641822815,0.0,432.42529296875,437.1168212890625,519.785888671875,719.8562622070312,0.626276433467865,27.0]}},"meta":{"requestPath":{"model":"Infuseaidev/yolov7-prepackaged:v0.1.0-dev"}}}

Демонстрация результата в веб-интерфейсе службы Streamlit

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

В следующей таблице представлена ​​конфигурация Streamlit в приложениях PrimeHub. Мы также можем настроить его на странице веб-интерфейса PrimeHub.

Заключение

В этой статье я предоставляю некоторые ссылки и контент, чтобы понять метод прогнозирования YOLOv7. Кроме того, я использую развертывания PrimeHub для развертывания модели. Пользователи могут использовать этот метод для создания среды обслуживания машинного обучения и создания новой ценности для бизнеса. Добро пожаловать, чтобы дать мне ваше предложение и мысли. Спасибо!

я Саймон

Привет, я Саймон, инженер по работе с клиентами в InfuseAI. Если вы считаете, что статья полезна для вас, пожалуйста, дайте мне аплодисменты. Добро пожаловать, чтобы внести некоторые предложения и обсудить со мной в InfuseAI Discord.
Linkedin: https://www.linkedin.com/in/simonliuyuwei/

Мы InfuseAI

InfuseAI предоставляет инструменты MLOps:

  1. PrimeHub — наша сквозная платформа MLOps — это весь жизненный цикл машинного обучения на одной платформе.
  2. Piperider — инструментарий качества данных для специалистов по данным.

Присоединяйтесь к нашему сообществу машинного обучения, чтобы узнать больше: InfuseAI Discord