Ultralytics YOLO27:
Интеграции

Разверни Ultralytics YOLOv5 с DeepSparse от Neural Magic для производительности уровня GPU на CPU

Расширь возможности обучения и развертывания моделей Ultralytics YOLOv5 с помощью DeepSparse от Neural Magic, получив производительность уровня GPU на CPU. Добейся более быстрых и масштабируемых развертываний YOLOv5.

NUNuvola Ladi6 min read
Развертывание Ultralytics YOLOv5 с DeepSparse от Neural Magic на CPU

Хочешь ускорить обучение и развёртывание своих моделей YOLOv5? Мы поможем! Знакомься с нашим новым партнёром — Neural Magic. Neural Magic создаёт программные инструменты, ориентированные на максимальную производительность моделей и простоту рабочих процессов, поэтому вполне естественно, что мы объединились, чтобы сделать процесс развёртывания YOLOv5 ещё лучше.

DeepSparse — это среда выполнения инференса на CPU от Neural Magic, использующая разреженность и арифметику низкой точности в нейронных сетях для обеспечения исключительной производительности на стандартном оборудовании. Например, по сравнению с базовым показателем ONNX Runtime DeepSparse обеспечивает ускорение YOLOv5s в 5,8 раза на том же компьютере!

Сравнение пропускной способности Ultralytics YOLOv5 с DeepSparse

Впервые твои рабочие нагрузки глубокого обучения смогут удовлетворить требованиям производительности в продакшене без сложности и затрат, связанных с аппаратными ускорителями. Проще говоря, DeepSparse обеспечивает производительность GPU и простоту программного обеспечения:

  1. Гибкое развёртывание: стабильно работай в облаке, дата-центре и на периферийных устройствах с оборудованием любого поставщика
  2. Неограниченная масштабируемость: масштабируйся горизонтально с помощью стандартного Kubernetes, вертикально — до сотен ядер, или полностью абстрагируй инфраструктуру с помощью бессерверной архитектуры
  3. Простая интеграция: используй понятные API для интеграции модели в приложение и мониторинга её работы в продакшене

Достигни производительности уровня GPU на стандартных CPU#

DeepSparse использует разреженность модели для ускорения работы.

Разреживание с помощью прореживания и квантования позволяет на порядок уменьшить размер сети и вычислительные ресурсы, необходимые для её выполнения, сохраняя высокую точность. DeepSparse учитывает разреженность, пропуская операции умножения и сложения с нулевыми значениями и сокращая объём вычислений на прямом проходе. Поскольку разреженные вычисления ограничены пропускной способностью памяти, DeepSparse выполняет сеть по глубине, разбивая задачу на столбцы Tensor Columns — вертикальные полосы вычислений, помещающиеся в кэш.

Сеть DeepSparse и Ultralytics YOLOv5

Разреженные сети со сжатыми вычислениями, выполняемыми по глубине в кэше, позволяют DeepSparse обеспечивать производительность уровня GPU на CPU!

Создай разреженную версию Ultralytics YOLOv5, обученную на пользовательских данных#

Репозиторий моделей с открытым исходным кодом Neural Magic, SparseZoo, содержит предварительно разреженные контрольные точки каждой модели YOLOv5. С помощью SparseML, интегрированного с Ultralytics, ты можешь дообучить разреженную контрольную точку на своих данных одной командой CLI.

Разверни Ultralytics YOLOv5 с помощью DeepSparse#

Установи DeepSparse#

Выполни следующую команду, чтобы установить DeepSparse. Рекомендуем использовать виртуальное окружение с Python.

pip install deepsparse[server,yolo,onnxruntime]

Получи файл ONNX#

DeepSparse принимает модель в формате ONNX, переданную одним из следующих способов:

  • Локальный путь к модели ONNX
  • Заглушка SparseZoo, идентифицирующая модель в SparseZoo

Мы сравним стандартную плотную YOLOv5s с прореженной и квантованной YOLOv5s, идентифицируемой следующими заглушками SparseZoo:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

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

DeepSparse предоставляет удобные API для интеграции модели в приложение.

Чтобы попробовать приведённые ниже примеры развёртывания, скачай изображение для примера и сохрани его под именем basilica.jpg с помощью следующей команды:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

API Python#

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

Создай Pipeline и запусти инференс:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

Если ты работаешь в облаке, можешь получить ошибку о том, что open-cv не может найти libGL.so.1. Выполнение следующей команды в Ubuntu установит его:

apt-get install libgl1-mesa-glx

HTTP-сервер#

DeepSparse Server работает поверх популярного веб-фреймворка FastAPI и веб-сервера Uvicorn. С помощью всего одной команды CLI ты можешь легко настроить конечную точку сервиса модели в DeepSparse. Server поддерживает любой Pipeline из DeepSparse, включая обнаружение объектов с Ultralytics YOLOv5, позволяя отправлять на конечную точку исходные изображения и получать ограничивающие рамки.

Запусти Server с прореженной и квантованной YOLOv5s:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Пример запроса с использованием пакета requests для Python:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

CLI аннотаций#

Также можно использовать команду annotate, чтобы движок сохранил аннотированную фотографию на диске. Попробуй --source 0, чтобы аннотировать видео с веб-камеры в реальном времени!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

Выполнение приведённой выше команды создаст папку annotation-results и сохранит внутри неё аннотированное изображение.

