رؤية YOLO 2026:

دليل البدء السريع: Raspberry Pi مع Ultralytics YOLO26#

Raspberry Pi هو جهاز حاسوب صغير وعالي التكلفة يشغل Ultralytics YOLO26 لـ object detection الفوري عند الطرفيات - دون الحاجة إلى وحدة معالجة رسومية (GPU). يرشدك هذا الدليل خلال نشر YOLO26 على Raspberry Pi 4 و 5: تثبيت نظام التشغيل، وتثبيت Ultralytics، والتصدير إلى NCNN لأسرع inference على معالجات ARM، وتشغيل التنبؤات على بث كاميرا مباشر. ويتضمن أيضاً تقييمات للأداء عبر ثماني صيغ تصصدير ليتسنى لك اختيار أفضل توازن بين السرعة وaccuracy لعتادك.

انتقل إلى setting up Ultralytics، أو exporting to NCNN and running inference، أو benchmarks، أو camera inference.



Watch: Raspberry Pi 5 updates and improvements.
ملاحظة

تم اختبار هذا الدليل مع Raspberry Pi 4 و Raspberry Pi 5 المشغلين لأحدث إصدار من Raspberry Pi OS Bookworm (Debian 12). يُتوقع أن يعمل استخدام هذا الدليل مع أجهزة Raspberry Pi الأقدم مثل Raspberry Pi 3 طالما تم تثبيت نفس نظام التشغيل Raspberry Pi OS Bookworm.

ما هو Raspberry Pi؟#

Raspberry Pi هو حاسوب صغير ميسور التكلفة ذو لوحة واحدة. لقد أصبح مشهوراً لمجموعة واسعة من المشاريع والتطبيقات، بدءاً من أتمتة المنازل للهواة وصولاً إلى الاستخدامات الصناعية. لوحات Raspberry Pi قادرة على تشغيل مجموعة متنوعة من أنظمة التشغيل، وتوفر دبابيس GPIO (دخل/خرج للأغراض العامة) التي تسمح بالتكامل السهل مع المستشعرات والمشغلات ومكونات الأجهزة الأخرى. تأتي هذه اللوحات في طرازات مختلفة بمواصفات متفاوتة، لكنها جميعاً تتشارك في فلسفة التصميم الأساسية المتمثلة في كونها منخفضة التكلفة وصغيرة الحجم ومتعددة الاستخدامات.

مقارنة سلسلة Raspberry Pi#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, معالج Cortex-A53 64Bit SoCBroadcom BCM2711, معالج Cortex-A72 64Bit SoCBroadcom BCM2712, معالج Cortex-A76 64Bit SoC
أقصى تردد لـ CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
أقصى تردد لـ GPU400Mhz500Mhz800Mhz
الذاكرة1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM4GB, 8GB LPDDR4X-4267 SDRAM
PCIeغير متاحغير متاح1xPCIe 2.0 Interface
أقصى استهلاك للطاقة2.5A@5V3A@5V5A@5V (مع تفعيل PD)

ما هو Raspberry Pi OS؟#

Raspberry Pi OS (المعروف سابقاً باسم Raspbian) هو نظام تشغيل شبيه بيونكس يعتمد على توزيعة Debian GNU/Linux لعائلة أجهزة الحواسيب المصغرة ذات اللوحة الواحدة من Raspberry Pi والتي توزعها مؤسسة Raspberry Pi Foundation. نظام Raspberry Pi OS محسّن بشكل كبير لأجهزة Raspberry Pi التي تحتوي على وحدات معالجة مركزية (CPUs) من نوع ARM ويستخدم بيئة سطح مكتب LXDE معدلة مع مدير النوافذ المتراكمة OpenBox. نظام Raspberry Pi OS قيد التطوير النشط، مع التركيز على تحسين استقرار وأداء أكبر عدد ممكن من حزم دبيان على Raspberry Pi.

تثبيت Raspberry Pi OS على Raspberry Pi#

أول شيء يجب عليك فعله بعد حصولك على جهاز Raspberry Pi هو حرق بطاقة micro-SD بنظام تشغيل Raspberry Pi OS، وإدخالها في الجهاز والتمويه في النظام. اتبع Getting Started Documentation by Raspberry Pi المفصلة لتجهيز جهازك للاستخدام الأول.

إعداد Ultralytics#

يمكنك إعداد حزمة Ultralytics على Raspberry Pi بطريقتين لمشروعك القادم في مجال Computer Vision:

البدء باستخدام Docker#

أسرع طريقة للبدء باستخدام Ultralytics YOLO26 على Raspberry Pi هي التشغيل عبر صورة Docker جاهزة ومخصصة لـ Raspberry Pi.

نفذ الأمر التالي لسحب حاوية Docker والتشغيل على Raspberry Pi. يعتمد هذا على صورة Docker arm64v8/ubuntu، والتي تشغل Ubuntu 24.04 في بيئة Python3.

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

