Ultralytics YOLO27: Bekleme listesine katıl.
Get Started

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

Bilgisayarlı görü modellerini özel NPU donanımlarında dağıtmak için uyumlu ve optimize edilmiş bir model biçimi gerekir. Ultralytics YOLO modellerini DEEPX biçiminde dışa 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 destekli donanımlara dağıtma adımları anlatılır.

DEEPX nedir?#

DEEPX NPU Inference

DEEPX, uçta güç verimli derin öğrenme çıkarımı için tasarlanmış Sinir İşlem Birimleri (NPU'lar) 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 aktarım hızı sunar. Donanımı; 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 oldukça 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.4.1, glibc 2.31 veya daha yenisini kullanan x86-64 Linux sistemlerinde Python 3.8–3.14 için wheel paketleri sağlar. 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.

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.

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 desteklenen en son sürüm kullanılır.
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ü, 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

Çalışma zamanının doğru yüklendiğini 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ı 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ştirme aracıdır.

.deb paketini DEEPX SDK'dan indirip dpkg aracılığıyla yükleyerek x86-64 Linux'a 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ında kullanılabilir.

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; 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 doğrulandı. Çı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'in NPU teknolojisinin birleşimi, 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ı uygulamalarda düşük güç tüketimiyle yüksek verim sağlar.

Kullanım hakkında daha fazla bilgi için DEEPX'in 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 faydalı kaynak ve bilgi bulabilirsin.

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ıca 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) DEEPX-AI GitHub sürümlerinden yükle, ardından birlikte sunulan dx_engine Python tekerleğini yükle. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bak.

Yorumlar