Ultralytics YOLO27: Bekleme listesine katıl.
Başla

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

Uzmanlaşmış NPU donanımında bilgisayarlı görü modellerini dağıtmak için uyumlu ve optimize edilmiş bir model biçimi gerekir. Ultralytics YOLO modellerini DEEPX biçimine aktarmak, DEEPX NPU hızlandırıcılarında verimli, INT8 nicelemeli çıkarım yapılmasını sağlar. Bu kılavuzda YOLO modellerini DEEPX biçimine dönüştürme ve DEEPX tabanlı donanımlarda dağıtma adımları anlatılır.

DEEPX nedir?#

DEEPX NPU Inference

DEEPX, uçta güç açısından verimli derin öğrenme çıkarımı için tasarlanmış Sinir İşlem Birimleri (NPUs) konusunda uzmanlaşmış bir yapay zekâ yarı iletken şirketi ve Ultralytics iş ortağıdır. DEEPX NPU'ları, güç tüketimini en aza indirirken yüksek iş hacmi sağlayarak zorlu gömülü ve endüstriyel yapay zekâ uygulamalarını destekleyecek şekilde tasarlanmıştır. Bu donanım; robotik, akıllı kameralar ve endüstriyel otomasyon sistemleri gibi bulut bağlantısının güvenilir olmadığı veya istenmediği dağıtım senaryoları için uygundur.

DEEPX Dışa Aktarma Biçimi#

DEEPX dışa aktarımı, DEEPX NPU donanımında çalışmak üzere optimize edilmiş, derlenmiş bir .dxnn model ikili dosyası oluşturur. Derleme hattı, INT8 nicelemesi ve donanıma özgü optimizasyonlar için dx_com araç takımını kullanarak dağıtıma hazır, kendi kendine yeterli bir model dizini oluşturur.

DEEPX Modellerinin Temel Özellikleri#

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

  • INT8 Nicelemesi: Dışa aktarma sırasında modeller INT8 hassasiyetine niceleme uygulanarak model boyutu önemli ölçüde küçültülür ve NPU aktarım hızı en üst düzeye çıkarılır. Model nicelemesi hakkında daha fazla bilgi edin.
  • NPU için optimize edildi: .dxnn biçimi, özel hızlandırma birimlerinden yararlanarak hızlı ve verimli çıkarım yapmak üzere özellikle DEEPX NPU donanımı için derlenir.
  • Düşük güç tüketimi: DEEPX modelleri, çıkarımı NPU'ya aktararak eşdeğer CPU veya GPU çıkarımına göre çok daha az güç tüketir.
  • Kalibrasyona Dayalı Doğruluk: Dışa aktarma, 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 İçinde Tam Çıktı: Dışa aktarılan model dizini, kolay dağıtım için derlenmiş ikili dosyayı, kalibrasyon yapılandırmasını ve meta verileri bir araya getirir.

Desteklenen Görevler#

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

GörevYOLOv8YOLO11YOLO26
Algılama✅✅✅
Segmentasyon✅✅✅
Anlamsal❌❌✅
Derinlik❌❌✅
Sınıflandırma✅✅✅
Poz✅✅✅
OBB✅✅✅

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

Bir Ultralytics YOLO modelini DEEPX biçimine aktar ve dışa aktarılan modelle çıkarım yap.

Not

DEEPX dışa aktarma yalnızca x86-64 Linux makinelerinde desteklenir. Dışa aktarma adımı ARM64 (aarch64) üzerinde 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ışa aktarma sırasında PyPI üzerinden otomatik olarak yüklenir. DX-COM 2.5.0, glibc 2.31 veya daha yeni sürümünü kullanan x86-64 Linux sistemlerinde Python 3.8–3.14 için wheel paketleri sağlar ve en az 16 GB RAM gerektirir. Dışa aktarma bağımlılıklarını önceden yüklemek için:

pip install "ultralytics[export-deepx]"

Düzenlenebilir bir depo kurulumu için "ultralytics[export-deepx]" yerine -e ".[export-base,export-deepx]" kullan. Python 3.14 ortamını ve CI'da kullanılan temel dışa aktarma testini yeniden oluşturmak için, depoda kök dizindeyken mevcut ortam oluşturucuyu çalıştır:

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

Ortam oluşturucu, uv ve kurulu bir Ultralytics çalışma ağacı gerektirir. Test edilmiş bağımlılık kısıtlamalarını otomatik olarak uygular.

Çalışma zamanı uyumluluğu

