كيفية تشغيل Ultralytics YOLO26 على Raspberry Pi باستخدام Coral Edge TPU#
يعتبر جهاز Raspberry Pi منصة اقتصادية وموفرة للطاقة لتشغيل رؤية الكمبيوتر على الأجهزة الطرفية، ولكن الاستدلال على الجهاز يكون بطيئاً حتى مع التنسيقات المحسنة مثل ONNX أو OpenVINO. إن إقران Raspberry Pi بمعالج مساعد Coral Edge TPU ينقل عملية الاستدلال إلى عتاد مخصص ويسرعها بشكل كبير. يوضح لك هذا الدليل كيفية تثبيت بيئة التشغيل، وتصدير نموذج Ultralytics YOLO26 إلى تنسيق Edge TPU، وتشغيل الاستدلال المُسَرَّع.
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
لماذا تستخدم Coral Edge TPU؟#
إن Coral Edge TPU هو جهاز مدمج يضيف معالجاً مساعداً Edge TPU إلى نظامك، مما يتيح استنتاج ML عالي الأداء ومنخفض الطاقة لنماذج TensorFlow Lite. وهو خيار ممتاز لعمليات النشر المضمنة والمحمولة حيث لا يمكن لوحدة المعالجة المركزية (CPU) وحدها مواكبة المتطلبات:
- استنتاج أسرع — يقوم Edge TPU بتسريع النماذج المكممة (quantized) بشكل يفوق بكثير ما تحققه وحدة المعالجة المركزية لـ Raspberry Pi بمفردها.
- استهلاك منخفض للطاقة — يوفر إنتاجية عالية لكل واط، وهو مثالي لعمليات النشر التي تعمل بالبطارية أو بالطاقة الشمسية.
- التوصيل والتشغيل — يتصل USB Accelerator عبر منفذ USB 3.0، لذا لا يلزم أي تكامل إضافي للعتاد.
الدليل الرسمي لـ Coral قديم: لم تعد إصدارات بيئة تشغيل Coral الأصلية تعمل مع إصدارات بيئة تشغيل TensorFlow Lite الحالية، ولم يشهد المشروع أي تحديثات بين عامي 2021 و2025. يستخدم هذا الدليل بيئة تشغيل Edge TPU تتم صيانتها بفعالية وأحدث tflite-runtime لكي يعمل المُسَرِّع على تثبيت نظام تشغيل Raspberry Pi OS الحالي.
المتطلبات الأساسية#
- Raspberry Pi 4B (يوصى بـ 2 جيجابايت أو أكثر) أو Raspberry Pi 5 (موصى به)
- Raspberry Pi OS Bullseye/Bookworm (64 بت) مع واجهة سطح المكتب (موصى به)
- Coral USB Accelerator
- منصة لا تعمل بمعمارية ARM (مثل Google Colab، أو جهاز يعمل بنظام x86_64 Linux، أو حاوية Ultralytics Docker) لتصدير النموذج، نظراً لأن مترجم Edge TPU غير متوفر على معمارية ARM
يفترض هذا الدليل أن لديك بالفعل تثبيتاً قيد العمل لنظام التشغيل Raspberry Pi OS مع تثبيت ultralytics وتبعياته. إذا لم يكن الأمر كذلك، فاتبع دليل البدء السريع أولاً.
مع توفر المتطلبات الأساسية، يتكون سير العمل من ثلاث خطوات: تثبيت بيئة تشغيل Edge TPU على Raspberry Pi، وتصدير نموذجك على جهاز لا يعمل بمعمارية ARM، وتشغيل الاستدلال مرة أخرى على Raspberry Pi.
تثبيت وقت تشغيل Edge TPU#
يأتي وقت التشغيل في إصدارات متعددة، لذا اختر ما يتوافق مع نظام التشغيل الخاص بك. يشغل الإصدار عالي التردد (high-frequency) وحدة Edge TPU بسرعة ساعة أعلى لأداء أفضل، ولكنه قد يسبب اختناقاً حرارياً — استخدم نوعاً من التبريد إذا اخترته.
| نظام تشغيل Raspberry Pi | وضع التردد العالي | الإصدار المطلوب تنزيله |
|---|---|---|
| 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، قم بتحويل نموذجك إلى تنسيق متوافق. قم بتنفيذ عملية التصدير على منصة لا تعمل بمعمارية ARM — مثل Google Colab، أو جهاز يعمل بنظام x86_64 Linux، أو حاوية Ultralytics Docker الرسمية، أو منصة Ultralytics — نظراً لأن مترجم Edge TPU غير متوفر على معمارية ARM. راجع وضع التصدير لمعرفة الوسائط المتاحة.
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/model.pt") # Load an official model or custom model
# Export the model
model.export(format="edgetpu")يتم حفظ النموذج المُصدَّر في مجلد <model_name>_saved_model/ باسم <model_name>_full_integer_quant_edgetpu.tflite.
يجب أن ينتهي اسم الملف بـ _edgetpu.tflite. إذا قمت بإعادة تسميته إلى أي شيء آخر، فسوف يقوم Ultralytics بتحميله كنموذج TensorFlow Lite عادي بدلاً من اكتشاف Edge TPU ولن يتم استخدام المُسَرِّع.
تشغيل الاستنتاج على Edge TPU#
قبل تشغيل النموذج، قم بتثبيت المكتبات الصحيحة على Raspberry Pi. إذا كان TensorFlow مثبتاً بالفعل، قم بإلغاء تثبيته أولاً:
pip uninstall tensorflow tensorflow-aarch64ثم قم بتثبيت أو تحديث tflite-runtime:
pip install -U tflite-runtimeالآن يمكنك تشغيل الاستنتاج:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")اعثر على التفاصيل الكاملة لوضع التنبؤ على صفحة التنبؤ.
إذا كان لديك عدة وحدات Edge TPU، يمكنك تحديد وحدة معينة باستخدام وسيط device.
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png") # Inference defaults to the first TPU
model.predict("path/to/source.png", device="tpu:0") # Select the first TPU
model.predict("path/to/source.png", device="tpu:1") # Select the second TPUالمقارنات المعيارية#
تم قياس الأرقام أدناه باستخدام Raspberry Pi OS Bookworm 64-bit وجهاز USB Coral Edge TPU. وهي تظهر وقت الاستنتاج فقط (باستثناء المعالجة الأولية/اللاحقة) وتعتبر مرجعاً نسبياً للتسريع الذي يوفره Edge TPU عبر نماذج وأوضاع Pi المختلفة.
تم تسجيل هذه المعايير باستخدام نماذج YOLOv8. تختلف أوقات الاستنتاج المطلقة حسب إصدار النموذج وحجم الصورة، لكن التسارعات النسبية بين نماذج Pi وأوضاع الساعة ثابتة.
| حجم الصورة | النموذج | وقت الاستنتاج القياسي (ملي ثانية) | وقت الاستنتاج بالتردد العالي (ملي ثانية) |
|---|---|---|---|
| 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. قم بتصدير نموذجك على جهاز لا يعمل بمعمارية ARM، واحتفظ باللاحقة _edgetpu.tflite، وشغله باستخدام tflite-runtime على Raspberry Pi للحصول على استدلال طرفي مُسَرَّع. لمزيد من خيارات النشر، راجع دليل Raspberry Pi.
الأسئلة الشائعة#
إن Coral Edge TPU هو جهاز مدمج يضيف معالجاً مساعداً Edge TPU إلى نظامك. يتيح هذا المعالج المساعد استنتاج ML عالي الأداء ومنخفض الطاقة، ومُحسّن بشكل خاص لنماذج TensorFlow Lite. على Raspberry Pi، فإنه يسرع الاستنتاج بشكل يتجاوز بكثير ما تحققه وحدة المعالجة المركزية وحدها، مما يعزز الأداء بشكل كبير لنماذج Ultralytics YOLO26.
قم بتنزيل حزمة
.debالمناسبة لإصدار نظام التشغيل Raspberry Pi OS الخاص بك من هذا الرابط، ثم قم بتثبيتها:sudo dpkg -i path/to/package.debتأكد من إلغاء تثبيت أي إصدارات سابقة لبيئة تشغيل Coral Edge TPU باتباع الخطوات الواردة في قسم تثبيت بيئة تشغيل Edge TPU.
نعم. قم بتنفيذ عملية التصدير على Google Colab، أو جهاز يعمل بنظام x86_64 Linux، أو حاوية Ultralytics Docker؛ يمكنك أيضاً استخدام منصة Ultralytics. إليك كيفية التصدير باستخدام Python وCLI:
تصدير النموذجfrom ultralytics import YOLO # Load a model model = YOLO("path/to/model.pt") # Load an official model or custom model # Export the model 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 # Load a model model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model # Run Prediction model.predict("path/to/source.png")توجد التفاصيل الشاملة حول وضع التنبؤ على صفحة التنبؤ.