تخطي إلى المحتوى

Coral Edge TPU على Raspberry Pi مع Ultralytics YOLO11 🚀

كمبيوتر Raspberry Pi بلوحة واحدة مع مسرع USB Edge TPU

ما هو 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 وأنك قمت بتثبيت 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

يمكن العثور على تفاصيل شاملة حول ميزات وضع التنبؤ الكامل في صفحة التنبؤ.



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 4 أشهر

تعليقات