Ultralytics YOLO NCNN Dışa Aktarma#
Mobil veya gömülü sistemler gibi hesaplama gücü sınırlı cihazlarda bilgisayarlı görü modelleri dağıtmak, biçimin dikkatli seçilmesini gerektirir. Optimize edilmiş bir biçim kullanmak, kaynakları kısıtlı cihazların bile gelişmiş bilgisayarlı görü görevlerini verimli bir şekilde gerçekleştirmesini sağlar.
NCNN biçimine dışa aktarmak, Ultralytics YOLO26 modellerini hafif, cihaz tabanlı uygulamalar için optimize etmeni sağlar. Bu kılavuzda, mobil ve gömülü cihazlarda daha iyi performans için modellerini NCNN biçimine nasıl dönüştüreceğin açıklanır.
Neden NCNN'ye Dışa 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 hesaplama çerçevesidir. NCNN; Linux, Android, iOS ve macOS dahil olmak üzere çok çeşitli platformlarla uyumludur.
NCNN, mobil CPU'larda hızlı işlem yapmasıyla bilinir ve derin öğrenme modellerinin mobil platformlara hızla dağıtılmasını sağlar. Bu da onu yapay zekâ destekli uygulamalar geliştirmek için mükemmel bir seçenek hâline getirir.
NCNN Modellerinin Temel Özellikleri#
NCNN modelleri, geliştiricilerin modelleri mobil, gömülü ve uç cihazlara dağıtmasına yardımcı olan cihaz üzerinde makine öğrenimini mümkün kılan çeşitli temel özellikler sunar:
-
Verimli ve Yüksek Performanslı: NCNN modelleri hafiftir ve Raspberry Pi gibi kaynakları sınırlı mobil ve gömülü cihazlar için optimize edilmiştir; aynı zamanda bilgisayarlı görü görevlerinde yüksek doğruluğu korur.
-
Nicemleme: NCNN, performansı artırmak ve bellek kullanımını azaltmak için model ağırlıklarının ve aktivasyonlarının hassasiyetini düşüren bir teknik olan nicemlemeyi destekler.
-
Uyumluluk: NCNN modelleri, TensorFlow, Caffe ve ONNX dahil olmak üzere popüler derin öğrenme çerçeveleriyle uyumludur; böylece geliştiriciler mevcut modellerden ve iş akışlarından yararlanabilir.
-
Kullanım Kolaylığı: NCNN, modelleri farklı biçimler arasında dönüştürmek için kullanımı kolay araçlar sunarak farklı geliştirme ortamları arasında sorunsuz birlikte çalışabilirlik sağlar.
-
Vulkan GPU Hızlandırması: NCNN, AMD, Intel ve NVIDIA dışındaki diğer GPU'lar dahil olmak üzere birden fazla üreticinin GPU'larında hızlandırılmış çıkarım için Vulkan'ı destekler ve daha geniş bir donanım yelpazesinde yüksek performanslı dağıtım olanağı sunar.
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 kaynakları kısıtlı cihazlar için idealdir. Raspberry Pi'de Ultralytics Kılavuzu ile standart çıkarım yeterli değilse 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'ta dağıtımı destekler.
Vulkan GPU Hızlandırması#
NCNN, Vulkan aracılığıyla GPU hızlandırmasını destekleyerek AMD, Intel ve NVIDIA dışındaki diğer ekran kartları dahil olmak üzere çok çeşitli GPU'larda yüksek performanslı çıkarım olanağı sunar. Bu özellikle şunlar için kullanışlıdır:
- Üreticiler Arası GPU Desteği: NVIDIA GPU'larıyla sınırlı olan CUDA'nın aksine Vulkan, birden fazla GPU üreticisiyle çalışır.
- Çoklu GPU Sistemleri: Birden fazla GPU bulunan sistemlerde
device="vulkan:0",device="vulkan:1"vb. kullanarak belirli bir Vulkan cihazı seç. - Uç ve Masaüstü Dağıtımları: CUDA'nın kullanılamadığı 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
# # Dışa aktarılan NCNN modelini yükle
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Vulkan GPU hızlandırmasıyla çıkarım çalıştır (ilk Vulkan cihazı)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Çoklu GPU sistemlerinde ikinci Vulkan cihazını kullan
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. Modern GPU sürücülerinin çoğunda varsayılan olarak Vulkan desteği bulunur. Linux'ta vulkaninfo gibi araçları veya Windows'ta Vulkan SDK'sını kullanarak Vulkan'ın kullanılabilirliğini doğrulayabilirsin.
Desteklenen Görevler#
NCNN dışa aktarımı, Ultralytics'in yedi görevinin tümünü destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıklara sahip tek aile olan YOLO26 ile kullanılabilir.
| Görev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Algılama | ✅ | ✅ | ✅ |
| Segmentasyon | ✅ | ✅ | ✅ |
| Anlamsal | ❌ | ❌ | ✅ |
| Derinlik | ❌ | ❌ | ✅ |
| Sınıflandırma | ✅ | ✅ | ✅ |
| Poz | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
NCNN'ye Dışa Aktarma: YOLO26 Modelini Dönüştürme#
YOLO26 modellerini NCNN biçimine dönüştürerek model uyumluluğunu ve dağıtım esnekliğini artırabilirsin.
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 sorunla karşılaşırsan çözüm bulmak için Yaygın Sorunlar kılavuzumuza başvur.
Kullanım#
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarmayı destekleyecek şekilde tasarlanmıştır; bu sayede tercih ettiğin dağıtım iş akışına kolayca entegre edebilirsin. Uygulaman için en uygun kurulumu seçmek üzere desteklenen dışa aktarma biçimlerinin ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsin.
NCNN biçimi Dışa Aktar, Tahmin ve Doğrula kiplerini destekler. Modelini dışa aktar, ardından çıkarım yapmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.
from ultralytics import YOLO
# YOLO26 modelini yükle
model = YOLO("yolo26n.pt")
# # Modeli NCNN biçimine aktar
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'from ultralytics import YOLO
# # Dışa aktarılan NCNN modelini yükle
model = YOLO("./yolo26n_ncnn_model")
# Çıkarımı çalıştır
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# # Dışa aktarılan NCNN modelini yükle
model = YOLO("./yolo26n_ncnn_model")
# COCO8 veri kümesinde doğruluğu doğrula
metrics = model.val(data="coco8.yaml")Dışa Aktarma Bağımsız Değişkenleri#
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'ncnn' | Dışa aktarılan modelin hedef biçimi; çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tam sayı, belirli boyutlar içinse (height, width) demeti kullanılabilir. |
quantize | int veya str | None | Nicemleme hassasiyeti: 16 (FP16), dışa aktarılan ağırlıkların boyutunu yarıya indirir; 32/ayarlanmamış değer FP32 ağırlıklar dışa aktarır. NCNN'nin CPU çalışma zamanı, donanım desteklediğinde varsayılan olarak bu ağırlıklarla yine FP16 hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır. |
batch | int | 1 | Dışa aktarılan modelin toplu çıkarım boyutunu veya predict kipinde eşzamanlı işleyeceği en fazla görüntü sayısını belirtir. |
device | str | None | Dışa aktarma aygıtını belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics dışa aktarma belgeleri sayfasını ziyaret et.
Dışa Aktarılan YOLO26 NCNN Modellerini Dağıtma#
Ultralytics YOLO26 modellerini NCNN biçimine aktardıktan sonra, yukarıdaki kullanım örneğinde gösterilen YOLO("yolo26n_ncnn_model/") yöntemini kullanarak modelleri 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 modelleri 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 NCNN modellerini Windows x64'te dağıt.
Özet#
Bu kılavuzda, kaynakları kısıtlı cihazlarda verimliliği ve hızı artırmak için Ultralytics YOLO26 modellerini NCNN biçimine aktarmayı ele aldık.
Daha fazla ayrıntı için resmî NCNN belgelerine başvur. Diğer dışa aktarma seçenekleri için entegrasyon kılavuzu sayfamızı ziyaret et.
Sık Sorulan Sorular#
Ultralytics YOLO26 modelini NCNN biçimine aktarmak için:
-
Python: YOLO sınıfındaki
exportyöntemini kullan.from ultralytics import YOLO # YOLO26 modelini yükle model = YOLO("yolo26n.pt") # NCNN biçimine aktar model.export(format="ncnn") # creates 'yolo26n_ncnn_model' -
CLI:
yolo exportkomutunu kullan.yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'
Dışa aktarma seçeneklerinin ayrıntıları için Dışa Aktarma belgelerine bak.
-
Ultralytics YOLO26 modellerini NCNN'ye aktarmanın çeşitli faydaları vardır:
- Verimlilik: NCNN modelleri mobil ve gömülü cihazlar için optimize edilmiştir; hesaplama kaynakları sınırlı olsa bile yüksek performans sağlar.
- Nicemleme: NCNN, model hızını artıran ve bellek kullanımını azaltan nicemleme 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 NVIDIA dışındaki diğer GPU'larda GPU hızlandırmasından yararlan.
Daha fazla ayrıntı için NCNN'ye Neden Dışa Aktarmalı? bölümüne bak.
Tencent tarafından geliştirilen NCNN, mobil platformlar için özel olarak optimize edilmiştir. NCNN kullanmanın başlıca 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ürüp dağıtmayı kolaylaştırır.
- Topluluk Desteği: Aktif topluluk desteği, sürekli iyileştirme ve güncellemeler sağlar.
Daha fazla bilgi için NCNN Modellerinin Temel Özellikleri bölümüne bak.
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 performansı artırmak için Raspberry Pi Kılavuzumuzda ayrıntıları verilen NCNN biçimini kullanmayı düşünebilirsin.
YOLO26 modellerini Android'de dağıtmak için:
- Android için Derleme: Android için NCNN Derleme kılavuzunu izle.
- Uygulamanla Entegre Et: Dışa aktarılan modeli verimli cihaz üstü çıkarım için uygulamana entegre etmek üzere 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 örnekleri için Ultralytics dağıtım kılavuzunu ziyaret et.
NCNN, AMD, Intel ve NVIDIA dışındaki diğer GPU'larda GPU hızlandırması için Vulkan'ı destekler. Vulkan'ı kullanmak için:
from ultralytics import YOLO # NCNN modelini yükle ve Vulkan GPU ile çalıştır model = YOLO("yolo26n_ncnn_model") results = model("image.jpg", device="vulkan:0") # İlk Vulkan cihazını kullanÇoklu GPU sistemlerinde cihaz indeksini belirt (ör. 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.