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 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ş:
.dxnnbiç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.
| Görev | Desteklenen |
|---|---|
| Nesne Tespiti | ✅ |
| Segmentasyon | ✅ |
| Poz Tahmini | ✅ |
| OBB Algılama | ✅ |
| Sınıflandırma | ✅ |
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.
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:
# Install the required package for YOLO
pip install ultralyticsDeepX 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
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üman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'deepx' | Dışa aktarılan model için hedef biçim; 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 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. |
int8 | bool | True | INT8 nicelleştirmeyi etkinleştirir. DeepX dışa aktarma 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üsü 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 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
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-*.whlDeepX ç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: v6Kullanı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.debpaketini indir ve
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron 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
| Raspberry Pi 5 + DX-M1 M.2 Modülü | Model | Biçim | Durum | 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 |
| Raspberry Pi 5 + DX-M1 M.2 Modülü | Model | Biçim | Durum | 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, 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.
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 şu satırları ekle:
dtparam=pciex1
dtparam=pciex1_gen=3Kaydet ve çık (Ctrl+X, ardından Y, ardından Enter), sonra yeniden başlat:
sudo rebootÖnerilen İş Akışı
- Train modelini Ultralytics ile Eğitim Modu
- Export ile DeepX formatına dönüştür
model.export(format="deepx") - Doğrula ile
yolo valkullanarak minimum nicemleme kaybını doğrula - Predict kullanarak
yolo predictnitel doğrulama için - Dağıt dışa aktarılan
_deepx_model/dizinini DeepX NPU donanımınadx_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.
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.