تتضمن صورة Docker حزمة Ultralytics مسبقاً، لذا يمكنك الانتقال مباشرة إلى exporting your model to NCNN.

البدء بدون Docker#

تثبيت حزمة Ultralytics#

هنا سنقوم بتثبيت حزمة Ultralytics على Raspberry Pi مع التبعيات الاختيارية حتى نتمكن من تصدير نماذج PyTorch إلى صيغ أخرى.

  1. تحديث قائمة الحزم، وتثبيت pip والترقية إلى الأحدث

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. تثبيت حزمة pip لـ ultralytics مع التبعيات الاختيارية

    pip install ultralytics[export]
  3. إعادة تشغيل الجهاز

    sudo reboot

استخدام NCNN على Raspberry Pi#

من بين جميع export formats المدعومة من قبل Ultralytics، تقدم NCNN أفضل أداء استدلال على أجهزة Raspberry Pi لأنها محسنة بشكل كبير للمنصات المحمولة / المدمجة مثل هندسة ARM. قم بتحويل نموذج YOLO26n PyTorch الخاص بك إلى NCNN، ثم قم بتشغيل الاستدلال باستخدام النموذج المصدر:

مثال
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
نصيحة

لمزيد من التفاصيل حول خيارات التصدير المدعومة، راجع model deployment options guide.

تحسينات أداء YOLO26 مقارنة بـ YOLO11#

صُمم YOLO26 خصيصاً للعمل على الأجهزة ذات الموارد المحدودة مثل Raspberry Pi 5. مقارنة بـ YOLO11n، يحقق YOLO26n زيادة بنسبة ~15% في عدد الإطارات في الثانية (FPS) (من 6.79 إلى 7.79) مع توفير mAP أعلى (40.1 مقابل 39.5) عند حجم إدخال 640 مع النماذج المصدرة بتنسيق ONNX على Raspberry Pi 5. يعرض الجدول والمخطط أدناه هذه المقارنة.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
الأداء
النموذجmAP50-95(B)وقت الاستدلال (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

تم قياس الأداء باستخدام Ultralytics 8.4.14.

مقاييس أداء YOLO26 على Raspberry Pi 5#

تم تشغيل benchmarks الخاصة بـ YOLO26 بواسطة فريق Ultralytics على ثماني صيغ مختلفة للنماذج تقيس السرعة وaccuracy: PyTorch و TorchScript و ONNX و OpenVINO و MNN و NCNN و ExecuTorch و LiteRT. تم تشغيل المقارنات المعيارية على Raspberry Pi 5 بدقة FP32 precision مع حجم صورة إدخال افتراضي يبلغ 640.

مخطط المقارنة#

لقد قمنا فقط بتضمين مقاييس أداء لنماذج YOLO26n و YOLO26s لأن أحجام النماذج الأخرى كبيرة جداً للعمل على Raspberry Pis ولا توفر أداءً مقبولاً.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

جدول مقارنة مفصل#

يمثل الجدول أدناه نتائج اختبارات الأداء لنموذجين مختلفين (YOLO26n وYOLO26s) عبر ثمانية تنسيقات مختلفة (PyTorch، وTorchScript، وONNX، وOpenVINO، وMNN، وNCNN، وExecuTorch، وLiteRT)، قيد التشغيل على Raspberry Pi 5، مما يمنحنا الحالة، والحجم، ومقياس mAP50-95(B)، ووقة الاستدلال لكل مجموعة.

الأداء
التنسيقالحالةالحجم على القرص (ميجابايت)mAP50-95(B)وقت الاستدلال (ms/im)
PyTorch5.30.4760299.09
TorchScript9.80.4734353.20
ONNX9.50.4734125.99
OpenVINO9.60.4734104.55
MNN9.40.474991.87
NCNN9.40.478467.03
ExecuTorch9.40.4772144.83
LiteRT9.80.4730123.30

تم إجراء اختبارات الأداء باستخدام Ultralytics 8.4.108

ملاحظة

لا يتضمن وقت الاستدلال عمليات ما قبل وما بعد المعالجة.

إعادة إنتاج نتائجنا#

لإعادة إنتاج مقارنات Ultralytics المعيارية المذكورة أعلاه على جميع export formats، قم بتشغيل هذا الكود:

مثال
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)

لاحظ أن نتائج مقارنة الأداء قد تختلف بناءً على التكوين الدقيق للأجهزة والبرامج للنظام، بالإضافة إلى عبء العمل الحالي للنظام في وقت تشغيل مقارنات الأداء. للحصول على أكثر النتائج موثوقية، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور، على سبيل المثال، data='coco.yaml' (5000 صورة للتحقق).

يتم تشغيل تصدير LiteRT خارج الجهاز

