Ultralytics YOLO27:
Get Started

Ultralytics YOLO için Huawei Ascend Entegrasyonu#

Bilgisayarlı görü modellerini Huawei Ascend AI İşlemcilerinde dağıtmak için modelleri, Ascend AI Core tarafından çalıştırılan .om çevrimdışı model biçimine derlemek gerekir. Ultralytics YOLO modellerini Ascend'e aktararak robotik, endüstriyel denetim ve akıllı kamera dağıtımlarında kullanılan Atlas geliştirici kartlarında ve OrangePi AIPro aygıtlarında hızlı, düşük güç tüketimli çıkarım çalıştırabilirsin.

Huawei Ascend nedir?#

Huawei Ascend, CANN (Sinir Ağları için Hesaplama Mimarisi) heterojen hesaplama yığınıyla birlikte sunulan AI İşlemcileri ailesidir. CANN, standart bir ONNX grafiğini Ascend AI Core'u hedefleyen donanıma özgü bir .om çevrimdışı modeline dönüştüren ana makine tarafı bir araç olan ATC'yi (Ascend Tensör Derleyicisi) içerir.

ATC tümüyle ana makinede çalıştığından, Ascend donanımı bağlı olmayan sıradan bir x86-64 veya ARM64 Linux makinesinde modelleri derleyebilir, ardından elde edilen .om dosyasını çıkarım için hedef aygıta kopyalayabilirsin.

Ascend NPU'larında eğitim yap#

Ultralytics, AMP, doğrulama, kontrol noktası kaydetme, devam ettirme ve AutoBatch dâhil olmak üzere torch_npu ile tekli ve çoklu NPU eğitimini destekler. device=npu:0 ile tek bir NPU, device=npu:0,1 ile birden fazla NPU seçebilirsin; dağıtık eğitimde HCCL kullanılır. Uyumlu CANN, PyTorch ve torch_npu sürümlerini yükle ve önce CANN ortamını etkinleştir. 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ısı önce bir ara ONNX grafiği yazar, ardından grafiği name argümanıyla hedeflediğin SoC için derlemek üzere ATC'yi çağırır. Sonuç, .om ikili dosyasını ve Ultralytics meta verilerini içeren bağımsız bir model dizinidir.

Ascend modellerinin temel özellikleri#

  • Özel AI Core: Derlenmiş modeller ana makine CPU'su yerine Ascend AI Core üzerinde çalışır ve gerçek zamanlı kamera hatlarında çok daha yüksek verim sağlar.
  • Ana makine tarafında derleme: ATC, bağlı bir NPU gerektirmez; bu nedenle dışa aktarma CI'da, kapsayıcılarda veya bir dizüstü bilgisayarda çalıştırılabilir.
  • Önce ONNX: Standart Ultralytics ONNX dışa aktarımı, tescilli bir ara biçime gerek kalmadan doğrudan CANN araç zincirine aktarılır.
  • Statik şekiller: Giriş şekli derleme sırasında .om içine işlenir ve çalışma zamanındaki şekil uzlaşması ek yükü ortadan kalkar.
  • Çoklu aygıt hedefleme: Aynı ONNX grafiği, name değiştirilerek desteklenen her SoC için derlenebilir.

Desteklenen Görevler#

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

GörevYOLOv8YOLO11YOLO26
Algılama✅✅✅
Segmentasyon✅✅✅
Anlamsal❌❌✅
Derinlik❌❌✅
Sınıflandırma✅✅✅
Poz✅✅✅
OBB✅✅✅

Desteklenen aygıtlar#

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

nameAygıtlarYerel dışa aktarmaPlatform
Ascend310P3Atlas 300I Pro, Atlas 300V Pro✅✅
Ascend310P1Atlas 300I✅✅
Ascend310B4OrangePi AIPro 8T, Atlas 200I A2 (8 TOPS)✅✅
Ascend310B1OrangePi AIPro 20T, Atlas 200I A2 (20 TOPS)✅✅

Ascend'e dışa aktarma: YOLO modelini dönüştürme#

Not

Ascend dışa aktarımı, yalnızca Linux'ta çalışan CANN araç setini gerektirir. atc derleyicisi PATH üzerinde bulunmalıdır; dışa aktarmadan önce CANN ortam betiğini etkinleştir, ör. source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Kurulum#

