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, 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:
.dxnnbiç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örev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| 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.
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:
# Install the required package for YOLO
pip install ultralyticsdx_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-deepxOrtam 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.
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/'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")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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'deepx' | Dışa aktarılan modelin hedef biçimi; DEEPX NPU donanımıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model 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. |
quantize | int veya str | 8/otomatik | Niceleme 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. |
simplify | bool | True | Ara ONNX grafiğini onnxslim ile sadeleş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ılır. |
data | str | None | INT8 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. |
device | str | None | Dışa aktarma cihazını 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 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.
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.debArdından dışa aktardığın modeli aç:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron, 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ı.
| Model | Biçim | 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 | Biçim | 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; 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.
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.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. PCIe Gen3 için beklenen hız 8GT/s'dir.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Önerilen İş Akışı#
- Ultralytics Train Mode ile modelini eğit
model.export(format="deepx")kullanarak DEEPX biçimine aktar- Nicemleme kaybının en aza indirildiğini doğrulamak için
yolo valile doğruluğu doğrula - Nitel doğrulama için
yolo predictkullanarak tahmin yap - 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_comderleyici paketi yüklü değilse otomatik olarak yüklenir.Örnekfrom 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_comderleyicisi, 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
.dxnnmodelini 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_comderleyicisini 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şturuyorsadataiçin daha küçük bir veri kümesi belirt.DEEPX çalışma zamanı
ultralyticsile 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 sunulandx_enginePython tekerleğini yükle. Adım adım komutlar için yukarıdaki Çalışma Zamanı Kurulumu bölümüne bak.