دليل حول تصدير نموذج YOLO11 إلى TFLite للنشر
يتطلب نشر نماذج الرؤية الحاسوبية على الأجهزة الطرفية أو الأجهزة المدمجة تنسيقًا يضمن أداءً سلسًا.
يتيح لك تنسيق TensorFlow Lite أو TFLite تصدير نماذج Ultralytics YOLO11 الخاصة بك وتحسينها لمهام مثل اكتشاف الكائنات وتصنيف الصور في التطبيقات المستندة إلى الأجهزة الطرفية. في هذا الدليل، سنستعرض خطوات تحويل نماذجك إلى تنسيق TFLite، مما يسهل على نماذجك الأداء الجيد على مختلف الأجهزة الطرفية.
لماذا يجب عليك التصدير إلى TFLite؟
تم تقديمه بواسطة Google في مايو 2017 كجزء من إطار عمل TensorFlow الخاص بهم، TensorFlow Lite، أو TFLite باختصار، هو إطار عمل مفتوح المصدر للتعلم العميق مصمم للاستدلال على الجهاز، والمعروف أيضًا باسم الحوسبة الطرفية. فهو يمنح المطورين الأدوات اللازمة لتنفيذ نماذجهم المدربة على الأجهزة المحمولة والمدمجة وأجهزة إنترنت الأشياء، بالإضافة إلى أجهزة الكمبيوتر التقليدية.
يتوافق TensorFlow Lite مع مجموعة واسعة من الأنظمة الأساسية، بما في ذلك Linux المضمنة و Android و iOS و MCU. إن تصدير النموذج الخاص بك إلى TFLite يجعل تطبيقاتك أسرع وأكثر موثوقية وقادرة على العمل دون اتصال بالإنترنت.
الميزات الرئيسية لنماذج TFLite
توفر نماذج TFLite مجموعة واسعة من الميزات الرئيسية التي تتيح تعلم الآلة على الجهاز من خلال مساعدة المطورين على تشغيل نماذجهم على الأجهزة المحمولة والمضمنة والحافة:
-
On-device Optimization: TFLite مُحسَّن للتعلم الآلي على الجهاز، مما يقلل زمن الوصول عن طريق معالجة البيانات محليًا، وتعزيز الخصوصية عن طريق عدم إرسال البيانات الشخصية، وتقليل حجم النموذج لتوفير المساحة.
-
دعم أنظمة تشغيل متعددة: يوفر TFLite توافقًا واسع النطاق مع الأنظمة الأساسية، ويدعم Android و iOS و Linux المضمنة وأجهزة التحكم الدقيقة.
-
دعم لغات متنوعة: يتوافق TFLite مع العديد من لغات البرمجة، بما في ذلك Java و Swift و Objective-C و C++ و Python.
-
أداء عالي: يحقق أداءً فائقًا من خلال تسريع الأجهزة وتحسين النموذج.
خيارات النشر في TFLite
قبل أن ننظر إلى التعليمات البرمجية لتصدير نماذج YOLO11 إلى تنسيق TFLite، دعنا نفهم كيف يتم استخدام نماذج TFLite عادةً.
يقدم TFLite خيارات نشر متنوعة على الجهاز لنماذج تعلم الآلة، بما في ذلك:
- النشر باستخدام Android و iOS: يمكن لتطبيقات Android و iOS المزودة بـ TFLite تحليل تدفقات الكاميرا وأجهزة الاستشعار المستندة إلى الحافة لاكتشاف وتحديد الكائنات. يوفر TFLite أيضًا مكتبات iOS أصلية مكتوبة بلغة Swift و Objective-C. يوضح مخطط الهندسة المعمارية أدناه عملية نشر نموذج مدرب على منصات Android و iOS باستخدام TensorFlow Lite.
-
التنفيذ باستخدام نظام Linux المدمج: إذا كان تشغيل الاستدلالات على Raspberry Pi باستخدام دليل Ultralytics لا يلبي متطلبات السرعة لحالة الاستخدام الخاصة بك، فيمكنك استخدام نموذج TFLite مُصدَّر لتسريع أوقات الاستدلال. بالإضافة إلى ذلك، من الممكن زيادة تحسين الأداء باستخدام جهاز Coral Edge TPU.
-
النشر باستخدام المتحكمات الدقيقة: يمكن أيضًا نشر نماذج TFLite على المتحكمات الدقيقة والأجهزة الأخرى التي تحتوي على بضعة كيلوبايت فقط من الذاكرة. يتناسب وقت التشغيل الأساسي مع 16 كيلوبايت فقط على Arm Cortex M3 ويمكنه تشغيل العديد من النماذج الأساسية. لا يتطلب دعم نظام التشغيل أو أي مكتبات C أو C++ قياسية أو تخصيص الذاكرة الديناميكي.
تصدير إلى TFLite: تحويل نموذج YOLO11 الخاص بك
يمكنك تحسين كفاءة تنفيذ النموذج على الجهاز وتحسين الأداء عن طريق تحويل النماذج الخاصة بك إلى تنسيق TFLite.
التثبيت
لتثبيت الحزم المطلوبة، قم بتشغيل:
التثبيت
# Install the required package for YOLO11
pip install ultralytics
للحصول على إرشادات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO11، إذا واجهت أي صعوبات، فراجع دليل المشكلات الشائعة للحصول على الحلول والنصائح.
الاستخدام
تم تصميم جميع نماذج Ultralytics YOLO11 لدعم التصدير خارج الصندوق، مما يسهل دمجها في سير عمل النشر المفضل لديك. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات التكوين لاختيار أفضل إعداد لتطبيقك.
الاستخدام
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'
وسائط التصدير
الوسيطة | النوع | افتراضي | الوصف |
---|---|---|---|
format |
str |
'tflite' |
تنسيق الهدف للنموذج الذي تم تصديره، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz |
int أو tuple |
640 |
حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة أو صفًا. (height, width) لأبعاد محددة. |
half |
bool |
False |
يتيح تكميم FP16 (نصف الدقة)، مما يقلل من حجم النموذج وربما يسرع الاستدلال على الأجهزة المدعومة. |
int8 |
bool |
False |
يقوم بتنشيط تكميم INT8، مما يزيد من ضغط النموذج وتسريع الاستدلال مع الحد الأدنى من فقدان الدقة، خاصةً للأجهزة الطرفية. |
nms |
bool |
False |
يضيف قمع غير الأقصى (NMS)، وهو ضروري للمعالجة اللاحقة للكشف الدقيقة والفعالة. |
batch |
int |
1 |
يحدد حجم الاستدلال الدفعي لنموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في predict الوضع. |
data |
str |
'coco8.yaml' |
مسار إلى مجموعة البيانات ملف التكوين (افتراضي: coco8.yaml )، وهو ضروري لتحديد الكميات. |
fraction |
float |
1.0 |
يحدد جزء مجموعة البيانات المراد استخدامها لمعايرة القياس الكمي INT8. يسمح بالمعايرة على مجموعة فرعية من مجموعة البيانات الكاملة، وهو أمر مفيد للتجارب أو عندما تكون الموارد محدودة. إذا لم يتم تحديده مع تمكين INT8، فسيتم استخدام مجموعة البيانات الكاملة. |
device |
str |
None |
يحدد الجهاز المراد التصدير إليه: CPU (device=cpu )، MPS لـ Apple silicon (device=mps ). |
لمزيد من التفاصيل حول عملية التصدير، قم بزيارة صفحة وثائق Ultralytics حول التصدير.
نشر نماذج YOLO11 TFLite المصدرة
بعد تصدير نماذج Ultralytics YOLO11 بنجاح إلى تنسيق TFLite، يمكنك الآن نشرها. الخطوة الأولى الأساسية والموصى بها لتشغيل نموذج TFLite هي استخدام YOLO("model.tflite")
الأسلوب، كما هو موضح في مقتطف التعليمات البرمجية للاستخدام السابق. ومع ذلك، للحصول على إرشادات متعمقة حول نشر نماذج TFLite الخاصة بك في إعدادات أخرى متنوعة، ألق نظرة على الموارد التالية:
-
Android: دليل البدء السريع لدمج TensorFlow Lite في تطبيقات Android، وتوفير خطوات سهلة المتابعة لإعداد وتشغيل نماذج التعلم الآلي.
-
iOS: تحقق من هذا الدليل المفصل للمطورين حول دمج ونشر نماذج TensorFlow Lite في تطبيقات iOS، والذي يقدم إرشادات وموارد خطوة بخطوة.
-
أمثلة شاملة: تقدم هذه الصفحة نظرة عامة على أمثلة TensorFlow Lite المتنوعة، وتعرض التطبيقات العملية والبرامج التعليمية المصممة لمساعدة المطورين على تطبيق TensorFlow Lite في مشاريع تعلم الآلة الخاصة بهم على الأجهزة المحمولة والأجهزة الطرفية.
ملخص
في هذا الدليل، ركزنا على كيفية التصدير إلى تنسيق TFLite. من خلال تحويل نماذج Ultralytics YOLO11 الخاصة بك إلى تنسيق نموذج TFLite، يمكنك تحسين كفاءة وسرعة نماذج YOLO11، مما يجعلها أكثر فعالية وملاءمة لبيئات الحوسبة الطرفية.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة وثائق TFLite الرسمية.
أيضًا، إذا كنت مهتمًا بمعرفة المزيد حول تكاملات Ultralytics YOLO11 الأخرى، فتأكد من مراجعة صفحة دليل التكامل الخاصة بنا. ستجد الكثير من المعلومات والأفكار المفيدة في انتظارك هناك.
الأسئلة الشائعة
كيف يمكنني تصدير نموذج YOLO11 إلى تنسيق TFLite؟
لتصدير نموذج YOLO11 إلى تنسيق TFLite، يمكنك استخدام مكتبة Ultralytics. أولاً، قم بتثبيت الحزمة المطلوبة باستخدام:
pip install ultralytics
ثم استخدم مقتطف التعليمات البرمجية التالي لتصدير النموذج الخاص بك:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
لمستخدمي CLI، يمكنك تحقيق ذلك باستخدام:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
لمزيد من التفاصيل، قم بزيارة دليل تصدير Ultralytics.
ما هي فوائد استخدام TensorFlow Lite لنشر نماذج YOLO11؟
TensorFlow Lite (TFLite) هو إطار عمل مفتوح المصدر للتعلم العميق مُصمم للاستدلال على الجهاز، مما يجعله مثاليًا لنشر نماذج YOLO11 على الأجهزة المحمولة والمضمنة وأجهزة إنترنت الأشياء (IoT). تشمل المزايا الرئيسية ما يلي:
- On-device optimization: قلل زمن الوصول وعزز الخصوصية عن طريق معالجة البيانات محليًا.
- توافق المنصات: يدعم Android و iOS و Linux المضمنة و MCU.
- الأداء: يستخدم تسريع الأجهزة لتحسين سرعة النموذج وكفاءته.
لمعرفة المزيد، تحقق من دليل TFLite.
هل من الممكن تشغيل نماذج YOLO11 TFLite على Raspberry Pi؟
نعم، يمكنك تشغيل نماذج YOLO11 TFLite على Raspberry Pi لتحسين سرعات الاستدلال. أولاً، قم بتصدير النموذج الخاص بك إلى تنسيق TFLite كما هو موضح أعلاه. بعد ذلك، استخدم أداة مثل TensorFlow Lite Interpreter لتنفيذ النموذج على Raspberry Pi الخاص بك.
لمزيد من التحسينات، يمكنك التفكير في استخدام Coral Edge TPU. للحصول على خطوات مفصلة، راجع دليل نشر Raspberry Pi و دليل تكامل Edge TPU.
هل يمكنني استخدام نماذج TFLite على وحدات التحكم الدقيقة لتوقعات YOLO11؟
نعم، يدعم TFLite النشر على وحدات التحكم الدقيقة ذات الموارد المحدودة. يتطلب وقت التشغيل الأساسي لـ TFLite 16 كيلوبايت فقط من الذاكرة على Arm Cortex M3 ويمكنه تشغيل نماذج YOLO11 الأساسية. وهذا يجعله مناسبًا للنشر على الأجهزة ذات الحد الأدنى من قوة الحوسبة والذاكرة.
للبدء، قم بزيارة دليل TFLite Micro لوحدات التحكم الدقيقة.
ما هي الأنظمة الأساسية المتوافقة مع نماذج YOLO11 المصدرة بتنسيق TFLite؟
يوفر TensorFlow Lite توافقًا واسعًا مع الأنظمة الأساسية، مما يسمح لك بنشر نماذج YOLO11 على مجموعة واسعة من الأجهزة، بما في ذلك:
- Android و iOS: دعم أصلي من خلال مكتبات TFLite Android و iOS.
- Embedded Linux: مثالي لأجهزة الكمبيوتر أحادية اللوحة مثل Raspberry Pi.
- وحدات التحكم الدقيقة (Microcontrollers): مناسبة لوحدات التحكم الدقيقة ذات الموارد المحدودة.
لمزيد من المعلومات حول خيارات النشر، راجع دليل النشر المفصل الخاص بنا.
كيف يمكنني استكشاف الأخطاء الشائعة وإصلاحها أثناء تصدير نموذج YOLO11 إلى TFLite؟
إذا واجهت أخطاء أثناء تصدير نماذج YOLO11 إلى TFLite، فتشمل الحلول الشائعة ما يلي:
- التحقق من توافق الحزمة: تأكد من أنك تستخدم إصدارات متوافقة من Ultralytics و TensorFlow. راجع دليل التثبيت الخاص بنا.
- دعم النموذج: تحقق من أن نموذج YOLO11 المحدد يدعم تصدير TFLite عن طريق التحقق من صفحة وثائق التصدير الخاصة بـ Ultralytics.
- مشاكل التكميم: عند استخدام تحديد الكميات INT8، تأكد من تحديد مسار مجموعة البيانات الخاصة بك بشكل صحيح في
data
.
للحصول على نصائح إضافية حول استكشاف الأخطاء وإصلاحها، تفضل بزيارة دليل المشكلات الشائعة الخاص بنا.