Meet YOLO26: next-gen vision AI.

Link to this sectionYOLO Modellerini Uç (Edge) ve Web Dağıtımı için LiteRT'ye Aktar#

LiteRT edge deployment framework

LiteRT (Lite Runtime kısaltması), Google'ın cihaz üzerinde yapay zeka (on-device AI) için yüksek performanslı çalışma zamanıdır. TensorFlow Lite'ın (TFLite) yeni nesli ve yeni adıdır ve aynı .tflite model formatını çalıştırır. LiteRT ile, tek bir dışa aktarılmış Ultralytics YOLO modeli mobil, gömülü, uç (edge) ve tarayıcı genelinde dağıtılır; böylece eskiden tflite ve tfjs dışa aktarma formatlarının ayrı ayrı ele aldığı her şeyi artık tek bir çatı altında kapsar.

LiteRT dışa aktarma formatı; modellerini nesne algılama, segmentasyon, poz kestirimi ve sınıflandırma gibi görevler için optimize eder, böylece çok çeşitli cihazlarda hızlı ve çevrimdışı çalışırlar.

Link to this sectionNeden LiteRT'ye Dışa Aktarmalısın?#

LiteRT, uç bilişim olarak da bilinen cihaz üzerinde çıkarım için tasarlanmış açık kaynaklı bir çerçevedir. Geliştiricilere eğitilmiş modelleri mobil, gömülü ve IoT cihazlarında, geleneksel bilgisayarlarda ve LiteRT.js aracılığıyla doğrudan web tarayıcılarında ve Node.js'de çalıştırmaları için gereken araçları sağlar.

