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를 사용하면 오디오 및 비디오 스트림을 분석하여 객체, 이벤트 및 사람을 감지, 분류, 추적, 식별하고 수를 셀 수 있습니다. Intel 하드웨어에 최적화되어 있으며, 다양한 백엔드 라이브러리를 기반으로 구축된 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는 System Requirements — Open Edge Platform Documentation에 제공된 시스템을 사용하여 정기적으로 검증됩니다.
필수 조건#
시작하기 전에 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 element를 사용하여 여러 스트림을 결합하는 파이프라인을 여러 개 병렬로 실행할 수 있습니다.
여러 파이프라인(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™는 그래프 최적화, 레이어 fusion 및 하드웨어별 커널 튜닝과 같은 기법을 통해 YOLO26 모델을 Intel 하드웨어에 맞게 최적화합니다. DL Streamer의 VA-API 가속 디코딩 및 zero-copy
va-surface-sharing전처리와 결합하면 전체 비디오 분석 파이프라인이 최적화되지 않은 프레임워크보다 훨씬 높은 처리량을 달성합니다.예. DL Streamer는 여러 Intel 플랫폼 세대에서 Intel CPU(Core, Core Ultra, Xeon), 통합 GPU(Iris Xe, Arc), 외장 GPU(Arc A-Series, B-Series) 및 NPU(AI Boost)의 추론을 지원합니다.
DEVICE매개변수를CPU,GPU또는NPU으로 변경하면 됩니다.- FP16은 GPU 추론의 기본값으로 권장됩니다. FP32에 가까운 정확도를 제공하면서 처리량을 약 2배 향상합니다.
- INT8은 약간의 정확도 저하를 감수하는 대신 가장 높은 성능(FP32 대비 2~3배)을 제공하므로 최대 처리량이 우선인 경우에 적합합니다. INT8 모델은 Ultralytics 내보내기 중에 자동으로 보정됩니다.
DL Streamer는 모든 YOLO26 작업 변형을 지원합니다: - 감지: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x - 방향성 BBox (OBB): yolo26s-obb(및 모든 크기 변형) - 인스턴스 세그멘테이션: yolo26s-seg(및 모든 크기 변형) - 포즈 추정: yolo26s-pose(및 모든 크기 변형) - 분류: yolo26s-cls(감지 기능을 포함한 composite pipeline)
json출력 옵션을 사용하여 감지 결과를 JSON-lines 형식으로 파일에 기록합니다:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8또는 사용자 지정 파이프라인에서
gvametapublishelement를 사용하여 메타데이터를 파일, MQTT 또는 Kafka에 게시합니다.