DX-COM 2.5.0, yalnızca DX-RT 3.5.0 veya daha yeni sürümlerde yüklenebilen .dxnn dosya biçimi v9'u üretir. Çalışma Zamanı Kurulumu bölümünde açıklanan eşleşen DEEPX çalışma zamanını yükle ve bileşenleri tek tek yükseltmeden önce DEEPX sürüm uyumluluk matrisini kontrol et.

Kullanım#

DEEPX biçimi Dışa Aktar, Tahmin ve Doğrula 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.

Not

Predict ve Validate işlemleri, DEEPX çalışma zamanı yüklü bir DEEPX NPU cihazı gerektirir (Çalışma Zamanı Kurulumu bölümüne bak). Dışa aktarma, NPU'su olmayan bir x86-64 Linux ana makinesinde çalışır; çıkarım yapmak için dışa aktarılan _deepx_model/ dizinini NPU cihazına kopyala.

Dışa aktar
from ultralytics import YOLO

# YOLO26 modelini yükle
model = YOLO("yolo26n.pt")

# # Modeli DEEPX biçimine aktar (quantize=8 otomatik olarak zorunlu kılınır)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Tahmin
from ultralytics import YOLO

# # Dışa aktarılan DEEPX modelini yükle
model = YOLO("yolo26n_deepx_model")

# Çıkarımı çalıştır
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