Ultralytics'i yükle, ardından CANN'i Huawei'den ayrıca 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'yi ve bağımlılıklarını içeren resmi ascendai/cann kapsayıcı görüntülerinden birini kullan.

Araç setini hedef SoC ile eşleştir

ATC yalnızca operatör çekirdekleri yüklü 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 yapacağın aygıta uygun 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 çalıştırmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.

Dışa aktar
from ultralytics import YOLO

# YOLO26 modelini yükle
model = YOLO("yolo26n.pt")

# Atlas 200I / OrangePi AIPro kartı için modeli Ascend biçimine aktar
model.export(format="ascend", name="Ascend310B4")

# Dışa aktarılan Ascend modelini yükle ve cihazda çıkarım çalıştır
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 model için Ascend AI Processor'larla uyumluluğu tanımlayan hedef biçim.
namestr'Ascend310B4'ATC'ye --soc_version olarak iletilen hedef SoC; ör. Ascend310P3. CANN kurulumunda çekirdekleri bulunan tüm SoC'ler geçerlidir; Desteklenen Cihazlar sayfasına bak. Dağıtım cihazınla eşleşmelidir.
imgszint veya tuple640Model girdisi için istenen görüntü boyutu; .om içine statik şekil olarak işlenir.
batchint1Çevrimdışı modele derlenen statik toplu iş boyutu.
quantizeint16Nicemleme hassasiyeti. Ascend dışa aktarımı yalnızca FP16'yı destekler ve belirtilmemişse 16 seçeneğini otomatik 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 sadeleştirir.
nmsbool, isteğe bağlıNoneHam çıktıyı (None, varsayılan), gömülü NMS'yi (True) veya NMS'siz başlığı (False) seç.
devicestrNoneVarsayılan olarak CPU olan ara ONNX dışa aktarma adımının cihazı (device=cpu). ATC derlemesi bunu kullanmaz.
FP32 neden kullanılamıyor?

Ascend AI Core, evrişim girişlerinde yalnızca DT_FLOAT16 ve DT_INT8 kabul eder; bu nedenle FP32 çevrimdışı model donanımda çalıştırılamaz. quantize=32 istemek, çalışmayacak bir modeli sessizce üretmek yerine hata verir.

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_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ında hedef SoC belirtilerek yapıtın kendi kendini tanımlaması sağlanır; yükleyici bulduğu tek modeli seçtiğinden her dizinde bir .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 sonraki adım, modeli Ascend donanımında dağıtmaktır.

Çalışma Zamanı Kurulumu#

Çıkarım için cihazda CANN çalışma zamanı ve 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 Ultralytics biçimlerinde yaptığın gibi çalıştır.

  1. Modelini Ultralytics Eğitim Modu ile eğit veya önceden eğitilmiş bir kontrol noktasından başla.
  2. Hedef SoC'ne uygun name değerini ileterek CANN'in yüklü olduğu herhangi bir Linux ana makinesinde Ascend biçimine 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üntü işleme uygulamalarına uygundur:

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

Ö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 işlemi tamamen ana makinede yürütülür, kendi kendine yeterli bir model dizini oluşturur ve tek bir name bağımsız değişkeniyle desteklenen tüm Ascend SoC'leri hedefler.

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

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.

Sık Sorulan Sorular#

  • Ultralytics'i ve CANN araç setini yükle, atc öğesinin PATH üzerinde bulunması için CANN ortamını kaynakla, ardından Python'da model.export(format="ascend", name="Ascend310B4") veya CLI üzerinden 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 makinede çalışır; bu nedenle derleme, bağlı bir NPU olmadan standart bir x86-64 veya ARM64 Linux makinesinde yapılabilir. Dışa aktarılan .om üzerinde çıkarım çalıştırmak için Ascend donanımı gerekir.

  • CANN kurulumunda istediğin SoC için operatör çekirdekleri bulunmuyor. Her araç seti belirli SoC ailelerine yönelik çekirdekleri 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ışı model donanımda çalışmayacağından dışa aktarıcı --precision_mode=force_fp16 ile derleme yapar ve açıkça istenen quantize=32 talebini reddeder.

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

Yorumlar