YOLO Vision 2026:

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

Bilgisayarlı görü modellerini özel NPU donanımında dağıtmak, uyumlu ve optimize edilmiş bir model formatı gerektirir. Ultralytics YOLO modellerini DEEPX formatına aktarmak, DEEPX NPU hızlandırıcılarında verimli, INT8 nicelemeli çıkarım yapılmasını sağlar. Bu kılavuz, YOLO modellerini DEEPX formatına dönüştürme ve DEEPX destekli donanımlarda dağıtma sürecinde sana yol gösterir.

DEEPX nedir?#

DEEPX NPU Inference

DEEPX, uçta güç verimli derin öğrenme çıkarımı için tasarlanmış Sinir İşleme Birimleri (NPUs) konusunda uzmanlaşmış bir yapay zekâ yarı iletken şirketidir. DEEPX NPU'ları, zorlu gömülü ve endüstriyel yapay zekâ uygulamaları için tasarlanmıştır; düşük güç tüketimiyle yüksek işlem hacmi sunar. Donanımları robotik, akıllı kameralar ve endüstriyel otomasyon sistemleri gibi bulut bağlantısının güvenilir olmadığı veya tercih edilmediği dağıtım senaryoları için son derece uygundur.

DEEPX Dışa Aktarma Formatı#

DEEPX dışa aktarma işlemi, DEEPX NPU donanımında çalıştırılmak üzere optimize edilmiş, derlenmiş bir .dxnn model ikilisi üretir. Derleme işlem hattı, INT8 niceleme ve donanıma özgü optimizasyon gerçekleştirmek için dx_com araç setini kullanır ve dağıtıma hazır, kendi kendine yeten bir model dizini oluşturur.

DEEPX Modellerinin Temel Özellikleri#

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

  • INT8 Niceleme: Modeller dışa aktarma sırasında INT8 hassasiyetine nice­lenir; bu, model boyutunu önemli ölçüde azaltır ve NPU işlem hacmini en üst düzeye çıkarır. Model niceleme hakkında daha fazla bilgi edin.
  • NPU için Optimize Edilmiş: .dxnn formatı, DEEPX NPU donanımı için özel olarak derlenir ve hızlı, verimli çıkarım için özel hızlandırma birimlerinden yararlanır.
  • Düşük Güç Tüketimi: Çıkarım NPU'ya aktarıldığından DEEPX modelleri, eşdeğer CPU veya GPU çıkarımına kıyasla çok daha az güç tüketir.
  • Kalibrasyon Tabanlı Doğruluk: Dışa aktarma işlemi, niceleme sırasında doğruluk kaybını en aza indirmek için gerçek veri kümesi görüntüleriyle EMA tabanlı kalibrasyon kullanır.
  • Kendi Kendine Yetebilen Çıktı: Dışa aktarılan model dizini, derlenmiş ikili dosyayı, kalibrasyon yapılandırmasını ve kolay dağıtım için meta verileri içerir.

Desteklenen Görevler#

DEEPX dışa aktarma, yedi Ultralytics görevinin tamamını destekler. Semantik segmentasyon ve derinlik tahmini yalnızca bu başlıkları içeren tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algılama
Segmentasyon
Semantik
Derinlik
Sınıflandırma
Poz
OBB

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

Bir Ultralytics YOLO modelini DEEPX formatına aktar ve dışa aktarılan modelle çıkarım gerçekleştir.

Not

DEEPX dışa aktarma yalnızca x86-64 Linux makinelerinde desteklenir. ARM64 (aarch64), dışa aktarma adımı için desteklenmez. Ancak dışa aktarılan dxnn modelleri ARM64 platformlarıyla tamamen uyumludur ve bu platformlarda çalıştırılabilir.

Kurulum#

Gerekli paketleri yüklemek için şunu çalıştır:

Kurulum
# Install the required package for YOLO
pip install ultralytics

dx_com derleyicisi, ilk dışarı aktarımda DEEPX SDK deposundan otomatik olarak yüklenir. Mevcut dışarı aktarım iş akışı, x86-64 Linux üzerinde glibc 2.31 veya daha yeni sürümlerle Python 3.8–3.12 için tekerlekler (wheels) sağlayan DX-COM 2.3.0 sürümünü kullanır.

Derleyicinin PyPI sürümleri geri çekilmiştir (yanked). Dışarı aktarım bağımlılıklarını önceden yüklemek için SDK tekerlek (wheel) sayfasını --find-links ile sağlayın; bu, hem pip hem de uv pip ile çalışır:

