YOLO Vision 2026:

Ultralytics YOLO26 на Intel Core Ultra Series 3 с использованием DL Streamer Pipeline Framework и OpenVINO™#

Это подробное руководство содержит пошаговые инструкции по развертыванию Ultralytics YOLO26 на платформах Intel Core Ultra Series 3 с использованием DL Streamer Pipeline Framework и OpenVINO™ toolkit. Здесь мы используем OpenVINO™, чтобы максимально повысить производительность инференса на CPU, встроенных и дискретных GPU, а также NPU Intel.

Intel DL Streamer

Содержание: Что такое Intel DL Streamer?Предварительные требованияПодготовка модели YOLO26Запуск инференса с YOLO26Настройка нескольких потоковFAQ

Что такое Intel DL Streamer?#

Платформа конвейеров потоковой передачи глубокого обучения (DL Streamer) — это фреймворк с открытым исходным кодом для потоковой аналитики мультимедиа на основе мультимедийного фреймворка GStreamer, предназначенный для создания сложных конвейеров мультимедийной аналитики в облаке или на периферии.

DL Streamer позволяет анализировать аудио- и видеопотоки для обнаружения, классификации, трекинга, идентификации и подсчета объектов, событий и людей. Он оптимизирован под оборудование Intel и обеспечивает совместимость между плагинами GStreamer, созданными на основе различных бэкенд-библиотек:

  • Инференс: OpenVINO™ — механизм инференса, оптимизированный для CPU, GPU и NPU Intel
  • Кодирование и декодирование видео: аппаратное ускорение GPU через VA-API
  • Обработка изображений: аппаратное ускорение GPU через VA-API
  • Метаданные: GStreamer Analytics для структурированных результатов инференса
  • Экосистема: сотни плагинов GStreamer для мультимедийного ввода-вывода, мультиплексирования и демультиплексирования, поддержки кодеков и многого другого

DL Streamer поддерживает множество AI-моделей, включая все семейство Ultralytics YOLO (от YOLOv5 до YOLO26) в формате OpenVINO™.

DL Streamer регулярно проходит валидацию на системах, представленных в документе System Requirements — Open Edge Platform Documentation

Предварительные требования#

Перед началом убедись, что в твоей системе Intel установлены и настроены следующие компоненты:

Подготовка модели YOLO26#

DL Streamer использует модели в формате OpenVINO™ IR. Модели Ultralytics YOLO26 экспортируются из PyTorch в OpenVINO™ IR с помощью экспортера Ultralytics. DL Streamer использует официальную интеграцию Ultralytics с OpenVINO™, которая обеспечивает оптимизированные возможности экспорта и инференса для оборудования Intel.

  1. Создай папку ~/intel/dlstreamer_demo и установи OpenVINO™ и Ultralytics в виртуальное окружение
mkdir -p ~/intel/dlstreamer_demo && cd ~/intel/dlstreamer_demo
python3 -m venv .dls-venv && source .dls-venv/bin/activate
pip install openvino==2026.2.0 ultralytics==8.4.92
  1. Скачай модель PyTorch YOLO26s от Ultralytics, конвертируй её в формат OpenVINO™ IR и сгенерируй вариант с точностью INT8.
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yaml

Модель экспортируется в папку ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model.

Точность модели#

DL Streamer поддерживает модели с точностью FP32, FP16 и INT8. Для каждой из них требуется отдельный этап экспорта:

# FP32 (default precision, highest accuracy)
yolo export model=yolo26s.pt format=openvino dynamic=True

# FP16 (recommended for GPU inference, good accuracy/performance balance)
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=16

# INT8 (maximum performance, requires calibration dataset)
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yaml

В приведенных ниже примерах используется модель INT8, экспортированная на этапе подготовки. Чтобы использовать модели FP32 или FP16, замени путь к модели соответствующим путем (например, yolo26s_openvino_model/yolo26s.xml).

Запуск инференса с YOLO26#

Перед запуском конвейера инференса и детектирования DL Streamer с моделью YOLO26 запусти образ Docker DL Streamer в интерактивном режиме. Убедись, что ты выполнил шаг YOLO26 Model Preparation и скачал следующий видеофайл из базы данных Pexels.

curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4

Запусти Docker-образ DL Streamer в интерактивном режиме.

Примечание

Эта команда предназначена для систем с процессорами Intel Core Ultra Series 3, оснащенными встроенным GPU (iGPU) и NPU.

