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, 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:
.dxnnformatı, 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örev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| 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.
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:
# Install the required package for YOLO
pip install ultralyticsdx_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.
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/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'deepx' | Dışa aktarılan model için hedef format; DEEPX NPU donanımı ile uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model 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. |
quantize | int veya str | 8/auto | Kuantizasyon 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. |
simplify | bool | True | Ara ONNX grafiğini onnxslim ile basitleştirir. |
opset | int | None | Ara ONNX grafiği için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürümü kullanır. |
data | str | None | INT8 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. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0) veya CPU (device=cpu). |
optimize | bool | False | Çıkarım gecikmesini azaltan ve derleme süresini artıran daha yüksek derleyici optimizasyonunu etkinleştirir. |
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.
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.debArdından dışa aktardığın modeli aç:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron 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ı.
| Model | Format | Durum | Boyut (MB) | metrics/mAP50-95(B) | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| Model | Format | Durum | Boyut (MB) | acc (top1) | acc (top5) | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
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.
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.txtDosyanın sonuna aşağıdaki satırları ekle:
dtparam=pciex1
dtparam=pciex1_gen=3Kaydet ve çık (Ctrl+X, ardından Y, ardından Enter), sonra yeniden başlat:
sudo rebootPCIe 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ışı#
- Ultralytics Eğitim Modunu kullanarak modelini Eğit
model.export(format="deepx")kullanarak DEEPX formatına Dışa Aktar- Minimum niceleme kaybını doğrulamak için
yolo valile doğruluğu Doğrula - Niteliksel doğrulama için
yolo predictkullanarak Tahmin Et 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_comderleyici paketi, henüz mevcut değilse otomatik olarak yüklenir.Örnekfrom 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_comderleyicisi, 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
.dxnnmodelini 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 ikilisiconfig.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
datadeğerini daha küçük bir veri setine yönlendirin.DEEPX çalışma zamanı
ultralyticsile 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 verilendx_enginePython tekerleğini (wheel) yükleyin. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bakın.