YOLO Vision 2026:

Dağıtım için TFLite Model Dışa Aktarma (Kullanımdan Kaldırıldı)#

Kullanımdan kaldırıldı — yerine LiteRT getirildi

Ultralytics 8.4.83 sürümünden itibaren, bağımsız tflite dışa aktarım biçimi kaldırılmış ve yerine birleştirilmiş Google LiteRT biçimi getirilmiştir. LiteRT (Lite Runtime), TensorFlow Lite'ın yeni nesli ve yeni adıdır; mobil, gömülü, uç ve tarayıcı dağıtımlarını tek bir biçimde kapsayacak şekilde aynı .tflite modelini dışa aktarır.

format="tflite" çalışmaya devam eder ancak bir kullanım dışı kalma uyarısı üretir ve bunun yerine bir LiteRT modeli dışa aktarır. Bundan sonra format="litert" öğesini kullanın; mevcut dışa aktarım talimatları ve seçenekleri için LiteRT dışa aktarım kılavuzuna bakın.

TensorFlow Lite edge deployment framework

Bilgisayarlı görü modellerini uç cihazlarda veya gömülü cihazlarda dağıtmak, sorunsuz performansı garanti edebilen bir biçim gerektirir.

Eski TensorFlow Lite veya TFLite dışa aktarım biçimi, Ultralytics YOLO26 modellerini uç uygulamalarda nesne tespiti ve görüntü sınıflandırma gibi görevler için optimize etmiştir. Bu kılavuz eski TFLite dağıtım bağlamını korur; yeni dışa aktarımlar için LiteRT kullanın.

TFLite Neden Dışa Aktarma İçin Kullanılıyordu?#

Google tarafından Mayıs 2017'de TensorFlow çerçevesinin bir parçası olarak sunulan TensorFlow Lite veya kısa adıyla TFLite, uç bilişim olarak da bilinen cihaz üzerinde çıkarım için tasarlanmış açık kaynaklı bir derin öğrenme çerçevesiydi. Geliştiricilere eğitilmiş modelleri mobil, gömülü ve IoT cihazların yanı sıra geleneksel bilgisayarlarda çalıştırmaları için araçlar sağladı.

TensorFlow Lite; gömülü Linux, Android, iOS ve mikrodenetleyiciler (MCU) dahil olmak üzere geniş bir platform yelpazesini destekliyordu. TFLite dışa aktarmaları, uygulamaların modelleri yerel olarak ve çevrimdışı çalıştırmasını sağladı.

TFLite Modellerinin Temel Özellikleri#

TFLite modelleri, geliştiricilerin modellerini mobil, gömülü ve uç cihazlarda çalıştırmalarına yardımcı olarak cihaz üzerinde makine öğrenimini mümkün kılan çok çeşitli temel özellikler sunar:

  • Cihaz İçi Optimizasyon: TFLite, cihaz üzerinde makine öğrenimi için optimize edilmiştir; 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: TFLite, Android, iOS, gömülü Linux ve mikrodenetleyicileri destekleyerek kapsamlı bir platform uyumluluğu sunar.

  • Çeşitli Dil Desteği: TFLite, Java, Swift, Objective-C, C++ ve Python dahil olmak üzere çeşitli programlama dilleriyle uyumludur.

  • Yüksek Performans: Donanım hızlandırma ve model optimizasyonu yoluyla üstün performans sağlar.

Ölçülen Performans (tarihsel)#

Geçiş öncesi/sonrası dondurulmuş kayıt

Bu sonuçlar, 12 GB LPDDR5X belleğe sahip bir Xiaomi 17 üzerinde Android 16/API 36 ile Ultralytics Flutter eklentisi 0.6.8 ve LiteRT 2.1.5 kullanılarak kaydedilmiştir. 3 nm Snapdragon 8 Elite Gen 5 (SM8850) işlemcisi; 8 çekirdekli bir Qualcomm Oryon CPU'ya (4,6 GHz'e kadar 2 Prime çekirdek ve 3,62 GHz'e kadar 6 Performans çekirdeği), Adreno GPU'ya ve Hexagon NPU'ya sahiptir. Bu tablolar, eski onnx2tf INT8 TFLite varlıklarını, geçiş sırasında değerlendirilen aday litert-torch dışa aktarımlarıyla karşılaştırır. Sürüm varlıkları daha sonra standartlaştırılmış dışa aktarımlarla üzerine yazıldığı için, bu sayılar güncel v0.6.6 varlık baytlarını ifade etmez. Güncel ölçümler için LiteRT performans tablolarına bakın.

