دليل البدء السريع: Raspberry Pi مع Ultralytics YOLO26
يقدم هذا الدليل الشامل شرحاً تفصيلياً لنشر Ultralytics YOLO26 على أجهزة Raspberry Pi. بالإضافة إلى ذلك، يعرض الدليل معايير الأداء لتوضيح قدرات YOLO26 على هذه الأجهزة الصغيرة والقوية.
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 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, Cortex-A53 64Bit SoC | Broadcom BCM2711, Cortex-A72 64Bit SoC | Broadcom BCM2712, Cortex-A76 64Bit SoC |
| التردد الأقصى لـ CPU | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| التردد الأقصى لـ GPU | 400Mhz | 500Mhz | 800Mhz |
| الذاكرة | 1GB LPDDR2 SDRAM | 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM | 4GB, 8GB LPDDR4X-4267 SDRAM |
| PCIe | غير متاح | غير متاح | 1xPCIe 2.0 Interface |
| Max Power Draw | 2.5A@5V | 3A@5V | 5A@5V (PD enabled) |
ما هو Raspberry Pi OS؟
Raspberry Pi OS (المعروف سابقاً باسم Raspbian) هو نظام تشغيل يشبه Unix يعتمد على توزيعة Debian GNU/Linux لعائلة Raspberry Pi من الحواسيب المدمجة ذات اللوحة الواحدة التي توزعها مؤسسة Raspberry Pi Foundation. تم تحسين Raspberry Pi OS بدرجة كبيرة ليعمل مع وحدات المعالجة المركزية ARM في Raspberry Pi ويستخدم بيئة سطح مكتب LXDE معدلة مع مدير النوافذ Openbox. يخضع Raspberry Pi OS للتطوير النشط، مع التركيز على تحسين استقرار وأداء أكبر عدد ممكن من حزم Debian على Raspberry Pi.
تثبيت Raspberry Pi OS على Raspberry Pi
أول شيء يجب القيام به بعد الحصول على Raspberry Pi هو تثبيت (فلاش) بطاقة micro-SD بنظام Raspberry Pi OS، ثم إدخالها في الجهاز والتمهيد داخل نظام التشغيل. اتبع وثائق البدء السريع المقدمة من Raspberry Pi لإعداد جهازك للاستخدام الأول.
إعداد Ultralytics
توجد طريقتان لإعداد حزمة Ultralytics على Raspberry Pi لبناء مشروعك القادم في رؤية الحاسوب. يمكنك استخدام أي منهما.
البدء باستخدام Docker
أسرع طريقة للبدء مع Ultralytics YOLO26 على Raspberry Pi هي التشغيل باستخدام صورة docker مجهزة مسبقاً لـ Raspberry Pi.
نفذ الأمر أدناه لسحب حاوية Docker والتشغيل على Raspberry Pi. يعتمد هذا على صورة docker arm64v8/debian التي تحتوي على Debian 12 (Bookworm) في بيئة Python3.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tبعد الانتهاء من ذلك، انتقل إلى قسم استخدام NCNN على Raspberry Pi.
البدء بدون Docker
تثبيت حزمة Ultralytics
هنا سنقوم بتثبيت حزمة Ultralytics على Raspberry Pi مع التبعيات الاختيارية حتى نتمكن من تصدير نماذج PyTorch إلى تنسيقات مختلفة أخرى.
-
تحديث قائمة الحزم، وتثبيت pip والترقية إلى الأحدث
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip
ultralyticsمع التبعيات الاختياريةpip install ultralytics[export] -
إعادة تشغيل الجهاز
sudo reboot
استخدام NCNN على Raspberry Pi
من بين جميع تنسيقات تصدير النماذج التي تدعمها Ultralytics، يقدم NCNN أفضل أداء للاستنتاج عند العمل مع أجهزة Raspberry Pi لأن NCNN محسّن للغاية للمنصات المحمولة/المدمجة (مثل معمارية ARM).
تحويل النموذج إلى NCNN وتشغيل الاستنتاج
يتم تحويل نموذج 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")لمزيد من التفاصيل حول خيارات التصدير المدعومة، تفضل بزيارة صفحة وثائق Ultralytics حول خيارات النشر.
تحسينات أداء YOLO26 مقارنة بـ YOLO11
تم تصميم YOLO26 خصيصاً ليعمل على الأجهزة المحدودة الموارد مثل Raspberry Pi 5. مقارنة بـ YOLO11n، يحقق YOLO26n زيادة بنسبة ~15% في معدل الإطارات (6.79 -> 7.79) مع توفير دقة mAP أعلى (40.1 مقابل 39.5) عند حجم إدخال 640 مع النماذج المُصدرة بصيغة ONNX على Raspberry Pi 5. يعرض الجدول والمخطط أدناه هذه المقارنة.
| النموذج | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.26 |
تم إجراء القياس باستخدام Ultralytics 8.4.14.
قياسات أداء YOLO26 على Raspberry Pi 5
تم إجراء قياسات أداء YOLO26 بواسطة فريق Ultralytics على عشرة تنسيقات نماذج مختلفة لقياس السرعة والدقة: PyTorch، TorchScript، ONNX، OpenVINO، TF SavedModel، TF GraphDef، TF Lite، MNN، NCNN، ExecuTorch. تم إجراء القياسات على Raspberry Pi 5 بدقة FP32 دقة القياس مع حجم صورة إدخال افتراضي قدره 640.
جدول المقارنة
لقد قمنا بتضمين قياسات الأداء لنماذج YOLO26n و YOLO26s فقط لأن أحجام النماذج الأخرى كبيرة جداً بحيث لا يمكن تشغيلها على أجهزة Raspberry Pi ولا توفر أداءً مقبولاً.
جدول مقارنة مفصل
يمثل الجدول أدناه نتائج قياس الأداء لنموذجين مختلفين (YOLO26n, YOLO26s) عبر عشرة تنسيقات مختلفة (PyTorch، TorchScript، ONNX، OpenVINO، TF SavedModel، TF GraphDef، TF Lite، MNN، NCNN، ExecuTorch)، تعمل على Raspberry Pi 5، مما يمنحنا الحالة، الحجم، مقياس mAP50-95(B)، ووقت الاستنتاج لكل مجموعة.
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 302.15 |
| TorchScript | ✅ | 9.8 | 0.4764 | 357.58 |
| ONNX | ✅ | 9.5 | 0.4764 | 130.33 |
| OpenVINO | ✅ | 9.6 | 0.4818 | 70.74 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 213.58 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 213.5 |
| TF Lite | ✅ | 9.9 | 0.4764 | 251.41 |
| MNN | ✅ | 9.4 | 0.4784 | 90.89 |
| NCNN | ✅ | 9.4 | 0.4805 | 67.69 |
| ExecuTorch | ✅ | 9.4 | 0.4764 | 148.36 |
تم إجراء القياس باستخدام Ultralytics 8.4.1
وقت الاستنتاج لا يتضمن المعالجة المسبقة/اللاحقة.
إعادة إنتاج نتائجنا
لإعادة إنتاج قياسات أداء Ultralytics أعلاه على جميع تنسيقات التصدير، قم بتشغيل هذا الكود:
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 صورة تحقق).
استخدام كاميرا Raspberry Pi
عند استخدام Raspberry Pi لمشاريع رؤية الحاسوب، قد يكون من الضروري الحصول على بث فيديو في الوقت الفعلي لإجراء الاستدلال. تتيح لك موصلات MIPI CSI المدمجة في Raspberry Pi توصيل وحدات كاميرا Raspberry Pi الرسمية. في هذا الدليل، استخدمنا Raspberry Pi Camera Module 3 للحصول على بث الفيديو وإجراء الاستدلال باستخدام نماذج YOLO26.
تعرف على المزيد حول وحدات الكاميرا المختلفة التي توفرها Raspberry Pi وكذلك كيفية البدء باستخدام وحدات كاميرا Raspberry Pi.
يستخدم Raspberry Pi 5 موصلات CSI أصغر من تلك الموجودة في Raspberry Pi 4 (15 دبوس مقابل 22 دبوس)، لذا ستحتاج إلى كابل محول من 15 دبوس إلى 22 دبوس للاتصال بكاميرا Raspberry Pi.
اختبر الكاميرا
نفذ الأمر التالي بعد توصيل الكاميرا بـ Raspberry Pi. يجب أن تشاهد بث فيديو مباشر من الكاميرا لمدة 5 ثوانٍ تقريباً.
rpicam-helloتعرف على المزيد حول استخدام rpicam-hello في توثيق Raspberry Pi الرسمي.
الاستدلال باستخدام الكاميرا
هناك طريقتان لاستخدام كاميرا Raspberry Pi لتشغيل الاستدلال على نماذج YOLO26.
يمكننا استخدام picamera2 الذي يأتي مثبتاً مسبقاً مع نظام تشغيل Raspberry Pi للوصول إلى الكاميرا وتشغيل الاستدلال على نماذج 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()تحقق من وثيقتنا حول مصادر الاستدلال إذا كنت ترغب في تغيير نوع مدخلات الصورة/الفيديو
أفضل الممارسات عند استخدام Raspberry Pi
هناك بضع أفضل الممارسات التي يجب اتباعها لتمكين أقصى أداء على أجهزة Raspberry Pi التي تشغل YOLO26.
-
استخدم SSD
عند استخدام Raspberry Pi للاستخدام المستمر على مدار الساعة طوال أيام الأسبوع، يوصى باستخدام SSD للنظام لأن بطاقة SD لن تكون قادرة على تحمل عمليات الكتابة المستمرة وقد تتعطل. مع موصل PCIe المدمج في Raspberry Pi 5، يمكنك الآن توصيل أقراص SSD باستخدام محول مثل NVMe Base for Raspberry Pi 5.
-
التثبيت بدون واجهة رسومية (GUI)
عند تثبيت نظام تشغيل Raspberry Pi، يمكنك اختيار عدم تثبيت بيئة سطح المكتب (Raspberry Pi OS Lite) وهذا يمكن أن يوفر القليل من ذاكرة الوصول العشوائي (RAM) على الجهاز، مما يترك مساحة أكبر لمعالجة رؤية الحاسوب.
-
كسر سرعة Raspberry Pi
إذا كنت ترغب في زيادة طفيفة في الأداء أثناء تشغيل نماذج Ultralytics YOLO26 على Raspberry Pi 5، يمكنك كسر سرعة وحدة المعالجة المركزية (CPU) من ترددها الأساسي 2.4GHz إلى 2.9GHz، ووحدة معالجة الرسومات (GPU) من 800MHz إلى 1GHz. إذا أصبح النظام غير مستقر أو حدثت أعطال، قم بتقليل قيم كسر السرعة بزيادات قدرها 100MHz. تأكد من وجود تبريد مناسب، حيث أن كسر السرعة يزيد من توليد الحرارة وقد يؤدي إلى الاختناق الحراري.
أ. تحديث البرنامج
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
الخطوات التالية
لقد قمت بإعداد YOLO بنجاح على جهاز Raspberry Pi الخاص بك. لمزيد من التعلم والدعم، قم بزيارة وثائق Ultralytics YOLO26 و مؤسسة كشمير العالمية (Kashmir World Foundation).
شكر وتقدير واقتباسات
تم إنشاء هذا الدليل في البداية بواسطة Daan Eeltink لصالح مؤسسة كشمير العالمية، وهي منظمة مكرسة لاستخدام YOLO للحفاظ على الأنواع المهددة بالانقراض. نحن نقر بعملهم الرائد وتركيزهم التعليمي في مجال تقنيات كشف الأشياء.
لمزيد من المعلومات حول أنشطة مؤسسة كشمير العالمية، يمكنك زيارة موقعهم الإلكتروني.
الأسئلة الشائعة
كيف أقوم بإعداد Ultralytics YOLO26 على Raspberry Pi دون استخدام Docker؟
لإعداد Ultralytics YOLO26 على Raspberry Pi بدون Docker، اتبع الخطوات التالية:
- قم بتحديث قائمة الحزم وتثبيت
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - قم بتثبيت حزمة Ultralytics مع التبعيات الاختيارية:
pip install ultralytics[export] - أعد تشغيل الجهاز لتطبيق التغييرات:
sudo reboot
للحصول على تعليمات مفصلة، راجع قسم البدء بدون Docker.
لماذا يجب أن أستخدم تنسيق NCNN الخاص بـ Ultralytics YOLO26 على Raspberry Pi لمهام الذكاء الاصطناعي؟
تنسيق NCNN الخاص بـ Ultralytics YOLO26 محسن للغاية للمنصات المحمولة والمضمنة، مما يجعله مثالياً لتشغيل مهام الذكاء الاصطناعي على أجهزة Raspberry Pi. يزيد NCNN من أداء الاستدلال من خلال الاستفادة من بنية ARM، مما يوفر معالجة أسرع وأكثر كفاءة مقارنة بالتنسيقات الأخرى. لمزيد من التفاصيل حول خيارات التصدير المدعومة، قم بزيارة صفحة وثائق Ultralytics حول خيارات النشر.
كيف يمكنني تحويل نموذج YOLO26 إلى تنسيق NCNN للاستخدام على Raspberry Pi؟
يمكنك تحويل نموذج 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")لمزيد من التفاصيل، انظر قسم استخدام NCNN على Raspberry Pi.
ما هي الاختلافات في الأجهزة بين Raspberry Pi 4 و Raspberry Pi 5 ذات الصلة بتشغيل YOLO26؟
تشمل الاختلافات الرئيسية:
- 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.8GHz، بينما يصل Raspberry Pi 5 إلى 2.4GHz.
- الذاكرة: يوفر Raspberry Pi 4 ما يصل إلى 8GB من ذاكرة LPDDR4-3200 SDRAM، بينما يتميز Raspberry Pi 5 بذاكرة LPDDR4X-4267 SDRAM، المتوفرة في إصدارات 4GB و 8GB.
تساهم هذه التحسينات في تحقيق معايير أداء أفضل لنماذج YOLO26 على Raspberry Pi 5 مقارنة بـ Raspberry Pi 4. راجع جدول مقارنة سلسلة Raspberry Pi لمزيد من التفاصيل.
كيف يمكنني إعداد وحدة كاميرا Raspberry Pi للعمل مع Ultralytics YOLO26؟
هناك طريقتان لإعداد كاميرا Raspberry Pi لاستدلال YOLO26:
-
استخدام
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() -
استخدام بث TCP:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("tcp://127.0.0.1:8888")
للحصول على تعليمات إعداد مفصلة، قم بزيارة قسم الاستدلال باستخدام الكاميرا.