Skip to main content

Ultralytics YOLO Modelleri için DeepX Dışa Aktarma

Bilgisayarlı görü modellerini özel NPU donanımı üzerinde çalıştırmak, uyumlu ve optimize edilmiş bir model biçimi gerektirir. Ultralytics YOLO modellerini DeepX biçimine dışa aktarmak, DeepX NPU hızlandırıcılarında verimli, INT8 nicelenmiş çıkarım yapmanı sağlar. Bu kılavuz, YOLO modellerini DeepX biçimine dönüştürmen ve DeepX destekli donanım üzerinde çalıştırman konusunda sana rehberlik eder.

DeepX nedir?

DEEPX NPU Inference

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

DeepX Dışa Aktarma Biçimi

DeepX dışa aktarma işlemi, DeepX NPU donanımında yürütülmek üzere optimize edilmiş derlenmiş bir .dxnn model ikili dosyası üretir. Derleme süreci, INT8 nicelleştirme ve donanıma özel 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ç nokta dağıtımı için çeşitli avantajlar sunar:

  • INT8 Nicelleştirme: Modeller, dışa aktarma sırasında INT8 hassasiyetine nicelenir, bu da model boyutunu önemli ölçüde azaltır ve NPU iş hacmini en üst düzeye çıkarır. model nicelleştirme.
  • NPU-Optimize Edilmiş: .dxnn biçimi, 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 aktararak, DeepX modelleri eşdeğer CPU veya GPU çıkarımına göre çok daha az güç tüketir.
  • Kalibrasyon Temelli 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.
  • Kendi Kendine Yeten Çıktı: Dışa aktarılan model dizini; derlenmiş ikili dosyayı, kalibrasyon yapılandırmasını ve doğrudan dağıtım için gerekli meta verileri bir araya getirir.

Desteklenen Görevler

Tüm standart Ultralytics görevleri; YOLO26, YOLO11 ve YOLOv8 model ailelerinde DeepX dışa aktarma için desteklenir.

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

Bir Ultralytics YOLO modelini DeepX biçimine dışa aktar ve dışa aktarılan model ile çıkarım yap.

Not

DeepX dışa aktarma yalnızca x86-64 Linux makinelerinde desteklenir. ARM64 (aarch64) dışa aktarma adımı için desteklenmez.

Kurulum

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

Kurulum
# Install the required package for YOLO
pip install ultralytics

DeepX dx_com derleyici paketi, ilk dışa aktarma sırasında DeepX SDK deposundan otomatik olarak kurulacaktır. Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.

Kullanım

Kullanım
from ultralytics import YOLO

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

# Export the model to DeepX format (int8=True is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'

Dışa Aktarma Argümanları

ArgümanTürVarsayılanAçıklama
formatstr'deepx'Dışa aktarılan model için hedef biçim; DeepX NPU donanımı ile uyumluluğu tanımlar.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu. DeepX dışa aktarma kare bir girdi gerektirir — bir tamsayı (örneğin, 640) veya yükseklik ve genişliğin eşit olduğu bir demet (tuple) geçir.
int8boolTrueINT8 nicelleştirmeyi etkinleştirir. DeepX dışa aktarma için gereklidir — belirtilmediği takdirde otomatik olarak True olarak ayarlanır.
datastr'coco128.yaml'INT8 kalibrasyonu için kullanılan veri seti yapılandırma dosyası. Kalibrasyon görüntüsü kaynağını belirtir.
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 aktarma işlemini her zaman bir x86-64 Linux ana bilgisayarında çalıştır. dx_com derleyicisi ARM64'ü desteklemez.

Dışa aktarma süreciyle ilgili daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics dokümantasyon sayfasına.

git.

Çıktı Yapısı

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.)

DeepX .dxnnBaşarılı bir dışa aktarma işleminden sonra, aşağıdaki düzende bir model dizini oluşturulur: dx_engine dosyası, metadata.yaml çalışma zamanının doğrudan NPU üzerinde yüklediği derlenmiş model ikili dosyasıdır.

ise Ultralytics çıkarım hattı tarafından kullanılan sınıf isimlerini, görüntü boyutunu ve diğer bilgileri içerir.

