YOLO Vision 2026:

Huawei Ascend Entegrasyonu for Ultralytics YOLO#

Huawei Ascend AI İşlemcileri üzerinde bilgisayarlı görü modelleri dağıtmak, bunları Ascend AI Core tarafından çalıştırılan .om çevrimdışı model formatında derlemeyi gerektirir. Ultralytics YOLO modellerini Ascend'e dışarı aktarmak; robotik, endüstriyel denetim ve akıllı kamera dağıtımlarında kullanılan Atlas geliştirici kartları ve OrangePi AIPro cihazları üzerinde hızlı, düşük güç tüketimli çıkarım çalıştırmanı sağlar.

Huawei Ascend Nedir?#

Huawei Ascend, Huawei'nin heterojen bilişim yığını olan CANN (Compute Architecture for Neural Networks) ile eşleştirilmiş bir AI İşlemcileri ailesidir. CANN, standart bir ONNX grafiğini Ascend AI Core'u hedefleyen donanıma özel bir .om çevrimdışı modeline dönüştüren ana bilgisayar tabanlı bir araç olan ATC'yi (Ascend Tensor Compiler) barındırır.

ATC tamamen ana bilgisayarda çalıştığından, herhangi bir Ascend donanımı bağlı olmadan normal bir x86-64 veya ARM64 Linux makinesinde modelleri derleyebilir, ardından çıkarım için ortaya çıkan .om dosyasını hedef cihaza kopyalayabilirsin.

Ascend NPU'larında Eğit#

Ultralytics, AMP, doğrulama, kontrol noktası oluşturma, kaldığı yerden devam etme ve AutoBatch dahil olmak üzere torch_npu ile tekli ve çoklu NPU eğitimini destekler. device=npu:0 ile tek bir NPU veya device=npu:0,1 ile birden fazla NPU seç; dağıtık eğitim HCCL kullanır. Uyumlu CANN, PyTorch ve torch_npu sürümlerini yükle ve önce CANN ortamını kaynak koduna dahil et. Kurulum ve kullanım örnekleri için Ascend NPU eğitim bölümüne göz at.

Ascend Dışa Aktarma Formatı#

Ultralytics dışarı aktarıcısı önce ara bir ONNX grafiği yazar, ardından bunu name argümanı ile hedeflediğin SoC için derlemek üzere ATC'yi çağırır. Sonuç, .om ikilisini ve Ultralytics meta verilerini içeren kendi kendine yeterli bir model dizinidir.

Ascend Modellerinin Temel Özellikleri#

  • Özel AI Core: Derlenen modeller, ana bilgisayar CPU'su yerine Ascend AI Core üzerinde yürütülerek gerçek zamanlı kamera boru hatları için çok daha yüksek iş hacmi sunar.
  • Ana bilgisayar tabanlı derleme: ATC takılı bir NPU gerektirmez; bu nedenle dışa aktarma CI'da, kapsayıcılarda veya bir dizüstü bilgisayarda çalışır.
  • ONNX öncelikli: Standart Ultralytics ONNX dışa aktarımı, hiçbir tescilli ara format olmaksızın doğrudan CANN araç zincirine beslenir.
  • Statik şekiller: Giriş şekli, derleme zamanında .om içine işlenir, böylece çalışma zamanı şekil müzakeresi yükü ortadan kalkar.
  • Çoklu cihaz hedefleme: Aynı ONNX grafiği, name değiştirilerek desteklenen herhangi bir SoC için derlenir.

Desteklenen Görevler#

Huawei Ascend dışa aktarımı, yedi Ultralytics görevini de destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıkları içeren tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algıla
Segmentlere Ayır
Anlamsal
Derinlik
Sınıflandır
Poz
OBB

Desteklenen Cihazlar#

Hedef SoC'yi name ile ilet; ATC bunu .om içine --soc_version olarak işler, bu nedenle dağıtım yapacağın kartla eşleşmesi gerekir. Yerel olarak, CANN kurulumunun çekirdek sağladığı herhangi bir SoC için derleme yapabilirsin. Ultralytics Platform Ascend310P1, Ascend310P3, Ascend310B1 ve Ascend310B4 hedeflerini destekler.

nameCihazlarYerel dışa aktarmaPlatform
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

Ascend'e Dışa Aktar: YOLO Modelinizi Dönüştürme#

Not