pip install "ultralytics[export-deepx]" --find-links https://sdk.deepx.ai/release/dxcom/v2.3.0/index.html

Düzenlenebilir bir depo yüklemesi için "ultralytics[export-deepx]" ifadesini -e ".[export-base,export-deepx]" ile değiştirin. CI tarafından kullanılan Python 3.12 ortamını ve doğrulama dışarı aktarımını çoğaltmak için depo kök dizininden mevcut ortam oluşturucusunu çalıştırın:

ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx

Ortam oluşturucu, uv ve kurulu bir Ultralytics kontrolü gerektirir. Derleyiciyi SDK kaynağından kurar ve test edilen bağımlılık kısıtlamalarını otomatik olarak uygular.

Kullanım#

DEEPX formatı Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler. Çıkarım ve doğrulama DEEPX NPU donanımında çalışır. Modelini dışa aktar, ardından çıkarım yapmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.

Dışa aktarma
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
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 Bağımsız Değişkenleri#

Bağımsız değişkenTürVarsayılanAçıklama
formatstr'deepx'Dışa aktarılan model için hedef formatı belirtir ve DEEPX NPU donanımıyla uyumluluğu tanımlar.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu. DEEPX dışa aktarma kare bir girdi gerektirir — bir tam sayı (ör. 640) veya yüksekliğin genişliğe eşit olduğu bir demet geçir.
quantizeint veya str8/autoNiceleme hassasiyeti. DEEPX dışa aktarma için 8 (INT8) gereklidir ve belirtilmezse otomatik olarak etkinleştirilir. Kullanımdan kaldırılan half/int8 işaretlerinin 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ılır.
datastrNoneINT8 kalibrasyonu için kullanılan veri kümesi YAML dosyasıdır; sınıflandırma işleminde bunun yerine bir veri kümesi dizini veya yerleşik veri kümesi adı kullanılır. quantize=8 ile birlikte belirtilmezse 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).
optimizeboolFalseDaha yüksek derleyici optimizasyonunu etkinleştirir; bu, çıkarım gecikmesini azaltır ve derleme süresini artırır.
İpucu

DEEPX dışa aktarma işlemini her zaman bir x86-64 Linux ana bilgisayarında çalıştır. dx_com derleyicisi ARM64'ü desteklemez.

Dışa aktarma süreci hakkında daha fazla ayrıntı için Ultralytics'in dışa aktarma dokümantasyonu sayfasını ziyaret et.

Çıktı Yapısı#

Başarılı bir dışa aktarma işleminden sonra aşağıdaki düzene sahip 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 doğrudan NPU'ya yüklediği derlenmiş model ikilisidir. metadata.yaml, 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 aktardıktan sonra sıradaki adım, bu modelleri DEEPX NPU donanımına dağıtmaktır.

Çalışma Zamanı Yükleme#

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

Not

DEEPX çalışma zamanı hem x86-64 Linux hem de ARM64'ü (ör. 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

dxrt-cli --version ile çalışma zamanının doğru şekilde yüklendiğini doğrula. Şuna 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ı yüklendikten sonra, yukarıdaki Kullanım bölümünde gösterildiği gibi DEEPX cihazında çıkarım ve doğrulamayı çalıştır — dışa aktarılan _deepx_model, YOLO(...) ile doğrudan yüklenir.

dxtron ile Görselleştirme#

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

DEEPX SDK'dan .deb paketini indirip dpkg aracılığıyla yükleyerek dxtron paketini x86-64 Linux'a yükle:

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ında kullanılabilir.

Karşılaştırmalı Testler#

Ultralytics ekibi, PyTorch ve DEEPX arasındaki hız ve doğruluk farklarını karşılaştırarak YOLO26 modelleri üzerinde kıyaslama yaptı.

