Ultralytics YOLO26 على Intel Core Ultra Series 3 باستخدام DL Streamer Pipeline Framework وOpenVINO™
يشرح هذا الدليل خطوات نشر Ultralytics YOLO26 على منصات Intel Core Ultra Series 3 باستخدام إطار عمل خطوط معالجة DL Streamer ومجموعة أدوات OpenVINO™. نستخدم هنا OpenVINO™ لتعظيم أداء الاستدلال على معالجات Intel CPU ووحدات GPU المدمجة والمنفصلة ووحدات NPU.
المحتويات: ما هو Intel DL Streamer؟ • المتطلبات الأساسية • إعداد نموذج YOLO26 • تشغيل الاستدلال باستخدام YOLO26 • إعداد تدفقات متعددة • الأسئلة الشائعة
ما هو Intel DL Streamer؟#
يُعد إطار عمل خطوط معالجة Deep Learning Streamer (DL Streamer) إطار عمل مفتوح المصدر لتحليلات الوسائط المتدفقة، يستند إلى إطار الوسائط المتعددة GStreamer، وصُمم لإنشاء خطوط معالجة معقدة لتحليلات الوسائط في السحابة أو على الأجهزة الطرفية.
يتيح DL Streamer تحليل تدفقات الصوت والفيديو لاكتشاف الكائنات والأحداث والأشخاص وتصنيفها وتعقبها والتعرف عليهم وإحصائهم. وهو محسّن لأجهزة Intel ويوفر قابلية التشغيل البيني بين إضافات GStreamer المبنية على مكتبات خلفية متنوعة:
- الاستدلال: محرك الاستدلال OpenVINO™، المحسّن لوحدات CPU وGPU وNPU من Intel
- ترميز الفيديو وفك ترميزه: تسريع باستخدام GPU عبر VA-API
- معالجة الصور: تسريع باستخدام GPU عبر VA-API
- البيانات الوصفية: تحليلات GStreamer لنتائج الاستدلال المنظَّمة
- المنظومة: مئات من إضافات GStreamer لإدخال الوسائط وإخراجها، ودمج التدفقات وفصلها، ودعم برامج الترميز، وغير ذلك
يدعم DL Streamer العديد من نماذج الذكاء الاصطناعي، بما فيها عائلة Ultralytics YOLO كاملةً (من YOLOv5 إلى YOLO26)، وجميعها بتنسيق OpenVINO™.
يُتحقق بانتظام من توافق DL Streamer مع الأنظمة المدرجة في متطلبات نظام DL Streamer.
المتطلبات الأساسية#
قبل البدء، تأكد من تثبيت العناصر التالية وتهيئتها على نظام Intel لديك:
-
Ubuntu 24.04 مع تثبيت برامج تشغيل Intel GPU/NPU
إعداد نموذج 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، أكمل خطوة إعداد نموذج 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 بالوضع التفاعلي.
هذا الأمر مخصص للأنظمة المزوّدة بمعالجات 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 وحفظ الناتج في ملف فيديو#
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. ثم شغّل الاستدلال باستخدامyolo_detect.shالخاص بـالتطبيق النموذجي لـDL Streamer، والذي يوفر نصًا برمجيًا جاهزًا للاستخدام لتشغيل مسارات استدلال 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 أعلى أداء مع تنازل طفيف عن الدقة، وهو مثالي عندما تكون الأولوية لمعدل النقل الأقصى. وتُعايَر نماذج INT8 تلقائيًا أثناء التصدير باستخدام Ultralytics.
يدعم 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.
التعليقات
اطرح سؤالًا، وشارك نتائجك، أو ساعد شخصًا آخر.