YOLO Vision 2026:

Ultralytics YOLO Modelleri için DEEPX Dışa Aktarımı#

Özel NPU donanımı üzerinde bilgisayarlı görü modelleri çalıştırmak, uyumlu ve optimize edilmiş bir model formatı gerektirir. Ultralytics YOLO modellerini DEEPX formatına dışarı aktarmak, DEEPX NPU hızlandırıcılarında verimli, INT8 kuantizasyonlu çıkarım yapılmasını sağlar. Bu kılavuz, YOLO modellerini DEEPX formatına dönüştürme ve bunları DEEPX destekli donanımda çalıştırma adımlarında size rehberlik eder.

DEEPX nedir?#

DEEPX NPU Inference

DEEPX, uç noktada (edge) düşük güç tüketimiyle derin öğrenme çıkarımı için tasarlanmış Nöral İşleme Birimleri (NPU'lar) konusunda uzmanlaşmış bir yapay zeka yarı iletken şirketidir. DEEPX NPU'lar, minimum güç tüketimiyle yüksek iş hacmi sunarak zorlu gömülü ve endüstriyel yapay zeka uygulamaları için tasarlanmıştır. Donanımları; robotik, akıllı kameralar ve endüstriyel otomasyon sistemleri gibi bulut bağlantısının güvenilmez veya istenmeyen olduğu dağıtım senaryoları için son derece uygundur.

DEEPX Dışa Aktarma Formatı#

DEEPX dışa aktarımı, DEEPX NPU donanımında yürütülmek üzere optimize edilmiş derlenmiş bir .dxnn model ikilisi (binary) üretir. Derleme işlem hattı; INT8 kuantizasyonu ve donanıma özel optimizasyonu gerçekleştirmek için dx_com araç setini kullanır ve dağıtıma hazır, bağımsız bir model dizini oluşturur.

DEEPX Modellerinin Temel Özellikleri#

DEEPX modelleri, uç dağıtım için çeşitli avantajlar sunar:

  • INT8 Kuantizasyonu: Modeller, dışa aktarım sırasında INT8 hassasiyetine kuantize edilir; bu da model boyutunu önemli ölçüde küçültür ve NPU iş hacmini maksimize eder. Model kuantizasyonu hakkında daha fazla bilgi edinin.
  • NPU Optimizasyonlu: .dxnn formatı, hızlı ve verimli çıkarım için özel hızlandırma birimlerinden yararlanarak DEEPX NPU donanımı için özellikle derlenmiştir.
  • Düşük Güç Tüketimi: Çıkarımı NPU'ya yükleyerek, DEEPX modelleri eşdeğer bir CPU veya GPU çıkarımından çok daha az güç tüketir.
  • Kalibrasyon Tabanlı Doğruluk: Dışa aktarma işlemi, nicelleştirme sırasında doğruluk kaybını en aza indirmek için gerçek veri seti görüntüleri ile EMA tabanlı kalibrasyon kullanır.
  • Kendine Yeten Çıktı: Dışa aktarılan model dizini; derlenmiş ikili dosyayı, kalibrasyon yapılandırmasını ve kolay dağıtım için gerekli meta verileri bir araya getirir.

Desteklenen Görevler#

DEEPX dışa aktarımı yedi Ultralytics görevini de destekler. Anlamsal bölümleme ve derinlik tahmini yalnızca, bu kafaları barındıran tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algıla
Segmentlere Ayır
Anlamsal
Derinlik
Sınıflandır
Poz
OBB

DEEPX'e Dışa Aktar: YOLO Modelini Dönüştürme#

Bir Ultralytics YOLO modelini DEEPX formatına dışa aktar ve dışa aktarılan model ile çıkarım çalıştır.

Not

DEEPX dışa aktarımı yalnızca x86-64 Linux makinelerinde desteklenir. Dışa aktarma adımı için ARM64 (aarch64) desteklenmemektedir. Ancak, dışa aktarılan dxnn modelleri ARM64 platformlarında tamamen uyumlu ve çalıştırılabilirdir.

Kurulum#

Gerekli paketleri kurmak için şunu çalıştır:

Kurulum
# Install the required package for YOLO
pip install ultralytics

dx_com derleyici paketi, ilk dışa aktarımda DEEPX SDK deposundan otomatik olarak yüklenecektir. Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuzu inceleyin. YOLO için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza başvurun.

Kullanım#

DEEPX formatı; Export, Predict ve Validate modlarını destekler. Çıkarım ve doğrulama işlemleri DEEPX NPU donanımı üzerinde çalışır. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu denetlemek için dışa aktarılan modeli yükle.

Dışa Aktar (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Tahmin Et (Predict)
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Dışa Aktarma Argümanları#

ArgümanTipVarsayılanAçıklama
formatstr'deepx'Dışa aktarılan model için hedef format; DEEPX NPU donanımı ile uyumluluğu tanımlar.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu. DEEPX dışa aktarımı kare bir girdi gerektirir — bir tamsayı (örn. 640) veya yüksekliğin genişliğe eşit olduğu bir ikili (tuple) geçirin.
quantizeint veya str8/autoKuantizasyon hassasiyeti. DEEPX dışa aktarımı için 8 (INT8) gereklidir ve belirtilmezse otomatik olarak etkinleştirilir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
simplifyboolTrueAra ONNX grafiğini onnxslim ile basitleştirir.
opsetintNoneAra ONNX grafiği için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürümü kullanır.
datastrNoneINT8 kalibrasyonu için kullanılan Veri Kümesi YAML'si; sınıflandırma ise bunun yerine bir veri kümesi dizini veya yerleşik bir veri kümesi adı alır. quantize=8 ile atlanırsa, Ultralytics model görevi için varsayılan kalibrasyon veri kümesini seçer.
devicestrNoneDışa aktarma için cihazı belirtir: GPU (device=0) veya CPU (device=cpu).
optimizeboolFalseÇıkarım gecikmesini azaltan ve derleme süresini artıran daha yüksek derleyici optimizasyonunu etkinleştirir.
İpucu

DEEPX dışa aktarımını her zaman bir x86-64 Linux sunucusunda çalıştırın. dx_com derleyicisi ARM64'ü desteklemez.

Dışa aktarım süreci hakkında daha fazla ayrıntı için Ultralytics documentation page on exporting sayfasını ziyaret edin.

Çıktı Yapısı#

Başarılı bir dışa aktarmadan sonra, şu düzenle bir model dizini oluşturulur:

yolo26n_deepx_model/
├── yolo26n.dxnn     # Compiled DEEPX model binary (NPU executable)
├── config.json      # Calibration and preprocessing configuration
└── metadata.yaml    # Model metadata (classes, image size, task, etc.)

.dxnn dosyası, dx_engine çalışma zamanının (runtime) doğrudan NPU üzerinde yüklediği derlenmiş model ikilisidir. metadata.yaml ise Ultralytics çıkarım işlem hattı tarafından kullanılan sınıf adlarını, görüntü boyutunu ve diğer bilgileri içerir.

Dışa Aktarılan YOLO DEEPX Modellerini Dağıtma#

Ultralytics YOLO modelini DEEPX formatına başarıyla dışa aktardıktan sonra, bir sonraki adım bu modelleri DEEPX NPU donanımı üzerinde dağıtmaktır.

Çalışma Zamanı Kurulumu#

Çıkarım için DEEPX NPU sürücüsü, libdxrt çalışma zamanı ve dx_engine Python paketi gereklidir.

Not

DEEPX çalışma zamanı hem x86-64 Linux hem de ARM64'ü (örneğin, Raspberry Pi 5) destekler.

# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb

# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh

# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whl

Çalışma zamanının doğru şekilde kurulu olduğunu dxrt-cli --version ile doğrula. Aşağıdakine benzer bir çıktı görmelisin:

DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6

Çalışma zamanı kurulduktan sonra, çıkarım ve doğrulamayı yukarıdaki Kullanım bölümünde gösterildiği gibi doğrudan DEEPX cihazınızda çalıştırın — dışa aktarılan _deepx_model, doğrudan YOLO(...) ile yüklenir.

dxtron ile Görselleştirme#

dxtron, derlenmiş .dxnn modelini incelemek için DEEPX'in grafik görselleştiricisidir.

DEEPX SDK'sinden .deb paketini indirip dpkg ile kurarak x86-64 Linux üzerine dxtron kur:

wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb

Ardından dışa aktardığın modeli aç:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Not

dxtron hem x86-64 hem de aarch64 platformları için mevcuttur.

Kıyaslamalar#

Ultralytics ekibi, PyTorch ve DEEPX arasındaki hız ve doğruluğu karşılaştırarak YOLO26 modellerini kıyasladı.

Performans
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModelFormatDurumBoyut (MB)metrics/mAP50-95(B)Çıkarım süresi (ms/im)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
ModelFormatDurumBoyut (MB)acc (top1)acc (top5)Çıkarım süresi (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Not

Yukarıdaki kıyaslamalar için doğrulama; tespit için coco128, segmentasyon için coco128-seg, poz tahmini için coco8-pose, sınıflandırma için imagenet100 ve OBB modelleri için dota128 kullanılarak yapıldı. Çıkarım süresi, ön/son işleme aşamalarını içermez.

Performans Optimizasyonu İpuçları

Raspberry Pi 5'e bağlı DX-M1 NPU'dan en iyi çıkarım verimini almak için, önyükleme yapılandırma dosyasını aç ve PCIe Gen 3 desteğini etkinleştir.

sudo nano /boot/firmware/config.txt

Dosyanın sonuna aşağıdaki satırları ekle:

dtparam=pciex1
dtparam=pciex1_gen=3

Kaydet ve çık (Ctrl+X, ardından Y, ardından Enter), sonra yeniden başlat:

sudo reboot

PCIe neslini kontrol et. Beklenen hız, PCIe Gen3 için 8GT/s'dir.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

Önerilen İş Akışı#

  1. Ultralytics Eğitim Modunu kullanarak modelini Eğit
  2. model.export(format="deepx") kullanarak DEEPX formatına Dışa Aktar
  3. Minimum niceleme kaybını doğrulamak için yolo val ile doğruluğu Doğrula
  4. Niteliksel doğrulama için yolo predict kullanarak Tahmin Et
  5. dx_engine çalışma zamanını kullanarak dışarı aktarılan _deepx_model/ dizinini DEEPX NPU donanımına dağıt

Gerçek Dünya Uygulamaları#

DEEPX NPU donanımında dağıtılan YOLO modelleri, çok çeşitli edge AI uygulamaları için son derece uygundur:

  • Akıllı Gözetim: Düşük güç tüketimi ve bulut bağımlılığı olmadan güvenlik ve izleme sistemleri için gerçek zamanlı nesne tespiti.
  • Endüstriyel Otomasyon: Fabrika ortamlarında cihaz üzerinde kalite kontrol, kusur tespiti ve süreç izleme.
  • Robotik: Otonom robotlar ve dronlarda görüntü tabanlı navigasyon, engel algılama ve nesne tanıma.
  • Akıllı Tarım: Tarımda bilgisayarlı görü kullanarak ekin sağlığı izleme, zararlı tespiti ve verim tahmini.
  • Perakende Analitiği: Gerçek zamanlı uç çıkarımı ile müşteri akış analizi, raf izleme ve envanter takibi.

Özet#

Bu kılavuzda, Ultralytics YOLO modellerini DEEPX formatına nasıl dışarı aktaracağını ve bunları DEEPX NPU donanımında nasıl dağıtacağını öğrendin. Dışarı aktarma boru hattı, donanım optimizasyonlu bir .dxnn ikili dosyası üretmek için INT8 kalibrasyonunu ve dx_com derleyicisini kullanırken, dx_engine çalışma zamanı cihaz üzerindeki çıkarımı yönetir.

Ultralytics YOLO ile DEEPX'in NPU teknolojisinin kombinasyonu, gömülü ve uç cihazlarda gelişmiş bilgisayarlı görü iş yüklerini çalıştırmak için etkili bir çözüm sunar; gerçek zamanlı uygulamalar için düşük güç tüketimiyle yüksek iş hacmi sağlar.

Kullanım hakkında daha fazla ayrıntı için DEEPX resmi web sitesini ziyaret edin.

Ayrıca, diğer Ultralytics YOLO entegrasyonları hakkında daha fazla bilgi edinmek isterseniz, entegrasyon kılavuzu sayfamızı ziyaret edin. Orada çok sayıda yararlı kaynak ve içgörü bulacaksınız.

SSS#

  • Modelinizi Python'da export() yöntemini kullanarak veya CLI aracılığıyla dışa aktarabilirsiniz. Dışa aktarma işlemi otomatik olarak INT8 kuantizasyonunu etkinleştirir ve doğruluk kaybını en aza indirmek için bir kalibrasyon veri seti kullanır. dx_com derleyici paketi, henüz mevcut değilse otomatik olarak yüklenir.

    Örnek
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • DEEPX NPU'lar, INT8 hesaplamalarını maksimum verimlilikle yürütmek üzere tasarlanmıştır. dx_com derleyicisi, gerçek veri seti görüntüleriyle EMA tabanlı kalibrasyon kullanarak dışa aktarım sırasında modeli kuantize eder ve NPU'nun tam performansını sunmasını sağlar. INT8, DEEPX dışa aktarımları için her zaman zorunludur — farklı bir hassasiyet talep ederseniz, bir uyarı ile geçersiz kılınacaktır.

  • DEEPX model dışa aktarımı (derlemesi) bir x86-64 Linux sunucusu gerektirir. Dışa aktarma adımı ARM64 (aarch64) ve Windows makinelerinde desteklenmez. Dışa aktarılan .dxnn modelini kullanan çıkarım, dx_engine çalışma zamanı tarafından desteklenen herhangi bir Linux platformunda (x86-64 ve ARM64) çalıştırılabilir.

  • Dışa aktarım şu içeriğe sahip bir dizin (örn. yolo26n_deepx_model/) oluşturur:

    • yolo26n.dxnn — derlenmiş NPU ikilisi
    • config.json — kalibrasyon ve ön işleme ayarları
    • metadata.yaml — sınıf adları ve görüntü boyutu dahil model meta verileri
  • Evet. Ultralytics Eğitim Modu kullanılarak eğitilen ve format="deepx" ile dışa aktarılan herhangi bir model, desteklenen katman işlemlerini kullandığı sürece DEEPX NPU donanımında dağıtılabilir. Dışa aktarım, yedi Ultralytics görevinin tümünü destekler: tespiti, örnek segmentasyonu, anlamsal segmentasyon, derinlik tahmini, sınıflandırma, poz tahmini ve yönlendirilmiş sınırlayıcı kutu (OBB).

  • DEEPX dışa aktarma işlem hattı, EMA kalibrasyon yöntemini kullanarak kalibrasyon veri setindeki her görüntüyü kullanır. İyi bir kuantizasyon doğruluğu için genellikle birkaç yüz görüntü yeterlidir. Büyük veri setlerinde derleme süresi sorun haline gelirse data değerini daha küçük bir veri setine yönlendirin.

  • DEEPX çalışma zamanı ultralytics ile birlikte gelmez ve çıkarım çalıştırmadan önce ayrı olarak yüklenmelidir. x86-64 Linux makinelerinde ve ARM64 Linux makinelerinde (örn. Raspberry Pi 5), DEEPX-AI GitHub sürümlerinden NPU sürücüsünü (dxrt-driver-dkms) ve çalışma zamanını (libdxrt) kurun, ardından birlikte verilen dx_engine Python tekerleğini (wheel) yükleyin. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bakın.

Yorumlar