Ultralytics YOLO NCNN Dışa Aktarımı#
Mobil veya gömülü sistemler gibi hesaplama gücü sınırlı cihazlarda computer vision modellerini devreye almak, 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 yürütmesini sağlar.
NCNN formatına dışa aktarmak, Ultralytics YOLO26 modellerini hafif tabanlı cihaz 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.
Neden NCNN'ye Dışa Aktarmalısın?#
Tencent tarafından geliştirilen NCNN çerçevesi, özellikle cep telefonları, gömülü cihazlar ve IoT cihazları dahil olmak üzere mobil platformlar için optimize edilmiş yüksek performanslı bir neural network çı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 deep learning modellerinin mobil platformlara hızlı bir şekilde dağıtılmasını sağlayarak yapay zeka destekli uygulamalar oluşturmak için mükemmel bir seçim haline gelir.
NCNN Modellerinin Temel Özellikleri#
NCNN modelleri, geliştiricilerin modelleri mobil, gömülü ve uç cihazlarda dağıtmasına yardımcı olan, cihaz üstü machine learning sağlayan birkaç temel özellik sunar:
-
Verimli ve Yüksek Performanslı: NCNN modelleri hafiftir ve bilgisayarlı görü görevlerinde yüksek accuracy değerini korurken Raspberry Pi gibi sınırlı kaynaklara sahip mobil ve gömülü cihazlar için optimize edilmiştir.
-
Niceleme: NCNN, performansını artırmak ve bellek kapladığı alanı azaltmak için model ağırlıklarının ve etkinleştirmelerinin precision değerini düşüren bir teknik olan nicelemeyi destekler.
-
Uyumluluk: NCNN modelleri, TensorFlow, Caffe ve ONNX dahil olmak üzere popüler derin öğrenme çerçeveleriyle uyumludur; bu sayede 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 sağlar ve farklı geliştirme ortamlarında sorunsuz bir birlikte çalışabilirlik sunar.
-
Vulkan GPU Hızlandırma: NCNN, AMD, Intel ve diğer NVIDIA dışı GPU'lar dahil olmak üzere birden fazla satıcıda GPU hızlandırmalı çıkarım için Vulkan'ı destekler ve bu da 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 Guide 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 dışı 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: Sadece 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 bulunmadığı 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 kurulu olduğundan emin ol. Çoğu modern GPU sürücüsü varsayılan olarak Vulkan desteği içerir. Linux üzerinde vulkaninfo gibi araçları veya Windows üzerinde Vulkan SDK'yı kullanarak Vulkan kullanılabilirliğini doğrulayabilirsin.
Desteklenen Görevler#
NCNN dışarı aktarımı tüm yedi Ultralytics görevini destekler. Anlamsal segmentasyon ve derinlik tahmini, yalnızca bu başlıklara sahip olan tek aile olan YOLO26 ile kullanılabilir.
| Görev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Algıla | ✅ | ✅ | ✅ |
| Segmentlere Ayır | ✅ | ✅ | ✅ |
| Anlamsal | ❌ | ❌ | ✅ |
| Derinlik | ❌ | ❌ | ✅ |
| Sınıflandır | ✅ | ✅ | ✅ |
| Poz | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
NCNN'ye 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.
Kurulum#
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 Installation guide bölümüne göz at. Herhangi bir zorlukla karşılaşırsan çözümler için Common Issues guide 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.
NCNN formatı Export, Predict ve Validate 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")Dışa Aktarma Argümanları#
| Argüman | Tip | 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 | Model 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. |
quantize | int veya str | None | Niceleme hassasiyeti: 16 (FP16) model boyutunu küçültür ve çıkarımı hızlandırabilir; 32/ayarlanmamış ise FP32'dir. Artık kullanılmayan half bayrağının yerini alır. |
batch | int | 1 | Dış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. |
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 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 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ı devreye alabilirsin. Platforma özel dağıtım talimatları için aşağıdaki kaynaklara göz at:
-
Android: Android uygulamalarında object detection için NCNN modelleri oluştur ve entegre et.
-
macOS: NCNN modellerini macOS sistemlerinde devreye al.
-
Linux: Raspberry Pi ve benzeri gömülü sistemler dahil olmak üzere NCNN modellerini Linux cihazlarında devreye al.
-
Windows x64: Visual Studio kullanarak NCNN modellerini Windows x64 üzerinde devreye al.
Özet#
Bu rehber, kaynak kısıtlı cihazlarda daha fazla verimlilik ve hız için Ultralytics YOLO26 modellerinin NCNN formatına nasıl aktarılacağını ele aldı.
Ek detaylar için official NCNN documentation sayfasına bakın. Diğer dışa aktarma seçenekleri için integration guide page sayfamızı ziyaret edin.
SSS#
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 Export belgelerine bakın.
-
Ultralytics YOLO26 modellerini NCNN'ye aktarmak birkaç fayda 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.
- 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ırma: Daha hızlı çıkarım için Vulkan aracılığıyla AMD, Intel ve diğer NVIDIA dışı GPU'larda GPU hızlandırmasından yararlan.
Daha fazla ayrıntı için Why Export to NCNN? bölümüne bakın.
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şleme için tasarlanmıştır.
- Çapraz Platform: 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 Key Features of NCNN Models bölümüne bakın.
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 gelişmiş performans için Raspberry Pi Guide bölümümüzde ayrıntılı olarak açıklandığı gibi NCNN formatını kullanmayı düşünün.
YOLO26 modellerini Android üzerinde dağıtmak için:
- Android için Derleme: NCNN Build for Android kılavuzunu takip edin.
- Uygulamanla Entegre Et: Cihaz üzerinde verimli çıkarım için dışa aktarılan modeli uygulamana entegre etmek üzere NCNN Android SDK'sını kullan.
Ayrıntılı talimatlar için Deploying Exported YOLO26 NCNN Models bölümüne göz atın.
Daha gelişmiş kılavuzlar ve kullanım senaryoları için Ultralytics deployment guide sayfasını ziyaret edin.
NCNN, AMD, Intel ve diğer NVIDIA dışı 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 indeksini belirtin (örneğin ikinci GPU için
vulkan:1). GPU'nuz için Vulkan sürücülerinin kurulu olduğundan emin olun. Daha fazla ayrıntı için Vulkan GPU Acceleration bölümüne bakın.