# # Dışa aktarılan DEEPX modelini yükle
model = YOLO("yolo26n_deepx_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şkenTürVarsayılanAçıklama
formatstr'deepx'Dışa aktarılan modelin hedef biçimi; 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 girdi gerektirir; bir tamsayı (ör. 640) veya yüksekliği genişliğine eşit bir demet ver.
quantizeint veya str8/otomatikNiceleme hassasiyeti. DEEPX dışa aktarma için 8 (INT8) gerekir ve belirtilmediğinde otomatik olarak etkinleştirilir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
simplifyboolTrueAra ONNX grafiğini onnxslim ile sadeleştirir.
opsetintNoneAra ONNX grafiği için ONNX opset sürümünü belirtir. Ayarlanmazsa, kurulu onnx sürümüyle sınırlandırılmış 18 opset sürümü kullanılır (PyTorch < 2.4 sürümlerinde daha düşük).
datastrNoneINT8 kalibrasyonu için kullanılan veri kümesi YAML dosyası; sınıflandırma içinse 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 cihazını 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 x86-64 Linux ana bilgisayarda çalıştır. dx_com derleyicisi ARM64'ü desteklemez.

Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics dışa aktarma belgeleri sayfasını ziyaret et.

Çıktı Yapısı#

Dışa aktarma başarıyla tamamlandıktan sonra aşağıdaki düzende 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 NPU'da doğrudan yüklediği derlenmiş model ikili dosyasıdır. metadata.yaml, sınıf adlarını, görüntü boyutunu ve Ultralytics çıkarım hattının kullandığı diğer bilgileri içerir.

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

Ultralytics YOLO modelini DEEPX biçimine başarıyla aktardıktan sonraki adım, bu modelleri DEEPX NPU donanımına dağıtmaktır.

Çalışma Zamanı Kurulumu#

Çıkarım için DEEPX NPU sürücüsü (v2.7.0 veya daha yeni), DX-RT çalışma zamanı (v3.5.0 veya daha yeni), NPU ürün yazılımı v2.7.6 veya daha yeni ve dx_engine Python paketi gerekir. Bunlar, DX-COM 2.5.0 ile derlenen modelleri çalıştırmak için gereken sürümlerdir.

Not

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

NPU sürücüsünü ve libdxrt-bin çalışma zamanı paketini aşağıdaki seçeneklerden biriyle yükle.

Seçenek A: GitHub Sürüm Paketlerinden Yükleme#

Sürücüyü ve çalışma zamanı .deb paketlerini DEEPX-AI GitHub depolarından indirip yükle. Çalışma zamanı paketi, her CPU mimarisi için ayrı olarak sağlanır (amd64 veya arm64):

# Install the NPU driver and DX-RT runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.7.0/dxrt-driver-dkms_2.7.0-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.7.0-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.5.0/libdxrt-bin_3.5.0_$(dpkg --print-architecture).deb
sudo apt install ./libdxrt-bin_3.5.0_$(dpkg --print-architecture).deb

Seçenek B: DEEPX apt Deposundan Yükleme#

DEEPX apt deposunu bir kez kaydet, ardından sürücüyü ve çalışma zamanını apt ile yükleyip yükselt:

# Add the DEEPX apt repository
wget -O - https://apt.releases.deepx.ai/gpg | sudo gpg --dearmor -o /usr/share/keyrings/deepx-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/deepx-archive-keyring.gpg] https://apt.releases.deepx.ai $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") main" | sudo tee /etc/apt/sources.list.d/deepx.list

# Install the NPU driver and DX-RT runtime
sudo apt update
sudo apt install dxrt-driver-dkms libdxrt-bin

Yeni çekirdek modülünün dxcli çalıştırılmadan önce yüklenmesi için sürücüyü yükledikten sonra ana makineyi yeniden başlat.

Python Paketi ve Ürün Yazılımı#

libdxrt-bin, dx_engine wheel paketlerini /usr/share/libdxrt-bin/python/ içinde Python 3.8–3.14 için bir araya getirir ancak bunları yüklemez. Ultralytics ve NumPy'nin yüklü olduğu ortamda, Python sürümünle eşleşen wheel paketini yükle:

python -m pip install --upgrade --no-index --find-links /usr/share/libdxrt-bin/python dx_engine

DX-RT 3.5.0 için NPU ürün yazılımı v2.7.6 veya daha yeni bir sürüm gerekir. dxcli -s ile ürün yazılımı sürümünü ve cihaz kimliğini kontrol et; daha eskiyse modülüne uygun ürün yazılımı imajıyla güncelle. DX-M1 ve DX-M1M M.2 modülleri farklı ürün yazılımı imajları kullanır; bu nedenle yalnızca modülüne uygun olanı indir. dxcli -s, cihaz bilgilerinde modülü M1 veya M1M olarak gösterir:

# Download the firmware image matching your module (DX-M1 shown)
wget -O dx-m1-2.7.6.bin https://github.com/DEEPX-AI/dx_fw/raw/main/m1/2.7.6/mdot2/fw.bin
# wget -O dx-m1m-2.7.6.bin https://github.com/DEEPX-AI/dx_fw/raw/main/m1m/2.7.6/mdot2/fw.bin # DX-M1M

# Update the selected device; replace DEVICE_ID with its ID from dxcli -s
sudo systemctl stop dxrt.service
dxcli -d DEVICE_ID -u dx-m1-2.7.6.bin # for DX-M1M use dx-m1m-2.7.6.bin instead

Ürün yazılımını yükledikten sonra, ürün yazılımı sürümünü kontrol etmeden önce ana makineyi tamamen kapatıp yeniden aç. Gücü fiziksel olarak kesmek mümkün değilse ana makineyi DEEPX sorun giderme kılavuzunda açıklandığı şekilde yeniden başlat.

Kurulumu dxcli -s ile doğrula; bu araç her cihazın çalışma zamanı, sürücü ve ürün yazılımı sürümlerini bildirir. import dx_engine, dx_engine wheel paketiyle yüklü libdxrt çalışma zamanı sürümleri farklıysa RuntimeError hatası verir; bu nedenle çalışma zamanını yükselttikten sonra /usr/share/libdxrt-bin/python/ konumundaki wheel paketini yeniden yükle.

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

Derlenmiş Modeli İnceleme#

DX-COM 2.5.0, DX-TRON grafik görselleştiricisinin yerine derlenmiş model yapısını ve CPU/NPU iş yükü dağılımını gösteren etkileşimli bir HTML Derleme Özeti Raporu sunar. Gerekirse, dışa aktarma işleminin yazdığı ara ONNX modelini x86-64 dışa aktarma ana makinesindeki dxcom CLI ile yeniden derleyerek raporu oluştur:

dxcom -m yolo26n.onnx -c yolo26n_deepx_model/config.json -o yolo26n_deepx_report --export_html

Raporu görüntülemek için yolo26n_deepx_report/yolo26n_summary.html dosyasını bir tarayıcıda aç.

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
ModelBiçimDurumBoyut (MB)metrics/mAP50-95(B)Çıkarım süresi (ms/im)
YOLO26nPyTorch✅5.30.4760315.2
YOLO26nDEEPX✅6.60.466034.6
YOLO26n-segPyTorch✅6.50.4080485.4
YOLO26n-segDEEPX✅7.90.392053.8
YOLO26n-posePyTorch✅7.60.4230506.3
YOLO26n-poseDEEPX✅8.80.459037.6
YOLO26n-obbPyTorch✅5.70.8171094.4
YOLO26n-obbDEEPX✅7.30.78356.4
ModelBiçimDurumBoyut (MB)acc (top1)acc (top5)Çıkarım süresi (ms/im)
YOLO26n-clsPyTorch✅5.60.4310.71623.8
YOLO26n-clsDEEPX✅5.90.3330.6862.7
Not

Yukarıdaki kıyaslamaların doğrulaması; algılama için COCO128, segmentasyon için COCO128-seg, sınıflandırma için ImageNet100, poz tahmini için COCO8-pose ve OBB modelleri için DOTA128 kullanılarak yapıldı. Çıkarım süresine ön/son işleme dahil değildir.

Performans Optimizasyonu İpuçları

Raspberry Pi 5'e bağlı DX-M1 NPU'dan en iyi çıkarım verimini 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

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. PCIe Gen3 için beklenen hız 8GT/s'dir.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"
  1. Ultralytics Train Mode ile modelini eğit
  2. model.export(format="deepx") kullanarak DEEPX biçimine aktar
  3. Nicemleme 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 yap
  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ına dağıtılan YOLO modelleri, çok çeşitli uç yapay zekâ uygulamaları için uygundur:

  • Akıllı Gözetim: Güvenlik ve izleme sistemleri için düşük güç tüketimiyle ve buluta bağlı olmadan gerçek zamanlı nesne tespiti.
  • Endüstriyel Otomasyon: Fabrika ortamlarında cihaz üzerinde kalite kontrolü, kusur tespiti ve süreç izleme.
  • Robotik: Otonom robotlarda ve dronlarda görüntü tabanlı navigasyon, engellerden kaçınma ve nesne tanıma.
  • Akıllı Tarım: Tarımda bilgisayarlı görü kullanarak ürün sağlığını izleme, zararlı tespiti ve verim tahmini.
  • Perakende Analitiği: Gerçek zamanlı uç çıkarımıyla müşteri akışı analizi, raf izleme ve envanter takibi.

Özet#

Bu kılavuzda, Ultralytics YOLO modellerini DEEPX biçimine nasıl aktaracağını ve DEEPX NPU donanımına nasıl dağıtacağını öğrendin. Dışa aktarma hattı, donanım için optimize edilmiş bir .dxnn ikili dosyası oluşturmak üzere INT8 kalibrasyonu ve dx_com derleyicisini kullanırken, dx_engine çalışma zamanı cihazda çıkarımı gerçekleştirir.

Ultralytics YOLO ile DEEPX NPU'ları birlikte, gerçek zamanlı uygulamalarda yüksek iş hacmi ve düşük güç tüketimiyle gömülü ve uç aygıtlarda bilgisayarlı görü iş yüklerini çalıştırır.

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

Sık Sorulan Sorular#

  • Modelini Python'da export() yöntemiyle veya CLI üzerinden dışa aktarabilirsin. Dışa aktarma, 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 yüklü 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, dışa aktarma sırasında gerçek veri kümesi görüntüleriyle EMA tabanlı kalibrasyon kullanarak modeli niceleyip NPU'nun tam performans sunmasını sağlar. DEEPX dışa aktarımlarında INT8 her zaman zorunludur; farklı bir hassasiyet istersen bu, bir uyarıyla INT8 olarak değiştirilir.

  • DEEPX modelini dışa aktarmak (derlemek) için x86-64 Linux ana bilgisayar gerekir. 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ının desteklediği tüm Linux platformlarında (x86-64 ve ARM64) çalıştırılabilir.

  • Dışa aktarma, aşağıdakileri içeren bir dizin (ör. yolo26n_deepx_model/) oluşturur:

    • yolo26n.dxnn — derlenmiş NPU ikili dosyası
    • config.json — kalibrasyon ve ön işleme ayarları
    • metadata.yaml — sınıf adları ve görüntü boyutu gibi 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 kullandıkları sürece DEEPX NPU donanımına dağıtılabilir. Dışa aktarma, Ultralytics'in yedi görevinin tümünü destekler: tespit, ö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 hattı, dx_com derleyicisini kalibrasyon veri kümesindeki görüntüler üzerinde 100 EMA kalibrasyon adımı gerçekleştirecek şekilde yapılandırı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şturuyorsa data için daha küçük bir veri kümesi belirt.

  • DEEPX çalışma zamanı ultralytics ile birlikte sunulmaz ve çıkarım çalıştırılmadan önce ayrı olarak yüklenmelidir. x86-64 Linux ve ARM64 Linux makinelerinde (ör. Raspberry Pi 5), NPU sürücüsünü (dxrt-driver-dkms) ve çalışma zamanını (libdxrt-bin) DEEPX-AI GitHub sürüm paketlerinden veya DEEPX apt deposundan yükle; gerekiyorsa NPU ürün yazılımını v2.7.6 veya daha yeni bir sürüme güncelle ve paketle birlikte sunulan dx_engine Python wheel paketini ortamına yükle. DX-COM 2.5.0 ile dışa aktarılan modeller için DX-RT 3.5.0 veya daha yeni bir sürüm gerekir. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bak.

Yorumlar

Bir soru sor, sonuçlarını paylaş veya başka birine yardım et.