Dağıtım için YOLO11 Modelinin TFLite'a Aktarılması Kılavuzu
Bilgisayarla görme modellerini uç cihazlarda veya gömülü cihazlarda dağıtmak, sorunsuz performans sağlayabilen bir format gerektirir.
TensorFlow Lite veya TFLite dışa aktarma biçimi, Ultralytics YOLO11 modellerinizi uç cihaz tabanlı uygulamalarda nesne algılama ve görüntü sınıflandırma gibi görevler için optimize etmenize olanak tanır. Bu kılavuzda, modellerinizi TFLite biçimine dönüştürme adımlarını inceleyeceğiz ve böylece modellerinizin çeşitli uç cihazlarda iyi performans göstermesini kolaylaştıracağız.
Neden TFLite'a Aktarmalısınız?
Google tarafından Mayıs 2017'de TensorFlow çerçevesinin bir parçası olarak tanıtılan TensorFlow Lite veya kısaca TFLite, cihaz üzerinde çıkarım için tasarlanmış açık kaynaklı bir derin öğrenme çerçevesidir ve uç bilişim olarak da bilinir. Geliştiricilere, eğitilmiş modellerini mobil, gömülü ve IoT cihazlarının yanı sıra geleneksel bilgisayarlarda da çalıştırmak için gerekli araçları sağlar.
TensorFlow Lite, gömülü Linux, Android, iOS ve MCU dahil olmak üzere çok çeşitli platformlarla uyumludur. Modelinizi TFLite'a aktarmak, uygulamalarınızı daha hızlı, daha güvenilir ve çevrimdışı çalışabilir hale getirir.
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 sağlayan çok çeşitli temel özellikler sunar:
-
Cihaz Üzerinde Optimizasyon: TFLite, cihaz üzerinde makine öğrenimi için optimize eder, verileri yerel olarak işleyerek gecikmeyi azaltır, kişisel verileri iletmeyerek gizliliği artırır ve yerden tasarruf etmek için model boyutunu en aza indirir.
-
Çoklu Platform Desteği: TFLite, Android, iOS, gömülü Linux ve mikrodenetleyicileri destekleyen kapsamlı 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 sayesinde üstün performans elde eder.
TFLite'da Dağıtım Seçenekleri
YOLO11 modellerini TFLite formatına aktarma koduna bakmadan önce, TFLite modellerinin normalde nasıl kullanıldığını anlayalım.
TFLite, makine öğrenimi modelleri için aşağıdakiler dahil çeşitli cihaz üzerinde dağıtım seçenekleri sunar:
- Android ve iOS ile Dağıtım: TFLite'lı hem Android hem de iOS uygulamaları, nesneleri tespit etmek ve tanımlamak için uç tabanlı kamera yayınlarını ve sensörleri analiz edebilir. TFLite ayrıca Swift ve Objective-C ile yazılmış yerel iOS kitaplıkları sunar. Aşağıdaki mimari diyagramı, eğitilmiş bir modelin TensorFlow Lite kullanılarak Android ve iOS platformlarına dağıtılma sürecini göstermektedir.
-
Gömülü Linux ile Uygulama: Ultralytics Kılavuzu kullanılarak bir Raspberry Pi üzerinde çıkarımlar çalıştırmak, kullanım durumunuz için 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, yalnızca birkaç kilobayt belleğe sahip mikrodenetleyicilere ve diğer cihazlara da dağıtılabilir. Çekirdek çalışma zamanı, bir Arm Cortex M3 üzerinde yalnızca 16 KB'a sığar ve birçok temel modeli çalıştırabilir. İşletim sistemi desteği, herhangi bir standart C veya C++ kitaplığı ya da dinamik bellek ayırma gerektirmez.
TFLite'a Aktar: YOLO11 Modelinizi Dönüştürme
Modellerinizi TFLite formatına dönüştürerek cihaz üzerinde model yürütme verimliliğini artırabilir ve performansı optimize edebilirsiniz.
Kurulum
Gerekli paketleri kurmak için şunu çalıştırın:
Kurulum
# Install the required package for YOLO11
pip install ultralytics
Yükleme süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza bakın. YOLO11 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzumuza başvurun.
Kullanım
Tüm Ultralytics YOLO11 modelleri, kutudan çıkar çıkmaz dışa aktarmayı destekleyecek şekilde tasarlanmıştır ve bu da onları tercih ettiğiniz dağıtım iş akışına entegre etmeyi kolaylaştırır. Uygulamanız için en iyi kurulumu seçmek üzere desteklenen dışa aktarma biçimlerinin ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsiniz.
Kullanım
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'
Dışa Aktarma Argümanları
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
format |
str |
'tflite' |
Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan modelin hedef formatı. |
imgsz |
int veya tuple |
640 |
Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir demet olabilir (height, width) belirli boyutlar için. |
half |
bool |
False |
FP16 (yarı duyarlıklı) nicelemeyi etkinleştirir, model boyutunu küçültür ve desteklenen donanımda çıkarımı potansiyel olarak hızlandırır. |
int8 |
bool |
False |
INT8 nicelemesini etkinleştirir, modeli daha da sıkıştırır ve öncelikle uç cihazlar için minimum doğruluk kaybıyla çıkarımı hızlandırır. |
nms |
bool |
False |
Doğru ve verimli algılama sonrası işleme için gerekli olan Non-Maximum Suppression (NMS) ekler. |
batch |
int |
1 |
Dışa aktarma modeli toplu çıkarım boyutunu veya dışa aktarılan modelin aynı anda işleyeceği maksimum görüntü sayısını belirtir. predict modu. |
data |
str |
'coco8.yaml' |
Şuraya giden yol: veri kümesi yapılandırma dosyası (varsayılan: coco8.yaml ), niceleme için önemlidir. |
fraction |
float |
1.0 |
Veri kümesinin INT8 niceleme kalibrasyonu için kullanılacak kısmını belirtir. Tam veri kümesinin bir alt kümesi üzerinde kalibrasyon yapılmasına olanak tanır, bu da deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır. INT8 etkinleştirilmişse belirtilmezse, tam veri kümesi kullanılır. |
device |
str |
None |
Dışa aktarma için cihazı belirtir: CPU (device=cpu ), Apple silikon için MPS (device=mps ). |
Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics'in dışa aktarma hakkındaki dokümantasyon sayfasını ziyaret edin.
Dışa Aktarılmış YOLO11 TFLite Modellerini Dağıtma
Ultralytics YOLO11 modellerinizi TFLite formatına başarıyla aktardıktan sonra, artık bunları dağıtabilirsiniz. Bir TFLite modelini çalıştırmak için birincil ve önerilen ilk adım, YOLO("model.tflite")
yöntemiyle uygulayabilirsiniz; bu yöntem önceki kullanım kodu parçasında özetlenmiştir. Ancak, TFLite modellerinizi çeşitli diğer ortamlarda dağıtma hakkında 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ı bir başlangıç kılavuzu; makine öğrenimi modellerini kurmak ve çalıştırmak için kolayca takip edilebilen adımlar sunar.
-
iOS: TensorFlow Lite modellerini iOS uygulamalarına entegre etme ve dağıtma konusunda geliştiriciler için adım adım talimatlar ve kaynaklar sunan 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 öğreticileri sergileyen çeşitli TensorFlow Lite örneklerine genel bir bakış sunar.
Özet
Bu kılavuzda, TFLite biçimine nasıl aktarılacağına odaklandık. Ultralytics YOLO11 modellerinizi TFLite model biçimine dönüştürerek, YOLO11 modellerinin verimliliğini ve hızını artırabilir, bu da onları uç bilgi işlem ortamları için daha etkili ve uygun hale getirir.
Kullanım hakkında daha fazla bilgi için TFLite resmi belgelerini ziyaret edin.
Ayrıca, diğer Ultralytics YOLO11 entegrasyonlarını merak ediyorsanız, entegrasyon kılavuzu sayfamızı mutlaka inceleyin. Orada sizi bekleyen tonlarca faydalı bilgi ve içgörü bulacaksınız.
SSS
Bir YOLO11 modelini TFLite formatına nasıl aktarırım?
Bir YOLO11 modelini TFLite formatına aktarmak için Ultralytics kütüphanesini kullanabilirsiniz. İlk olarak, gerekli paketi kullanarak kurun:
pip install ultralytics
Ardından, modelinizi dışa aktarmak için aşağıdaki kod parçasını kullanın:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
CLI kullanıcıları için, bunu şu şekilde elde edebilirsiniz:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
Daha fazla ayrıntı için Ultralytics dışa aktarma kılavuzunu ziyaret edin.
YOLO11 model dağıtımı için TensorFlow Lite kullanmanın faydaları nelerdir?
TensorFlow Lite (TFLite), cihaz üzerinde çıkarım için tasarlanmış, YOLO11 modellerini mobil, gömülü ve IoT cihazlarına dağıtmak için ideal hale getiren açık kaynaklı bir derin öğrenme çerçevesidir. Temel faydaları şunlardır:
- Cihaz üzerinde optimizasyon: Verileri yerel olarak işleyerek gecikmeyi en aza indirin ve gizliliği artırın.
- Platform uyumluluğu: Android, iOS, gömülü Linux ve MCU'yu destekler.
- Performans: Modelin hızını ve verimliliğini optimize etmek için donanım hızlandırmasını kullanır.
Daha fazla bilgi edinmek için TFLite kılavuzuna göz atın.
Raspberry Pi'de YOLO11 TFLite modellerini çalıştırmak mümkün mü?
Evet, çıkarım hızlarını artırmak için Raspberry Pi üzerinde YOLO11 TFLite modellerini çalıştırabilirsiniz. Öncelikle, modelinizi yukarıda açıklandığı gibi TFLite formatına aktarın. Ardından, modelinizi Raspberry Pi'nizde çalıştırmak için TensorFlow Lite Interpreter gibi bir araç kullanın.
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.
YOLO11 tahminleri için mikro denetleyicilerde TFLite modellerini kullanabilir miyim?
Evet, TFLite, sınırlı kaynaklara sahip mikro denetleyicilerde dağıtımı destekler. TFLite'ın temel çalışma zamanı, bir Arm Cortex M3 üzerinde yalnızca 16 KB bellek gerektirir ve temel YOLO11 modellerini çalıştırabilir. Bu, onu minimum işlem gücü ve belleğe sahip cihazlarda dağıtım için uygun hale getirir.
Başlamak için Mikrodenetleyiciler için TFLite Micro kılavuzunu ziyaret edin.
TFLite ile dışa aktarılmış YOLO11 modelleriyle hangi platformlar uyumludur?
TensorFlow Lite, YOLO11 modellerini aşağıdakiler de dahil olmak üzere çok çeşitli cihazlarda dağıtmanıza olanak tanıyan kapsamlı bir platform uyumluluğu sağlar:
- Android ve iOS: TFLite Android ve iOS kitaplıkları aracılığıyla yerel destek.
- Gömülü Linux: Raspberry Pi gibi tek kartlı bilgisayarlar için idealdir.
- Mikrodenetleyiciler: Kısıtlı 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.
YOLO11 modelinin TFLite'a aktarımı sırasında karşılaşılan yaygın sorunları nasıl gideririm?
YOLO11 modellerini TFLite'a aktarırken hatalarla karşılaşırsanız, yaygın çözümler şunlardır:
- Paket uyumluluğunu kontrol edin: Ultralytics ve TensorFlow'un uyumlu sürümlerini kullandığınızdan emin olun. Kurulum kılavuzumuza bakın.
- Model desteği: Belirli bir YOLO11 modelinin TFLite dışa aktarımını destekleyip desteklemediğini, Ultralytics dışa aktarım dokümantasyon sayfasını kontrol ederek doğrulayın.
- Kuvantizasyon sorunları: INT8 nicelemesini kullanırken, veri kümesi yolunuzun içinde doğru bir şekilde belirtildiğinden emin olun
data
parametresi.
Ek sorun giderme ipuçları için Genel Sorunlar kılavuzumuzu ziyaret edin.