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™ لتعظيم أداء الاستدلال على وحدات المعالجة المركزية Intel، ووحدات معالجة الرسومات المدمجة والمنفصلة، ووحدات NPU.
المحتويات: ما هو Intel DL Streamer؟ • المتطلبات الأساسية • إعداد نموذج YOLO26 • تشغيل الاستدلال باستخدام YOLO26 • إعداد التدفقات المتعددة • الأسئلة الشائعة
ما هو Intel DL Streamer؟#
إن Deep Learning Streamer (DL Streamer) Pipeline Framework هو إطار عمل مفتوح المصدر لتحليلات الوسائط المتدفقة، يستند إلى إطار الوسائط المتعددة GStreamer، وقد صُمّم لإنشاء مسارات معقدة لتحليلات الوسائط في السحابة أو على الحافة.
تتيح أداة DL Streamer تحليل تدفقات الصوت والفيديو لاكتشاف الكائنات والأحداث والأشخاص وتصنيفها وتتبعها والتعرف عليها وعدادها. وهي مُحسّنة لمُعدّات Intel وتوفر قابلية التشغيل البيني بين إضافات GStreamer المبنية على مكتبات خلفية متنوعة:
- الاستدلال: محرك استدلال OpenVINO™، مُحسّن لوحدات المعالجة المركزية ووحدات معالجة الرسومات ووحدات NPU من Intel
- ترميز/فك ترميز الفيديو: تسريع بواسطة GPU عبر VA-API
- معالجة الصور: تسريع بواسطة GPU عبر VA-API
- البيانات الوصفية: GStreamer Analytics لنتائج الاستدلال المهيكلة
- المنظومة: مئات من إضافات GStreamer لإدخال/إخراج الوسائط، والضم/الفصل، ودعم برامج الترميز، وغير ذلك
يدعم DL Streamer العديد من نماذج الذكاء الاصطناعي، بما في ذلك عائلة Ultralytics YOLO الكاملة (من YOLOv5 إلى YOLO26)، وكلها بتنسيق OpenVINO™.
يتم التحقق من صحة DL Streamer بانتظام باستخدام الأنظمة المتوفرة على System Requirements — Open Edge Platform Documentation
المتطلبات الأساسية#
قبل البدء، تأكد من تثبيت العناصر التالية وتهيئتها على نظام Intel لديك:
-
Ubuntu 24.04 مع تثبيت برامج تشغيل Intel GPU/NPU (راجع دليل التثبيت)
-
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#
قبل تشغيل خط أنابيب استدلال الكشف لنموذج YOLO26 باستخدام DL Streamer، قم بتشغيل صورة 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™
- Ultralytics YOLO26
- إطار GStreamer
- جدول النماذج المدعومة
الأسئلة الشائعة#
ثبّت 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 والمعالجة المسبقة الصفرية النسخ
va-surface-sharing، يحقق خط أنابيب تحليل الفيديو الكامل معدل نقل أعلى بكثير مقارنة بالإطارات غير المُحسّنة.نعم. يدعم DL Streamer الاستدلال على وحدات المعالجة المركزية لـ Intel (Core وCore Ultra وXeon)، ووحدات معالجة الرسومات المدمجة (Iris Xe وArc)، ووحدات معالجة الرسومات المنفصلة (Arc A-Series وB-Series)، ووحدات المعالجة العصبية NPU (AI Boost) عبر أجيال منصات Intel المتعددة. ما عليك سوى تغيير خاصية
deviceالخاصة بـgvadetectإلىCPUأوGPUأوNPU.- يوصى باستخدام FP16 كخيار افتراضي للاستدلال على GPU، إذ يوفّر دقة قريبة من FP32 مع تحسّن في معدل النقل يبلغ نحو ضعفين.
- يوفّر INT8 أعلى أداء (بمقدار 2–3 أضعاف مقارنةً بـ FP32) مع انخفاض طفيف في الدقة، وهو مثالي عندما يكون تحقيق أقصى معدل نقل هو الأولوية. وتُعاير نماذج 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بدلًا من ذلك، استخدم العنصر
gvametapublishفي المسارات المخصصة لنشر البيانات الوصفية إلى الملفات أو MQTT أو Kafka.