Tek bir model formatı, her hedef platform:

  • Mobil ve Gömülü: Android, iOS, gömülü Linux ve mikrodenetleyiciler (MCU'lar).
  • Uç (Edge) hızlandırıcılar: Daha fazla hızlandırma için Coral Edge TPU ile uyumludur.
  • Tarayıcı ve Node.js: LiteRT.js, WebGPU/WASM hızlandırması ile web'de aynı .tflite modelini çalıştırır; bu sayede ayrı bir TensorFlow.js dışa aktarımına duyulan ihtiyacı ortadan kaldırır.

Link to this sectionLiteRT Modellerinin Temel Özellikleri#

  • Cihaz İçi Optimizasyon: Verileri yerel olarak işleyerek gecikmeyi azaltır, kişisel verileri iletmeyerek gizliliği artırır ve alan kazanmak için model boyutunu minimize eder.
  • Çoklu Platform Desteği: Android, iOS, gömülü Linux, mikrodenetleyiciler ve modern web tarayıcılarında çalışır.
  • Donanım Hızlandırma: CPU üzerinde XNNPACK'ten, OpenCL, Metal ve WebGPU aracılığıyla GPU hızlandırmasından yararlanır. GPU temsilcisi, ekstra hız için varsayılan olarak FP16 modunda çalışır.
  • Quantization: Supports FP32, static INT8 (quantize=8, int8 weights + int8 activations), static INT16-activation (quantize="w8a16", int8 weights + int16 activations for higher accuracy), and dynamic INT8 (quantize="w8a32", int8 weights + FP32 activations, no calibration data needed) to compress models and speed up inference with minimal accuracy loss.
  • Çeşitli Dil Desteği: Java/Kotlin, Swift, Objective-C, C++, Python ve JavaScript ile uyumludur.

Link to this sectionLiteRT'ye Aktarım: YOLO Modelini Dönüştürme#

Modellerini LiteRT formatına dönüştürerek cihaz üzerindeki çalıştırma verimliliğini artırabilir ve dağıtım seçeneklerini genişletebilirsin.

Link to this sectionKurulum#

Gerekli paketi yüklemek için şunu çalıştır:

Kurulum
# Install the required package for YOLO
pip install ultralytics

Ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. Herhangi bir zorlukla karşılaşırsan Yaygın Sorunlar kılavuzumuza danış.

Platform desteği

LiteRT dışa aktarımı şu anda Linux x86_64 ve macOS üzerinde desteklenmektedir. Dışa aktarılan .tflite modelinin kendisi, LiteRT destekli tüm platformlarda (mobil, gömülü, uç ve tarayıcı) çalışır.

Link to this sectionKullanım#

Tüm Ultralytics YOLO modelleri kutudan çıktığı gibi dışa aktarmayı destekler. LiteRT formatı; Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler; böylece bir modeli dışa aktarabilir, ardından yerel olarak çıkarım yapmak veya doğruluğunu test etmek için yükleyebilirsin.

Dışa Aktar (Export)
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'
Kuantize edilmiş dışa aktarım
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'
Tahmin Et (Predict)
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
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 sectionDışa Aktarma Argümanları#

ArgümanTipVarsayılanAçıklama
formatstr'litert'Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya belirli boyutlar için (height, width) şeklinde bir demet olabilir.
quantizeint veya strNoneKuantizasyon hassasiyeti: 8 (statik INT8, int8 ağırlıklar + int8 aktivasyonlar; kalibrasyon data/fraction gerektirir), 'w8a16' (statik, int8 ağırlıklar + int16 aktivasyonlar; kalibrasyon data/fraction gerektirir), 'w8a32' (dinamik INT8, int8 ağırlıklar + FP32 aktivasyonlar; kalibrasyon gerektirmez) veya 32/ayarlanmamış (FP32). FP16 ayrı olarak dışa aktarılmaz (aşağıdaki nota bak). Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
batchint1Dışa aktarılan modelin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir.
datastr'coco8.yaml'INT8 kalibrasyonu için kullanılan veri kümesi YAML dosyası. quantize=8 ile atlanırsa, Ultralytics model görevi için varsayılan kalibrasyon veri kümesini seçer.
devicestrNoneDışa aktarma için cihazı belirtir. LiteRT dışa aktarımı CPU (device=cpu) üzerinde çalışır.
FP16 hassasiyeti

Eski tflite dışa aktarımının aksine, LiteRT ayrı bir FP16 dışa aktarımı gerektirmez. Bir FP32 .tflite modeli, GPU temsilcisi (WebGPU, OpenCL, Metal) kullanıldığında çalışma zamanında yarım hassasiyette (half precision) çalışır; bu, FP16 çıkarımı için resmi LiteRT yaklaşımıdır.

Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics dokümantasyon sayfasına git.

Link to this sectionDışa Aktarılan YOLO LiteRT Modellerini Dağıtma#

Ultralytics YOLO modelini LiteRT'ye aktardıktan sonra onu platformlar genelinde dağıtabilirsin. Yerel olarak doğrulamanın en hızlı yolu yukarıda gösterilen YOLO("yolo26n.tflite") yöntemidir. Diğer ortamlarda dağıtım için aşağıdaki kaynaklara bak:

Link to this sectionMobil ve Gömülü#

  • Android: LiteRT'yi Android uygulamalarına entegre etmek için hızlı bir başlangıç kılavuzu.
  • iOS: LiteRT modellerini iOS uygulamalarına entegre etmek ve dağıtmak için bir kılavuz.
  • Gömülü Linux ve Raspberry Pi: LiteRT modellerini tek kartlı bilgisayarlarda çalıştır, isteğe bağlı olarak Coral Edge TPU ile hızlandır.
  • Mikrodenetleyiciler: Sadece birkaç kilobayt belleğe sahip MCU'lara dağıt; çekirdek çalışma zamanı bir Arm Cortex-M3 üzerinde yaklaşık 16 KB yer kaplar.

Link to this sectionTarayıcı ve Node.js (LiteRT.js)#

  • LiteRT.js genel bakış: Aynı .tflite modelini WebGPU/WASM hızlandırması ile doğrudan tarayıcıda çalıştır, sunucu tarafı hesaplamayı ortadan kaldır ve verileri kullanıcının cihazında tut.
  • Uçtan Uca Örnekler: Mobil, uç ve web genelinde LiteRT uygulamak için pratik örnekler ve eğitimler.

Link to this sectionÖzet#

Bu kılavuzda, Ultralytics YOLO modellerinin LiteRT formatına nasıl aktarılacağını ele aldık. Mobil/uç (eski adıyla TFLite) ve tarayıcı (eski adıyla TF.js) dağıtımını tek bir .tflite modelinde birleştiren LiteRT, YOLO modellerini daha hızlı, daha küçük ve cihaz üzerindeki hemen hemen her hedef platformda taşınabilir hale getirir.

Daha fazla ayrıntı için LiteRT resmi belgelerini ziyaret et.

Ayrıca, diğer Ultralytics YOLO entegrasyonlarını merak ediyorsan, çok sayıda yararlı kaynak için entegrasyon kılavuzu sayfamıza göz at.

Link to this sectionSSS#

Link to this sectionBir YOLO modelini LiteRT formatına nasıl aktarırım?#

Bir YOLO modelini LiteRT (.tflite) formatına aktarmak için Ultralytics kütüphanesini kullan. İlk olarak paketi yükle:

pip install ultralytics

Ardından modelini dışa aktar:

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 kullanıcıları için:

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

Daha fazla ayrıntı için Ultralytics dışa aktarma kılavuzunu ziyaret et.

Link to this sectionLiteRT, TFLite ve TF.js arasındaki fark nedir?#

LiteRT, TensorFlow Lite'ın yeni adıdır; aynı .tflite model formatı, aynı çalışma zamanı geçmişi, Google tarafından yeniden markalanmıştır. Ultralytics'te, tek litert dışa aktarma formatı artık eskiden iki ayrı format gerektiren her iki kullanım durumunu da kapsar:

  • Eski tflite formatı → mobil, gömülü ve uç (edge) dağıtımı.
  • The old tfjs format → browser and Node.js deployment, now handled by LiteRT.js running the same .tflite file.

Mevcut bir .tflite dosyan varsa, onu doğrudan YOLO("model.tflite") ile yükleyebilirsin ve LiteRT arka ucu üzerinden çalışacaktır.

Link to this sectionYOLO LiteRT modellerini Raspberry Pi üzerinde çalıştırabilir miyim?#

Evet. Modelini LiteRT formatına aktar, ardından çıkarım hızlarını artırmak için bir Raspberry Pi üzerinde çalıştır. Daha fazla optimizasyon için bir Coral Edge TPU düşün. Ayrıntılı adımlar için Raspberry Pi dağıtım kılavuzumuza bak.

Link to this sectionYOLO modellerini tarayıcıda LiteRT ile çalıştırabilir miyim?#

Evet. LiteRT.js, WebGPU/WASM hızlandırması ile aynı dışa aktarılmış .tflite modelini doğrudan bir web tarayıcısında veya Node.js uygulamasında çalıştırır. Bu, önceki TensorFlow.js iş akışının yerini alır; ayrı bir tarayıcı dışa aktarımına gerek yoktur, sadece LiteRT modelini LiteRT.js çalışma zamanı ile dağıt.

Link to this sectionLiteRT FP16 (yarım hassasiyet) çıkarımını destekler mi?#

Evet, çalışma zamanında. Bir FP32 LiteRT modeli, bir GPU temsilcisi (WebGPU, OpenCL veya Metal) üzerinde yürütüldüğünde otomatik olarak FP16'da çalışır; bu, resmi LiteRT yaklaşımıdır. Bu nedenle özel bir FP16 dışa aktarımına ihtiyacın yoktur; daha fazla sıkıştırma için quantize=8 ile INT8 kuantizasyonunu kullan.

Link to this sectionLiteRT dışa aktarımı sırasında yaygın sorunları nasıl gideririm?#

YOLO modellerini LiteRT'ye aktarırken hatalarla karşılaşırsan, yaygın çözümler şunlardır:

  • Platformu kontrol et: LiteRT dışa aktarımı Linux x86_64 ve macOS üzerinde desteklenir. Ortamının uyumlu olduğunu doğrula.
  • Paket uyumluluğunu kontrol et: Uyumlu bir Ultralytics sürümü kullandığından emin ol. Kurulum kılavuzumuza bak.
  • Kuantizasyon sorunları: INT8 kuantizasyonu kullanırken, veri kümesi yolunun data parametresinde doğru belirtildiğinden emin ol.

Ek sorun giderme ipuçları için Yaygın Sorunlar kılavuzumuzu ziyaret et.

Katkıda Bulunanlar

Yorumlar