docker run -it --rm \
  -v ~/intel/dlstreamer_demo:/home/dlstreamer/demo \
  -v "$HOME/.Xauthority:/root/.Xauthority:rw" \
  -e DISPLAY=$DISPLAY \
  -e XDG_RUNTIME_DIR=/tmp \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --device /dev/dri \
  --group-add $(stat -c "%g" /dev/dri/render*) \
  --device /dev/accel \
  --group-add $(stat -c "%g" /dev/accel/accel*) \
  -e ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so \
  intel/dlstreamer:latest

Точность INT8 (максимальная производительность)#

Квантизация INT8 обеспечивает максимальную пропускную способность, уменьшая веса модели до 8-битных целых чисел. Экспортер Ultralytics автоматически выполняет калибровку.

Запуск YOLO26s с INT8 на GPU#

gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! autovideosink sync=false
Intel DL Streamer GPU

Запусти YOLO26s с INT8 на GPU и сохрани результат в видеофайл (~/intel/dlstreamer_demo/yolo_video1_yolo26s_INT8_GPU.mp4)#

gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! vah264enc ! h264parse ! mp4mux ! filesink location=/home/dlstreamer/demo/yolo_video1_yolo26s_INT8_GPU.mp4

Запуск YOLO26s с INT8 на NPU#

gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=NPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! autovideosink sync=false
Intel DL Streamer NPU

Настройка нескольких потоков#

DL Streamer поддерживает многопоточную обработку, при которой несколько видеоисточников декодируются и обрабатываются методом инференса одновременно. Ты можешь запустить несколько конвейеров параллельно, используя элемент vacompositor в GStreamer для объединения нескольких потоков.

Параллельный запуск нескольких конвейеров (4 потока) (GPU)#

gst-launch-1.0 vacompositor name=comp sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=660 sink_1::ypos=0 sink_2::xpos=0 sink_2::ypos=380 sink_3::xpos=660 sink_3::ypos=380 ! autovideosink sync=false \
  filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_0 \
  filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_1 \
  filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_2 \
  filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_3
Intel DL Streamer Multistream GPU

Дополнительные ресурсы#

Часто задаваемые вопросы#

  • Установи DL Streamer согласно руководству по установке, настрой окружение с помощью source /opt/intel/dlstreamer/scripts/setup_dls_env.sh, установи Ultralytics и OpenVINO™ и скачай модели с помощью download_ultralytics_models.sh. Затем запусти инференс с помощью примера приложения DL Streamer yolo_detect.sh, в котором есть готовый скрипт для запуска конвейеров инференса YOLO26. Ознакомься с кратким руководством, чтобы узнать, как его запустить.

  • OpenVINO™ оптимизирует модель YOLO26 специально для оборудования Intel с помощью таких методов, как оптимизация графа, слияние слоев и настройка кернелов под конкретное железо. В сочетании с ускоренным через VA-API декодированием DL Streamer и препроцессингом с нулевым копированием (zero-copy) va-surface-sharing полный конвейер видеоаналитики обеспечивает существенно более высокую пропускную способность по сравнению с неоптимизированными фреймворками.

  • Да. DL Streamer поддерживает инференс на процессорах Intel (Core, Core Ultra, Xeon), встроенных графических процессорах (Iris Xe, Arc), дискретных графических процессорах (Arc серий A и B) и нейропроцессорах (AI Boost) на платформах Intel разных поколений. Просто измени свойство device элемента gvadetect на CPU, GPU или NPU.

    • FP16 рекомендуется использовать по умолчанию для инференса на GPU — он обеспечивает точность, близкую к FP32, и примерно двукратное повышение пропускной способности.
    • INT8 обеспечивает максимальную производительность (в 2–3 раза выше FP32) при небольшом снижении точности и идеально подходит, когда приоритетом является максимальная пропускная способность. Калибровка моделей INT8 автоматически выполняется во время экспорта Ultralytics.
  • DL Streamer поддерживает все варианты задач YOLO26:

    • Детектирование: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x
    • Ориентированный ограничивающий прямоугольник (OBB): yolo26s-obb (и все варианты размеров)
    • Сегментация экземпляров: yolo26s-seg (и все варианты размеров)
    • Оценка позы: yolo26s-pose (и все варианты размеров)
    • Классификация: yolo26s-cls (составной конвейер с детектированием)
  • Используй опцию вывода json, чтобы записать результаты обнаружения в формате JSON Lines в файл:

    ./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8

    В качестве альтернативы используй элемент gvametapublish в пользовательских конвейерах, чтобы публиковать метаданные в файлы, MQTT или Kafka.

Комментарии