DL Streamer Pipeline Framework 및 OpenVINO™를 사용하는 Intel Core Ultra Series 3 기반 Ultralytics YOLO26#
이 종합 가이드에서는 DL Streamer Pipeline Framework 및 OpenVINO™ toolkit을 사용하여 Intel Core Ultra Series 3 플랫폼에 Ultralytics YOLO26를 배포하는 방법을 자세히 안내합니다. 여기에서는 OpenVINO™를 사용하여 Intel CPU, 통합 및 외장 GPU, NPU에서 추론 성능을 극대화합니다.
목차: Intel DL Streamer란? • 사전 요구 사항 • YOLO26 모델 준비 • YOLO26으로 추론 실행 • 멀티 스트림 설정 • FAQ
Intel DL Streamer란?#
Deep Learning Streamer (DL Streamer) Pipeline Framework은 GStreamer 멀티미디어 프레임워크를 기반으로 하는 오픈 소스 스트리밍 미디어 분석 프레임워크로, Cloud 또는 Edge에서 복잡한 미디어 분석 파이프라인을 생성하도록 설계되었습니다.
DL Streamer는 오디오 및 비디오 스트림 분석을 통해 객체, 이벤트, 사람을 감지, 분류, 추적, 식별 및 카운트하는 기능을 제공합니다. 이 도구는 인텔 하드웨어에 최적화되어 있으며 다양한 백엔드 라이브러리를 기반으로 구축된 GStreamer 플러그인 간의 상호운용성을 지원합니다:
- 추론: Intel CPU, GPU 및 NPU에 최적화된 OpenVINO™ 추론 엔진
- 비디오 인코딩/디코딩: VA-API를 통한 GPU 가속
- 이미지 처리: VA-API를 통한 GPU 가속
- 메타데이터: 구조화된 추론 결과를 위한 GStreamer Analytics
- 에코시스템: 미디어 I/O, muxing/demuxing, 코덱 지원 등을 위한 수백 개의 GStreamer 플러그인
DL Streamer는 OpenVINO™ 형식의 전체 Ultralytics YOLO 제품군(YOLOv5부터 YOLO26까지)을 비롯한 다양한 AI 모델을 지원합니다.
DL Streamer는 시스템 요구 사항 — 오픈 에지 플랫폼 문서에서 제공하는 시스템을 사용하여 정기적으로 검증되고 있습니다.
필수 조건#
시작하기 전에 Intel 시스템에 다음 항목이 설치되고 구성되어 있는지 확인합니다:
YOLO26 모델 준비#
DL Streamer는 OpenVINO™ IR 형식의 모델을 사용합니다. Ultralytics YOLO26 모델은 Ultralytics exporter를 사용하여 PyTorch에서 OpenVINO™ IR로 내보냅니다. DL Streamer는 Intel 하드웨어를 위한 최적화된 내보내기 및 추론 기능을 제공하는 공식 Ultralytics OpenVINO™ integration을 활용합니다.
~/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- Ultralytics에서 PyTorch YOLO26s 모델을 다운로드하고 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 추론 감지 파이프라인을 실행하기 전에 인터랙티브 모드로 DL Streamer Docker 이미지를 실행하십시오. YOLO26 모델 준비 단계를 따랐는지 확인하고 Pexels 데이터베이스에서 다음 비디오 파일을 다운로드하십시오.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4DL Streamer docker 이미지를 대화형 모드로 실행합니다.
이 명령은 통합 GPU(iGPU)와 온보드 NPU가 장착된 Intel Core Ultra Series 3 프로세서 시스템을 대상으로 합니다.
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:latestINT8 정밀도(최대 성능)#
INT8 양자화는 모델 가중치를 8비트 정수로 줄여 가장 높은 처리량을 제공합니다. Ultralytics exporter가 보정을 자동으로 처리합니다.
GPU에서 INT8로 YOLO26s 실행#
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
GPU에서 INT8로 YOLO26s를 실행하고 출력을 비디오 파일(~/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.mp4NPU에서 INT8로 YOLO26s 실행#
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는 여러 비디오 소스가 동시에 디코딩되고 추론되는 다중 스트림 처리를 지원합니다. GStreamer의 vacompositor 요소를 사용하여 여러 파이프라인을 병렬로 실행하고 여러 스트림을 결합할 수 있습니다.
여러 파이프라인(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 Repository
- DL Streamer Documentation
- DL Streamer Elements
- OpenVINO™ Toolkit
- Ultralytics YOLO26
- GStreamer Framework
- Supported Models Table
FAQ#
Installation Guide에 따라 DL Streamer를 설치하고,
source /opt/intel/dlstreamer/scripts/setup_dls_env.sh로 환경을 설정한 후, Ultralytics 및 OpenVINO™를 설치하고download_ultralytics_models.sh를 사용하여 모델을 다운로드합니다. 그런 다음 YOLO26 추론 파이프라인을 실행할 수 있는 즉시 사용 가능한 스크립트를 제공하는 DL Streamer 샘플 애플리케이션yolo_detect.sh으로 추론을 실행합니다. 실행 방법은 간단한 튜토리얼을 확인합니다.OpenVINO™는 그래프 최적화, 레이어 융합, 하드웨어별 커널 튜닝 등의 기술을 통해 인텔 하드웨어에 맞게 YOLO26 모델을 구체적으로 최적화합니다. DL Streamer의 VA-API 가속 디코딩 및 제로 카피
va-surface-sharing전처리가 결합되어, 전체 비디오 분석 파이프라인은 최적화되지 않은 프레임워크보다 훨씬 더 높은 처리량을 달성합니다.그렇습니다. DL Streamer는 여러 인텔 플랫폼 세대에 걸쳐 인텔 CPU(Core, Core Ultra, Xeon), 내장 GPU(Iris Xe, Arc), 외장 GPU(Arc A-Series, B-Series), 그리고 NPU(AI Boost)에서의 추론을 지원합니다.
gvadetect의device속성을CPU,GPU또는NPU로 변경하기만 하면 됩니다.- FP16은 GPU 추론의 기본값으로 권장됩니다. FP32에 가까운 정확도를 제공하면서 처리량을 약 2배 향상합니다.
- INT8은 약간의 정확도 저하를 감수하는 대신 가장 높은 성능(FP32 대비 2~3배)을 제공하므로 최대 처리량이 우선인 경우에 적합합니다. INT8 모델은 Ultralytics 내보내기 중에 자동으로 보정됩니다.
DL Streamer는 모든 YOLO26 태스크 변형을 지원합니다:
- 감지(Detection): yolo26n, yolo26s, yolo26m, yolo26l, yolo26x
- 지향성 바운딩 박스(Oriented Bounding Box, OBB): yolo26s-obb (및 모든 크기 변형)
- 인스턴스 세분화(Instance Segmentation): yolo26s-seg (및 모든 크기 변형)
- 포즈 추정(Pose Estimation): yolo26s-pose (및 모든 크기 변형)
- 분류(Classification): yolo26s-cls (감지 기능이 포함된 복합 파이프라인)
json출력 옵션을 사용하여 감지 결과를 JSON-lines 형식으로 파일에 기록합니다:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8또는 사용자 지정 파이프라인에서
gvametapublishelement를 사용하여 메타데이터를 파일, MQTT 또는 Kafka에 게시합니다.