Dışa Aktarılan YOLO DeepX Modellerini Çalıştırma

Ultralytics YOLO modelini DeepX biçimine başarıyla dışa aktardıktan sonra, bir sonraki adım bu modelleri DeepX NPU donanımı üzerinde çalıştırmaktır.

Çalışma Zamanı KurulumulibdxrtÇıkarım işlemi; DeepX NPU sürücüsünü, dx_engine çalışma zamanını ve

Not

Python paketini gerektirir.

# 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.0/dxrt-driver-dkms_2.4.0-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.0-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

DeepX çalışma zamanı yalnızca x86-64 Linux makinelerinde ve ARM64 Debian Trixie makinelerinde (Raspberry Pi 5) desteklenir.dxrt-cli --versionÇalışma zamanının

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

Kullanım

Kullanım
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for r in results:
    print(f"Detected {len(r.boxes)} objects")
    r.show()

ile doğru şekilde kurulduğunu doğrula. Aşağıdakine benzer bir çıktı görmelisin:

dxtron ile görselleştirmedxtron.dxnn, derlenmiş

modelini incelemek için DeepX'in grafik görselleştiricisidir.dxtronx86-64 Linux üzerinde .deb kurmak için DeepX SDK'dan dpkg:

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

paketini indir ve

dxtron yolo26n_deepx_model/yolo26n.dxnn
Not

dxtron aracılığıyla kur. Ardından dışa aktardığın modeli aç:x86-64 Linux yalnızca

için kullanılabilir. ARM64/aarch64 ve Linux olmayan platformlar desteklenmez.

Kıyaslamalar

