DL Streamer Pipeline Framework 및 OpenVINO™를 사용한 Intel Core Ultra Series 3의 Ultralytics YOLO26
이 가이드에서는 DL Streamer Pipeline Framework와 OpenVINO™ 툴킷을 사용해 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 멀티미디어 프레임워크를 기반으로 하는 오픈 소스 스트리밍 미디어 분석 프레임워크로, 클라우드 또는 엣지에서 복잡한 미디어 분석 파이프라인을 만들도록 설계되었습니다.
DL Streamer를 사용하면 오디오 및 비디오 스트림을 분석하여 객체, 이벤트, 사람을 감지, 분류, 추적, 식별하고 계수를 수행할 수 있습니다. Intel 하드웨어에 최적화되어 있으며, 다양한 백엔드 라이브러리를 기반으로 구축된 GStreamer 플러그인 간 상호 운용성을 제공합니다:
- 추론: Intel CPU, GPU, NPU에 최적화된 OpenVINO™ 추론 엔진
- 비디오 인코딩/디코딩: VA-API를 통한 GPU 가속
- 이미지 처리: VA-API를 통한 GPU 가속
- 메타데이터: 구조화된 추론 결과를 위한 GStreamer Analytics
- 에코시스템: 미디어 I/O, 다중화/역다중화, 코덱 지원 등을 위한 수백 개의 GStreamer 플러그인
DL Streamer는 OpenVINO™ 형식의 Ultralytics YOLO 전체 제품군(YOLOv5부터 YOLO26까지)을 비롯한 다양한 AI 모델을 지원합니다.
DL Streamer는 DL Streamer 시스템 요구 사항에 명시된 시스템에서 정기적으로 검증됩니다.
사전 요구 사항#
시작하기 전에 Intel 시스템에 다음 항목이 설치 및 구성되어 있는지 확인하세요:
-
Intel GPU/NPU 드라이버가 설치된 Ubuntu 24.04
YOLO26 모델 준비#
DL Streamer는 OpenVINO™ IR 형식의 모델을 사용합니다. Ultralytics YOLO26 모델은 Ultralytics exporter를 사용해 PyTorch에서 OpenVINO™ IR로 내보냅니다. DL Streamer는 Intel 하드웨어에 최적화된 내보내기 및 추론 기능을 제공하는 공식 Ultralytics OpenVINO™ 통합을 사용합니다.
~/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 감지 파이프라인을 실행하기 전에 YOLO26 모델 준비 단계를 완료하고 Pexels에서 다음 샘플 동영상을 다운로드합니다.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4그런 다음 DL 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 내보내기 도구가 보정 작업을 자동으로 처리합니다.
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를 실행하고 출력을 동영상 파일로 저장하기#
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 저장소
- DL Streamer 문서
- DL Streamer 요소
- OpenVINO™ Toolkit
- Ultralytics YOLO26
- GStreamer 프레임워크
- 지원 모델 표
자주 묻는 질문#
OpenVINO™는 그래프 최적화, 레이어 융합, 하드웨어별 커널 튜닝 등의 기법을 통해 Intel 하드웨어에 맞게 YOLO26 모델을 최적화합니다. DL Streamer의 VA-API 가속 디코딩과 제로 카피
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)의 추론을 지원합니다.
gvadetect의device속성을CPU,GPU또는NPU로 변경합니다.- FP16은 GPU 추론의 기본값으로 권장됩니다. 더 높은 처리량을 제공하면서 FP32에 근접한 정확도를 유지합니다.
- INT8은 정확도가 약간 낮아지는 대신 가장 높은 성능을 제공하므로 최대 처리량이 우선일 때 적합합니다. Ultralytics 내보내기 과정에서 INT8 모델은 자동으로 보정됩니다.
DL Streamer는 다음 YOLO26 작업 변형을 지원합니다.
- 탐지: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x
- 인스턴스 분할: yolo26s-seg(모든 크기 변형 포함)
- 분류: yolo26s-cls(탐지를 포함하는 복합 파이프라인)
- 자세 추정: yolo26s-pose(모든 크기 변형 포함)
- 방향성 바운딩 박스(OBB): yolo26s-obb(모든 크기 변형 포함)
json출력 옵션을 사용해 탐지 결과를 JSON Lines 형식으로 파일에 기록하세요../yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8또는 사용자 지정 파이프라인에서
gvametapublish요소를 사용해 메타데이터를 파일, MQTT 또는 Kafka로 게시하세요.
댓글
질문을 하거나 결과를 공유하거나 다른 사람을 도와주세요.