Performans
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModelBiçimDurumBoyut (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
ModelBiçimDurumBoyut (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; nesne tespiti 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şlemeyi içermez.

Performans Optimizasyonu İpuçları

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

sudo nano /boot/firmware/config.txt

Aşağıdaki satırları dosyanın sonuna ekle:

dtparam=pciex1
dtparam=pciex1_gen=3

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

sudo reboot

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

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

Önerilen İş Akışı#

  1. Modelini Ultralytics Eğitim Modu ile Eğit
  2. model.export(format="deepx") kullanarak DEEPX formatına Dışa Aktar
  3. Niceleme kaybının en aza indirildiğini doğrulamak için yolo val ile doğruluğu Doğrula
  4. Nitel doğrulama için yolo predict kullanarak Tahmin Et
  5. Dışa aktarılan _deepx_model/ dizinini dx_engine çalışma zamanını kullanarak 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 uç yapay zekâ 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 algılama.
  • Endüstriyel Otomasyon: Fabrika ortamlarında cihaz üzerinde kalite kontrolü, kusur algılama ve süreç izleme.
  • Robotik: Otonom robotlarda ve dronlarda görüş tabanlı navigasyon, engellerden kaçınma ve nesne tanıma.
  • Akıllı Tarım: Tarımda bilgisayarlı görü kullanarak ürün sağlığı izleme, haşere algılama ve verim tahmini.
  • Perakende Analitiği: Gerçek zamanlı uç çıkarımla müşteri akışı analizi, raf izleme ve envanter takibi.

Özet#

Bu kılavuzda Ultralytics YOLO modellerini DEEPX formatına nasıl aktaracağını ve DEEPX NPU donanımına nasıl dağıtacağını öğrendin. Dışa aktarma işlem hattı, donanım için optimize edilmiş bir .dxnn ikilisi üretmek üzere INT8 kalibrasyonu ve dx_com derleyicisini kullanırken dx_engine çalışma zamanı cihazdaki çıkarımı yönetir.

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

Kullanım hakkında daha fazla bilgi için DEEPX resmî web sitesini ziyaret et.

Ayrıca diğer Ultralytics YOLO entegrasyonları hakkında daha fazla bilgi edinmek istersen entegrasyon kılavuzu sayfamızı ziyaret et. Orada birçok yararlı kaynak ve içgörü bulabilirsin.

SSS#

  • Modelini Python'da export() yöntemini kullanarak veya CLI üzerinden dışa aktarabilirsin. Dışa aktarma işlemi INT8 nicelemeyi otomatik olarak etkinleştirir ve doğruluk kaybını en aza indirmek için bir kalibrasyon veri kümesi kullanır. dx_com derleyici paketi 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ı en yüksek verimlilikle gerçekleştirmek üzere tasarlanmıştır. dx_com derleyicisi, NPU'nun tam performans sunmasını sağlamak için dışa aktarma sırasında gerçek veri kümesi görüntüleriyle EMA tabanlı kalibrasyon kullanarak modeli nice­ler. DEEPX dışa aktarmalarında INT8 her zaman zorunludur — farklı bir hassasiyet istersen bir uyarıyla INT8'e çevrilir.

  • DEEPX model dışa aktarma (derleme) işlemi bir x86-64 Linux ana bilgisayarı gerektirir. Dışa aktarma adımı ARM64 (aarch64) ve Windows makinelerinde desteklenmez. Dışa aktarılan .dxnn modelini kullanarak çıkarım, dx_engine çalışma zamanı tarafından desteklenen tüm Linux platformlarında (x86-64 ve ARM64) çalıştırılabilir.

  • Dışa aktarma işlemi, aşağıdakileri içeren bir dizin (ör. 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 tüm modeller, desteklenen katman işlemlerini kullanmaları koşuluyla DEEPX NPU donanımına dağıtılabilir. Dışa aktarma, yedi Ultralytics görevinin tamamını destekler: algılama, örnek segmentasyonu, semantik 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öntemiyle kalibrasyon veri kümesindeki her görüntüyü kullanır. İyi bir niceleme doğruluğu için genellikle birkaç yüz görüntü yeterlidir. Büyük veri kümelerinde derleme süresi sorun oluşturmaya başlarsa data seçeneğini daha küçük bir veri kümesine yönlendir.

  • DEEPX çalışma zamanı ultralytics ile birlikte gelmez ve çıkarım çalıştırılmadan önce ayrıca yüklenmelidir. x86-64 Linux makinelerinde ve ARM64 Linux makinelerinde (ör. Raspberry Pi 5), NPU sürücüsünü (dxrt-driver-dkms) ve çalışma zamanını (libdxrt) DEEPX-AI GitHub sürümlerinden yükle, ardından birlikte sunulan dx_engine Python wheel paketini yükle. Adım adım komutlar için yukarıdaki Çalışma Zamanı Yükleme bölümüne bak.

Yorumlar