تصدير نماذج YOLO إلى LiteRT للنشر على الحافة والويب#
LiteRT (وهي اختصار لـ Lite Runtime) هي بيئة التشغيل عالية الأداء من Google للذكاء الاصطناعي على الأجهزة. وهي الجيل التالي والاسم الجديد لـ TensorFlow Lite (TFLite)، وتُشغل نفس تنسيق النموذج .tflite. مع LiteRT، يمكن نشر نموذج Ultralytics YOLO مُصدّر واحد عبر أجهزة الجوال، والأنظمة المدمجة، والحافة، والمتصفح — مما يغطي كل ما كانت تعالجه تنسيقات التصدير القديمة tflite و tfjs بشكل منفصل، والآن تحت مظلة واحدة.
يعمل تنسيق التصدير LiteRT على تحسين نماذجك لمهام مثل اكتشاف الكائنات، والتجزئة، وتقدير الوضع، والتصنيف بحيث تعمل بسرعة وبدون اتصال بالإنترنت على مجموعة واسعة من الأجهزة.
تعمل إضافة Ultralytics YOLO Flutter plugin الرسمية على تشغيل صادرات LiteRT بتنسيق .tflite على نظام Android بشكل مباشر؛ حيث تدعم الاستنتاج بالكاميرا في الوقت الفعلي، والتنبؤ بالصور الفردية، وتسريع GPU، والتنزيل التلقائي للنماذج لجميع مهام YOLO26 السبع، بما في ذلك Depth. بالنسبة لأجهزة Apple، استخدم CoreML export؛ وبالنسبة لوحدات NPU الخاصة بـ Qualcomm Snapdragon، راجع Qualcomm QNN integration.
تصدير نماذج التصنيف عند imgsz=224. وتصدير نماذج الكشف والتجزئة والدلالة والعمق والوضعية وOBB عند imgsz=640. يتم مشاركة معيار 224/640 هذا بواسطة الأصول المحمولة الرسمية لـ LiteRT وCoreML وQNN.
تقوم حزمة Ultralytics YOLO NPM package الرسمية بتشغيل ملفات تصدير LiteRT ذات الامتداد .tflite مباشرة في المتصفح عبر LiteRT.js دون الحاجة إلى خادم أو Python — مع دعم الاستدلال في الوقت الفعلي عبر كاميرا الويب، والتنبؤ للصور الفردية، وتسريع WebGPU (مع ميزة الرجوع التلقائي إلى CPU/WASM) عبر جميع مهام YOLO26 الست (detect، segment، pose، OBB، classify، semantic). على WebGPU، غالباً ما يكون الأداء أسرع بمرتين تقريباً (~2×) مقارنة بـ ONNX Runtime Web.
npm i @ultralytics/yolo @litertjs/coreلماذا يجب عليك التصدير إلى LiteRT؟#
LiteRT هو إطار عمل مفتوح المصدر مصمم للاستدلال على الجهاز، والمعروف أيضًا باسم حوسبة الحافة. وهو يمنح المطورين الأدوات اللازمة لتنفيذ النماذج المدربة على أجهزة الجوال، والأنظمة المدمجة، وأجهزة إنترنت الأشياء (IoT)، والحواسيب التقليدية، ومن خلال LiteRT.js مباشرة في متصفحات الويب و Node.js.
تنسيق نموذج واحد، لكل وجهة:
- الجوال والأنظمة المدمجة: Android، وiOS، وأنظمة Linux المدمجة، والمتحكمات الدقيقة (MCUs).
- مسرعات الحافة: متوافق مع Coral Edge TPU لمزيد من التسريع.
- المتصفح و Node.js: تشغل LiteRT.js نفس نموذج
.tfliteعلى الويب مع تسريع WebGPU/WASM — مما يلغي الحاجة إلى تصدير منفصل لـ TensorFlow.js.
الميزات الرئيسية لنماذج 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.
الأداء المقاس#
الأجهزة: Xiaomi 17 بذاكرة LPDDR5X سعة 12 جيجابايت ونظام Android 16 / API 36. معالجها بدقة 3 نانومتر Snapdragon 8 Elite Gen 5 (SM8850) يضم وحدة معالجة مركزية Qualcomm Oryon بـ 8 أنوية (نواتان رئيسيتان بتردد يصل إلى 4.6 جيجاهرتز و6 أنوية أداء بتردد يصل إلى 3.62 جيجاهرتز)، ووحدة معالجة رسوميات Adreno، ووحدة معالجة عصبية Hexagon NPU.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | اكتشاف | 640 | 52.2 1.8 / 48.1 / 2.4 | 15.8 2.3 / 8.9 / 4.6 |
| YOLO26n-seg | تجزئة | 640 | 73.4 1.8 / 65.6 / 6.0 | 33.2 1.8 / 23.8 / 7.6 |
| YOLO26n-sem | دلالي (Semantic) | 640 | 61.2 1.8 / 51.1 / 8.3 | 34.2 1.8 / 24.0 / 8.3 |
| YOLO26n-depth | العمق (Depth) | 640 | 124.4 1.9 / 115.1 / 7.4 | 23.0 1.8 / 13.5 / 7.7 |
| YOLO26n-cls | تصنيف | 224 | 4.4 0.4 / 4.0 / 0.0 | 3.1 0.8 / 2.1 / 0.2 |
| YOLO26n-pose | وضعية | 640 | 57.4 1.8 / 53.8 / 1.8 | 16.6 2.7 / 10.1 / 3.9 |
| YOLO26n-obb | OBB | 640 | 50.3 1.8 / 47.2 / 1.4 | 11.7 1.8 / 7.8 / 2.0 |
- قيم السرعة هي زمن انتقال الدفعة للصورة الواحدة — وهو متوسط 15 تشغيلاً بعد 3 تشغيلات إحماء على
bus.jpg، تم قياسها باستخدام مكون Ultralytics Flutter الإضافي0.6.10والأصول القياسيةv0.6.6. تتبادل وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسوميات (GPU) الترتيب بين المهام في جولة متسلسلة واحدة. أكدت السجلات الأصلية أن كل صف في وحدة المعالجة المركزية استخدم LiteRT CPU/XNNPACK وأن كل صف في وحدة معالجة الرسوميات قام بتفويض الرسم البياني بالكامل إلى LiteRT OpenCL (LITERT_CL). - يتتبع تصدير LiteRT نموذج PyTorch مباشرة، مما ينتج ملف
.tfliteبتنسيق NCHW مع مدخلات عائمة — يقوم مفوض وحدة معالجة الرسوميات بتجميع الرسم البياني بالكامل (جميع المهام السبعة تعمل على وحدة معالجة الرسوميات Adreno هنا)، وw8a32لا يحتاج إلى بيانات معايرة. يجب على المستهلكين قراءة أشكال الموتر وأسماء التواقيع بدلاً من افتراض تخطيط onnx2tf NHWC القديم أو أسماء مخرجاتIdentity؛ قم بتعبئة بيانات RGB مباشرة كـ CHW مستوي أو قم بتحويلها قبل الاستدلال. تُرجع عمليات التصدير الدلالية تسجيلات NCHW وتتطلب وسيطة فئة argmax في جانب المضيف. يتم استضافة أصول Android الرسمية على إصدار yolo-flutter-appv0.6.6، مع سجل المعيار المفصل في مستند أداء Flutter. - أرقام Snapdragon Hexagon NPU المطابقة وأرقام وحدة المعالجة المركزية/الرسوميات لـ LiteRT موجودة في تكامل Qualcomm QNN.
- قارن نتائج وحدة المعالجة المركزية/المسارع لشركة Apple في تكامل CoreML.
تستخدَم عمليات مسح الأجهزة التالية نفس الأصول القياسية v0.6.6.
Google Pixel 10#
الأجهزة: Google Pixel 10 بذاكرة سعة 12 جيجابايت ونظام Android 16 / API 36. معالجها بدقة 3 نانومتر Google Tensor G5 يضم وحدة معالجة مركزية بـ 8 أنوية (نواة رئيسية واحدة بتردد يصل إلى 3.78 جيجاهرتز، و5 أنوية أداء بتردد يصل إلى 3.05 جيجاهرتز، ونواتي كفاءة بتردد يصل إلى 2.25 جيجاهرتز)، ووحدة معالجة رسوميات PowerVR D-Series، ووحدة معالجة Google TPU. تمت قراءة ترددات الساعات الأساسية واسم برنامج تشغيل وحدة معالجة الرسوميات من جهاز القياس القياسي لعدم نشرها من قبل Google في المواصفات المرتبطة.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | اكتشاف | 640 | 53.3 1.5 / 50.2 / 1.6 | 45.5 3.8 / 37.7 / 4.0 |
| YOLO26n-seg | تجزئة | 640 | 87.7 1.8 / 78.5 / 7.5 | 50.9 3.0 / 36.9 / 10.9 |
| YOLO26n-sem | دلالي (Semantic) | 640 | 68.6 1.5 / 59.0 / 8.0 | 71.6 1.5 / 59.5 / 10.6 |
| YOLO26n-depth | العمق (Depth) | 640 | 120.3 1.5 / 112.5 / 6.3 | 52.5 2.0 / 37.5 / 13.0 |
| YOLO26n-cls | تصنيف | 224 | 4.0 0.3 / 3.4 / 0.2 | 17.6 0.9 / 16.7 / 0.1 |
| YOLO26n-pose | وضعية | 640 | 59.7 1.5 / 57.0 / 1.2 | 46.6 3.8 / 39.2 / 3.5 |
| YOLO26n-obb | OBB | 640 | 52.0 1.5 / 48.9 / 1.7 | 45.5 4.0 / 38.5 / 2.9 |
الاختبار القياسي: متوسط 15 استدعاء لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo 0.6.10 والأصول الرسمية v0.6.6. يتناوب ترتيب وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسوميات (GPU) بين المهام في جولة متسلسلة واحدة. أكدت السجلات الأصلية أن كل صف في وحدة المعالجة المركزية استخدم LiteRT CPU/XNNPACK وأن كل صف في وحدة معالجة الرسوميات فوض الرسم البياني بالكامل إلى LiteRT OpenCL (LITERT_CL).
Samsung Galaxy S26#
الأجهزة: Samsung Galaxy S26 (SM-S942B) بذاكرة سعة 12 جيجابايت ونظام Android 16 / API 36. معالجها بدقة 2 نانومتر Exynos 2600 يضم وحدة معالجة مركزية Armv9.3 بـ 10 أنوية (نواة C1-Ultra واحدة بتردد يصل إلى 3.8 جيجاهرتز، و3 أنوية أداء C1-Pro بتردد يصل إلى 3.26 جيجاهرتز، و6 أنوية كفاءة C1-Pro بتردد يصل إلى 2.76 جيجاهرتز)، ووحدة معالجة رسوميات Xclipse 960، ووحدة معالجة Samsung NPU.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | اكتشاف | 640 | 36.7 1.3 / 33.8 / 1.7 | 16.4 1.4 / 12.3 / 2.6 |
| YOLO26n-seg | تجزئة | 640 | 54.6 1.2 / 48.0 / 5.3 | 32.8 1.3 / 24.5 / 7.0 |
| YOLO26n-sem | دلالي (Semantic) | 640 | 47.8 1.2 / 38.4 / 8.1 | 34.2 1.3 / 24.9 / 8.0 |
| YOLO26n-depth | العمق (Depth) | 640 | 92.9 1.2 / 84.8 / 6.9 | 33.5 1.3 / 22.4 / 9.8 |
| YOLO26n-cls | تصنيف | 224 | 2.7 0.2 / 2.3 / 0.2 | 2.6 0.2 / 2.4 / 0.0 |
| YOLO26n-pose | وضعية | 640 | 42.8 1.3 / 40.5 / 1.0 | 18.4 1.4 / 14.1 / 2.9 |
| YOLO26n-obb | OBB | 640 | 37.5 1.3 / 35.1 / 1.2 | 18.8 2.5 / 14.6 / 1.8 |
الاختبار القياسي: متوسط 15 استدعاء لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo 0.6.10 والأصول الرسمية v0.6.6. يتناوب ترتيب وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسوميات (GPU) بين المهام في جولة متسلسلة واحدة. أكدت السجلات الأصلية أن كل صف في وحدة المعالجة المركزية استخدم LiteRT CPU/XNNPACK وأن كل صف في وحدة معالجة الرسوميات فوض الرسم البياني بالكامل إلى LiteRT OpenCL (LITERT_CL).
Xiaomi 17T Pro#
الأجهزة: Xiaomi 17T Pro (2602EPTC0G) بذاكرة LPDDR5X سعة 12 جيجابايت ونظام Android 16 / API 36. معالجها بدقة 3 نانومتر MediaTek Dimensity 9500 (MT6993) يضم وحدة معالجة مركزية Armv9.3 بـ 8 أنوية (نواة C1-Ultra واحدة بتردد يصل إلى 4.21 جيجاهرتز، و3 أنوية C1-Premium بتردد يصل إلى 3.5 جيجاهرتز، و4 أنوية C1-Pro بتردد يصل إلى 2.7 جيجاهرتز)، ووحدة معالجة رسوميات Mali-G1 Ultra MC12، ووحدة معالجة MediaTek NPU 990.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | اكتشاف | 640 | 45.4 1.3 / 42.1 / 2.0 | 26.6 1.9 / 22.0 / 2.7 |
| YOLO26n-seg | تجزئة | 640 | 126.2 2.6 / 113.9 / 9.7 | 46.7 2.6 / 33.3 / 10.8 |
| YOLO26n-sem | دلالي (Semantic) | 640 | 117.9 2.6 / 98.8 / 16.5 | 74.3 2.6 / 54.7 / 17.0 |
| YOLO26n-depth | العمق (Depth) | 640 | 182.4 2.5 / 167.6 / 12.3 | 47.8 2.5 / 32.3 / 12.9 |
| YOLO26n-cls | تصنيف | 224 | 6.2 0.4 / 5.3 / 0.4 | 7.4 0.4 / 6.9 / 0.1 |
| YOLO26n-pose | وضعية | 640 | 97.6 2.5 / 93.3 / 1.8 | 28.6 2.5 / 23.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 91.5 2.6 / 85.8 / 3.2 | 27.5 2.7 / 21.8 / 2.9 |
الاختبار القياسي: متوسط 15 استدعاء لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo 0.6.10 والأصول الرسمية v0.6.6. يتناوب ترتيب وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسوميات (GPU) بين المهام في جولة متسلسلة واحدة. أكدت السجلات الأصلية أن كل صف في وحدة المعالجة المركزية استخدم LiteRT CPU/XNNPACK وأن كل صف في وحدة معالجة الرسوميات فوض الرسم البياني بالكامل إلى LiteRT OpenCL (LITERT_CL).
المهام المدعومة#
يدعم تصدير LiteRT جميع مهام Ultralytics السبع. التجزئة الدلالية وتقدير العمق متاحان فقط مع YOLO26، وهي العائلة الوحيدة التي توفر تلك الرؤوس.
التصدير إلى LiteRT: تحويل نموذج YOLO الخاص بك#
يمكنك تحسين كفاءة التنفيذ على الجهاز وتوسيع خيارات النشر عن طريق تحويل نماذجك إلى تنسيق LiteRT.
التثبيت#
لتثبيت الحزمة المطلوبة، قم بتشغيل:
# Install the required package for YOLO
pip install ultralyticsللحصول على تعليمات مفصلة وأفضل الممارسات، راجع دليل تثبيت Ultralytics. إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة.
يتم دعم تصدير LiteRT حالياً على Linux x86_64 و macOS. نموذج .tflite المُصدّر يعمل بحد ذاته على جميع المنصات المدعومة من LiteRT (الجوال، والأنظمة المدمجة، والحافة، والمتصفح).
الاستخدام#
تدعم جميع نماذج 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", imgsz=640) # use imgsz=224 for classificationfrom ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32", imgsz=640) # use imgsz=224 for classification
# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640) # use 224 for classification
# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640) # use 224 for classificationfrom 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")وسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'litert' | التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو زوجاً مرتباً (height, width) لأبعاد محددة. |
quantize | int أو str | None | دقة التكميم: 8 (INT8 ثابت، أوزان int8 + تنشيطات int8؛ تحتاج إلى data/fraction للمعايرة)، 'w8a16' (ثابت، أوزان int8 + تنشيطات int16؛ تحتاج إلى data/fraction للمعايرة)، 'w8a32' (INT8 ديناميكي، أوزان int8 + تنشيطات FP32؛ لا حاجة للمعايرة)، أو 32/غير محدد (FP32). لا يتم تصدير FP16 بشكل منفصل (انظر الملاحظة أدناه). يحل محل علامات half/int8 المهملة. |
batch | int | 1 | يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict. |
data | str | 'coco8.yaml' | ملف YAML الخاص بمجموعة البيانات المستخدم لمعايرة INT8. إذا تم حذفه مع quantize=8، تختار Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج. |
device | str | None | يحدد الجهاز لغرض التصدير. يعمل تصدير LiteRT على المعالج المركزي (device=cpu). |
على عكس تصدير tflite القديم، لا يتطلب LiteRT تصدير FP16 منفصل. يعمل نموذج FP32 .tflite بنصف الدقة عند التشغيل (half precision) عند استخدام مفوض GPU (WebGPU، OpenCL، Metal) — وهذا هو النهج الرسمي من LiteRT لاستدلال FP16.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
نشر نماذج YOLO LiteRT المُصدّرة#
بعد تصدير نموذج Ultralytics YOLO إلى LiteRT، يمكنك نشره عبر منصات مختلفة. أسرع طريقة للتحقق منه محلياً هي طريقة YOLO("yolo26n.tflite") الموضحة أعلاه. للنشر في بيئات أخرى، راجع الموارد التالية:
الجوال والأنظمة المدمجة#
- Android: دليل البدء السريع لدمج LiteRT في تطبيقات Android.
- iOS: دليل لدمج ونشر نماذج LiteRT في تطبيقات iOS.
- Linux المدمج و Raspberry Pi: تشغيل نماذج LiteRT على الحواسيب أحادية اللوحة، مع إمكانية التسريع باستخدام Coral Edge TPU.
- المتحكمات الدقيقة: النشر على متحكمات دقيقة ذات ذاكرة ببضعة كيلوبايتات فقط — تتناسب بيئة التشغيل الأساسية مع حوالي 16 كيلوبايت على معالج Arm Cortex-M3.
المتصفح و Node.js (LiteRT.js)#
- نظرة عامة على LiteRT.js: تشغيل نفس نموذج
.tfliteمباشرة في المتصفح مع تسريع WebGPU/WASM، مما يلغي الحوسبة من جانب الخادم ويحافظ على البيانات على جهاز المستخدم. - أمثلة شاملة: أمثلة عملية ودروس تعليمية لتنفيذ LiteRT عبر الجوال، والحافة، والويب.
ملخص#
في هذا الدليل، تناولنا كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق LiteRT. من خلال دمج النشر على الجوال/الحافة (TFLite سابقاً) والمتصفح (TF.js سابقاً) في نموذج .tflite واحد، يجعل LiteRT نماذج YOLO الخاصة بك أسرع وأصغر وقابلة للنقل عبر كل هدف تقريباً على الجهاز.
لمزيد من التفاصيل، قم بزيارة الوثائق الرسمية لـ LiteRT.
أيضاً، إذا كنت مهتماً بعمليات تكامل أخرى لـ Ultralytics YOLO، فراجع صفحة دليل التكامل للحصول على الكثير من الموارد المفيدة.
الأسئلة الشائعة#
كيف يمكنني تصدير نموذج 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", imgsz=640) # use imgsz=224 for classificationلمستخدمي واجهة سطر الأوامر (CLI):
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationلمزيد من التفاصيل، قم بزيارة دليل تصدير Ultralytics.
ما الفرق بين LiteRT، وTFLite، وTF.js؟#
LiteRT هو الاسم الجديد لـ TensorFlow Lite — نفس تنسيق نموذج .tflite، ونفس سلالة بيئة التشغيل، أعادت Google تسميته. في Ultralytics، يغطي تنسيق التصدير litert الواحد الآن حالتي الاستخدام اللتين كانتا تتطلبان سابقاً تنسيقين منفصلين:
- تنسيق
tfliteالقديم ← النشر على الجوال، والأنظمة المدمجة، والحافة. - تنسيق
tfjsالقديم ← النشر على المتصفح و Node.js، يتم التعامل معه الآن بواسطة LiteRT.js الذي يشغل نفس ملف.tflite.
إذا كان لديك ملف .tflite موجود بالفعل، يمكنك تحميله مباشرة باستخدام YOLO("model.tflite") وسيعمل من خلال واجهة LiteRT الخلفية.
هل يمكنني تشغيل نماذج YOLO LiteRT على Raspberry Pi؟#
نعم. قم بتصدير نموذجك إلى تنسيق LiteRT، ثم قم بتشغيله على Raspberry Pi لتحسين سرعات الاستدلال. لمزيد من التحسين، فكر في استخدام Coral Edge TPU. للحصول على خطوات مفصلة، راجع دليل نشر Raspberry Pi.
هل يمكنني تشغيل نماذج YOLO في المتصفح باستخدام LiteRT؟#
نعم. تشغل LiteRT.js نفس نموذج .tflite المُصدّر مباشرة في متصفح الويب أو تطبيق Node.js، مع تسريع WebGPU/WASM. وهذا يحل محل سير عمل TensorFlow.js السابق — لا يوجد تصدير منفصل للمتصفح، فقط انشر نموذج LiteRT الخاص بك باستخدام بيئة تشغيل LiteRT.js.
هل يدعم LiteRT استدلال FP16 (نصف الدقة)؟#
نعم — في وقت التشغيل. يعمل نموذج FP32 LiteRT تلقائياً في FP16 عند تنفيذه على مفوض GPU (WebGPU، أو OpenCL، أو Metal)، وهو النهج الرسمي لـ LiteRT. لذلك لا تحتاج إلى تصدير FP16 مخصص؛ لمزيد من الضغط، استخدم تكميم INT8 مع quantize=8.
كيف يمكنني استكشاف الأخطاء وإصلاحها أثناء تصدير LiteRT؟#
إذا واجهت أخطاء أثناء تصدير نماذج YOLO إلى LiteRT، فتشمل الحلول الشائعة:
- التحقق من المنصة: يتم دعم تصدير LiteRT على Linux x86_64 و macOS. تحقق من مطابقة بيئتك لذلك.
- التحقق من توافق الحزمة: تأكد من استخدام إصدار متوافق من Ultralytics. راجع دليل التثبيت.
- مشكلات التكميم (Quantization): عند استخدام تكميم INT8، تأكد من تحديد مسار مجموعة البيانات الخاصة بك بشكل صحيح في معامل
data.
للحصول على نصائح إضافية لاستكشاف الأخطاء وإصلاحها، قم بزيارة دليل المشكلات الشائعة الخاص بنا.