Coral Edge TPU على Raspberry Pi مع Ultralytics YOLO11 🚀
ما هو Coral Edge TPU؟
Coral Edge TPU هو جهاز مدمج يضيف معالج Edge TPU مساعد إلى نظامك. فهو يتيح استنتاج ML منخفض الطاقة وعالي الأداء لنماذج TensorFlow Lite. اقرأ المزيد على صفحة Coral Edge TPU الرئيسية.
شاهد: كيفية تشغيل الاستدلال على Raspberry Pi باستخدام Google Coral Edge TPU
عزز أداء نموذج Raspberry Pi باستخدام Coral Edge TPU
يرغب العديد من الأشخاص في تشغيل نماذجهم على جهاز مضمن أو جهاز محمول مثل Raspberry Pi، نظرًا لأنها فعالة جدًا في استهلاك الطاقة ويمكن استخدامها في العديد من التطبيقات المختلفة. ومع ذلك، عادةً ما يكون أداء الاستدلال على هذه الأجهزة ضعيفًا حتى عند استخدام تنسيقات مثل ONNX أو OpenVINO. يعتبر Coral Edge TPU حلاً رائعًا لهذه المشكلة، حيث يمكن استخدامه مع Raspberry Pi وتسريع أداء الاستدلال بشكل كبير.
Edge TPU على Raspberry Pi مع TensorFlow Lite (جديد) ⭐
إن الدليل الحالي من Coral حول كيفية استخدام Edge TPU مع Raspberry Pi قديم، ولم تعد إصدارات Coral Edge TPU الحالية تعمل مع أحدث إصدارات TensorFlow Lite. بالإضافة إلى ذلك، يبدو أن Google قد تخلت تمامًا عن مشروع Coral، ولم تكن هناك أي تحديثات بين عامي 2021 و 2025. سيوضح لك هذا الدليل كيفية تشغيل Edge TPU مع أحدث إصدارات TensorFlow Lite ووقت تشغيل Coral Edge TPU محدث على كمبيوتر لوحة واحدة Raspberry Pi (SBC).
المتطلبات الأساسية
- Raspberry Pi 4B (يوصى بذاكرة 2 جيجابايت أو أكثر) أو Raspberry Pi 5 (موصى به)
- Raspberry Pi OS Bullseye/Bookworm (64 بت) مع سطح المكتب (موصى به)
- مُسرِّع Coral USB
- نظام أساسي غير قائم على ARM لتصدير نموذج Ultralytics PyTorch
شرح عملية التثبيت
يفترض هذا الدليل أن لديك بالفعل تثبيتًا لنظام التشغيل Raspberry Pi وأنك قمت بتثبيت ultralytics
وجميع التبعيات. للحصول على ultralytics
مثبتة، قم بزيارة دليل البدء السريع لإعداد قبل المتابعة من هنا.
تثبيت وقت تشغيل Edge TPU
أولاً، نحتاج إلى تثبيت Edge TPU runtime. هناك العديد من الإصدارات المختلفة المتاحة، لذلك تحتاج إلى اختيار الإصدار المناسب لنظام التشغيل الخاص بك. يقوم الإصدار عالي التردد بتشغيل Edge TPU بسرعة ساعة أعلى، مما يحسن الأداء. ومع ذلك، قد يؤدي ذلك إلى اختناق حراري لـ Edge TPU، لذلك يوصى بوجود نوع من آلية التبريد.
Raspberry Pi OS | وضع التردد العالي | الإصدار المراد تنزيله |
---|---|---|
Bullseye 32 بت | لا | libedgetpu1-std_ ... .bullseye_armhf.deb |
Bullseye 64 بت | لا | libedgetpu1-std_ ... .bullseye_arm64.deb |
Bullseye 32 بت | نعم | libedgetpu1-max_ ... .bullseye_armhf.deb |
Bullseye 64 بت | نعم | libedgetpu1-max_ ... .bullseye_arm64.deb |
Bookworm 32 بت | لا | libedgetpu1-std_ ... .bookworm_armhf.deb |
Bookworm 64 بت | لا | libedgetpu1-std_ ... .bookworm_arm64.deb |
Bookworm 32 بت | نعم | libedgetpu1-max_ ... .bookworm_armhf.deb |
Bookworm 64 بت | نعم | libedgetpu1-max_ ... .bookworm_arm64.deb |
بعد تنزيل الملف، يمكنك تثبيته باستخدام الأمر التالي:
sudo dpkg -i path/to/package.deb
بعد تثبيت وقت التشغيل، تحتاج إلى توصيل Coral Edge TPU بمنفذ USB 3.0 على Raspberry Pi الخاص بك. وذلك لأنه، وفقًا للدليل الرسمي، يوجد جديد udev
يجب أن يسري هذا الإجراء بعد التثبيت.
هام
إذا كان لديك بالفعل Coral Edge TPU runtime مثبتًا، فقم بإلغاء تثبيته باستخدام الأمر التالي.
# 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، تحتاج إلى تحويل النموذج الخاص بك إلى تنسيق متوافق. يوصى بتشغيل التصدير على Google Colab أو جهاز x86_64 Linux، باستخدام حاوية Ultralytics Docker الرسمية، أو باستخدام Ultralytics HUB، نظرًا لأن مترجم 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")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model
سيتم حفظ النموذج المصدر في <model_name>_saved_model/
مجلد بالاسم <model_name>_full_integer_quant_edgetpu.tflite
. من المهم أن ينتهي النموذج الخاص بك باللاحقة _edgetpu.tflite
، وإلا فإن Ultralytics لا تعرف أنك تستخدم نموذج Edge TPU.
تشغيل النموذج
قبل أن تتمكن من تشغيل النموذج فعليًا، ستحتاج إلى تثبيت المكتبات الصحيحة.
إذا tensorflow
في حال تم تثبيته، قم بإلغاء تثبيت 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")
yolo predict model=path/to/MODEL_NAME_full_integer_quant_edgetpu.tflite source=path/to/source.png # Load an official model or custom model
ابحث عن معلومات شاملة في صفحة التوقع للحصول على تفاصيل كاملة حول وضع التوقع.
الاستدلال باستخدام وحدات معالجة TPU متعددة
إذا كان لديك وحدات معالجة TPU متعددة، يمكنك استخدام الكود التالي لتحديد وحدة معالجة 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") # 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.
ملاحظة
يظهر هنا وقت الاستدلال، ولا يشمل المعالجة المسبقة / اللاحقة.
حجم الصورة | النموذج | وقت الاستدلال القياسي (بالمللي ثانية) | وقت الاستدلال عالي التردد (بالمللي ثانية) |
---|---|---|---|
320 | YOLOv8n | 32.2 | 26.7 |
320 | YOLOv8s | 47.1 | 39.8 |
512 | YOLOv8n | 73.5 | 60.7 |
512 | YOLOv8s | 149.6 | 125.3 |
حجم الصورة | النموذج | وقت الاستدلال القياسي (بالمللي ثانية) | وقت الاستدلال عالي التردد (بالمللي ثانية) |
---|---|---|---|
320 | YOLOv8n | 22.2 | 16.7 |
320 | YOLOv8s | 40.1 | 32.2 |
512 | YOLOv8n | 53.5 | 41.6 |
512 | YOLOv8s | 132.0 | 103.3 |
في المتوسط:
- إن Raspberry Pi 5 أسرع بنسبة 22٪ في الوضع القياسي من Raspberry Pi 4B.
- إن Raspberry Pi 5 أسرع بنسبة 30.2٪ في وضع التردد العالي من Raspberry Pi 4B.
- الوضع عالي التردد أسرع بنسبة 28.4٪ من الوضع القياسي.
الأسئلة الشائعة
ما هو Coral Edge TPU وكيف يعزز أداء Raspberry Pi مع Ultralytics YOLO11؟
Coral Edge TPU هو جهاز مدمج مصمم لإضافة معالج Edge TPU مساعد إلى نظامك. يتيح هذا المعالج المساعد استنتاجًا آليًا منخفض الطاقة وعالي الأداء، ومُحسَّن خصيصًا لنماذج TensorFlow Lite. عند استخدام Raspberry Pi، يسرع Edge TPU استنتاج نموذج ML، مما يعزز الأداء بشكل كبير، خاصةً لنماذج Ultralytics YOLO11. يمكنك قراءة المزيد عن Coral Edge TPU على الصفحة الرئيسية الخاصة بهم.
كيف يمكنني تثبيت وقت تشغيل Coral Edge TPU على Raspberry Pi؟
لتثبيت Coral Edge TPU runtime على Raspberry Pi الخاص بك، قم بتنزيل .deb
حزمة لإصدار نظام التشغيل Raspberry Pi الخاص بك من هذا الرابط. بمجرد التنزيل، استخدم الأمر التالي لتثبيته:
sudo dpkg -i path/to/package.deb
تأكد من إلغاء تثبيت أي إصدارات سابقة من Coral Edge TPU runtime باتباع الخطوات الموضحة في قسم Installation Walkthrough.
هل يمكنني تصدير نموذج Ultralytics YOLO11 الخاص بي ليكون متوافقًا مع Coral Edge TPU؟
نعم، يمكنك تصدير نموذج Ultralytics YOLO11 الخاص بك ليكون متوافقًا مع Coral Edge TPU. يوصى بإجراء التصدير على Google Colab أو جهاز x86_64 Linux أو باستخدام Ultralytics Docker container. يمكنك أيضًا استخدام Ultralytics HUB للتصدير. إليك كيفية تصدير النموذج الخاص بك باستخدام 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")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model
لمزيد من المعلومات، راجع وثائق وضع التصدير (Export Mode).
ماذا يجب أن أفعل إذا كان TensorFlow مثبتًا بالفعل على جهاز Raspberry Pi الخاص بي، ولكنني أريد استخدام tflite-runtime بدلاً من ذلك؟
إذا كان لديك TensorFlow مثبتًا على Raspberry Pi الخاص بك وتحتاج إلى التبديل إلى tflite-runtime
، ستحتاج إلى إلغاء تثبيت TensorFlow أولاً باستخدام:
pip uninstall tensorflow tensorflow-aarch64
ثم قم بالتثبيت أو التحديث tflite-runtime
باستخدام الأمر التالي:
pip install -U tflite-runtime
للحصول على تعليمات مفصلة، راجع قسم تشغيل النموذج.
كيف يمكنني تشغيل الاستدلال بنموذج YOLO11 الذي تم تصديره على Raspberry Pi باستخدام Coral Edge TPU؟
بعد تصدير نموذج YOLO11 الخاص بك إلى تنسيق متوافق مع Edge TPU، يمكنك تشغيل الاستدلال باستخدام مقتطفات التعليمات البرمجية التالية:
تشغيل النموذج
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/edgetpu_model.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png # Load an official model or custom model
يمكن العثور على تفاصيل شاملة حول ميزات وضع التنبؤ الكامل في صفحة التنبؤ.