Ascend dışa aktarımı, yalnızca Linux olan CANN araç setini gerektirir. atc derleyicisi PATH üzerinde olmalıdır — dışa aktarmadan önce CANN ortam betiğini kaynak olarak çalıştır, örneğin source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Kurulum#

Ultralytics'i yükleyin, ardından Huawei'den CANN'ı ayrı olarak kurun.

Kurulum
# Install the required package for YOLO
pip install ultralytics

CANN araç seti Huawei tarafından dağıtılır ve otomatik olarak yüklenmez. Bunu Ascend topluluk indirme sayfasından indir veya ATC ile bağımlılıklarını içeren resmi ascendai/cann konteyner görüntü çalışmalarından birini kullan.

Araç zincirini hedef SoC'nizle eşleştirin

ATC, yalnızca operatör çekirdekleri kurulu olan SoC aileleri için derleme yapabilir. Yalnızca ascend310p çekirdeklerini içeren bir araç seti, Ascend310B4 hedefi istendiğinde No supported Ops kernel and engine are found for ... Conv2D hatası verir. Dağıtım yaptığın cihaz için eşleşen Ascend-cann-kernels-<soc> paketini kur.

Kullanım#

Ascend formatı Dışa Aktar, Tahmin Et ve Doğrula modlarını destekler. Çıkarım ve doğrulama Ascend donanımında çalışır. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu test etmek için dışa aktarılan modeli yükle.

