Coral Edge TPU
و Ultralytics
كلها في مكان واحد: edge-tpu-silva
. إن edge-tpu-silva الخاص بنا عبارة عن حزمة Python تعمل على تبسيط عملية تثبيت تبعية Coral TPU USB وتضمن التوافق مع PyCoral وUltralytics. تعمل هذه الحزمة على تمكين قدرات detection
الكائنات segmentation
classification
على أجهزة الحافة المختلفة لتحقيق سرعة أعلى FPS
(Real Time Processor).
Coral USB Accelerator Exclusivity
:
تم تصميم مكتبة edge-tpu-silva خصيصًا لتحقيق التكامل السلس مع Coral USB Accelerator. إن مسرع الأجهزة القوي هذا ليس مجرد متطلب ولكنه خيار استراتيجي، مما يفتح الإمكانات الكاملة للمكتبة detection
الكائنات segmentation
classification
بشكل فائق.
اكتشف Coral USB Accelerator واستمتع بتجربة مصممة خصيصًا للحوسبة المتطورة من خلال مكتبة edge-tpu-silva.
الحزمة edge-tpu-silva
قابلة للضغط فقط مع python versions <3.10
. قم بتثبيت إصدار بيثون محدد إذا كان إصدار بيثون الخاص بك غير متوافق.
مثال: بالنسبة لـ
Raspberry Pi
يمكنك النقر فوق للحصول على إرشادات حول كيفية تثبيت إصدار محدد من python باستخدام pyenv
ملاحظة: يوصى باستخدام Python 3.6 إلى 3.9، انقر فوق الرابط أعلاه لمعرفة كيفية تثبيت إصدار محدد من python
ملحوظة: تأكد من تحديث جهاز Raspberry Pi الخاص بك. للقيام بذلك، قم بتشغيل الأمر أدناه في المحطة.
sudo apt-get updatesudo apt-get upgrade
قم بتشغيل كود bash أدناه في جهازك الطرفي لإنشاء وتنشيط بيئة افتراضية جديدة تسمى .venv
. تأكد من وجودك في الدليل المحدد الذي تريد تثبيت هذه البيئة فيه.
python3 -m venv .venv
source .venv/bin/activate
لتثبيت edge-tpu-silva ، استخدم الأمر pip التالي في بيئة بايثون محددة:
pip install edge-tpu-silva
يقدم هذا الجدول نظرة عامة على مدى توافق النظام مع الأجهزة وأنظمة التشغيل المختلفة.
التوافق | أمر الإعداد | |
---|---|---|
راسبيري باي 5 | ✔ | silvatpu لينكس الإعداد |
راسبيري باي 4 | ✔ | silvatpu لينكس الإعداد |
راسبيري باي 3 | ✔ | silvatpu لينكس الإعداد |
جيتسون نانو | ✔ | silvatpu لينكس الإعداد |
ويندوز | ||
ماك |
من أجل تكوين أدوات الإعداد لنظامك، قم بتشغيل أمر الإعداد في الجهاز بعد اكتمال الخطوة 1.
مثال: إذا كنت تستخدم Raspberry Pi 5، فقم بتشغيل الأمر أدناه في الجهاز بعد الخطوة 1.
silvatpu-linux-setup
يقوم الأمر بتثبيت وقت تشغيل Edge TPU القياسي لنظام التشغيل Linux، وتشغيل الجهاز بتردد ساعة منخفض. وبدلاً من ذلك، يمكنك تثبيت إصدار للسرعة القصوى، ولكن كن حذرًا من زيادة استهلاك الطاقة وحرارة الجهاز. إذا لم تكن متأكدًا، فالتزم بالتردد المنخفض من أجل السلامة. لتثبيت أقصى تردد لوقت التشغيل، حدد سرعة أمر الإعداد إلى max
.
silvatpu-linux-setup --speed max
لا يمكنك تثبيت كلا الإصدارين من وقت التشغيل في نفس الوقت، ولكن يمكنك التبديل ببساطة عن طريق تثبيت وقت التشغيل البديل كما هو موضح أعلاه
تنبيه: قد يؤدي استخدام مسرّع USB بأقصى تردد للساعة إلى ارتفاع درجة حرارته بشكل خطير. لتجنب إصابات الحروق، احتفظ به بعيدًا عن متناول اليد أو قم بتشغيله بتردد ساعة منخفض.
ملحوظة: يرجى التأكد من توصيل
Coral USB Accelerator
عبرusb 3.0 port (for faster speed)
. إذا تم توصيل Coral USB Accelerator أثناء التثبيت والإعداد، فيرجى فصله وإعادة توصيله لضمانproper configuration.
لإطلاق العنان لقوة detection
الكائنات segmentation
classification
باستخدام هذه المكتبة، ستحتاج إلى طراز .tflite متوافق مع Edge TPU. يجب تصدير هذه النماذج باستخدام Ultralytics
، مما يضمن التكامل السلس مع مكتبة edge-tpu-silva.
ملحوظة: يرجى العلم أن قيمة
imgsz
المحددة أثناء تصدير YOLO يجب أن تتوافق مع نفس القيمة المستخدمة عند تعريفimgsz
لأي من العمليات. يعد الاتساق في هذه الإعدادات أمرًا بالغ الأهمية لتحقيق الأداء الأمثل.
ستعمل النماذج الأصغر حجمًا بشكل أسرع ولكنها قد تكون ذات دقة أقل، بينما ستعمل النماذج الأكبر حجمًا بشكل أبطأ ولكن عادةً ما تكون ذات دقة أعلى. استكشف إمكانيات حوسبة الحافة باستخدام النماذج أدناه باستخدام مكتبة edge-tpu-silva.
رابط التحميل | عملية | النموذج الأساسي | com.imgsz | فئات الكائنات |
---|---|---|---|---|
تحميل الموديل | كشف | yolov8n.pt | 240 | كوكو128 |
تحميل الموديل | التقسيم | yolov8n-seg.pt | 240 | كوكو128 |
تحميل الموديل | كشف | yolov8n.pt | 192 | كوكو128 |
تحميل الموديل | التقسيم | yolov8n-seg.pt | 192 | كوكو128 |
تحميل الموديل | تصنيف | yolov8n-cls.pt | 640 | إيماج نت |
تحميل الموديل | كشف | yolov9c.pt | 240 | كوكو128 |
ملحوظة: نموذج YOLOv9، وخاصة إصدار YOLOv9c.pt، كبير الحجم، مما يؤدي إلى أن يكون إصدار TensorFlow Lite كبيرًا جدًا أيضًا. ونتيجة لذلك، فإن سرعة المعالجة على Edge TPU تكون أبطأ نسبيًا.
لإجراء الكشف عن الكائنات باستخدام وظيفة process_detection
، يمكنك اتباع هذا المثال:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
في الجهاز الطرفي: استخدام نقطة الإدخال "silvatpu" لإجراء الكشف عن الكائنات باستخدام وظيفة process_detection
من سطر الأوامر، يمكنك استخدام نقطة الدخول سهلة الاستخدام silvatpu
. إليك مثال على الأمر:
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
لإجراء تجزئة الكائنات باستخدام وظيفة process_segmentation
، يمكنك اتباع هذا المثال:
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
في الوحدة الطرفية: استخدام نقطة الإدخال "silvatpu" لإجراء تجزئة الكائنات باستخدام وظيفة process_segmentation
من سطر الأوامر، يمكنك استخدام نقطة الإدخال سهلة الاستخدام silvatpu
. إليك مثال على الأمر:
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
العمليات segmentation
classification
معلمات إدخال الوظيفةالمعلمة | وصف | القيمة الافتراضية |
---|---|---|
model_path | المسار إلى نموذج تجزئة الكائن. | - |
input_path | مسار ملف الصورة/الفيديو المراد معالجته (الكاميرا (0|1|2)). | - |
imgsz | يحدد حجم الصورة للاستدلال. | - |
threshold | عتبة الكائنات المكتشفة. | 0.4 |
verbose | عرض المطبوعات على المحطة. | True |
show | إطار العرض مع التجزئة. | False |
classes | يقوم بتصفية التنبؤات لمجموعة من معرفات الفئة. | None |
detection
العمليات segmentation
classification
وظيفة الإخراجكل وظيفة عملية تعطي المخرجات التالية:
معلمة الإخراج | وصف |
---|---|
objs_lst | قائمة الكائنات المكتشفة في الإطار. |
fps | الإطارات في الثانية (fps) للإطار المعالج. |
مثال على الاستخدام:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
المساهمات هي موضع ترحيب! إذا وجدت أي مشاكل أو لديك اقتراحات للتحسينات، يرجى فتح مشكلة أو إرسال طلب سحب.
المشرف على فهرس حزمة بايثون (ج) [2024] ديفيد نياركو