Ultralytics YOLO NCNN Dışa Aktarımı
Mobil veya gömülü sistemler gibi sınırlı hesaplama gücüne sahip cihazlarda bilgisayarlı görü modelleri dağıtmak, dikkatli bir format seçimi gerektirir. Optimize edilmiş bir format kullanmak, kaynak kısıtlı cihazların bile gelişmiş bilgisayarlı görü görevlerini verimli bir şekilde yerine getirmesini sağlar.
NCNN formatına dışa aktarmak, Ultralytics YOLO26 modellerini hafif cihaz tabanlı uygulamalar için optimize etmene olanak tanır. Bu kılavuz, mobil ve gömülü cihazlarda daha iyi performans için modellerini nasıl NCNN formatına dönüştüreceğini kapsar.
Neden NCNN Formatına Aktarmalısın?
Tencent tarafından geliştirilen NCNN çerçevesi, cep telefonları, gömülü cihazlar ve IoT cihazları dahil olmak üzere mobil platformlar için özel olarak optimize edilmiş, yüksek performanslı bir sinir ağı çıkarım bilişim çerçevesidir. NCNN, Linux, Android, iOS ve macOS dahil olmak üzere çok çeşitli platformlarla uyumludur.
NCNN, mobil CPU'lardaki hızlı işlem hızıyla bilinir ve derin öğrenme modellerinin mobil platformlara hızla dağıtılmasını sağlayarak yapay zeka destekli uygulamalar oluşturmak için mükemmel bir seçim haline getirir.
NCNN Modellerinin Temel Özellikleri
NCNN modelleri, cihaz üzerinde makine öğrenimi sağlayan ve geliştiricilerin modelleri mobil, gömülü ve uç cihazlarda dağıtmasına yardımcı olan birkaç temel özellik sunar:
-
Verimli ve Yüksek Performanslı: NCNN modelleri, Raspberry Pi gibi sınırlı kaynaklara sahip mobil ve gömülü cihazlar için hafif ve optimize edilmiştir; aynı zamanda bilgisayarlı görü görevlerinde yüksek doğruluk seviyesini korur.
-
Niceleme (Quantization): NCNN, performansı artırmak ve bellek ayak izini azaltmak için model ağırlıklarının ve aktivasyonlarının hassasiyetini düşüren bir teknik olan nicelemeyi destekler.
-
Uyumluluk: NCNN modelleri, TensorFlow, Caffe ve ONNX dahil olmak üzere popüler derin öğrenme çerçeveleriyle uyumludur ve geliştiricilerin mevcut modellerden ve iş akışlarından yararlanmasına olanak tanır.
-
Kullanım Kolaylığı: NCNN, modelleri formatlar arasında dönüştürmek için kullanıcı dostu araçlar sunarak farklı geliştirme ortamlarında sorunsuz bir birlikte çalışabilirlik sağlar.
-
Vulkan GPU Hızlandırma: NCNN, AMD, Intel ve diğer NVIDIA olmayan GPU'lar dahil olmak üzere birden fazla satıcıda GPU hızlandırmalı çıkarım için Vulkan'ı destekler ve daha geniş bir donanım yelpazesinde yüksek performanslı dağıtım sağlar.
NCNN ile Dağıtım Seçenekleri
NCNN modelleri çeşitli dağıtım platformlarıyla uyumludur:
-
Mobil Dağıtım: Android ve iOS için optimize edilmiştir, cihaz üzerinde verimli çıkarım için mobil uygulamalara sorunsuz entegrasyon sağlar.
-
Gömülü Sistemler ve IoT Cihazları: Raspberry Pi ve NVIDIA Jetson gibi kaynak kısıtlı cihazlar için idealdir. Ultralytics Kılavuzu ile Raspberry Pi üzerinde standart çıkarım yetersiz kalırsa, NCNN önemli performans iyileştirmeleri sağlayabilir.
-
Masaüstü ve Sunucu Dağıtımı: Geliştirme, eğitim ve değerlendirme iş akışları için Linux, Windows ve macOS genelinde dağıtımı destekler.
Vulkan GPU Hızlandırma
NCNN, Vulkan aracılığıyla GPU hızlandırmayı destekleyerek AMD, Intel ve diğer NVIDIA olmayan grafik kartları dahil olmak üzere çok çeşitli GPU'larda yüksek performanslı çıkarım sağlar. Bu özellikle şunlar için yararlıdır:
- Satıcılar Arası GPU Desteği: Yalnızca NVIDIA GPU'larla sınırlı olan CUDA'nın aksine, Vulkan birden fazla GPU satıcısında çalışır.
- Çoklu GPU Sistemleri: Birden fazla GPU'ya sahip sistemlerde
device="vulkan:0",device="vulkan:1"vb. kullanarak belirli bir Vulkan cihazı seç. - Uç ve Masaüstü Dağıtımları: CUDA'nın mevcut olmadığı cihazlarda GPU hızlandırmasından yararlan.
Vulkan hızlandırmasını kullanmak için çıkarımı çalıştırırken Vulkan cihazını belirt:
from ultralytics import YOLO
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")GPU'n için Vulkan sürücülerinin yüklü olduğundan emin ol. Çoğu modern GPU sürücüsü varsayılan olarak Vulkan desteği içerir. Vulkan kullanılabilirliğini Linux'ta vulkaninfo gibi araçlarla veya Windows'ta Vulkan SDK ile doğrulayabilirsin.
NCNN'e Aktarım: YOLO26 Modelini Dönüştürme
YOLO26 modellerini NCNN formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini genişletebilirsin.
Kurulum
Gerekli paketleri yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticsAyrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzuna bak. Herhangi bir zorlukla karşılaşırsan, çözümler için Yaygın Sorunlar kılavuzumuza başvur.
Kullanım
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarımı destekleyecek şekilde tasarlanmıştır; bu sayede onları tercih ettiğin dağıtım iş akışına kolayca entegre edebilirsin. Uygulaman için en iyi kurulumu seçmek amacıyla desteklenen dışa aktarım formatlarının ve yapılandırma seçeneklerinin tam listesine göz atabilirsin.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")Dışa Aktarma Argümanları
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'ncnn' | Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
imgsz | int veya tuple | 640 | Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions. |
half | bool | False | FP16 (yarım hassasiyet) nicelemeyi etkinleştirerek model boyutunu küçültür ve desteklenen donanımlarda çıkarım hızını potansiyel olarak artırır. |
batch | int | 1 | Modelin dışa aktarılan 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. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma ile ilgili Ultralytics dokümantasyon sayfasını ziyaret et.
Dışa Aktarılan YOLO26 NCNN Modellerini Dağıtma
Ultralytics YOLO26 modellerini NCNN formatına aktardıktan sonra, yukarıdaki kullanım örneğinde gösterildiği gibi YOLO("yolo26n_ncnn_model/") yöntemini kullanarak bunları dağıtabilirsin. Platforma özgü dağıtım talimatları için aşağıdaki kaynaklara bak:
-
Android: Android uygulamalarında nesne algılama için NCNN modellerini derle ve entegre et.
-
macOS: NCNN modellerini macOS sistemlerinde dağıt.
-
Linux: NCNN modellerini Raspberry Pi ve benzeri gömülü sistemler dahil olmak üzere Linux cihazlarında dağıt.
-
Windows x64: Visual Studio kullanarak NCNN modellerini Windows x64 üzerinde dağıt.
Özet
Bu kılavuz, kaynak kısıtlı cihazlarda daha fazla verimlilik ve hız için Ultralytics YOLO26 modellerinin NCNN formatına aktarılmasını ele aldı.
Daha fazla ayrıntı için resmi NCNN belgelerine başvur. Diğer dışa aktarma seçenekleri için entegrasyon kılavuzu sayfamızı ziyaret et.
SSS
Ultralytics YOLO26 modellerini NCNN formatına nasıl aktarırım?
Ultralytics YOLO26 modelini NCNN formatına aktarmak için:
-
Python: YOLO sınıfından
exportmetodunu kullan.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI:
yolo exportkomutunu kullan.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Ayrıntılı dışa aktarma seçenekleri için Dışa Aktarma belgelerine bak.
YOLO26 modellerini NCNN'e aktarmanın avantajları nelerdir?
Ultralytics YOLO26 modellerini NCNN'e aktarmak çeşitli avantajlar sunar:
- Verimlilik: NCNN modelleri mobil ve gömülü cihazlar için optimize edilmiştir, sınırlı hesaplama kaynaklarıyla bile yüksek performans sağlar.
- Niceleme: NCNN, model hızını artıran ve bellek kullanımını azaltan niceleme gibi teknikleri destekler.
- Geniş Uyumluluk: NCNN modellerini Android, iOS, Linux ve macOS dahil olmak üzere birden fazla platformda dağıtabilirsin.
- Vulkan GPU Hızlandırma: Daha hızlı çıkarım için Vulkan aracılığıyla AMD, Intel ve diğer NVIDIA olmayan GPU'larda GPU hızlandırmasından yararlan.
Daha fazla ayrıntı için Neden NCNN'e Aktarmalısın? bölümüne bak.
Mobil yapay zeka uygulamalarım için neden NCNN kullanmalıyım?
Tencent tarafından geliştirilen NCNN, özellikle mobil platformlar için optimize edilmiştir. NCNN kullanmanın temel nedenleri şunlardır:
- Yüksek Performans: Mobil CPU'larda verimli ve hızlı işlem için tasarlanmıştır.
- Platformlar Arası: TensorFlow ve ONNX gibi popüler çerçevelerle uyumludur, bu da modelleri farklı platformlarda dönüştürmeyi ve dağıtmayı kolaylaştırır.
- Topluluk Desteği: Aktif topluluk desteği, sürekli iyileştirmeler ve güncellemeler sağlar.
Daha fazla bilgi için NCNN Modellerinin Temel Özellikleri bölümüne bak.
NCNN model dağıtımı için hangi platformlar desteklenir?
NCNN çok yönlüdür ve çeşitli platformları destekler:
- Mobil: Android, iOS.
- Gömülü Sistemler ve IoT Cihazları: Raspberry Pi ve NVIDIA Jetson gibi cihazlar.
- Masaüstü ve Sunucular: Linux, Windows ve macOS.
Raspberry Pi üzerinde daha iyi performans için, Raspberry Pi Kılavuzumuzda belirtildiği gibi NCNN formatını kullanmayı düşün.
Ultralytics YOLO26 NCNN modellerini Android'de nasıl dağıtabilirim?
YOLO26 modellerini Android'de dağıtmak için:
- Android için Derle: Android için NCNN Derleme kılavuzunu izle.
- Uygulamanla Entegre Et: Dışa aktarılan modeli, cihaz üzerinde verimli çıkarım için uygulamana entegre etmek amacıyla NCNN Android SDK'sını kullan.
Ayrıntılı talimatlar için Dışa Aktarılan YOLO26 NCNN Modellerini Dağıtma bölümüne bak.
Daha gelişmiş kılavuzlar ve kullanım durumları için Ultralytics dağıtım kılavuzunu ziyaret et.
NCNN modelleri ile Vulkan GPU hızlandırmasını nasıl kullanırım?
NCNN, AMD, Intel ve diğer NVIDIA olmayan GPU'larda GPU hızlandırma için Vulkan'ı destekler. Vulkan'ı kullanmak için:
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan deviceÇoklu GPU sistemleri için cihaz dizinini belirt (örneğin, ikinci GPU için vulkan:1). GPU'n için Vulkan sürücülerinin yüklü olduğundan emin ol. Daha fazla ayrıntı için Vulkan GPU Hızlandırma bölümüne bak.