دليل البدء السريع: Raspberry Pi مع Ultralytics YOLO26#
إن Raspberry Pi حاسوب صغير ومنخفض التكلفة، ويشغّل Ultralytics YOLO26 لتنفيذ كشف الأجسام في الزمن الحقيقي على الأجهزة الطرفية، دون الحاجة إلى GPU. يرشدك هذا الدليل إلى نشر YOLO26 على Raspberry Pi 4 و5: تثبيت نظام التشغيل، وتثبيت Ultralytics، والتصدير إلى NCNN للحصول على أسرع استدلال على ARM، وتشغيل التنبؤات على بث مباشر من الكاميرا. ويتضمن أيضًا اختبارات معيارية للأداء عبر ثمانية تنسيقات تصدير، لتتمكن من اختيار أفضل مفاضلة بين السرعة والدقة بما يناسب جهازك.
انتقل إلى إعداد Ultralytics، أو التصدير إلى NCNN وتشغيل الاستدلال، أو الاختبارات المعيارية، أو الاستدلال باستخدام الكاميرا.
شاهد: تحديثات وتحسينات Raspberry Pi 5.
اختُبر هذا الدليل على 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 | Broadcom BCM2711، نظام على شريحة Cortex-A72 64Bit | Broadcom BCM2712، نظام على شريحة Cortex-A76 64Bit |
| أقصى تردد لـ CPU | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | VideoCore IV | VideoCore VI | VideoCore VII |
| أقصى تردد لـ GPU | 400MHz | 500MHz | 800MHz |
| الذاكرة | ذاكرة SDRAM من نوع LPDDR2 بسعة 1GB | ذاكرة SDRAM من نوع LPDDR4-3200 بسعات 1GB و2GB و4GB و8GB | ذاكرة SDRAM من نوع LPDDR4X-4267 بسعات 2GB و4GB و8GB و16GB |
| PCIe | غير متاح | غير متاح | واجهة PCIe 2.0 واحدة |
| أقصى استهلاك للطاقة | 2.5A@5V | 3A@5V | 5A@5V (مع تفعيل PD) |
ما هو Raspberry Pi OS؟#
Raspberry Pi OS (المعروف سابقًا باسم Raspbian) هو نظام تشغيل شبيه بـ Unix، يستند إلى توزيعة Debian GNU/Linux لعائلة Raspberry Pi من الحواسيب الصغيرة ذات اللوحة الواحدة، التي توزعها مؤسسة Raspberry Pi Foundation. جرى تحسين Raspberry Pi OS بدرجة كبيرة للعمل على Raspberry Pi المزود بوحدات معالجة مركزية ARM، ويستخدم بيئة سطح مكتب خفيفة تعمل افتراضيًا على Wayland في Raspberry Pi 4 و5. يخضع Raspberry Pi OS لتطوير مستمر، مع التركيز على تحسين استقرار أكبر عدد ممكن من حزم Debian وأدائها على Raspberry Pi.
تثبيت Raspberry Pi OS على Raspberry Pi#
أول ما ينبغي فعله بعد الحصول على Raspberry Pi هو تثبيت Raspberry Pi OS على بطاقة micro-SD، ثم إدخالها في الجهاز وتشغيله للإقلاع إلى نظام التشغيل. اتبع وثائق البدء المفصلة من Raspberry Pi لإعداد جهازك للاستخدام لأول مرة.
إعداد Ultralytics#
يمكنك إعداد حزمة Ultralytics على Raspberry Pi بطريقتين لمشروع الرؤية الحاسوبية التالي:
البدء باستخدام Docker#
أسرع طريقة لبدء استخدام Ultralytics YOLO26 على Raspberry Pi هي تشغيل صورة Docker جاهزة لـ Raspberry Pi.
نفّذ الأمر أدناه لسحب حاوية Docker وتشغيلها على Raspberry Pi. تستند هذه الحاوية إلى صورة 3.13-slim-trixie الرسمية من Python، التي تشغّل Debian 13 مع Python 3.13.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tتتضمن صورة Docker حزمة Ultralytics مسبقًا، لذا يمكنك الانتقال مباشرةً إلى تصدير نموذجك إلى NCNN.
البدء دون Docker#
تثبيت حزمة Ultralytics#
سنثبّت هنا حزمة Ultralytics على Raspberry Pi. تُثبّت تبعيات التصدير لتنسيقات مثل NCNN تلقائيًا عند تصدير نموذج PyTorch للمرة الأولى، لذا لا نحتاج هنا إلا إلى الحزمة الأساسية.
-
حدّث قائمة الحزم، وثبّت pip، ثم رقِّه إلى أحدث إصدار
sudo apt update sudo apt install python3-pip -y pip install -U pip -
ثبّت حزمة pip المسماة
ultralyticspip install ultralytics -
أعِد تشغيل الجهاز
sudo reboot
استخدام NCNN على Raspberry Pi#
من بين جميع تنسيقات التصدير التي تدعمها Ultralytics، يوفّر NCNN أفضل أداء للاستدلال على أجهزة Raspberry Pi، لأنه محسّن بدرجة كبيرة للمنصات المحمولة والمضمنة، مثل الأجهزة ذات بنية ARM. حوّل نموذج YOLO26n بصيغة PyTorch إلى NCNN، ثم نفّذ الاستدلال باستخدام النموذج المُصدَّر:
from ultralytics import YOLO
# تحميل نموذج YOLO26n بصيغة PyTorch
model = YOLO("yolo26n.pt")
# تصدير النموذج بتنسيق NCNN
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# تحميل نموذج NCNN المُصدَّر
ncnn_model = YOLO("yolo26n_ncnn_model")
# تنفيذ الاستدلال
results = ncnn_model("https://ultralytics.com/images/bus.jpg")لمزيد من التفاصيل حول خيارات التصدير المدعومة، راجع دليل خيارات نشر النموذج.
تحسينات أداء 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.
معايير أداء YOLO26 على Raspberry Pi 5#
أجرى فريق Ultralytics اختبارات الأداء لـ YOLO26 باستخدام ثمانية تنسيقات نماذج مختلفة لقياس السرعة والدقة: PyTorch وTorchScript وONNX وOpenVINO وLiteRT وMNN وNCNN وExecuTorch. أُجريت الاختبارات على Raspberry Pi 5 بدقة FP32، مع حجم صورة الإدخال الافتراضي البالغ 640.
رسم بياني للمقارنة#
أدرجنا اختبارات الأداء لنموذجي YOLO26n وYOLO26s فقط، لأن أحجام النماذج الأخرى أكبر من أن تعمل على أجهزة Raspberry Pi، كما أنها لا تقدم أداءً جيدًا.
جدول مقارنة مفصل#
يمثل الجدول أدناه نتائج اختبارات الأداء لنموذجين مختلفين (YOLO26n وYOLO26s) عبر ثمانية تنسيقات مختلفة (PyTorch وTorchScript وONNX وOpenVINO وLiteRT وMNN وNCNN وExecuTorch) على Raspberry Pi 5. ويعرض الحالة والحجم ومقياس mAP50-95(B) ووقت الاستدلال لكل توليفة.
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
تم قياس الأداء باستخدام Ultralytics 8.4.108
لا يشمل وقت الاستدلال المعالجة المسبقة أو اللاحقة.
إعادة إنتاج نتائجنا#
لإعادة إجراء اختبارات أداء Ultralytics أعلاه على جميع تنسيقات التصدير، شغّل هذا الرمز:
from ultralytics import YOLO
# تحميل نموذج YOLO26n بصيغة PyTorch
model = YOLO("yolo26n.pt")
# اختبر سرعة YOLO26n ودقته على مجموعة البيانات COCO128 بجميع تنسيقات التصدير
results = model.benchmark(data="coco128.yaml", imgsz=640)لاحظ أن نتائج الاختبارات المعيارية قد تختلف بحسب تكوين الأجهزة والبرامج الدقيق للنظام، وكذلك بحسب الحمل الحالي على النظام عند تشغيل الاختبارات. للحصول على نتائج موثوقة قدر الإمكان، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور، مثل data='coco.yaml' (5000 صورة تحقق).
لا يتوفر تصدير format=litert (عبر litert-torch) إلا على 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، وكذلك كيفية البدء باستخدام وحدات كاميرا Raspberry Pi.
يستخدم Raspberry Pi 5 موصلات CSI أصغر من تلك الموجودة في Raspberry Pi 4 (22 سنًا مقابل 15 سنًا)، لذا ستحتاج إلى كابل محول من 15 سنًا إلى 22 سنًا لتوصيل كاميرا Raspberry Pi.
اختبار الكاميرا#
نفّذ الأمر التالي بعد توصيل الكاميرا بـ Raspberry Pi. من المفترض أن يظهر بث فيديو مباشر من الكاميرا لمدة 5 ثوانٍ تقريبًا.
rpicam-helloتعرّف على المزيد حول استخدام rpicam-hello في وثائق Raspberry Pi الرسمية
الاستدلال باستخدام الكاميرا#
توجد طريقتان لاستخدام كاميرا Raspberry Pi لإجراء الاستدلال على نماذج YOLO26.
يمكننا استخدام picamera2، المثبّت مسبقًا مع Raspberry Pi OS، للوصول إلى الكاميرا وإجراء الاستدلال على نماذج YOLO26.
import cv2
from picamera2 import Picamera2
from ultralytics import YOLO
# تهيئة 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()
# تحميل نموذج YOLO26
model = YOLO("yolo26n.pt")
while True:
# التقاط الإطارات واحدًا تلو الآخر
frame = picam2.capture_array()
# إجراء استدلال YOLO26 على الإطار
results = model(frame)
# تصور النتائج على الإطار
annotated_frame = results[0].plot()
# عرض الإطار الناتج
cv2.imshow("Camera", annotated_frame)
# إنهاء الحلقة إذا ضُغط على 'q'
if cv2.waitKey(1) == ord("q"):
break
# تحرير الموارد وإغلاق النوافذ
cv2.destroyAllWindows()راجع مستندنا حول مصادر الاستدلال إذا أردت تغيير نوع مدخل الصورة أو الفيديو
أفضل الممارسات عند استخدام Raspberry Pi#
هناك بعض أفضل الممارسات التي ينبغي اتباعها لتحقيق أقصى أداء على أجهزة Raspberry Pi التي تشغّل YOLO26.
-
استخدم SSD
عند استخدام Raspberry Pi على مدار الساعة طوال أيام الأسبوع، يُوصى باستخدام SSD للنظام، لأن بطاقة SD لا تتحمل عمليات الكتابة المستمرة وقد تتعطل. وبفضل موصل PCIe المدمج في Raspberry Pi 5، يمكنك الآن توصيل أقراص SSD باستخدام محول مثل NVMe Base for Raspberry Pi 5.
-
التثبيت دون واجهة رسومية
عند تثبيت Raspberry Pi OS، يمكنك اختيار عدم تثبيت بيئة سطح المكتب (Raspberry Pi OS Lite)، ما يوفر قدرًا من ذاكرة RAM على الجهاز ويتيح مساحة أكبر لمعالجة الرؤية الحاسوبية.
-
رفع تردد Raspberry Pi
إذا أردت زيادة طفيفة في الأداء عند تشغيل نماذج Ultralytics YOLO26 على Raspberry Pi 5، يمكنك رفع تردد CPU من قيمته الأساسية البالغة 2.4GHz إلى 3.0GHz، ورفع تردد 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
الخطوات التالية#
لقد أعددت YOLO26 بنجاح على Raspberry Pi. لمتابعة التعمق، استكشف وضع التنبؤ لمزيد من خيارات الاستدلال، أو وضع التصدير لمزيد من تنسيقات النشر، أو دليل NVIDIA Jetson إذا كنت بحاجة إلى قدرة حوسبة أكبر على الحافة. للاطلاع على الوثائق الكاملة، تفضّل بزيارة وثائق Ultralytics YOLO26.
الشكر والاقتباسات#
أُعد هذا الدليل في الأصل بواسطة Daan Eeltink لصالح Kashmir World Foundation، وهي مؤسسة مكرسة لاستخدام YOLO في الحفاظ على الأنواع المهددة بالانقراض. ونُقدّر عمل المؤسسة الريادي وتركيزها التعليمي في مجال تقنيات اكتشاف الأجسام.
لمزيد من المعلومات حول أنشطة Kashmir World Foundation، يمكنك زيارة موقعها الإلكتروني.
الأسئلة الشائعة#
لإعداد Ultralytics YOLO26 على Raspberry Pi دون Docker، اتبع الخطوات التالية:
- حدّث قائمة الحزم وثبّت
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - ثبّت حزمة Ultralytics:
pip install ultralytics - أعد تشغيل الجهاز لتطبيق التغييرات:
sudo reboot
للاطلاع على التعليمات المفصلة، راجع قسم البدء دون Docker.
- حدّث قائمة الحزم وثبّت
يتميز تنسيق NCNN الخاص بـ Ultralytics YOLO26 بتحسين كبير للمنصات المحمولة والمضمنة، ما يجعله مثاليًا لتشغيل مهام الذكاء الاصطناعي على أجهزة Raspberry Pi. ويعزز NCNN أداء الاستدلال إلى أقصى حد بالاستفادة من بنية ARM، موفرًا معالجة أسرع وأكثر كفاءة مقارنةً بالتنسيقات الأخرى. لمزيد من التفاصيل حول تنسيقات التصدير المدعومة، راجع خيارات تصدير النموذج.
يمكنك تحويل نموذج YOLO26 بصيغة PyTorch إلى تنسيق NCNN باستخدام أوامر Python أو CLI:
مثالfrom ultralytics import YOLO # تحميل نموذج YOLO26n بصيغة PyTorch model = YOLO("yolo26n.pt") # تصدير النموذج بتنسيق NCNN model.export(format="ncnn") # creates 'yolo26n_ncnn_model' # تحميل نموذج NCNN المُصدَّر ncnn_model = YOLO("yolo26n_ncnn_model") # تنفيذ الاستدلال results = ncnn_model("https://ultralytics.com/images/bus.jpg")لمزيد من التفاصيل، راجع قسم استخدام NCNN على Raspberry Pi.
تشمل الفروق الرئيسية ما يلي:
- CPU: يستخدم Raspberry Pi 4 نظامًا على شريحة Broadcom BCM2711 بمعمارية Cortex-A72 64-bit، بينما يستخدم Raspberry Pi 5 نظامًا على شريحة Broadcom BCM2712 بمعمارية Cortex-A76 64-bit.
- أقصى تردد لـ CPU: يبلغ الحد الأقصى للتردد في Raspberry Pi 4 مقدار 1.8GHz، بينما يصل في Raspberry Pi 5 إلى 2.4GHz.
- الذاكرة: توفر Raspberry Pi 4 ذاكرة SDRAM من نوع LPDDR4-3200 بسعة تصل إلى 8GB، بينما يأتي Raspberry Pi 5 بذاكرة SDRAM من نوع LPDDR4X-4267، والمتوفرة بإصدارات بسعات 2GB و4GB و8GB و16GB.
تسهم هذه التحسينات في تحقيق نتائج أفضل في اختبارات أداء نماذج YOLO26 على Raspberry Pi 5 مقارنةً بـ Raspberry Pi 4. راجع جدول مقارنة سلسلة Raspberry Pi لمزيد من التفاصيل.
توجد طريقتان لإعداد كاميرا 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")
للحصول على إرشادات الإعداد التفصيلية، تفضل بزيارة قسم الاستدلال باستخدام الكاميرا.
-