Her iki biçim de gösterilen giriş boyutlarında aynı ardışık GPU taramasında çalıştırıldı. Her hücre, altında aşama bazlı dağılımı ile birlikte toplam süredir (ön işleme + çıkarım + son işleme); yerel günlükler, her iki biçimin de tüm grafiği Adreno GPU üzerinde LiteRT OpenCL'ye (LITERT_CL) devrettiğini doğruladı.

ModelGörevboyut
(piksel)
Eski
onnx2tf INT8 TFLite
(ms)
Aday
w8a32 LiteRT
(ms)
YOLO26nAlgıla64014.0
1.8 / 8.1 / 4.2
13.5
1.9 / 8.1 / 3.5
YOLO26n-segSegment64030.1
1.9 / 20.3 / 8.0
28.6
1.8 / 20.1 / 6.7
YOLO26n-semAnlamsal64026.4
1.9 / 16.4 / 8.1
32.9
1.8 / 23.0 / 8.2
YOLO26n-clsSınıflandır2243.5
0.9 / 2.2 / 0.4
3.2
1.0 / 2.2 / 0.1
YOLO26n-posePose64017.4
2.4 / 9.9 / 5.1
14.0
1.9 / 9.3 / 2.8
YOLO26n-obbOBB64013.9
3.0 / 8.3 / 2.7
13.0
2.9 / 7.9 / 2.3

Aynı geçiş çalıştırmasında YOLO26n nesne tespiti nicemleme formatları da karşılaştırılmıştır. Çıkarım, format bağımlı karşılaştırılabilir metriktir:

Android formatıGPU çıkarımı (ms)GPU-derlemeleri
onnx2tf INT8 (eski TFLite)8.6evet
LiteRT w8a32 (aday)8.4evet
LiteRT INT8 (quantize=8)11.0evet
LiteRT FP328.8evet
LiteRT w8a16 (quantize="w8a16")CPU yedek geçişihayır

Bu çalıştırmada w8a16, GPU biçimleri için yaklaşık 17 ms'ye karşılık toplamda yaklaşık 660 ms ile CPU'ya geri döndü. Bu sonuçlar w8a32 sürümünün yayınlanmasını motive etti, ancak delege uyumluluğu ve performansı cihaza ve çalışma zamanı sürümüne bağlıdır. Hedef cihazı test edin ve çalışma zamanı günlüklerinde hızlandırıcı yerleşimini doğrulayın.

TFLite'daki Dağıtım Seçenekleri#

LiteRT ile değiştirmeye yönelik dışa aktarma örneğine bakmadan önce, TFLite modellerinin normalde nasıl kullanıldığını anlayalım.

TFLite, makine öğrenimi modelleri için aşağıdakiler de dahil olmak üzere çeşitli cihaz içi dağıtım seçenekleri sunar:

  • Android ve iOS ile Dağıtım: TFLite kullanan hem Android hem de iOS uygulamaları, nesneleri tespit etmek ve tanımlamak için uç tabanlı kamera akışlarını ve sensörleri analiz edebilir. TFLite ayrıca Swift ve Objective-C ile yazılmış yerel iOS kütüphaneleri sunar. Aşağıdaki mimari diyagramı, TensorFlow Lite kullanarak eğitilmiş bir modelin Android ve iOS platformlarına dağıtılma sürecini gösterir.

TensorFlow Lite deployment architecture for mobile

  • Gömülü Linux ile Uygulama: Ultralytics Kılavuzu kullanılarak bir Raspberry Pi üzerinde çıkarım çalıştırılması kullanım senaryonuzun hız gereksinimlerini karşılamıyorsa, çıkarım sürelerini hızlandırmak için dışa aktarılmış bir TFLite modeli kullanabilirsiniz. Ek olarak, bir Coral Edge TPU cihazı kullanarak performansı daha da artırmak mümkündür.

  • Mikrodenetleyicilerle Dağıtım: TFLite modelleri, mikrodenetleyicilere ve yalnızca birkaç kilobayt belleğe sahip diğer cihazlara da dağıtılabilir. Temel çalışma zamanı (runtime), bir Arm Cortex M3 üzerinde sadece 16 KB yer kaplar ve birçok temel modeli çalıştırabilir. İşletim sistemi desteği, herhangi bir standart C veya C++ kütüphanesi ya da dinamik bellek tahsisi gerektirmez.

TFLite Dışa Aktarmayı LiteRT ile Değiştir#

