Link to this sectionUltralytics YOLO Modelleri için DEEPX Dışa Aktarma#
Bilgisayarlı görü modellerini özel NPU donanımı üzerinde 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 kuantize çıkarım yapmanı sağlar. Bu rehber, YOLO modellerini DEEPX formatına dönüştürme ve DEEPX destekli donanımlarda dağıtma sürecinde sana yol gösterecektir.
Link to this sectionDEEPX nedir?#
DEEPX, uçta güç tasarruflu derin öğrenme çıkarımı için tasarlanmış NPU'lar (Sinir İşleme Birimleri) 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ı, robotik, akıllı kameralar ve endüstriyel otomasyon sistemleri gibi bulut bağlantısının güvenilmez olduğu veya istenmediği dağıtım senaryoları için oldukça uygundur.
Link to this sectionDEEPX Dışa Aktarma Formatı#
DEEPX dışa aktarma işlemi, DEEPX NPU donanımı üzerinde çalışma için optimize edilmiş, derlenmiş bir .dxnn model ikili dosyası oluşturur. Derleme hattı, INT8 kuantizasyonu ve donanıma özgü optimizasyonu 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.
Link to this sectionDEEPX Modellerinin Temel Özellikleri#
DEEPX modelleri, uç dağıtım için çeşitli avantajlar sunar:
- INT8 Kuantizasyonu: Modeller, dışa aktarma sırasında INT8 hassasiyetine kuantize edilir, bu da model boyutunu önemli ölçüde azaltır ve NPU verimini en üst düzeye çıkarır. Model kuantizasyonu hakkında daha fazla bilgi edinin.
- NPU Optimize Edilmiş:
.dxnnformatı, hızlı ve verimli çıkarım için özel hızlandırma birimlerinden yararlanarak DEEPX NPU donanımı için özel olarak derlenmiştir. - Düşük Güç Tüketimi: Çıkarımı NPU'ya yükleyerek, DEEPX modelleri eşdeğer CPU veya GPU çıkarımına göre çok daha az güç tüketir.
- Kalibrasyon Tabanlı Doğruluk: Dışa aktarma işlemi, kuantizasyon sırasında doğruluk kaybını en aza indirmek için gerçek veri seti görüntüleriyle EMA tabanlı kalibrasyon kullanır.
- Kendi Kendine Yeten Çıktı: Dışa aktarılan model dizini; derlenmiş ikili dosyayı, kalibrasyon yapılandırmasını ve kolay dağıtım için gereken meta verileri bir araya getirir.
Link to this sectionDesteklenen Görevler#
Tüm standart Ultralytics görevleri; YOLO26, YOLO11 ve YOLOv8 model aileleri genelinde DEEPX dışa aktarımı için desteklenir.
| Görev | Desteklenenler |
|---|---|
| Nesne Tespiti | ✅ |
| Örnek Segmentasyonu | ✅ |
| Anlamsal Segmentasyon | ✅ |
| Poz Tahmini | ✅ |
| OBB Tespiti | ✅ |
| Sınıflandırma | ✅ |
Link to this sectionDEEPX'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 yap.
DEEPX dışa aktarımı 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ında tamamen uyumlu ve çalıştırılabilirdir.
Link to this sectionKurulum#
Gerekli paketleri yüklemek için şu komutu çalıştır:
# Install the required package for YOLO
pip install ultralyticsdx_com derleyici paketi, ilk dışa aktarma sırasında DEEPX SDK deposundan otomatik olarak yüklenecektir. Yükleme süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Yükleme rehberimize göz at. YOLO için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar rehberimize danış.
Link to this sectionKullanım#
DEEPX formatı; Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler. Çıkarım ve doğrulama, DEEPX NPU donanımı üzerinde çalışır. Modelini dışa aktar, ardından çıkarım yapmak veya doğruluğunu test etmek 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 (int8=True 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")Link to this sectionDışa Aktarma Argümanları#
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'deepx' | DEEPX NPU donanımıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
imgsz | int veya tuple | 640 | Model girişi için istenen görüntü boyutu. DEEPX dışa aktarımı kare bir giriş gerektirir; bir tamsayı (örneğin, 640) veya yüksekliğin genişliğe eşit olduğu bir demet (tuple) geç. |
int8 | bool | True | INT8 kuantizasyonunu etkinleştirir. DEEPX dışa aktarımı için gereklidir — belirtilmediği takdirde otomatik olarak True olarak ayarlanır. |
data | str | 'coco128.yaml' | INT8 kalibrasyonu için kullanılan veri seti yapılandırma dosyası. Kalibrasyon görüntü kaynağını belirtir. |
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 aktarma işlemini her zaman bir x86-64 Linux ana makinesinde çalıştır. dx_com derleyicisi ARM64'ü desteklemez.
Dışa aktarma süreciyle ilgili daha fazla ayrıntı için Ultralytics dışa aktarma ile ilgili dokümantasyon sayfasına git.
Link to this sectionÇıktı Yapısı#
Başarılı bir dışa aktarma işleminden sonra, aşağıdaki 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 doğrudan NPU üzerinde yüklediği derlenmiş model ikili dosyasıdır. metadata.yaml dosyası; sınıf adlarını, görüntü boyutunu ve Ultralytics çıkarım hattı tarafından kullanılan diğer bilgileri içerir.
Link to this sectionDışa Aktarılan YOLO DEEPX Modellerini Dağıtma#
Ultralytics YOLO modelini başarıyla DEEPX formatına aktardıktan sonra, bir sonraki adım bu modelleri DEEPX NPU donanımı üzerinde dağıtmaktır.
Link to this sectionÇalışma Zamanı Yüklemesi#
Çıkarım; DEEPX NPU sürücüsünü, libdxrt çalışma zamanını ve dx_engine Python paketini gerektirir.
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 dxrt-cli --version ile 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üklendiğinde, yukarıdaki Kullanım bölümünde gösterildiği gibi DEEPX cihazında çıkarım ve doğrulama işlemlerini çalıştır; dışa aktarılan _deepx_model doğrudan YOLO(...) ile yüklenir.
Link to this sectiondxtron ile Görselleştirme#
dxtron, derlenmiş .dxnn modelini incelemek için DEEPX'in grafik görselleştiricisidir.
x86-64 Linux üzerinde dxtron'u yüklemek için .deb paketini DEEPX SDK'dan indir ve dpkg aracılığıyla 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.
Link to this sectionKıyaslamalar (Benchmarks)#
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şlemeyi 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"Link to this sectionÖnerilen İş Akışı#
- Eğit modelini Ultralytics Eğitim Modu kullanarak
model.export(format="deepx")kullanarak DEEPX formatına Dışa Aktar- Minimum nicemleme kaybını doğrulamak için
yolo valile doğruluğu Doğrula - Nitel doğrulama için
yolo predictkullanarak Tahmin Et - Dışa aktarılan
_deepx_model/dizininidx_engineçalışma zamanını kullanarak DEEPX NPU donanımına Dağıt
Link to this sectionGerçek Dünya Uygulamaları#
DEEPX NPU donanımı üzerinde dağıtılan YOLO modelleri, çok çeşitli uç yapay zeka uygulamaları için oldukça 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 drone'larda görüntü tabanlı navigasyon, engel algılama ve nesne tanıma.
- Akıllı Tarım: tarımda bilgisayarlı görü kullanarak ürün 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.
Link to this sectionÖzet#
In this guide, you've learned how to export Ultralytics YOLO models to DEEPX format and deploy them on DEEPX NPU hardware. The export pipeline uses INT8 calibration and the dx_com compiler to produce a hardware-optimized .dxnn binary, while the dx_engine runtime handles inference on the device.
Ultralytics YOLO ve 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 sağlar; gerçek zamanlı uygulamalar için düşük güç tüketimiyle yüksek verim sunar.
Kullanımla ilgili daha fazla ayrıntı için DEEPX resmi 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 pek çok yararlı kaynak ve bilgi bulacaksın.
Link to this sectionSSS#
Link to this sectionUltralytics YOLO modelimi DEEPX formatına nasıl dışa aktarırım?#
Modelini Python'da export() metodunu kullanarak veya CLI üzerinden dışa 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 seti kullanır. dx_com derleyici paketi henüz mevcut değilse otomatik olarak yüklenir.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionDEEPX dışa aktarımı neden INT8 nicemleme gerektirir?#
DEEPX NPU'lar, INT8 hesaplamalarını maksimum verimlilikle gerçekleştirmek için tasarlanmıştır. dx_com derleyicisi, modeli dışa aktarma sırasında gerçek veri seti görüntüleri ile EMA tabanlı kalibrasyon kullanarak nicemler, böylece NPU'nun tam performansını sunmasını sağlar. INT8, DEEPX dışa aktarımları için her zaman zorunludur; int8=False değerini geçersen, bu bir uyarı ile geçersiz kılınacaktır.
Link to this sectionDEEPX dışa aktarımı için hangi platformlar destekleniyor?#
DEEPX model dışa aktarımı (derleme), bir x86-64 Linux ana bilgisayarı gerektirir. Dışa aktarma adımı ARM64 (aarch64) ve Windows makinelerinde desteklenmez. Dışa aktarılan .dxnn modeli kullanılarak yapılan çıkarım, dx_engine çalışma zamanı tarafından desteklenen herhangi bir Linux platformunda (x86-64 ve ARM64) çalıştırılabilir.
Link to this sectionDEEPX dışa aktarımının çıktısı nedir?#
Dışa aktarma, ş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 adları ve görüntü boyutu dahil model meta verileri
Link to this sectionÖzel eğitilmiş modelleri DEEPX donanımında dağıtabilir miyim?#
Evet. Ultralytics Eğitim Modu kullanılarak eğitilen ve format="deepx" ile dışa aktarılan herhangi bir model, desteklenen katman operasyonlarını kullandığı sürece DEEPX NPU donanımında dağıtılabilir. Dışa aktarma; tespit, segmentasyon, poz tahmini, yönlendirilmiş sınırlayıcı kutu (OBB) ve sınıflandırma görevlerini destekler.
Link to this sectionDEEPX dışa aktarımı için kaç kalibrasyon görüntüsü kullanmalıyım?#
DEEPX dışa aktarma hattı, EMA kalibrasyon yöntemiyle kalibrasyon veri setindeki her görüntüyü (fraction filtrelemesinden sonra) kullanır. İyi bir nicemleme doğruluğu için genellikle birkaç yüz görüntü yeterlidir. Büyük veri setlerinde derleme süresi bir sorun haline gelirse, data kısmını daha küçük bir veri setine yönlendir (veya fraction değerini 1.0'ın altına ayarla).
Link to this sectionÇı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ıca kurulmalıdır. x86-64 Linux makinelerinde ve ARM64 Linux makinelerinde (örneğin, Raspberry Pi 5), DEEPX-AI GitHub sürümlerinden NPU sürücüsünü (dxrt-driver-dkms) ve çalışma zamanını (libdxrt) yükle, ardından paketlenmiş dx_engine Python çarkını (wheel) kur. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bak.