تصدير نماذج YOLO إلى LiteRT للنشر على الحافة والويب#
LiteRT (اختصار لـ Lite Runtime) هو محرك Google عالي الأداء للذكاء الاصطناعي على الأجهزة الطرفية. وهو الجيل التالي والاسم الجديد لـ TensorFlow Lite (TFLite)، حيث يشغل نفس تنسيق نموذج .tflite. مع LiteRT، يتم نشر نموذج Ultralytics YOLO واحد عبر الهواتف المحمولة، الأنظمة المدمجة، الأجهزة الطرفية، والمتصفح - ليغطي كل ما كانت تتعامل معه تنسيقات التصدير الأقدم tflite و tfjs بشكل منفصل، تحت مظلة واحدة الآن.
يعمل تنسيق تصدير LiteRT على تحسين نماذجك لمهام مثل اكتشاف الكائنات، التجزئة، تقدير الوضعية، والتصنيف لتعمل بسرعة وبدون اتصال بالإنترنت على مجموعة واسعة من الأجهزة.
يقوم مكون Ultralytics YOLO Flutter الإضافي الرسمي بتشغيل صادرات LiteRT .tflite على Android بشكل جاهز - استدلال الكاميرا في الوقت الفعلي، والتنبؤ بصورة واحدة، وتسريع وحدة معالجة الرسومات GPU، والتنزيل التلقائي للنماذج لجميع مهام YOLO26 السبعة، بما في ذلك العمق. لأجهزة Apple، استخدم تصدير CoreML؛ أما بالنسبة لوحدات NPU المعالجة من نوع Qualcomm Snapdragon، فراجع تكامل Qualcomm QNN.
قم بتصدير نماذج التصنيف على imgsz=224. قم بتصدير نماذج الاكتشاف، والتجزئة، والدلالية، والعمق، والوضعيات، وOBB على
imgsz=640. يتم مشاركة هذا المعيار 224/640 بواسطة أصول LiteRT و CoreML و QNN المحمولة الرسمية.
تقوم حزمة Ultralytics YOLO NPM الرسمية بتشغيل صادرات LiteRT .tflite مباشرة في المتصفح عبر LiteRT.js دون الحاجة إلى خادم أو Python - مع استدلال كاميرا الويب في الوقت الفعلي، والتنبؤ بصورة واحدة، وتسريع WebGPU (مع احتياطي تلقائي لـ CPU/WASM) عبر مهام YOLO26 الستة جميعها (الاكتشاف، والتجزئة، والوضعيات، وOBB، والتصنيف، والدلالية). على WebGPU، غالباً ما يكون أسرع بحوالي ~2× من ONNX Runtime Web.
npm i @ultralytics/yolo @litertjs/coreلماذا يجب عليك التصدير إلى LiteRT؟#
LiteRT هو إطار عمل مفتوح المصدر مصمم للاستدلال على الأجهزة، والمعروف أيضاً باسم الحوسبة الطرفية. وهو يمنح المطورين الأدوات اللازمة لتنفيذ النماذج المدربة على الهواتف المحمولة، والأنظمة المدمجة، وأجهزة إنترنت الأشياء، والحواسيب التقليدية، - ومن خلال 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 الثابت للتنشيط (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 أنوية (نواتان أساسيتان Prime تصل سرعتهما إلى 4.6 جيجاهرتز و6 أنوية أداء Performance تصل سرعتهما إلى 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 مباشرة، ينتج عنه NCHW
.tfliteمع مدخل عائم - يقوم مفوض وحدة معالجة الرسومات بتجميع الرسم البياني بالكامل (جميع المهام السبعة تعمل على Adreno GPU هنا)، ولا يحتاجw8a32إلى بيانات معايرة. يجب على المستهلكين قراءة أشكال الموتر وأسماء التوقيع بدلاً من افتراض تخطيط onnx2tf NHWC القديم أو أسماء مخرجاتIdentity؛ قم بتعبئة بيانات RGB مباشرة كـ CHW مستوٍ أو قم بتبديلها قبل الاستدلال. تُرجع الصادرات الدلالية سجلات NCHW وتتطلب وسيط argmax من جانب المضيف. يتم استضافة أصول Android الرسمية على إصدار yolo-flutter-appv0.6.6، مع سجل المعيار المفصل في مستند أداء Flutter. - توجد أرقام وحدة المعالجة العصبية 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 أنوية (نواة أساسية Prime تصل إلى 3.78 جيجاهرتز، و5 أنوية أداء Performance تصل إلى 3.05 جيجاهرتز، ونواتي كفاءة Efficiency تصلان إلى 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 |
المعيار (Benchmark): متوسط 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 |
المعيار (Benchmark): متوسط 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 |
المعيار (Benchmark): متوسط 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 أوضاع التصدير (Export)، والتنبؤ (Predict)، والتحقق (Validate)، بحيث يمكنك تصدير النموذج، ثم تحميله لتشغيل الاستدلال أو التحقق من دقته محلياً.
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 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون رقماً صحيحاً للصور المربعة أو صفاً (tuple) (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 | None | ملف YAML الخاص بمجموعة البيانات المستخدم لمعايرة INT8؛ بدلاً من ذلك، يأخذ التصنيف دليل مجموعة بيانات أو اسم مجموعة بيانات مدمجة. إذا تم حذفه مع quantize=8 أو 'w8a16'، تقوم Ultralytics بتحديد مجموعة بيانات المعايرة الافتراضية لمهام النموذج. |
device | str | None | يحدد الجهاز المراد التصدير إليه. يتم تشغيل تصدير LiteRT على وحدة المعالجة المركزية CPU (device=cpu). |
على عكس تصدير tflite القديم، لا يتطلب LiteRT تصديراً منفصلاً لـ FP16. يعمل نموذج .tflite من نوع FP32 نصف الدقة أثناء التشغيل عند استخدام مفوض GPU (WebGPU و OpenCL و Metal) - وهذا هو نهج LiteRT الرسمي لاستدلال FP16.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
نشر نماذج YOLO LiteRT المُصدّرة#
بعد تصدير نموذج Ultralytics YOLO الخاص بك إلى LiteRT، يمكنك نشره عبر الأنظمة الأساسية. أسرع طريقة للتحقق منه محلياً هي طريقة YOLO("yolo26n.tflite") الموضحة أعلاه. للنشر في بيئات أخرى، راجع الموارد التالية:
الجوال والأنظمة المدمجة#
- Android: دليل البدء السريع لتدمج LiteRT في تطبيقات Android.
- iOS: دليل لتكامل ونشر نماذج LiteRT في تطبيقات iOS.
- Embedded Linux & Raspberry Pi: تشغيل نماذج LiteRT على حواسيب اللوحة الواحدة، مع إمكانية التسريع باستخدام Coral Edge TPU.
- Microcontrollers: النشر على وحدات التحكم الدقيقة ذات الذاكرة التي لا تتعدى بضع كيلوبايتات - يتلاءم وقت التشغيل الأساسي في حوالي 16 كيلوبايت على معالج Arm Cortex-M3.
المتصفح و Node.js (LiteRT.js)#
- نظرة عامة على LiteRT.js: تشغيل نفس نموذج
.tfliteمباشرة في المتصفح مع تسريع WebGPU/WASM، مما يلغي حسابات الخادم ويحافظ على البيانات على جهاز المستخدم. - أمثلة شاملة (End-to-End): أمثلة عملية ودروس تعليمية لتنفيذ LiteRT عبر الهواتف والأجهزة الطرفية والويب.
ملخص#
في هذا الدليل، تناولنا كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق LiteRT. من خلال دمج النشر على الأجهزة المحمولة/الطرفية (المعروف سابقاً بـ TFLite) والمتصفح (المعروف سابقاً بـ TF.js) في نموذج .tflite واحد، يجعل LiteRT نماذج YOLO الخاصة بك أسرع، وأصغر حجمًا، وقابلة للنشر عبر جميع الأجهزة المستهدفة تقريبًا.
لمزيد من التفاصيل، تفضل بزيارة وثائق LiteRT الرسمية.
أيضاً، إذا كنت مهتماً بعمليات التكامل الأخرى لـ Ultralytics YOLO، فراجع صفحة دليل التكامل الخاصة بنا للحصول على الكثير من الموارد المفيدة.
الأسئلة الشائعة#
استخدم مكتبة 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 هو الاسم الجديد لـ TensorFlow Lite - نفس تنسيق نموذج
.tflite، ونفس سلالة وقت التشغيل، وقد أعادت Google تسميته. في Ultralytics، يغطي تنسيق التصدير المفردlitertالآن حالتي الاستخدام اللتين كانتا تتطلبان سابقاً تنسيقين منفصلين:- تنسيق
tfliteالقديم ← النشر على الأجهزة المحمولة، والأنظمة المدمجة، والأجهزة الطرفية. - تنسيق
tfjsالقديم ← النشر على المتصفح و Node.js، والذي يتم التعامل معه الآن بواسطة LiteRT.js الذي يقوم بتشغيل نفس ملف.tflite.
إذا كان لديك ملف
.tfliteحالي، يمكنك تحميله مباشرة باستخدامYOLO("model.tflite")وسيتم تشغيله من خلال الواجهة الخلفية لـ LiteRT.- تنسيق
نعم. قم بتصدير نموذجك إلى تنسيق LiteRT، ثم قم بتشغيله على Raspberry Pi لتحسين سرعات الاستدلال. لمزيد من التحسين، فكر في استخدام Coral Edge TPU. للحصول على خطوات مفصلة، راجع دليل نشر Raspberry Pi.
نعم. يقوم LiteRT.js بتشغيل نفس نموذج
.tfliteالمُصدّر مباشرة في متصفح الويب أو تطبيق Node.js، مع تسريع WebGPU/WASM. هذا يحل محل سير عمل TensorFlow.js السابق - فلا توجد عملية تصدير منفصلة للمتصفح، بل قم بنشر نموذج LiteRT الخاص بك باستخدام محرك LiteRT.js.نعم - أثناء وقت التشغيل. يعمل نموذج FP16 LiteRT تلقائياً بدقة FP16 عند تنفيذه على مفوض GPU (WebGPU أو OpenCL أو Metal)، وهو النهج الرسمي لـ LiteRT. لذلك لا تحتاج إلى تصدير مخصص لـ FP16؛ لمزيد من الضغط، استخدم كمية INT8 مع
quantize=8.إذا واجهت أخطاء أثناء تصدير نماذج YOLO إلى LiteRT، فتشمل الحلول الشائعة:
- التحقق من المنصة: يتم دعم تصدير LiteRT على Linux x86_64 و macOS. تحقق من مطابقة بيئتك لذلك.
- التحقق من توافق الحزمة: تأكد من أنك تستخدم إصداراً متوافقاً من Ultralytics. راجع دليل التثبيت الخاص بنا.
- مشكلات الكمية (Quantization): عند استخدام كمية INT8، تأكد من تحديد مسار مجموعة البيانات الخاصة بك بشكل صحيح في معلمة
data.
للحصول على نصائح إضافية حول استكشاف الأخطاء وإصلاحها، تفضل بزيارة دليل المشكلات الشائعة الخاص بنا.