litert-converter لا يشحن أي aarch64 Linux wheel، لذا فإن تصصدير format=litert مدعوم فقط على Linux x86_64 و macOS، وليس على Raspberry Pi نفسه. قم بتصدير نموذج .tflite على جهاز Linux x86_64 أو Mac، وانسخه إلى Raspberry Pi، واستخدم Pi للاستدلال.

استخدام كاميرا Raspberry Pi#

عند استخدام Raspberry Pi لمشاريع الرؤية الحاسوبية، قد يكون من الضروري التقاط تدفقات فيديو فورية لتنفيذ الاستدلال. يتيح لك موصل MIPI CSI المدمج في Raspberry Pi توصيل وحدات كاميرا Raspberry Pi الرسمية. في هذا الدليل، استخدمنا Raspberry Pi Camera Module 3 لالتقاط تدفقات الفيديو وإجراء الاستدلال باستخدام نماذج YOLO26.

نصيحة
ملاحظة

يستخدم Raspberry Pi 5 موصلات CSI أصغر من Raspberry Pi 4 (15 سنًا مقابل 22 سنًا)، لذلك ستحتاج إلى 15-pin to 22-pin adapter cable للتوصيل بكاميرا Raspberry Pi.

اختبار الكاميرا#

نفذ الأمر التالي بعد توصيل الكاميرا بـ Raspberry Pi. يجب أن ترى بث فيديو مباشر من الكاميرا لمدة 5 ثوانٍ تقريباً.

rpicam-hello
نصيحة

تعرف على المزيد حول استخدام rpicam-hello usage on official Raspberry Pi documentation

الاستنتاج باستخدام الكاميرا#

توجد طريقتان لاستخدام كاميرا Raspberry Pi لتشغيل الاستدلال على نماذج YOLO26.

تشغيل الاستدلال باستخدام كاميرا Raspberry Pi

يمكننا استخدام picamera2 المثبت مسبقًا مع نظام التشغيل Raspberry Pi OS للوصول إلى الكاميرا وتشغيل الاستدلال على نماذج YOLO26.

مثال
import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLO26 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()
نصيحة

تحقق من مستندنا حول Inference Sources إذا كنت تريد تغيير نوع إدخال الصورة/الفيديو

أفضل الممارسات عند استخدام Raspberry Pi#

هناك بعض أفضل الممارسات التي يجب اتباعها لتحقيق أقصى قدر من الأداء على أجهزة Raspberry Pi التي تشغل YOLO26.

  1. استخدم SSD

    عند استخدام Raspberry Pi للاستخدام المستمر على مدار الساعة طوال أيام الأسبوع، يوصى باستخدام قرص SSD للنظام لأن بطاقة SD لن تكون قادرة على تحمل عمليات الكتابة المستمرة وقد تتعطل. مع موصل PCIe المدمج على Raspberry Pi 5، يمكنك الآن توصيل وحدات SSD باستخدام محول مثل NVMe Base for Raspberry Pi 5.

  2. التثبيت بدون واجهة رسومية (GUI)

    عند تثبيت نظام Raspberry Pi OS، يمكنك اختيار عدم تثبيت بيئة سطح المكتب (Raspberry Pi OS Lite)، وهذا يمكن أن يوفر القليل من ذاكرة الوصول العشوائي (RAM) على الجهاز، مما يترك مساحة أكبر لمعالجة الرؤية الحاسوبية.

  3. كسر سرعة Raspberry Pi

    إذا كنت ترغب في زيادة طفيفة في الأداء أثناء تشغيل نماذج Ultralytics YOLO26 على Raspberry Pi 5، يمكنك كسر سرعة وحدة المعالجة المركزية (CPU) من 2.4 جيجاهرتز الأساسية إلى 2.9 جيجاهرتز، ووحدة معالجة الرسومات (GPU) من 800 ميجاهرتز إلى 1 جيجاهرتز. إذا أصبح النظام غير مستقر أو تعطل، قلل قيم كسر السرعة بزيادات قدرها 100 ميجاهرتز. تأكد من وجود تبريد مناسب، حيث أن كسر السرعة يزيد من توليد الحرارة وقد يؤدي إلى الاختناق الحراري.

    أ. قم بتحديث البرنامج

    sudo apt update && sudo apt dist-upgrade

    ب. افتح ملف الإعدادات للتعديل

    sudo nano /boot/firmware/config.txt

    ج. أضف الأسطر التالية في الأسفل

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    د. احفظ واخرج بالضغط على CTRL + X، ثم Y، واضغط على ENTER

    هـ. أعد تشغيل Raspberry Pi

الخطوات التالية#

