Link to this sectionUltralytics YOLO NCNN Dışa Aktarımı#
Bilgisayarlı görü modellerini mobil veya gömülü sistemler gibi sınırlı işlem gücüne sahip cihazlarda çalıştırmak, 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 aktarma, 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 NCNN formatına nasıl dönüştüreceğini kapsar.
Link to this sectionNeden NCNN Formatına Dışa Aktarmalısın?#
Tencent tarafından geliştirilen NCNN çerçevesi; cep telefonları, gömülü cihazlar ve IoT cihazları gibi 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şleme hızıyla bilinir ve derin öğrenme modellerinin mobil platformlara hızla dağıtılmasını sağlayarak onu yapay zeka destekli uygulamalar oluşturmak için mükemmel bir seçim haline getirir.
Link to this sectionNCNN 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 hafiftir ve Raspberry Pi gibi sınırlı kaynaklara sahip mobil ve gömülü cihazlar için optimize edilmiştir; bu sırada bilgisayarlı görü görevlerinde yüksek doğruluk seviyesini korur.
-
Kuantizasyon: NCNN, model ağırlıklarının ve aktivasyonlarının hassasiyetini düşürerek performansı artıran ve bellek kullanımını azaltan bir teknik olan kuantizasyonu destekler.
-
Uyumluluk: NCNN modelleri TensorFlow, Caffe ve ONNX dahil olmak üzere popüler derin öğrenme çerçeveleriyle uyumludur, bu da geliştiricilerin mevcut modellerden ve iş akışlarından yararlanmalarını sağlar.
-
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 birlikte çalışabilirlik sağlar.
-
Vulkan GPU Hızlandırması: 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, böylece daha geniş bir donanım yelpazesinde yüksek performanslı dağıtım mümkün olur.
Link to this sectionNCNN 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 yapılan standart çıkarım yetersiz kalıyorsa, 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.
Link to this sectionVulkan GPU Hızlandırması#
NCNN, Vulkan aracılığıyla GPU hızlandırmasını destekler; bu, AMD, Intel ve diğer NVIDIA olmayan grafik kartları dahil olmak üzere geniş bir GPU yelpazesinde yüksek performanslı çıkarım sağlar. Bu özellikle şunlar için yararlıdır:
- Satıcılar Arası GPU Desteği: NVIDIA GPU'larla sınırlı olan CUDA'nın aksine, Vulkan birden fazla GPU satıcısında çalışır.
- Çoklu GPU Sistemleri:
device="vulkan:0",device="vulkan:1"vb. kullanarak birden fazla GPU'ya sahip sistemlerde belirli bir Vulkan cihazı seçebilirsin. - Uç ve Masaüstü Dağıtımları: CUDA'nın bulunmadığı cihazlarda GPU hızlandırmasından yararlan.
Vulkan hızlandırmasını kullanmak için çıkarım yaparken 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. Linux'ta vulkaninfo veya Windows'ta Vulkan SDK gibi araçları kullanarak Vulkan kullanılabilirliğini doğrulayabilirsin.
Link to this sectionNCNN'e Dışa Aktarma: 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.
Link to this sectionDesteklenen Görevler#
NCNN dışa aktarımı, standart Ultralytics YOLO26 görev setini destekler.
| Görev | Desteklenen |
|---|---|
| Nesne Tespiti | ✅ |
| Örnek Bölümleme | ✅ |
| Anlamsal Bölümleme | ✅ |
| Poz Tahmini | ✅ |
| OBB Tespiti | ✅ |
| Sınıflandırma | ✅ |
Link to this sectionKurulum#
Gerekli paketleri kurmak 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 danış.
Link to this sectionKullanım#
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarımı destekleyecek şekilde tasarlanmıştır, bu da onları tercih ettiğin dağıtım iş akışına entegre etmeyi kolaylaştırır. Uygulaman için en iyi kurulumu seçmek üzere desteklenen dışa aktarma formatlarının ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsin.
NCNN formatı; Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu test etmek için dışa aktarılan modeli yükle.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionDış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) kuantizasyonunu etkinleştirir, model boyutunu küçültür ve desteklenen donanımlarda potansiyel olarak çıkarımı hızlandırır. |
batch | int | 1 | Aktarılan modelin toplu çıkarım boyutunu veya predict modunda modelin 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 hakkındaki Ultralytics dokümantasyon sayfasına git.
Link to this sectionDış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 özel dağıtım talimatları için aşağıdaki kaynaklara bak:
-
Android: Android uygulamalarında nesne algılama için NCNN modellerini oluştur ve entegre et.
-
macOS: NCNN modellerini macOS sistemlerinde dağıt.
-
Linux: NCNN modellerini Raspberry Pi ve benzeri gömülü sistemler dahil Linux cihazlarda dağıt.
-
Windows x64: Visual Studio kullanarak Windows x64 üzerinde NCNN modellerini dağıt.
Link to this sectionÖ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ı.
Ek ayrıntılar için resmi NCNN belgelerine başvur. Diğer dışa aktarma seçenekleri için entegrasyon kılavuzu sayfamızı ziyaret et.
Link to this sectionSSS#
Link to this sectionUltralytics 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
exportyöntemini kullan.from ultralytics import YOLO # Load a 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.
Link to this sectionYOLO26 modellerini NCNN'e aktarmanın avantajları nelerdir?#
Ultralytics YOLO26 modellerini NCNN'e aktarmak çeşitli faydalar sunar:
- Verimlilik: NCNN modelleri mobil ve gömülü cihazlar için optimize edilmiştir, sınırlı işlem kaynaklarıyla bile yüksek performans sağlar.
- Kuantizasyon: NCNN, model hızını artıran ve bellek kullanımını azaltan kuantizasyon gibi teknikleri destekler.
- Geniş Uyumluluk: NCNN modellerini Android, iOS, Linux ve macOS dahil olmak üzere birden fazla platformda dağıtabilirsin.
- Vulkan GPU Hızlandırması: 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 Formatına Dışa Aktarmalısın? bölümüne bak.
Link to this sectionMobil yapay zeka uygulamalarım için neden NCNN kullanmalıyım?#
Tencent tarafından geliştirilen NCNN, mobil platformlar için özel olarak optimize edilmiştir. NCNN kullanmanın temel nedenleri şunlardır:
- Yüksek Performans: Mobil CPU'larda verimli ve hızlı işleme 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.
Link to this sectionNCNN 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'de daha iyi performans için Raspberry Pi Kılavuzumuzda belirtildiği gibi NCNN formatını kullanmayı düşün.
Link to this sectionUltralytics YOLO26 NCNN modellerini Android'de nasıl dağıtabilirim?#
YOLO26 modellerini Android'de dağıtmak için:
- Android İçin Oluştur: Android için NCNN Oluşturma kılavuzunu takip et.
- Uygulamanla Entegre Et: Cihaz üzerinde verimli çıkarım için dışa aktarılan modeli uygulamana entegre etmek üzere NCNN Android SDK'yı 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.
Link to this sectionNCNN modelleriyle Vulkan GPU hızlandırmasını nasıl kullanırım?#
NCNN, AMD, Intel ve diğer NVIDIA olmayan GPU'larda GPU hızlandırması 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ırması bölümüne bak.