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? • Предварительные требования • Подготовка модели 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 установлены и настроены следующие компоненты:
-
Ubuntu 24.04 с установленными драйверами GPU/NPU Intel (см. руководство по установке)
-
docker engine (см. руководство по установке)
Подготовка модели YOLO26#
DL Streamer использует модели в формате OpenVINO™ IR. Модели Ultralytics YOLO26 экспортируются из PyTorch в OpenVINO™ IR с помощью экспортера Ultralytics. DL Streamer использует официальную интеграцию Ultralytics с OpenVINO™, которая обеспечивает оптимизированные возможности экспорта и инференса для оборудования Intel.
- Создай папку
~/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- Скачай модель 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
Запусти 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
Настройка нескольких потоков#
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
Дополнительные ресурсы#
- Репозиторий DL Streamer на GitHub
- Документация DL Streamer
- Элементы DL Streamer
- OpenVINO™ Toolkit
- Ultralytics YOLO26
- Фреймворк GStreamer
- Таблица поддерживаемых моделей
Часто задаваемые вопросы#
Установи DL Streamer согласно руководству по установке, настрой окружение с помощью
source /opt/intel/dlstreamer/scripts/setup_dls_env.sh, установи Ultralytics и OpenVINO™ и скачай модели с помощьюdownload_ultralytics_models.sh. Затем запусти инференс с помощью примера приложения DL Streameryolo_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.