Yeni dışa aktarımlar için modelinizi LiteRT'ye dönüştürün. Elde edilen model .tflite dosya uzantısını korur.

Kurulum#

Gerekli paketleri kurmak için şunu çalıştır:

Kurulum
# Install the required package for YOLO26
pip install ultralytics

Kurulum sürecine ilişkin ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.

Kullanım#

Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarmayı destekleyecek şekilde tasarlanmıştır; bu da bunları tercih ettiğin dağıtım iş akışına entegre etmeni kolaylaştırır. Uygulaman için en iyi kurulumu seçmek üzere desteklenen dışa aktarım formatlarının ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsin.

Yedek LiteRT biçimi Export, Predict ve Validate modlarını destekler. Modelinizi dışa aktarın, ardından çıkarım çalıştırmak veya doğruluğunu test etmek için dışa aktarılan .tflite modelini yükleyin.

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", imgsz=640)  # use imgsz=224 for classification
Tahmin Et (Predict)
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

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

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

Dış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 bir (height, width) demeti (tuple) olabilir.
quantizeint veya strNoneNiceleme hassasiyeti: 8 (statik INT8, int8 ağırlıklar + int8 aktivasyonlar; kalibrasyon gerektirir data/fraction), 'w8a16' (statik, int8 ağırlıklar + int16 aktivasyonlar; kalibrasyon gerektirir data/fraction), 'w8a32' (dinamik INT8, int8 ağırlıklar + FP32 aktivasyonlar; kalibrasyon gerektirmez) veya 32/atanmamış (FP32). FP16 ayrı olarak dışa aktarılmaz; bir FP32 modeli GPU temsilcilerinde otomatik olarak FP16 olarak çalışır. 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 aynı anda işleyeceği maksimum görüntü sayısını belirtir.
datastrNoneKuantizasyon için temel olan veri kümesi YAML'sine giden yol; sınıflandırma ise bunun yerine bir veri kümesi dizini veya yerleşik bir veri kümesi adı alır. quantize=8 veya 'w8a16' ile atlanırsa, Ultralytics model görevi için varsayılan kalibrasyon veri kümesini seçer.
fractionfloat1.0INT8 nicemleme kalibrasyonu için kullanılacak veri kümesi oranını belirtir. Deneyler veya kaynakların sınırlı olduğu durumlar için yararlı olan tam veri kümesinin bir alt kümesinde kalibrasyona izin verir. INT8 etkinleştirildiğinde belirtilmezse, veri kümesinin tamamı kullanılır.
devicestrNoneDışa aktarma için cihazı belirtir: CPU (device=cpu), Apple silikon için MPS (device=mps).

Dışa aktarım süreci hakkında daha fazla ayrıntı için Ultralytics documentation page on exporting sayfasını ziyaret edin.

Dışa Aktarılan YOLO26 TFLite Modellerini Dağıtma#

Ultralytics YOLO26 modelinizi LiteRT biçimine aktardıktan sonra, ortaya çıkan .tflite modelini dağıtabilirsiniz. Bir TFLite modelini çalıştırmak için birincil ve önerilen ilk adım, önceki kullanım kod bloğunda özetlendiği gibi YOLO("model.tflite") yöntemini kullanmaktır. Bununla birlikte, TFLite modellerinizi çeşitli diğer ortamlarda dağıtmakla ilgili ayrıntılı talimatlar için aşağıdaki kaynaklara göz atın:

  • Android: TensorFlow Lite'ı Android uygulamalarına entegre etmek için hızlı başlangıç kılavuzu; makine öğrenimi modellerini kurmak ve çalıştırmak için takip etmesi kolay adımlar sağlar.

  • iOS: Adım adım talimatlar ve kaynaklar sunarak, TensorFlow Lite modellerini iOS uygulamalarında entegre etmek ve dağıtmak isteyen geliştiriciler için bu ayrıntılı kılavuza göz atın.

  • Uçtan Uca Örnekler: Bu sayfa, geliştiricilerin mobil ve uç cihazlardaki makine öğrenimi projelerinde TensorFlow Lite'ı uygulamalarına yardımcı olmak için tasarlanmış pratik uygulamaları ve eğitimleri sergileyen çeşitli TensorFlow Lite örneklerine genel bir bakış sunar.

Özet#

Bu kılavuz eski TFLite dağıtım iş akışını korur. Yeni dışa aktarımlar için uç bilişim ortamlarında .tflite modelleri oluşturmak üzere LiteRT kullanın.

