Meet YOLO26: next-gen vision AI.

Link to this sectionتصدير نماذج YOLO إلى LiteRT للنشر على الحافة والويب#

LiteRT edge deployment framework

LiteRT (وهي اختصار لـ Lite Runtime) هي بيئة التشغيل عالية الأداء من Google للذكاء الاصطناعي على الأجهزة. وهي الجيل التالي والاسم الجديد لـ TensorFlow Lite (TFLite)، وتُشغل نفس تنسيق النموذج .tflite. مع LiteRT، يمكن نشر نموذج Ultralytics YOLO مُصدّر واحد عبر أجهزة الجوال، والأنظمة المدمجة، والحافة، والمتصفح — مما يغطي كل ما كانت تعالجه تنسيقات التصدير القديمة tflite و tfjs بشكل منفصل، والآن تحت مظلة واحدة.

يعمل تنسيق التصدير LiteRT على تحسين نماذجك لمهام مثل اكتشاف الكائنات، والتجزئة، وتقدير الوضع، والتصنيف بحيث تعمل بسرعة وبدون اتصال بالإنترنت على مجموعة واسعة من الأجهزة.

Link to this sectionلماذا يجب عليك التصدير إلى LiteRT؟#

LiteRT هو إطار عمل مفتوح المصدر مصمم للاستدلال على الجهاز، والمعروف أيضًا باسم حوسبة الحافة. وهو يمنح المطورين الأدوات اللازمة لتنفيذ النماذج المدربة على أجهزة الجوال، والأنظمة المدمجة، وأجهزة إنترنت الأشياء (IoT)، والحواسيب التقليدية، ومن خلال LiteRT.js مباشرة في متصفحات الويب و Node.js.

تنسيق نموذج واحد، لكل وجهة:

  • الجوال والأنظمة المدمجة: Android، وiOS، وأنظمة Linux المدمجة، والمتحكمات الدقيقة (MCUs).
  • مسرعات الحافة: متوافق مع Coral Edge TPU لمزيد من التسريع.
  • المتصفح و Node.js: تشغل LiteRT.js نفس نموذج .tflite على الويب مع تسريع WebGPU/WASM — مما يلغي الحاجة إلى تصدير منفصل لـ TensorFlow.js.

Link to this sectionالميزات الرئيسية لنماذج LiteRT#

  • التحسين على الجهاز: يقلل من زمن الانتقال عن طريق معالجة البيانات محلياً، ويعزز الخصوصية من خلال عدم نقل البيانات الشخصية، ويقلل من حجم النموذج لتوفير المساحة.
  • دعم منصات متعددة: يعمل على Android، وiOS، وأنظمة Linux المدمجة، والمتحكمات الدقيقة، ومتصفحات الويب الحديثة.
  • تسريع العتاد: يستفيد من XNNPACK على المعالج المركزي (CPU)، وتسريع وحدة معالجة الرسومات (GPU) عبر OpenCL، وMetal، وWebGPU. يتم تشغيل مفوض GPU في وضع FP16 افتراضياً لزيادة السرعة.
  • التكميم (Quantization): يدعم FP32، وINT8 الثابت (quantize=8، أوزان int8 + تنشيطات int8)، وINT16-activation الثابت (quantize="w8a16"، أوزان int8 + تنشيطات int16 لدقة أعلى)، وINT8 الديناميكي (quantize="w8a32"، أوزان int8 + تنشيطات FP32، لا حاجة لبيانات معايرة) لضغط النماذج وتسريع الاستدلال مع الحد الأدنى من فقدان الدقة.
  • دعم لغات متنوعة: متوافق مع Java/Kotlin، وSwift، وObjective-C، وC++، وPython، وJavaScript.

Link to this sectionالتصدير إلى LiteRT: تحويل نموذج YOLO الخاص بك#

يمكنك تحسين كفاءة التنفيذ على الجهاز وتوسيع خيارات النشر عن طريق تحويل نماذجك إلى تنسيق LiteRT.

Link to this sectionالتثبيت#

لتثبيت الحزمة المطلوبة، قم بتشغيل:

التثبيت
# Install the required package for YOLO
pip install ultralytics

للحصول على تعليمات مفصلة وأفضل الممارسات، راجع دليل تثبيت Ultralytics. إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة.

دعم المنصة