Аннотированная базилика с Ultralytics YOLOv5

Сравнение производительности#

С помощью скрипта бенчмаркинга DeepSparse мы сравним пропускную способность DeepSparse и ONNX Runtime на YOLOv5s.

Бенчмарки запускались на экземпляре AWS c6i.8xlarge (16 ядер).

Сравнение производительности при размере пакета 32#

Базовый показатель ONNX Runtime#

При размере пакета 32 ONNX Runtime достигает скорости 42 изображения/с со стандартной плотной YOLOv5s:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Размер пакета: 32 Сценарий: sync Пропускная способность (элементов/с): 41.9025

Производительность плотной модели в DeepSparse#

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

При размере пакета 32 DeepSparse достигает скорости 70 изображений/с со стандартной плотной YOLOv5s — улучшение производительности в 1,7 раза по сравнению с ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Размер пакета: 32 Сценарий: sync Пропускная способность (элементов/с): 69.5546

Производительность разреженной модели в DeepSparse#

При применении разреженности к модели прирост производительности DeepSparse по сравнению с ONNX Runtime становится ещё выше.

При размере пакета 32 DeepSparse достигает скорости 241 изображение/с с прореженной и квантованной YOLOv5s — улучшение производительности в 5,8 раза по сравнению с ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Размер пакета: 32 Сценарий: sync Пропускная способность (элементов/с): 241.2452

Сравнение производительности при размере пакета 1#

DeepSparse также способен обеспечить ускорение по сравнению с ONNX Runtime в чувствительном к задержке сценарии с размером пакета 1.

Базовый показатель ONNX Runtime#

При размере пакета 1 ONNX Runtime достигает скорости 48 изображений/с со стандартной плотной YOLOv5s.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Размер пакета: 1 Сценарий: sync Пропускная способность (элементов/с): 48.0921

Производительность разреженной модели в DeepSparse#

При применении разреженности к модели прирост производительности DeepSparse по сравнению с ONNX Runtime становится ещё выше.

При размере пакета 1 DeepSparse достигает скорости 135 изображений/с с прореженной и квантованной YOLOv5s — улучшение производительности в 2,8 раза по сравнению с ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Размер пакета: 1 Сценарий: sync Пропускная способность (элементов/с): 134.9468

Поскольку экземпляры c6i.8xlarge поддерживают инструкции VNNI, пропускную способность DeepSparse можно увеличить ещё больше, если прореживать веса блоками по 4.

При размере пакета 1 DeepSparse достигает скорости 180 элементов/с с прореженной и квантованной YOLOv5s с блоками по 4 — прирост производительности в 3,7 раза по сравнению с ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Исходный путь к модели: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Размер пакета: 1 Сценарий: sync Пропускная способность (элементов/с): 179.7375

И готово! Теперь ты можешь оптимизировать развёртывание YOLOv5 с помощью DeepSparse.

Начни работу с Ultralytics YOLOv5 и DeepSparse#

Чтобы связаться с нами, присоединяйся к нашему сообществу и оставляй свои вопросы и комментарии. Ознакомься с репозиторием Ultralytics YOLOv5 и полной документацией Neural Magic по развёртыванию YOLOv5.

В Ultralytics мы заключаем коммерческие партнёрства с другими стартапами, чтобы помогать финансировать исследования и разработку наших отличных инструментов с открытым исходным кодом, таких как YOLOv5, и сохранять их бесплатными для всех. Эта статья может содержать партнёрские ссылки на таких партнёров.

Explore solutions

Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

Превращай кадры с дронов и аэрофотоснимки в аналитику в реальном времени для сельского хозяйства, аквакультуры, экологического мониторинга, охраны природы и геопространственного анализа с помощью Ultralytics YOLO.
Узнать больше
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Внедри компьютерное зрение в воздушный мониторинг с моделями Ultralytics YOLO. Обеспечь дроны, аэрокосмические рабочие процессы, задачи охраны природы и геопространственные отрасли решениями на базе компьютерного зрения.
Узнать больше

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Оснащай более умные машины моделями Ultralytics YOLO. Vision AI в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше
Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

Превращай кадры с дронов и аэрофотоснимки в аналитику в реальном времени для сельского хозяйства, аквакультуры, экологического мониторинга, охраны природы и геопространственного анализа с помощью Ultralytics YOLO.
Узнать больше
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Внедри компьютерное зрение в воздушный мониторинг с моделями Ultralytics YOLO. Обеспечь дроны, аэрокосмические рабочие процессы, задачи охраны природы и геопространственные отрасли решениями на базе компьютерного зрения.
Узнать больше

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Оснащай более умные машины моделями Ultralytics YOLO. Vision AI в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше
Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

Превращай кадры с дронов и аэрофотоснимки в аналитику в реальном времени для сельского хозяйства, аквакультуры, экологического мониторинга, охраны природы и геопространственного анализа с помощью Ultralytics YOLO.
Узнать больше
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Внедри компьютерное зрение в воздушный мониторинг с моделями Ultralytics YOLO. Обеспечь дроны, аэрокосмические рабочие процессы, задачи охраны природы и геопространственные отрасли решениями на базе компьютерного зрения.
Узнать больше

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Оснащай более умные машины моделями Ultralytics YOLO. Vision AI в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше

Давай вместе создавать будущее AI!

Начни свой путь в будущее машинного обучения