كيفية تشغيل Ultralytics YOLO26 على Raspberry Pi باستخدام Coral Edge TPU#
يُعد Raspberry Pi منصة منخفضة استهلاك الطاقة ومعقولة التكلفة لتشغيل الرؤية الحاسوبية على الحافة، لكن الاستدلال على الجهاز بطيء حتى مع التنسيقات المحسّنة مثل ONNX أو OpenVINO. يؤدي إقران Pi بمعالج Coral Edge TPU مساعد إلى نقل الاستدلال إلى أجهزة مخصصة وتسريعه بدرجة كبيرة. يوضح هذا الدليل كيفية تثبيت بيئة التشغيل، وتصدير نموذج Ultralytics YOLO26 إلى تنسيق Edge TPU، وتشغيل الاستدلال المسرّع.
شاهد: كيفية تنفيذ الاستدلال على Raspberry Pi باستخدام Google Coral Edge TPU
لماذا تستخدم Coral Edge TPU؟#
Coral Edge TPU جهاز صغير الحجم يضيف معالج Edge TPU مساعدًا إلى نظامك، ما يتيح استدلال تعلّم آلي منخفض الطاقة وعالي الأداء لنماذج TensorFlow Lite. وهو خيار مناسب جدًا لعمليات النشر المضمنة والمتنقلة التي لا يستطيع فيها CPU وحده مواكبة المتطلبات:
- استدلال أسرع — يسرّع Edge TPU النماذج المكمّمة بدرجة تفوق بكثير أداء CPU في Raspberry Pi بمفرده.
- استهلاك منخفض للطاقة — يوفر معدل نقل عالٍ لكل واط، ما يجعله مثاليًا لعمليات النشر التي تعمل بالبطاريات أو بالطاقة الشمسية.
- التوصيل والتشغيل — يتصل مسرّع USB عبر USB 3.0، لذا لا حاجة إلى دمج أجهزة إضافية.
دليل Coral الرسمي قديم: لم تعد إصدارات بيئة التشغيل الأصلية من Coral تعمل مع إصدارات بيئة التشغيل الحالية لـ TensorFlow Lite، ولم يشهد المشروع أي تحديثات بين عامي 2021 و2025. يستخدم هذا الدليل بيئة تشغيل Edge TPU قيد الصيانة الفعلية وأحدث إصدار من tflite-runtime، لضمان عمل المسرّع على تثبيت حالي لنظام Raspberry Pi OS.
المتطلبات الأساسية#
- Raspberry Pi 4B (يُوصى بذاكرة 2GB أو أكثر) أو Raspberry Pi 5 (موصى به)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) مع واجهة سطح المكتب (موصى به)
- Coral USB Accelerator
- منصة Linux بمعمارية x86_64 (Google Colab، أو جهاز Linux بمعمارية x86_64، أو حاوية Docker من Ultralytics على مضيف بمعمارية x86_64) لتصدير النموذج، إذ لا يتوفر مُصرّف Edge TPU إلا على Linux بمعمارية x86_64
يفترض هذا الدليل أن لديك تثبيتًا عاملًا لنظام Raspberry Pi OS مع تثبيت ultralytics وتبعياته. إن لم يكن الأمر كذلك، فاتبع دليل البدء السريع أولًا.
بعد تجهيز المتطلبات الأساسية، يتكوّن سير العمل من ثلاث خطوات: تثبيت بيئة تشغيل Edge TPU على Pi، وتصدير النموذج على جهاز Linux بمعمارية x86_64، ثم تشغيل الاستدلال مجددًا على Pi.
تثبيت بيئة تشغيل Edge TPU#
تتوفر بيئة التشغيل بإصدارات متعددة، لذا اختر الإصدار المتوافق مع نظام التشغيل لديك. يشغّل إصدار التردد العالي Edge TPU بسرعة ساعة أعلى لتحسين الأداء، لكنه قد يؤدي إلى خفض الأداء بسبب الحرارة — استخدم نوعًا من التبريد إذا اخترته.
| Raspberry Pi OS | وضع التردد العالي | الإصدار المطلوب تنزيله |
|---|---|---|
| Bullseye 32bit | لا | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64bit | لا | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32bit | نعم | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64bit | نعم | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32bit | لا | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64bit | لا | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32bit | نعم | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64bit | نعم | libedgetpu1-max_ ... .bookworm_arm64.deb |
نزّل أحدث إصدار من هنا، ثم ثبّت الحزمة .deb:
sudo dpkg -i path/to/package.debبعد تثبيت بيئة التشغيل، صِل Coral Edge TPU بمنفذ USB 3.0 في Raspberry Pi ليصبح مفعول قاعدة udev الجديدة ساريًا.
أزل أي بيئة تشغيل موجودة أولًا
إذا كانت بيئة تشغيل Coral Edge TPU مثبتة لديك بالفعل، فأزل تثبيتها قبل تثبيت إصدار جديد.
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-maxتصدير النموذج إلى تنسيق Edge TPU#
لاستخدام Edge TPU، حوّل النموذج إلى تنسيق متوافق. نفّذ التصدير على Linux بمعمارية x86_64 — باستخدام Google Colab، أو جهاز Linux بمعمارية x86_64، أو حاوية Docker الرسمية من Ultralytics على مضيف بمعمارية x86_64، أو منصة Ultralytics — إذ لا يتوفر مُصرّف Edge TPU إلا على Linux بمعمارية x86_64. راجع وضع التصدير للاطلاع على الوسائط المتاحة.
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("path/to/model.pt") # حمّل نموذجًا رسميًا أو نموذجًا مخصصًا
# صدّر النموذج
model.export(format="edgetpu")يُحفظ النموذج المُصدّر في المجلد <model_name>_saved_model/ باسم <model_name>_full_integer_quant_edgetpu.tflite.
يجب أن ينتهي اسم الملف بـ _edgetpu.tflite. إذا أعدت تسميته إلى اسم آخر، فسيحمّله Ultralytics كنموذج LiteRT عادي (.tflite) بدلًا من اكتشاف Edge TPU، ولن يُستخدم المسرّع.
تشغيل الاستدلال على Edge TPU#
قبل تشغيل النموذج، ثبّت المكتبات المناسبة على Raspberry Pi. إذا كان TensorFlow مثبتًا بالفعل، فأزل تثبيته أولًا:
pip uninstall tensorflow tensorflow-aarch64ثم ثبّت tflite-runtime أو حدّثه:
pip install -U tflite-runtimeيمكنك الآن تشغيل الاستدلال:
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # حمّل نموذجًا رسميًا أو نموذجًا مخصصًا
# تشغيل التنبؤ
model.predict("path/to/source.png")اعثر على التفاصيل الكاملة لوضع التنبؤ في صفحة التنبؤ.
إذا كان لديك أكثر من وحدة Edge TPU، يمكنك اختيار وحدة محددة باستخدام الوسيط device.
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # حمّل نموذجًا رسميًا أو نموذجًا مخصصًا
# تشغيل التنبؤ
model.predict("path/to/source.png") # يستخدم الاستدلال الوحدة TPU الأولى افتراضيًا
model.predict("path/to/source.png", device="tpu:0") # اختيار الوحدة TPU الأولى
model.predict("path/to/source.png", device="tpu:1") # اختيار الوحدة TPU الثانيةالمعايير المرجعية#
قِيسَت الأرقام أدناه باستخدام Raspberry Pi OS Bookworm 64-bit ووحدة USB Coral Edge TPU. وهي تعرض زمن الاستدلال فقط (باستثناء المعالجة المسبقة واللاحقة)، وتوفر مرجعًا نسبيًا للتسريع الذي يقدمه Edge TPU عبر طرز Pi وأوضاعها.
سُجّلت هذه الاختبارات المعيارية باستخدام نماذج YOLOv8. تختلف أزمنة الاستدلال المطلقة حسب إصدار النموذج وحجم الصورة، لكن مكاسب السرعة النسبية بين طرز Pi وأوضاع سرعة الساعة تظل ثابتة.
| حجم الصورة | النموذج | زمن الاستدلال القياسي (ms) | زمن الاستدلال بالتردد العالي (ms) |
|---|---|---|---|
| 320 | YOLOv8n | 32.2 | 26.7 |
| 320 | YOLOv8s | 47.1 | 39.8 |
| 512 | YOLOv8n | 73.5 | 60.7 |
| 512 | YOLOv8s | 149.6 | 125.3 |
في المتوسط:
- يكون Raspberry Pi 5 أسرع بنسبة 22% من Raspberry Pi 4B عند استخدام الوضع القياسي.
- يكون Raspberry Pi 5 أسرع بنسبة 30.2% من Raspberry Pi 4B عند استخدام وضع التردد العالي.
- يكون وضع التردد العالي أسرع بنسبة 28.4% من الوضع القياسي.
الخلاصة#
تحوّل Coral Edge TPU جهاز Raspberry Pi إلى جهاز استدلال كفء ومنخفض الطاقة لتشغيل Ultralytics YOLO26. صدّر النموذج على جهاز Linux بمعمارية x86_64، واحتفظ باللاحقة _edgetpu.tflite، وشغّله باستخدام tflite-runtime على Pi للحصول على استدلال مسرّع على الحافة. لمزيد من خيارات النشر، راجع دليل Raspberry Pi.
الأسئلة الشائعة#
Coral Edge TPU جهاز صغير الحجم يضيف معالج Edge TPU مساعدًا إلى نظامك. يتيح هذا المعالج المساعد استدلال تعلّم آلي منخفض الطاقة وعالي الأداء، مع تحسين خاص لنماذج TensorFlow Lite. ويسرّع الاستدلال على Raspberry Pi إلى مستوى يتجاوز أداء CPU بمفرده بكثير، ما يعزز أداء نماذج Ultralytics YOLO26 بدرجة كبيرة.
نزّل حزمة
.debالمناسبة لإصدار Raspberry Pi OS لديك من هذا الرابط، ثم ثبّتها:sudo dpkg -i path/to/package.debاحرص على إزالة تثبيت أي إصدارات سابقة من بيئة تشغيل Coral Edge TPU باتباع الخطوات الواردة في قسم تثبيت بيئة تشغيل Edge TPU.
نعم. نفّذ التصدير على Google Colab، أو جهاز Linux بمعمارية x86_64، أو باستخدام حاوية Docker من Ultralytics؛ ويمكنك أيضًا استخدام منصة Ultralytics. إليك كيفية التصدير باستخدام Python وCLI:
تصدير النموذجfrom ultralytics import YOLO # تحميل نموذج model = YOLO("path/to/model.pt") # حمّل نموذجًا رسميًا أو نموذجًا مخصصًا # صدّر النموذج model.export(format="edgetpu")لمزيد من المعلومات، راجع توثيق وضع التصدير.
إذا كان TensorFlow مثبتًا وتحتاج إلى التبديل إلى
tflite-runtime، فأزل تثبيت TensorFlow أولًا:pip uninstall tensorflow tensorflow-aarch64ثم ثبّت
tflite-runtimeأو حدّثه:pip install -U tflite-runtimeللحصول على تعليمات مفصلة، راجع قسم تشغيل الاستدلال على Edge TPU.
بعد تصدير نموذج YOLO26 إلى تنسيق متوافق مع Edge TPU، شغّل الاستدلال باستخدام المقتطفات التالية. يجب أن يحتفظ ملف النموذج باللاحقة
_edgetpu.tfliteلكي يحمّله Ultralytics على Edge TPU:تشغيل النموذجfrom ultralytics import YOLO # تحميل نموذج model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # حمّل نموذجًا رسميًا أو نموذجًا مخصصًا # تشغيل التنبؤ model.predict("path/to/source.png")تجد التفاصيل الشاملة حول وضع التنبؤ في صفحة التنبؤ.