دليل البدء السريع: Raspberry Pi مع Ultralytics YOLO26
يقدم هذا الدليل الشامل شرحًا تفصيليًا لنشر Ultralytics YOLO26 على أجهزة Raspberry Pi. بالإضافة إلى ذلك، يعرض معايير الأداء لتوضيح قدرات YOLO26 على هذه الأجهزة الصغيرة والقوية.
شاهد: تحديثات وتحسينات 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 SoC | Broadcom BCM2711، Cortex-A72 64Bit SoC | Broadcom BCM2712، Cortex-A76 64Bit SoC |
| الحد الأقصى لتردد وحدة المعالجة المركزية (CPU) | 1.4 جيجاهرتز | 1.8 جيجاهرتز | 2.4 جيجاهرتز (GHz) |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| التردد الأقصى لوحدة معالجة الرسوميات GPU | 400 ميجاهرتز | 500 ميغاهرتز | 800 ميجاهرتز |
| الذاكرة | ذاكرة وصول عشوائي SDRAM من نوع LPDDR2 سعة 1 جيجابايت | ذاكرة وصول عشوائي SDRAM من نوع LPDDR4-3200 سعة 1 جيجابايت، 2 جيجابايت، 4 جيجابايت، 8 جيجابايت | ذاكرة وصول عشوائي SDRAM من نوع LPDDR4X-4267 بسعة 4 جيجابايت، 8 جيجابايت |
| PCIe | غير متاح | غير متاح | منفذ 1xPCIe 2.0 |
| أقصى سحب للطاقة | 2.5 أمبير عند 5 فولت (2.5A@5V) | 3 أمبير عند 5 فولت (3A@5V) | 5A@5V (مُمكّن PD) |
ما هو نظام التشغيل Raspberry Pi؟
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.
تثبيت Flash 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. يعتمد هذا على صورة 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تثبيت
ultralyticsحزمة pip مع تبعيات اختيارية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")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'
# Run inference with the exported model
yolo predict model='yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
نصيحة
لمزيد من التفاصيل حول خيارات التصدير المدعومة، قم بزيارة صفحة وثائق Ultralytics حول خيارات النشر.
معايير أداء YOLO26 على Raspberry Pi 5
تم تشغيل معايير أداء YOLO26 بواسطة فريق Ultralytics على عشرة تنسيقات نماذج مختلفة لقياس السرعة والدقة: PyTorch و TorchScript و ONNX و OpenVINO و TF SavedModel و TF GraphDef و TF Lite و MNN و NCNN و ExecuTorch. تم تشغيل المعايير على Raspberry Pi 5 بدقة FP32 precision مع حجم صورة الإدخال الافتراضي 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) ووقت الاستدلال لكل تركيبة.
الأداء
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | 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 |
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (مللي ثانية / صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 19.5 | 0.5740 | 836.54 |
| TorchScript | ✅ | 36.8 | 0.5665 | 1032.25 |
| ONNX | ✅ | 36.5 | 0.5665 | 351.96 |
| OpenVINO | ✅ | 36.7 | 0.5654 | 158.6 |
| TF SavedModel | ✅ | 92.2 | 0.5665 | 507.6 |
| TF GraphDef | ✅ | 36.5 | 0.5665 | 525.64 |
| TF Lite | ✅ | 36.9 | 0.5665 | 805.3 |
| MNN | ✅ | 36.4 | 0.5644 | 236.47 |
| NCNN | ✅ | 36.4 | 0.5697 | 168.47 |
| ExecuTorch | ✅ | 36.5 | 0.5665 | 388.72 |
تم قياس الأداء باستخدام 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)
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
yolo benchmark model=yolo26n.pt data=coco128.yaml imgsz=640
لاحظ أن نتائج الاختبارات المعيارية قد تختلف بناءً على التكوين الدقيق للأجهزة والبرامج للنظام، بالإضافة إلى عبء العمل الحالي للنظام وقت تشغيل الاختبارات المعيارية. للحصول على النتائج الأكثر موثوقية، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور، على سبيل المثال، data='coco.yaml' (5000 صورة تحقق).
استخدم كاميرا Raspberry Pi
عند استخدام Raspberry Pi لمشاريع الرؤية الحاسوبية، قد يكون من الضروري الحصول على بث الفيديو في الوقت الفعلي لإجراء الاستدلال. يسمح موصل MIPI CSI المدمج على Raspberry Pi بتوصيل وحدات كاميرا Raspberry Pi الرسمية. في هذا الدليل، استخدمنا وحدة كاميرا Raspberry Pi 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()
نحن بحاجة إلى بدء دفق TCP مع rpicam-vid من الكاميرا المتصلة حتى نتمكن من استخدام عنوان URL لهذا التدفق كمدخل عندما نستدل لاحقًا. قم بتنفيذ الأمر التالي لبدء تدفق TCP.
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
تعلم المزيد عن rpicam-vid الاستخدام في وثائق Raspberry Pi الرسمية
مثال
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolo26n.pt source="tcp://127.0.0.1:8888"
نصيحة
راجع وثيقتنا حول مصادر الاستدلال إذا كنت ترغب في تغيير نوع إدخال الصورة/الفيديو
أفضل الممارسات عند استخدام Raspberry Pi
هناك بعض أفضل الممارسات التي يجب اتباعها لتمكين أقصى أداء على أجهزة Raspberry Pi التي تشغل YOLO26.
استخدم SSD
عند استخدام Raspberry Pi للاستخدام المستمر على مدار الساعة طوال أيام الأسبوع، يوصى باستخدام SSD للنظام لأن بطاقة SD لن تكون قادرة على تحمل عمليات الكتابة المستمرة وقد تتعطل. مع موصل PCIe المدمج في Raspberry Pi 5، يمكنك الآن توصيل محركات أقراص SSD باستخدام محول مثل NVMe Base for Raspberry Pi 5.
تثبيت Flash بدون واجهة مستخدم رسومية (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
كيف يمكنني تدريب YOLOv5 على مجموعة البيانات المخصصة الخاصة بي؟
لقد قمت بإعداد YOLO بنجاح على Raspberry Pi الخاص بك. لمزيد من التعلم والدعم، قم بزيارة وثائق Ultralytics YOLO26 و مؤسسة كشمير العالمية.
شكر وتقدير واقتباسات
تم إنشاء هذا الدليل في الأصل بواسطة Daan Eeltink لمؤسسة Kashmir World Foundation، وهي منظمة مكرسة لاستخدام 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")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'
# Run inference with the exported model
yolo predict model='yolo26n_ncnn_model' source='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.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 لمزيد من التفاصيل.
كيف يمكنني إعداد وحدة كاميرا 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")
للحصول على إرشادات مفصلة حول الإعداد، تفضل بزيارة قسم الاستدلال باستخدام الكاميرا.