Dışa Aktar (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to Ascend format for an Atlas 200I / OrangePi AIPro board
model.export(format="ascend", name="Ascend310B4")

# Load the exported Ascend model and run inference on the device
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")

Dışa Aktarma Argümanları#

ArgümanTipVarsayılanAçıklama
formatstr'ascend'Ascend Yapay Zeka İşlemcileri ile uyumluluğu tanımlayan, dışa aktarılan model için hedef format.
namestr'Ascend310B4'ATC'ye --soc_version olarak iletilen hedef SoC, örneğin Ascend310P3. CANN kurulumunun çekirdeklere sahip olduğu herhangi bir SoC geçerlidir; bkz. Desteklenen Cihazlar. Dağıtım cihazınla eşleşmelidir.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu, statik bir şekil olarak .om içine işlenir.
batchint1Çevrimdışı model içine derlenen statik toplu iş boyutu.
quantizeint16Niceleme hassasiyeti. Ascend dışa aktarımı yalnızca FP16 destekler ve belirtilmezse otomatik olarak 16 değerini etkinleştirir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
opsetint17Ara grafik için ONNX opset. CANN ONNX ayrıştırıcısının kabul ettiği en yüksek sürüm olan 17 ile sınırlıdır.
simplifyboolTrueAra ONNX grafiğini onnxslim ile basitleştirir.
nmsboolFalseDesteklenen algılama, bölütleme, poz ve OBB modellerine Non-Maximum Suppression ekler.
FP32 neden kullanılamaz?

Ascend AI Core, evrişimler için yalnızca DT_FLOAT16 ve DT_INT8 girdilerini kabul eder, bu nedenle FP32 çevrimdışı bir model donanımda çalıştırılamaz. quantize=32 istemek, çalışmayacak bir modeli sessizce üretmek yerine bir hata tetikler.

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_ascend_model/
├── yolo26n_Ascend310B4.om  # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml           # Model metadata (classes, image size, task, etc.)

.om dosyası, CANN çalışma zamanının cihazda yüklediği derlenmiş çevrimdışı modeldir. Yapıtın kendi kendini tanımlayabilmesi için adı hedef SoC'yi taşır; yükleyici orada bulduğu tek modeli seçtiği için dizin başına bir .om tut. metadata.yaml, Ultralytics çıkarım 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 Ascend Modellerini Dağıtma#

Ultralytics YOLO modelinizi Ascend formatına başarıyla aktardıktan sonraki adım, onu Ascend donanımında dağıtmaktır.

Çalışma Zamanı Kurulumu#

Çıkarım, cihaz üzerinde CANN çalışma zamanının yanı sıra CANN'in pyACL bağlamalarını sarmalayan ais_bench Python paketini gerektirir. Bunu Huawei Ascend araçları deposundan derle ve yükle:

# On the Ascend device, with CANN installed and sourced
source /usr/local/Ascend/ascend-toolkit/set_env.sh

# Build and install the ais_bench inference wheel
git clone https://gitee.com/ascend/tools.git
cd tools/ais-bench_workload/tool/ais_bench
pip3 wheel ./backend -v
pip3 install ./aclruntime-*.whl
pip3 wheel ./ -v
pip3 install ./ais_bench-*.whl

Dışa aktarılan yolo26n_ascend_model dizinini cihaza kopyala, ardından çıkarımı diğer herhangi bir Ultralytics formatında yapacağın gibi çalıştır.

Önerilen İş Akışı#

  1. Ultralytics Eğitim Modunu kullanarak modelini Eğit veya önceden eğitilmiş bir kontrol noktasından başla.
  2. CANN kurulu olan herhangi bir Linux ana bilgisayarında Ascend'e Dışa Aktar ve hedef SoC'nizle eşleşen name değerini ilet.
  3. Dışa aktarılan model dizinini Ascend cihazına kopyalayın.
  4. Cihaz üzerinde çıkarım için CANN çalışma zamanı ve ais_bench ile Dağıt.

Gerçek Dünya Uygulamaları#

Ascend donanımında çalışan YOLO modelleri, çok çeşitli gömülü ve endüstriyel görü uygulamalarına uygundur:

  • Endüstriyel Otomasyon: Üretim hatlarında yüksek hızlı kalite kontrolü ve kusur tespiti.
  • Akıllı Gözetim: Merkezi bir sunucu olmadan uç ağ geçitlerinde gerçek zamanlı çoklu kamera nesne tespiti.
  • Robotik: Otonom mobil robotlar ve iş birliği yapan kollar için yerleşik algılama.
  • Akıllı Şehirler: Düşük güç tüketimli yol kenarı birimlerinde trafik izleme ve yaya analitiği.

Özet#

Bu kılavuzda, Huawei Ascend NPU'larında Ultralytics YOLO'yu nasıl eğiteceğini ve CANN ATC derleyicisini kullanarak modelleri Ascend .om formatına nasıl aktaracağını öğrendin. Dışa aktarma işlemi tamamen ana bilgisayarda çalışır, bağımsız bir model dizini üretir ve tek bir name argümanı aracılığıyla desteklenen herhangi bir Ascend SoC'yi hedefler.

Kullanım hakkında daha fazla ayrıntı için resmi CANN belgelendirmesini ziyaret et.

Ayrıca, diğer Ultralytics YOLO entegrasyonları hakkında daha fazla bilgi edinmek istersen, bol miktarda faydalı kaynak bulmak için entegrasyon kılavuzu sayfamızı ziyaret et.

SSS#

  • Ultralytics ve CANN araç setini yükle, atc dosyasının PATH üzerinde olması için CANN ortamını kaynak koduna dahil et, ardından Python'da model.export(format="ascend", name="Ascend310B4") ile veya CLI'dan yolo export model=yolo26n.pt format=ascend name=Ascend310B4 ile dışa aktar. name değerini dağıtım cihazının SoC'sine ayarla.

  • Hayır. ATC derleyicisi tamamen ana bilgisayarda çalışır, bu nedenle derleme, bağlı NPU'su olmayan standart bir x86-64 veya ARM64 Linux makinesinde çalışır. Dışa aktarılan .om üzerinde çıkarım çalıştırmak için yalnızca Ascend donanımına ihtiyacın vardır.

  • CANN kurulumun, istediğin SoC için operatör çekirdekleri barındırmıyor. Her araç seti belirli SoC aileleri için çekirdekler içerir, bu nedenle hedefinle eşleşen Ascend-cann-kernels-<soc> paketini yükle veya söz konusu cihaz ailesi için oluşturulmuş bir konteyner görüntüsü kullan.

  • Ascend AI Core evrişimleri yalnızca DT_FLOAT16 ve DT_INT8 tensörlerini kabul eder. FP32 çevrimdışı bir model donanımda yürütülemez, bu nedenle dışa aktarıcı --precision_mode=force_fp16 ile derleme yapar ve açık bir quantize=32 isteğini reddeder.

  • name argümanı aracılığıyla seçilen, kurulu CANN araç setinin çekirdek sağladığı herhangi bir SoC. Dört onaylanmış hedef ve bunların Ultralytics Platform üzerindeki kullanılabilirliği için Desteklenen Cihazlar bölümüne göz at.

Katkıda Bulunanlar

Yorumlar