YOLO Vision 2026:

Ultralytics YOLO için Huawei Ascend Entegrasyonu#

Huawei Ascend yapay zekâ işlemcilerinde bilgisayarlı görü modellerini dağıtmak, bu modellerin Ascend AI Core tarafından yürütülen .om çevrimdışı model biçiminde derlenmesini gerektirir. Ultralytics YOLO modellerini Ascend'e aktarmak, robotik, endüstriyel denetim ve akıllı kamera uygulamalarında kullanılan Atlas geliştirme kartları ile OrangePi AIPro cihazlarında hızlı ve düşük güç tüketimli çıkarım yapmanı sağlar.

Huawei Ascend nedir?#

Huawei Ascend, Huawei'nin heterojen bilgi işlem yığını olan CANN (Sinir Ağları için İşlem Mimarisi) ile eşleştirilmiş bir yapay zekâ işlemcileri ailesidir. CANN, standart bir ONNX grafiğini Ascend AI Core'u hedefleyen donanıma özgü .om çevrimdışı modeline dönüştüren ana bilgisayar tarafı bir araç olan ATC (Ascend Tensor Derleyicisi) ile birlikte gelir.

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

Ascend NPU'larında eğitim#

Ultralytics, AMP, doğrulama, kontrol noktası oluşturma, devam ettirme ve AutoBatch dahil olmak üzere torch_npu ile tek ve çoklu NPU eğitimini destekler. device=npu:0 ile tek bir NPU veya device=npu:0,1 ile birden çok NPU seçebilirsin; dağıtık eğitim HCCL kullanır. Uyumlu CANN, PyTorch ve torch_npu sürümlerini yükle ve önce CANN ortamını kaynakla. Kurulum ve kullanım örnekleri için Ascend NPU eğitimi bölümüne bak.

Ascend Dışa Aktarma Biçimi#

Ultralytics dışa aktarıcı önce bir ara ONNX grafiği yazar, ardından name bağımsız değişkeniyle hedeflediğin SoC için derlemek üzere ATC'yi çağırır. Sonuç, .om ikili dosyasını ve Ultralytics meta verilerini içeren, kendi kendine yeten bir model dizinidir.

Ascend Modellerinin Temel Özellikleri#

  • Özel AI Core: Derlenmiş modeller ana bilgisayar CPU'su yerine Ascend AI Core üzerinde çalışır ve gerçek zamanlı kamera işlem hatları için çok daha yüksek verim sağlar.
  • Ana bilgisayar tarafı derleme: ATC, bağlı bir NPU gerektirmez; bu nedenle dışa aktarma CI ortamında, kapsayıcılarda veya bir dizüstü bilgisayarda çalıştırılabilir.
  • Önce ONNX: Standart Ultralytics ONNX dışa aktarma, özel bir ara biçim olmadan doğrudan CANN araç zincirine beslenir.
  • Statik şekiller: Girdi şekli, derleme zamanında .om içine sabitlenir ve çalışma zamanındaki şekil anlaşması ek yükünü ortadan kaldırır.
  • Çoklu cihaz hedefleme: Aynı ONNX grafiği, name değiştirilerek desteklenen tüm SoC'ler için derlenebilir.

Desteklenen Görevler#

Huawei Ascend dışa aktarma, yedi Ultralytics görevinin tümünü destekler. Semantik segmentasyon ve derinlik tahmini yalnızca bu başlıkları sunan tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algılama
Segmentasyon
Semantik
Derinlik
Sınıflandırma
Poz
OBB

Desteklenen Cihazlar#

Hedef SoC'yi name ile belirt; ATC bunu .om içine --soc_version olarak yerleştirir, bu nedenle dağıtım yaptığın kartla eşleşmesi gerekir. Yerel olarak, CANN kurulumunun çekirdeklerini 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 Aktarma: YOLO Modelini Dönüştürme#

Not

Ascend dışa aktarma, yalnızca Linux'ta kullanılabilen CANN araç setini gerektirir. atc derleyicisi PATH üzerinde bulunmalıdır — dışa aktarmadan önce CANN ortam betiğini kaynakla; örneğin source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Kurulum#

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

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. Araç setini Ascend topluluğunun indirme sayfasından indir veya ATC ile bağımlılıklarını içeren resmî ascendai/cann kapsayıcı görüntülerinden birini kullan.

Araç setini hedef SoC'inle eşleştir

ATC yalnızca operatör çekirdekleri yüklenmiş 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 yapacağın cihazla eşleşen Ascend-cann-kernels-<soc> paketini yükle.

Kullanım#

Ascend biçimi Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler. Çıkarım ve doğrulama Ascend 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.

Dışa aktarma
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 Bağımsız Değişkenleri#