Ultralytics ekibi, PyTorch ve DeepX arasındaki hız ve doğruluğu karşılaştırarak YOLO26 modellerini kıyasladı.
Raspberry Pi 5 + DX-M1 M.2 ModülüModelBiçimDurummetrics/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
Raspberry Pi 5 + DX-M1 M.2 ModülüModelBiçimDurumacc (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, duruş tahmini için coco8-pose, sınıflandırma için imagenet100 ve OBB modelleri için dota128 kullanılarak yapılmıştır. Çıkarım süresi, ön/son işleme aşamalarını içermez.

Performans Optimizasyon İ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 şu 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

Önerilen İş Akışı

  1. Train modelini Ultralytics ile Eğitim Modu
  2. Export ile DeepX formatına dönüştür model.export(format="deepx")
  3. Doğrula ile yolo val kullanarak minimum nicemleme kaybını doğrula
  4. Predict kullanarak yolo predict nitel doğrulama için
  5. Dağıt dışa aktarılan _deepx_model/ dizinini DeepX NPU donanımına dx_engine çalışma zamanı ile

Gerçek Dünya Uygulamaları

DeepX NPU donanımı üzerinde çalışan YOLO modelleri, çok çeşitli uç yapay zeka (edge AI) uygulamaları için oldukça uygundur:

  • Akıllı Gözetim: Düşük güç tüketimi ve bulut bağımlılığı olmaksızın 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 mahsul 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.

Özetdx_comBu rehberde, Ultralytics YOLO modellerini DeepX formatına nasıl aktaracağını ve bunları DeepX NPU donanımı üzerinde nasıl dağıtacağını öğrendin. Dışa aktarma hattı, INT8 kalibrasyonu ve .dxnn derleyicisini kullanarak donanım için optimize edilmiş bir dx_engine ikili dosyası üretirken,

çalışma zamanı cihaz üzerindeki çıkarımı yönetir.Ultralytics YOLOUltralytics ve DeepX'in NPU teknolojisinin kombinasyonu, gelişmiş bilgisayarlı görü iş yüklerini gömülü ve uç cihazlarda çalıştırmak için etkili bir çözüm sunarak, gerçek zamanlı uygulamalar için düşük güç tüketimi ile yüksek verim sağlar.

Kullanım hakkında daha fazla detay için DeepX resmi web sitesini.

ziyaret et. Ayrıca, diğer Ultralytics YOLO entegrasyonları hakkında daha fazla bilgi edinmek istersen entegrasyon rehberi sayfamızı ziyaret et. Orada birçok faydalı kaynak ve içgörü bulacaksın.

SSS

Ultralytics YOLO modelimi nasıl DeepX formatına aktarabilirim?

Modelini Python'daki export() metodu ile veya CLI üzerinden aktarabilirsin. Dışa aktarma işlemi otomatik olarak INT8 nicemlemeyi etkinleştirir ve doğruluk kaybını en aza indirmek için bir kalibrasyon veri kümesi kullanır. dx_com derleyici paketi, eğer mevcut değilse otomatik olarak yüklenir.

üzerinden bulut GPU'larında eğitilebilir. Örnek:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="deepx")

DeepX dışa aktarımı neden INT8 nicemlemesi gerektirir?

DeepX NPU'ları, INT8 hesaplamalarını maksimum verimlilikle gerçekleştirmek üzere tasarlanmıştır. dx_com derleyicisi, dışa aktarma sırasında gerçek veri kümesi görüntüleri ile EMA tabanlı kalibrasyon kullanarak modeli nicemler ve NPU'nun tam performansını sunmasını sağlar. INT8, DeepX dışa aktarımları için her zaman zorunludur; eğer int8=False geçersen, bu bir uyarı ile geçersiz kılınacaktır.

DeepX dışa aktarımı için hangi platformlar destekleniyor?

DeepX model dışa aktarımı (derleme), bir x86-64 Linux ana makinesi gerektirir. Dışa aktarma adımı ARM64 (aarch64) ve Windows makinelerde desteklenmez. Dışa aktarılan .dxnn modelini kullanarak çıkarım yapmak, dx_engine çalışma zamanı tarafından desteklenen herhangi bir Linux platformunda (x86-64 ve ARM64) çalıştırılabilir.

DeepX dışa aktarımının çıktısı nedir?

Dışa aktarma işlemi, şunları içeren bir dizin (örneğin, yolo26n_deepx_model/) oluşturur:

  • yolo26n.dxnn — derlenmiş NPU ikili dosyası
  • config.json — kalibrasyon ve ön işleme ayarları
  • metadata.yaml — sınıf isimleri ve görsel boyutu dahil olmak üzere model meta verileri

DeepX donanımı üzerinde özel eğitilmiş modelleri dağıtabilir miyim?

Evet. Ultralytics Train Mode kullanılarak eğitilen ve format="deepx" ile dışa aktarılan her model, desteklenen katman işlemlerini kullandığı sürece DeepX NPU donanımı üzerinde dağıtılabilir. Dışa aktarma; tespit, segmentasyon, poz kestirimi, yönelimli sınırlayıcı kutu (OBB) ve sınıflandırma görevlerini destekler.

DeepX dışa aktarımı için kaç tane kalibrasyon görseli kullanmalıyım?

DeepX dışa aktarma hattı, kalibrasyon veri setindeki her görseli ( fraction filtrelemesinden sonra) EMA kalibrasyon yöntemiyle kullanır. Birkaç yüz görsel, iyi bir niceleme (quantization) doğruluğu için genellikle yeterlidir. Derleme süresi büyük veri setlerinde sorun yaratmaya başlarsa, data değerini daha küçük bir veri setine yönlendir veya fraction parametresini 1.0 değerinin altına ayarla.

Çıkarım için DeepX çalışma zamanını nasıl kurarım?

DeepX çalışma zamanı ultralytics ile birlikte gelmez ve çıkarım çalıştırmadan önce ayrı olarak kurulmalıdır. x86-64 Linux makinelerde ve ARM64 Debian Trixie makinelerde (Raspberry Pi 5), DEEPX-AI GitHub sürümlerinden NPU sürücüsünü (dxrt-driver-dkms) ve çalışma zamanını (libdxrt) kur, ardından paketlenmiş dx_engine Python çarkını (wheel) yükle. Adım adım komutlar için yukarıdaki Ultralytics YOLO modelini DeepX biçimine başarıyla dışa aktardıktan sonra, bir sonraki adım bu modelleri DeepX NPU donanımı üzerinde çalıştırmaktır. bölümüne bak.

Yorumlar