يتم دعم تصدير LiteRT حالياً على Linux x86_64 و macOS. نموذج .tflite المُصدّر يعمل بحد ذاته على جميع المنصات المدعومة من LiteRT (الجوال، والأنظمة المدمجة، والحافة، والمتصفح).

Link to this sectionالاستخدام#

تدعم جميع نماذج Ultralytics YOLO التصدير بشكل جاهز. يدعم تنسيق LiteRT أوضاع التصدير، والتنبؤ، والتحقق، لذا يمكنك تصدير نموذج ثم تحميله لتشغيل الاستدلال أو التحقق من دقته محلياً.

التصدير
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to LiteRT format
model.export(format="litert")  # creates 'yolo26n.tflite'
تصدير مكمم
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32")  # creates 'yolo26n_w8a32.tflite'

# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.tflite'

# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml")  # creates 'yolo26n_w8a16.tflite'
التنبؤ
from ultralytics import YOLO

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionوسائط التصدير#

الوسيطالنوعالافتراضيالوصف
formatstr'litert'التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو زوجاً مرتباً (height, width) لأبعاد محددة.
quantizeint أو strNoneدقة التكميم: 8 (INT8 ثابت، أوزان int8 + تنشيطات int8؛ تحتاج إلى data/fraction للمعايرة)، 'w8a16' (ثابت، أوزان int8 + تنشيطات int16؛ تحتاج إلى data/fraction للمعايرة)، 'w8a32' (INT8 ديناميكي، أوزان int8 + تنشيطات FP32؛ لا حاجة للمعايرة)، أو 32/غير محدد (FP32). لا يتم تصدير FP16 بشكل منفصل (انظر الملاحظة أدناه). يحل محل علامات half/int8 المهملة.
batchint1يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict.
datastr'coco8.yaml'ملف YAML الخاص بمجموعة البيانات المستخدم لمعايرة INT8. إذا تم حذفه مع quantize=8، تختار Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج.
devicestrNoneيحدد الجهاز لغرض التصدير. يعمل تصدير LiteRT على المعالج المركزي (device=cpu).
دقة FP16

على عكس تصدير tflite القديم، لا يتطلب LiteRT تصدير FP16 منفصل. يعمل نموذج FP32 .tflite بنصف الدقة عند التشغيل (half precision) عند استخدام مفوض GPU (WebGPU، OpenCL، Metal) — وهذا هو النهج الرسمي من LiteRT لاستدلال FP16.

لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.

Link to this sectionنشر نماذج YOLO LiteRT المُصدّرة#

بعد تصدير نموذج Ultralytics YOLO إلى LiteRT، يمكنك نشره عبر منصات مختلفة. أسرع طريقة للتحقق منه محلياً هي طريقة YOLO("yolo26n.tflite") الموضحة أعلاه. للنشر في بيئات أخرى، راجع الموارد التالية:

Link to this sectionالجوال والأنظمة المدمجة#

  • Android: دليل البدء السريع لدمج LiteRT في تطبيقات Android.
  • iOS: دليل لدمج ونشر نماذج LiteRT في تطبيقات iOS.
  • Linux المدمج و Raspberry Pi: تشغيل نماذج LiteRT على الحواسيب أحادية اللوحة، مع إمكانية التسريع باستخدام Coral Edge TPU.
  • المتحكمات الدقيقة: النشر على متحكمات دقيقة ذات ذاكرة ببضعة كيلوبايتات فقط — تتناسب بيئة التشغيل الأساسية مع حوالي 16 كيلوبايت على معالج Arm Cortex-M3.

Link to this sectionالمتصفح و Node.js (LiteRT.js)#

  • نظرة عامة على LiteRT.js: تشغيل نفس نموذج .tflite مباشرة في المتصفح مع تسريع WebGPU/WASM، مما يلغي الحوسبة من جانب الخادم ويحافظ على البيانات على جهاز المستخدم.
  • أمثلة شاملة: أمثلة عملية ودروس تعليمية لتنفيذ LiteRT عبر الجوال، والحافة، والويب.

Link to this sectionملخص#

في هذا الدليل، تناولنا كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق LiteRT. من خلال دمج النشر على الجوال/الحافة (TFLite سابقاً) والمتصفح (TF.js سابقاً) في نموذج .tflite واحد، يجعل LiteRT نماذج YOLO الخاصة بك أسرع وأصغر وقابلة للنقل عبر كل هدف تقريباً على الجهاز.