Bağımsız değişkenTürVarsayılanAçıklama
formatstr'ascend'Dışa aktarılan modelin hedef biçimi; Ascend yapay zekâ işlemcileriyle uyumluluğu tanımlar.
namestr'Ascend310B4'ATC'ye --soc_version olarak geçirilen hedef SoC; örneğin Ascend310P3. CANN kurulumunun çekirdek sağladığı herhangi bir SoC geçerlidir; Desteklenen Cihazlar bölümüne bak. Dağıtım cihazınla eşleşmelidir.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu; statik şekil olarak .om içine sabitlenir.
batchint1Çevrimdışı modele derlenen statik toplu iş boyutu.
quantizeint16Nicemleme hassasiyeti. Ascend dışa aktarma yalnızca FP16 destekler ve belirtilmemişse 16 seçeneğini otomatik olarak etkinleştirir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
opsetint17Ara grafik için ONNX opset'i. 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, segmentasyon, poz ve OBB modellerine Maksimum Olmayan Bastırma ekler.
FP32 neden kullanılamıyor?

Ascend AI Core, evrişimler için yalnızca DT_FLOAT16 ve DT_INT8 girdilerini kabul eder; bu nedenle FP32 çevrimdışı modeli donanım üzerinde çalışamaz. quantize=32 istendiğinde, çalışmayacak bir modeli sessizce üretmek yerine hata oluşur.

Dışa aktarma süreci hakkında daha fazla ayrıntı için Ultralytics'in dışa aktarma dokümantasyonu sayfasını ziyaret et.

Çıktı Yapısı#

Başarılı bir dışa aktarma işleminden sonra aşağıdaki düzene sahip 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. Adı, yapının kendi kendini tanımlayabilmesi için hedef SoC'i içerir; yükleyici bulduğu tek modeli seçtiğinden, her dizinde bir adet .om bulundur. metadata.yaml, Ultralytics çıkarım işlem hattının kullandığı 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 modelini Ascend biçimine başarıyla dışa aktardıktan sonra sıradaki adım, modeli Ascend donanımında dağıtmaktır.

Çalışma Zamanı Yükleme#

Çıkarım için cihazda CANN çalışma zamanının yanı sıra CANN'in pyACL bağlamalarını saran ais_bench Python paketi gerekir. Paketi Huawei Ascend araçları deposundan derleyip 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 tüm Ultralytics biçimlerinde olduğu gibi çalıştır.

Önerilen İş Akışı#

  1. Modelini Ultralytics Eğitim Modu ile Eğit veya önceden eğitilmiş bir kontrol noktasıyla başla.
  2. Hedef SoC'inle eşleşen name değerini vererek, CANN yüklü herhangi bir Linux ana bilgisayarında Ascend'e Dışa Aktar.
  3. Dışa aktarılan model dizinini Ascend cihazına Kopyala.
  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ı için uygundur:

  • Endüstriyel Otomasyon: Üretim hatlarında yüksek hızlı kalite denetimi ve kusur algılama.
  • Akıllı Gözetim: Merkezi sunucu olmadan uç ağ geçitlerinde gerçek zamanlı çok kameralı nesne algılama.
  • Robotik: Otonom mobil robotlar ve iş birlikçi 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 Ultralytics YOLO'yu Huawei Ascend NPU'larında nasıl eğiteceğini ve CANN ATC derleyicisini kullanarak modelleri Ascend .om biçimine nasıl dışa aktaracağını öğrendin. Dışa aktarma tamamen ana bilgisayarda çalışır, kendi kendine yeten bir model dizini oluşturur ve tek bir name bağımsız değişkeni aracılığıyla desteklenen herhangi bir Ascend SoC'i hedefler.

Kullanım hakkında daha fazla ayrıntı için resmî CANN belgelerini ziyaret et.

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

SSS#

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

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

  • CANN kurulumun, istediğin SoC için operatör çekirdeklerini içermiyor. 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 o cihaz ailesi için oluşturulmuş bir kapsayıcı görüntüsü kullan.

  • Ascend AI Core evrişimleri yalnızca DT_FLOAT16 ve DT_INT8 tensörlerini kabul eder. FP32 çevrimdışı modeli donanımda çalışamaz; bu nedenle dışa aktarıcı --precision_mode=force_fp16 ile derler ve açıkça belirtilen quantize=32 isteğini reddeder.

  • Yüklü CANN araç setinin çekirdek sağladığı ve name bağımsız değişkeniyle seçilen herhangi bir SoC. Doğrulanmış dört hedef ve bunların Ultralytics Platform'daki kullanılabilirliği için Desteklenen Cihazlar bölümüne bak.

Katkıda Bulunanlar

Yorumlar