Kullanım hakkında daha fazla ayrıntı için TFLite resmi belgelerini ziyaret edin.

Ayrıca diğer Ultralytics YOLO26 entegrasyonlarını merak ediyorsanız entegrasyon kılavuzu sayfamıza göz atın. Orada çok sayıda yararlı bilgi ve içgörü bulacaksınız.

SSS#

TFLite dışa aktarmasını LiteRT ile nasıl değiştiririm?#

Yeni bir dışa aktarma için LiteRT formatını kullan. İlk olarak, gerekli paketi şununla yükle:

pip install ultralytics

Ardından, modelini dışa aktarmak için aşağıdaki kod parçacığını kullan:

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 kullanıcıları için bunu şununla başarabilirsin:

yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

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

YOLO26 model dağıtımı için TensorFlow Lite kullanmanın faydaları nelerdir?#

TensorFlow Lite (TFLite), YOLO26 modellerini mobil, gömülü ve IoT cihazlarda dağıtmak için ideal hale getiren, cihaz üzerinde çıkarım için tasarlanmış açık kaynaklı bir derin öğrenme çerçevesidir. Temel faydaları şunlardır:

  • Cihaz içi optimizasyon: Verileri yerel olarak işleyerek gecikmeyi en aza indirir ve gizliliği artırır.
  • Platform uyumluluğu: Android, iOS, gömülü Linux ve MCU'yu destekler.
  • Performans: Model hızını ve verimliliğini optimize etmek için donanım hızlandırmayı kullanır.

Daha fazla bilgi edinmek için TFLite kılavuzuna göz atın.

YOLO26 TFLite modellerini Raspberry Pi üzerinde çalıştırmak mümkün mü?#

Evet, çıkarım hızlarını artırmak için Raspberry Pi üzerinde YOLO26 TFLite modellerini çalıştırabilirsin. İlk olarak, yukarıda açıklandığı gibi modelini LiteRT formatına aktar. Ardından, modelini Raspberry Pi üzerinde yürütmek için TensorFlow Lite Interpreter gibi bir araç kullan.

Daha fazla optimizasyon için Coral Edge TPU kullanmayı düşünebilirsiniz. Ayrıntılı adımlar için Raspberry Pi dağıtım kılavuzumuza ve Edge TPU entegrasyon kılavuzuna bakın.

YOLO26 tahminleri için mikrodenetleyicilerde TFLite modellerini kullanabilir miyim?#

Evet, TFLite sınırlı kaynaklara sahip mikrodenetleyicilerde dağıtımı destekler. TFLite'ın temel çalışma zamanı, bir Arm Cortex M3 üzerinde yalnızca 16 KB bellek gerektirir ve temel YOLO26 modellerini çalıştırabilir. Bu, onu minimum hesaplama gücü ve belleğe sahip cihazlarda dağıtım için uygun hale getirir.

Başlamak için Mikrodenetçiler için TFLite Micro kılavuzunu ziyaret edin.

TFLite dışa aktarılmış YOLO26 modelleriyle hangi platformlar uyumludur?#

TensorFlow Lite, geniş bir platform uyumluluğu sağlayarak YOLO26 modellerini aşağıdakiler de dahil olmak üzere çok çeşitli cihazlarda dağıtmana olanak tanır:

  • Android ve iOS: TFLite Android ve iOS kütüphaneleri aracılığıyla yerel destek.
  • Gömülü Linux: Raspberry Pi gibi tek kartlı bilgisayarlar için idealdir.
  • Mikrodenetleyiciler: Sınırlı kaynaklara sahip MCU'lar için uygundur.

Dağıtım seçenekleri hakkında daha fazla bilgi için ayrıntılı dağıtım kılavuzumuza bakın.

YOLO26 modelini LiteRT'ye aktarırken yaşanan yaygın sorunları nasıl gideririm?#

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

  • Paket uyumluluğunu kontrol edin: Ultralytics, litert-torch ve ai-edge-litert sürümlerinin uyumlu sürümlerini kullandığınızdan emin olun. Kurulum kılavuzumuza bakın.
  • Model desteği: Belirli YOLO26 modelinin Ultralytics dışa aktarım belgeleri sayfasını kontrol ederek LiteRT dışa aktarımını desteklediğini doğrulayın.
  • Kuantizasyon sorunları: INT8 kuantizasyonu kullanırken, veri kümesi yolunun data parametresinde doğru şekilde belirtildiğinden emin ol.

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

Yorumlar