لقد قمت بنجاح بإعداد YOLO26 على جهاز Raspberry Pi الخاص بك. للمضي قدمًا، استكشف Predict mode لمزيد من خيارات الاستدلال، أو Export mode للحصول على صيغ نشر إضافية، أو NVIDIA Jetson guide إذا كنت بحاجة إلى مزيد من الحوسبة عند الطرفيات. للحصول على الوثائق الكاملة، تفضل بزيارة Ultralytics YOLO26 Docs.

شكر وتقدير#

تم إنشاء هذا الدليل في البداية بواسطة Daan Eeltink لمؤسسة كشمير العالمية، وهي منظمة مكرسة لاستخدام YOLO للحفاظ على الأنواع المهددة بالانقراض. نحن نقدر عملهم الرائد وتركيزهم التعليمي في مجال تقنيات كشف الأشياء.

لمزيد من المعلومات حول أنشطة مؤسسة Kashmir World Foundation، يمكنك زيارة website الخاص بهم.

الأسئلة الشائعة#

  • لإعداد Ultralytics YOLO26 على Raspberry Pi بدون Docker، اتبع الخطوات التالية:

    1. قم بتحديث قائمة الحزم وتثبيت pip:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. قم بتثبيت حزمة Ultralytics مع التبعيات الاختيارية:
      pip install ultralytics[export]
    3. أعد تشغيل الجهاز لتطبيق التغييرات:
      sudo reboot

    للحصول على إرشادات مفصلة، راجع قسم Start without Docker.

  • تعد صيغة NCNN الخاصة بـ Ultralytics YOLO26 محسنة للغاية للهواتف المحمولة والمنصات المدمجة، مما يجعلها مثالية لتشغيل مهام الذكاء الاصطناعي على أجهزة Raspberry Pi. تعمل NCNN على تعظيم أداء الاستدلال من خلال الاستفادة من هندسة ARM، مما يوفر معالجة أسرع وأكثر كفاءة مقارنة بالصيغ الأخرى. لمزيد من التفاصيل حول صيغ التصدير المدعومة، راجع model export options.

  • يمكنك تحويل نموذج PyTorch YOLO26 إلى تنسيق NCNN باستخدام Python أو أوامر CLI:

    مثال
    from ultralytics import YOLO
    
    # Load a YOLO26n PyTorch model
    model = YOLO("yolo26n.pt")
    
    # Export the model to NCNN format
    model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    
    # Load the exported NCNN model
    ncnn_model = YOLO("yolo26n_ncnn_model")
    
    # Run inference
    results = ncnn_model("https://ultralytics.com/images/bus.jpg")

    لمزيد من التفاصيل، راجع قسم Use NCNN on Raspberry Pi.

  • تشمل الاختلافات الرئيسية ما يلي:

    • وحدة المعالجة المركزية (CPU): يستخدم Raspberry Pi 4 معالج Broadcom BCM2711، Cortex-A72 64-bit SoC، بينما يستخدم Raspberry Pi 5 معالج Broadcom BCM2712، Cortex-A76 64-bit SoC.
    • الحد الأقصى لتردد CPU: يمتلك Raspberry Pi 4 ترددًا أقصى يبلغ 1.8 جيجاهرتز، بينما يصل Raspberry Pi 5 إلى 2.4 جيجاهرتز.
    • الذاكرة: يوفر Raspberry Pi 4 ما يصل إلى 8 جيجابايت من ذاكرة LPDDR4-3200 SDRAM، بينما يتميز Raspberry Pi 5 بذاكرة LPDDR4X-4267 SDRAM، المتوفرة في إصدارات 4 جيجابايت و 8 جيجابايت.

    تساهم هذه التحسينات في تحسين معايير الأداء لننماذج YOLO26 على Raspberry Pi 5 مقارنة بـ Raspberry Pi 4. راجع جدول Raspberry Pi Series Comparison لمزيد من التفاصيل.

  • هناك طريقتان لإعداد كاميرا Raspberry Pi لاستدلال YOLO26:

    1. Using picamera2:

      import cv2
      from picamera2 import Picamera2
      
      from ultralytics import YOLO
      
      picam2 = Picamera2()
      picam2.preview_configuration.main.size = (1280, 720)
      picam2.preview_configuration.main.format = "RGB888"
      picam2.preview_configuration.align()
      picam2.configure("preview")
      picam2.start()
      
      model = YOLO("yolo26n.pt")
      
      while True:
          frame = picam2.capture_array()
          results = model(frame)
          annotated_frame = results[0].plot()
          cv2.imshow("Camera", annotated_frame)
      
          if cv2.waitKey(1) == ord("q"):
              break
      
      cv2.destroyAllWindows()
    2. استخدام بث TCP:

      rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
      from ultralytics import YOLO
      
      model = YOLO("yolo26n.pt")
      results = model("tcp://127.0.0.1:8888")

    للحصول على إرشادات إعداد تفصيلية، تفضل بزيارة قسم Inference with Camera.

التعليقات