لمزيد من التفاصيل، قم بزيارة الوثائق الرسمية لـ LiteRT.

أيضاً، إذا كنت مهتماً بعمليات تكامل أخرى لـ Ultralytics YOLO، فراجع صفحة دليل التكامل للحصول على الكثير من الموارد المفيدة.

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني تصدير نموذج YOLO إلى تنسيق LiteRT؟#

استخدم مكتبة Ultralytics لتصدير نموذج YOLO إلى LiteRT (.tflite). أولاً، قم بتثبيت الحزمة:

pip install ultralytics

ثم قم بتصدير نموذجك:

from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to LiteRT format
model.export(format="litert")  # creates 'yolo26n.tflite'

لمستخدمي واجهة سطر الأوامر (CLI):

yolo export model=yolo26n.pt format=litert # creates 'yolo26n.tflite'

لمزيد من التفاصيل، قم بزيارة دليل تصدير Ultralytics.

Link to this sectionما الفرق بين LiteRT، وTFLite، وTF.js؟#

LiteRT هو الاسم الجديد لـ TensorFlow Lite — نفس تنسيق نموذج .tflite، ونفس سلالة بيئة التشغيل، أعادت Google تسميته. في Ultralytics، يغطي تنسيق التصدير litert الواحد الآن حالتي الاستخدام اللتين كانتا تتطلبان سابقاً تنسيقين منفصلين:

  • تنسيق tflite القديم ← النشر على الجوال، والأنظمة المدمجة، والحافة.
  • تنسيق tfjs القديم ← النشر على المتصفح و Node.js، يتم التعامل معه الآن بواسطة LiteRT.js الذي يشغل نفس ملف .tflite.

إذا كان لديك ملف .tflite موجود بالفعل، يمكنك تحميله مباشرة باستخدام YOLO("model.tflite") وسيعمل من خلال واجهة LiteRT الخلفية.

Link to this sectionهل يمكنني تشغيل نماذج YOLO LiteRT على Raspberry Pi؟#

نعم. قم بتصدير نموذجك إلى تنسيق LiteRT، ثم قم بتشغيله على Raspberry Pi لتحسين سرعات الاستدلال. لمزيد من التحسين، فكر في استخدام Coral Edge TPU. للحصول على خطوات مفصلة، راجع دليل نشر Raspberry Pi.

Link to this sectionهل يمكنني تشغيل نماذج YOLO في المتصفح باستخدام LiteRT؟#

نعم. تشغل LiteRT.js نفس نموذج .tflite المُصدّر مباشرة في متصفح الويب أو تطبيق Node.js، مع تسريع WebGPU/WASM. وهذا يحل محل سير عمل TensorFlow.js السابق — لا يوجد تصدير منفصل للمتصفح، فقط انشر نموذج LiteRT الخاص بك باستخدام بيئة تشغيل LiteRT.js.

Link to this sectionهل يدعم LiteRT استدلال FP16 (نصف الدقة)؟#

نعم — في وقت التشغيل. يعمل نموذج FP32 LiteRT تلقائياً في FP16 عند تنفيذه على مفوض GPU (WebGPU، أو OpenCL، أو Metal)، وهو النهج الرسمي لـ LiteRT. لذلك لا تحتاج إلى تصدير FP16 مخصص؛ لمزيد من الضغط، استخدم تكميم INT8 مع quantize=8.

Link to this sectionكيف يمكنني استكشاف الأخطاء وإصلاحها أثناء تصدير LiteRT؟#

إذا واجهت أخطاء أثناء تصدير نماذج YOLO إلى LiteRT، فتشمل الحلول الشائعة:

  • التحقق من المنصة: يتم دعم تصدير LiteRT على Linux x86_64 و macOS. تحقق من مطابقة بيئتك لذلك.
  • التحقق من توافق الحزمة: تأكد من استخدام إصدار متوافق من Ultralytics. راجع دليل التثبيت.
  • مشكلات التكميم (Quantization): عند استخدام تكميم INT8، تأكد من تحديد مسار مجموعة البيانات الخاصة بك بشكل صحيح في معامل data.

للحصول على نصائح إضافية لاستكشاف الأخطاء وإصلاحها، قم بزيارة دليل المشكلات الشائعة الخاص بنا.

المساهمون

التعليقات