Link to this sectionدليل البدء السريع: Raspberry Pi مع Ultralytics YOLO26#
Raspberry Pi هو حاسوب صغير ميسور التكلفة يشغل Ultralytics YOLO26 لـ اكتشاف الكائنات في الوقت الفعلي عند الحافة (Edge) — دون الحاجة إلى وحدة معالجة رسومات (GPU). يرشدك هذا الدليل خلال عملية نشر YOLO26 على Raspberry Pi 4 و 5: بدءاً من تهيئة نظام التشغيل، وتثبيت Ultralytics، والتصدير إلى NCNN للحصول على أسرع استدلال (inference) على بنية ARM، وصولاً إلى تشغيل التنبؤات على بث كاميرا مباشر. كما يتضمن الدليل مقاييس أداء عبر عشر صيغ تصدير لتتمكن من اختيار التوازن الأمثل بين السرعة والدقة لجهازك.
انتقل إلى إعداد Ultralytics، أو التصدير إلى NCNN وتشغيل الاستدلال، أو مقاييس الأداء، أو استدلال الكاميرا.
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.
Link to this sectionما هو Raspberry Pi؟#
Raspberry Pi هو حاسوب صغير ميسور التكلفة ذو لوحة واحدة. لقد أصبح مشهوراً لمجموعة واسعة من المشاريع والتطبيقات، بدءاً من أتمتة المنازل للهواة وصولاً إلى الاستخدامات الصناعية. لوحات Raspberry Pi قادرة على تشغيل مجموعة متنوعة من أنظمة التشغيل، وتوفر دبابيس GPIO (دخل/خرج للأغراض العامة) التي تسمح بالتكامل السهل مع المستشعرات والمشغلات ومكونات الأجهزة الأخرى. تأتي هذه اللوحات في طرازات مختلفة بمواصفات متفاوتة، لكنها جميعاً تتشارك في فلسفة التصميم الأساسية المتمثلة في كونها منخفضة التكلفة وصغيرة الحجم ومتعددة الاستخدامات.
Link to this sectionمقارنة سلسلة 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 |
| أقصى استهلاك للطاقة | 2.5A@5V | 3A@5V | 5A@5V (مع تفعيل PD) |
Link to this sectionما هو Raspberry Pi OS؟#
Raspberry Pi OS (المعروف سابقاً باسم Raspbian) هو نظام تشغيل شبيه بـ Unix مبني على توزيعة Debian GNU/Linux لعائلة Raspberry Pi من الحواسيب الصغيرة ذات اللوحة الواحدة التي توزعها مؤسسة Raspberry Pi. نظام Raspberry Pi OS محسّن للغاية للعمل على Raspberry Pi مع وحدات معالجة مركزية ARM ويستخدم بيئة سطح مكتب LXDE معدلة مع مدير النوافذ Openbox. يخضع نظام Raspberry Pi OS للتطوير المستمر، مع التركيز على تحسين استقرار وأداء أكبر عدد ممكن من حزم Debian على Raspberry Pi.
Link to this sectionتثبيت Raspberry Pi OS على Raspberry Pi#
أول شيء يجب القيام به بعد الحصول على Raspberry Pi هو نسخ نظام Raspberry Pi OS على بطاقة micro-SD، وإدخالها في الجهاز والبدء في تشغيل نظام التشغيل. تابع وثائق البدء السريع المقدمة من Raspberry Pi لإعداد جهازك للاستخدام لأول مرة.
Link to this sectionإعداد Ultralytics#
يمكنك إعداد حزمة Ultralytics على Raspberry Pi بطريقتين لمشروعك القادم في رؤية الحاسوب:
Link to this sectionالبدء باستخدام 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، لذا يمكنك الانتقال مباشرة إلى تصدير نموذجك إلى NCNN.
Link to this sectionالبدء بدون Docker#
Link to this sectionتثبيت حزمة 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
Link to this sectionاستخدام NCNN على Raspberry Pi#
من بين جميع صيغ تصدير النماذج المدعومة من قبل 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")لمزيد من التفاصيل حول خيارات التصدير المدعومة، راجع دليل خيارات نشر النماذج.
Link to this sectionتحسينات أداء YOLO26 مقارنة بـ YOLO11#
صُمم YOLO26 خصيصاً للعمل على الأجهزة ذات الموارد المحدودة مثل Raspberry Pi 5. مقارنة بـ YOLO11n، يحقق YOLO26n زيادة بنسبة ~15% في عدد الإطارات في الثانية (FPS) (من 6.79 إلى 7.79) مع توفير mAP أعلى (40.1 مقابل 39.5) عند حجم إدخال 640 مع النماذج المصدرة بتنسيق ONNX على Raspberry Pi 5. يعرض الجدول والمخطط أدناه هذه المقارنة.
| النموذج | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|
| 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.
Link to this sectionمقاييس أداء YOLO26 على Raspberry Pi 5#
تم تشغيل مقاييس أداء YOLO26 بواسطة فريق Ultralytics على عشر صيغ نماذج مختلفة لقياس السرعة والدقة: PyTorch، TorchScript، ONNX، OpenVINO، TF SavedModel، TF GraphDef، TF Lite، MNN، NCNN، ExecuTorch. أُجريت المقاييس على جهاز Raspberry Pi 5 بدقة FP32 وبحجم صورة دخل افتراضي يبلغ 640.
Link to this sectionمخطط المقارنة#
لقد قمنا فقط بتضمين مقاييس أداء لنماذج YOLO26n و YOLO26s لأن أحجام النماذج الأخرى كبيرة جداً للعمل على Raspberry Pis ولا توفر أداءً مقبولاً.
Link to this sectionجدول مقارنة مفصل#
يمثل الجدول أدناه نتائج قياس الأداء لنموذجين مختلفين (YOLO26n, YOLO26s) عبر عشرة تنسيقات مختلفة (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch)، تعمل على Raspberry Pi 5، مما يمنحنا الحالة، الحجم، مقياس mAP50-95(B)، ووقت الاستنتاج لكل تركيبة.
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| 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
لا يتضمن وقت الاستدلال عمليات ما قبل وما بعد المعالجة.
Link to this sectionإعادة إنتاج نتائجنا#
لإعادة إنتاج مقاييس أداء 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 صورة تقييم).
Link to this sectionاستخدام كاميرا 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.
Link to this sectionاختبار الكاميرا#
نفذ الأمر التالي بعد توصيل الكاميرا بـ Raspberry Pi. يجب أن ترى بث فيديو مباشر من الكاميرا لمدة 5 ثوانٍ تقريباً.
rpicam-helloتعرف على المزيد حول استخدام rpicam-hello في وثائق Raspberry Pi الرسمية
Link to this sectionالاستنتاج باستخدام الكاميرا#
توجد طريقتان لاستخدام كاميرا Raspberry Pi لتشغيل الاستدلال على نماذج YOLO26.
يمكننا استخدام 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()راجع وثيقتنا حول مصادر الاستدلال إذا كنت ترغب في تغيير نوع دخل الصورة/الفيديو.
Link to this sectionأفضل الممارسات عند استخدام Raspberry Pi#
هناك بعض أفضل الممارسات التي يجب اتباعها لتحقيق أقصى قدر من الأداء على أجهزة Raspberry Pi التي تشغل YOLO26.
-
استخدم SSD
عند استخدام Raspberry Pi للعمل المستمر على مدار الساعة طوال أيام الأسبوع، يوصى باستخدام SSD للنظام لأن بطاقة SD لن تكون قادرة على تحمل عمليات الكتابة المستمرة وقد تتعطل. مع موصل PCIe المدمج في Raspberry Pi 5، يمكنك الآن توصيل وحدات SSD باستخدام محول مثل NVMe Base for Raspberry Pi 5.
-
التثبيت بدون واجهة رسومية (GUI)
عند تثبيت نظام Raspberry Pi OS، يمكنك اختيار عدم تثبيت بيئة سطح المكتب (Raspberry Pi OS Lite)، وهذا يمكن أن يوفر القليل من ذاكرة الوصول العشوائي (RAM) على الجهاز، مما يترك مساحة أكبر لمعالجة الرؤية الحاسوبية.
-
كسر سرعة 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
Link to this sectionالخطوات التالية#
لقد قمت بإعداد YOLO26 بنجاح على Raspberry Pi الخاص بك. للمضي قدماً، استكشف وضع التنبؤ (Predict mode) للحصول على مزيد من خيارات الاستدلال، أو وضع التصدير (Export mode) للحصول على صيغ نشر إضافية، أو دليل NVIDIA Jetson إذا كنت بحاجة إلى مزيد من القوة الحسابية عند الحافة. للحصول على الوثائق الكاملة، تفضل بزيارة وثائق Ultralytics YOLO26.
Link to this sectionشكر وتقدير#
تم إنشاء هذا الدليل في البداية بواسطة Daan Eeltink لمؤسسة كشمير العالمية، وهي منظمة مكرسة لاستخدام YOLO للحفاظ على الأنواع المهددة بالانقراض. نحن نقدر عملهم الرائد وتركيزهم التعليمي في مجال تقنيات كشف الأشياء.
لمزيد من المعلومات حول أنشطة مؤسسة كشمير العالمية، يمكنك زيارة موقعهم الإلكتروني.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني إعداد 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.
Link to this sectionلماذا يجب أن أستخدم تنسيق NCNN الخاص بـ Ultralytics YOLO26 على Raspberry Pi لمهام الذكاء الاصطناعي؟#
تُعد صيغة NCNN الخاصة بـ Ultralytics YOLO26 محسنة للغاية للمنصات المحمولة والمدمجة، مما يجعلها مثالية لتشغيل مهام الذكاء الاصطناعي على أجهزة Raspberry Pi. تعمل NCNN على تعظيم أداء الاستدلال من خلال الاستفادة من بنية ARM، مما يوفر معالجة أسرع وأكثر كفاءة مقارنة بالصيغ الأخرى. لمزيد من التفاصيل حول صيغ التصدير المدعومة، راجع خيارات تصدير النماذج.
Link to this sectionكيف يمكنني تحويل نموذج 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.
Link to this sectionما هي الاختلافات في الأجهزة بين 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.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 لمزيد من التفاصيل.
Link to this sectionكيف يمكنني إعداد وحدة كاميرا 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")
للحصول على تعليمات إعداد مفصلة، قم بزيارة قسم الاستدلال باستخدام الكاميرا.