Link to this sectionHuawei Ascend Export for Ultralytics YOLO Models#
Bilgisayarlı görü modellerini Huawei Ascend Yapay Zeka İşlemcilerinde dağıtmak, bunları Ascend AI Core tarafından yürütülen .om çevrimdışı model formatında derlemeyi gerektirir. Ultralytics YOLO modellerini Ascend'e aktarmak; robotik, endüstriyel denetim ve akıllı kamera dağıtımlarında kullanılan Atlas geliştirici kartlarında ve OrangePi AIPro cihazlarında hızlı, düşük güç tüketimli çıkarım çalıştırmanıza olanak tanır.
Link to this sectionHuawei Ascend Nedir?#
Huawei Ascend, Huawei'nin heterojen bilişim yığını olan CANN (Compute Architecture for Neural Networks) ile eşleştirilmiş bir Yapay Zeka İşlemcileri ailesidir. CANN, standart bir ONNX grafiğini Ascend AI Core'u hedefleyen donanıma özgü bir .om çevrimdışı modele dönüştüren ana bilgisayar tabanlı bir araç olan ATC'yi (Ascend Tensor Compiler) sunar.
ATC tamamen ana bilgisayarda çalıştığından, herhangi bir Ascend donanımı takılı olmadan normal bir x86-64 veya ARM64 Linux makinesinde modelleri derleyebilir, ardından ortaya çıkan .om dosyasını çıkarım için hedef cihaza kopyalayabilirsiniz.
Link to this sectionAscend Dışa Aktarma Formatı#
Ultralytics dışa aktarıcısı önce ara bir ONNX grafiği yazar, ardından name argümanıyla hedeflediğiniz SoC için bunu derlemek üzere ATC'yi çağırır. Sonuç, .om ikili dosyasını ve Ultralytics meta verilerini içeren bağımsız bir model dizinidir.
Link to this sectionAscend 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.
- Önce ONNX: Standart Ultralytics ONNX dışa aktarımı, tescilli bir ara format olmaksızın doğrudan CANN araç zincirine beslenir.
- Statik şekiller: Giriş şekli, derleme zamanında
.omiçine gömülerek çalışma zamanı şekil müzakeresi ek yükü ortadan kaldırılır. - Çoklu cihaz hedefleme: Aynı ONNX grafiği,
namedeğiştirilerek desteklenen herhangi bir SoC için derlenir.
Link to this sectionDesteklenen Görevler#
Ascend dışa aktarımı yedi Ultralytics görevinin tümünü destekler. Algılama, örnek bölütleme, poz, OBB ve sınıflandırma YOLO26, YOLO11 ve YOLOv8 ailelerini kapsar; anlamsal bölütleme ve derinlik tahmini yalnızca YOLO26'ya özeldir.
| Görev | Desteklenen |
|---|---|
| Nesne Tespiti | ✅ |
| Örnek Segmentasyonu | ✅ |
| Anlamsal Segmentasyon | ✅ |
| Poz Tahmini | ✅ |
| OBB Detection | ✅ |
| Sınıflandırma | ✅ |
| Derinlik Tahmini | ✅ |
Link to this sectionDesteklenen Cihazlar#
Pass the target SoC with name; ATC bakes it into the .om as --soc_version, so it must match the board you deploy to. Locally you can compile for any SoC your CANN installation provides kernels for. On Ultralytics Platform, the 310B targets are listed as coming soon while their operator kernels are added to the build image.
name | Cihazlar | Yerel dışa aktarma | Platform |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Yakında |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Yakında |
Link to this sectionAscend'e Dışa Aktar: YOLO Modelinizi Dönüştürme#
Ascend dışa aktarımı yalnızca Linux olan CANN araç zincirini gerektirir. atc derleyicisi PATH üzerinde olmalıdır; dışa aktarmadan önce CANN ortam betiğini çalıştırın, örn. source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionKurulum#
Ultralytics'i yükleyin, ardından Huawei'den CANN'ı ayrı olarak kurun.
# Install the required package for YOLO
pip install ultralyticsCANN araç zinciri Huawei tarafından dağıtılır ve otomatik olarak yüklenmez. Bunu Ascend topluluk indirme sayfasından indirin veya ATC ile bağımlılıklarını içeren resmi ascendai/cann kapsayıcı imajlarından birini kullanın.
ATC can only compile for SoC families whose operator kernels are installed. A toolkit carrying only ascend310p kernels fails with No supported Ops kernel and engine are found for ... Conv2D when asked for an Ascend310B4 target. Install the matching Ascend-cann-kernels-<soc> package for the device you deploy to.
Link to this sectionKullanım#
Ascend formatı Export, Predict ve Validate modlarını destekler. Çıkarım ve doğrulama Ascend donanımında çalışır. Modelinizi dışa aktarın, ardından çıkarım çalıştırmak veya doğruluğunu test etmek için dışa aktarılan modeli yükleyin.
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")Link to this sectionDışa Aktarma Argümanları#
| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'ascend' | Ascend Yapay Zeka İşlemcileri ile uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
name | str | 'Ascend310B4' | ATC'ye --soc_version olarak geçirilen hedef SoC, örn. Ascend310P3. CANN kurulumunuzun çekirdeklere sahip olduğu herhangi bir SoC geçerlidir; Supported Devices bölümüne bakın. Dağıtım cihazınızla eşleşmelidir. |
imgsz | int veya tuple | 640 | Model girdisi için istenen görüntü boyutu, .om içine statik bir şekil olarak gömülür. |
batch | int | 1 | Çevrimdışı model içine derlenen statik toplu iş boyutu. |
quantize | int | 16 | Niceleme hassasiyeti. Ascend dışa aktarımı yalnızca FP16'dır ve belirtilmezse 16yı otomatik olarak etkinleştirir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır. |
opset | int | 17 | Ara 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. |
simplify | bool | True | onnxslim ile ara ONNX grafiğini basitleştirir. |
nms | bool | False | Desteklenen algılama, bölütleme, poz ve OBB modellerine Non-Maximum Suppression ekler. |
Ascend AI Core evrişimler için yalnızca DT_FLOAT16 ve DT_INT8 girdilerini kabul eder, bu nedenle bir FP32 çevrimdışı modeli donanımda çalışamaz. quantize=32 istemek, çalışmayacak bir modeli sessizce üretemez ve bunun yerine bir hata verir.
Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics dokümantasyon sayfasına git.
Link to this sectionÇı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.)The .om file is the compiled offline model that the CANN runtime loads on the device. Its name carries the target SoC so the artifact is self-describing; keep one .om per directory, since the loader picks the single model it finds there. The metadata.yaml contains class names, image size, and other information used by the Ultralytics inference pipeline.
Link to this sectionDış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.
Link to this sectionÇalışma Zamanı Kurulumu#
Çıkarım, cihazda CANN çalışma zamanının yanı sıra CANN'ın pyACL bağlamalarını saran ais_bench Python paketini gerektirir. Bunu Huawei Ascend araçları deposundan derleyin ve yükleyin:
# 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-*.whlDışa aktarılan yolo26n_ascend_model dizinini cihaza kopyalayın, ardından çıkarımı diğer herhangi bir Ultralytics formatında yapacağınız gibi çalıştırın.
Link to this sectionÖnerilen İş Akışı#
- Ultralytics Train Mode kullanarak modelinizi eğitin veya önceden eğitilmiş bir kontrol noktasından başlayın.
- CANN yüklü herhangi bir Linux ana bilgisayarında, hedef SoC'nizle eşleşen
namedeğerini ileterek Ascend'e dışa aktarın. - Dışa aktarılan model dizinini Ascend cihazına kopyalayın.
- Cihaz üzerinde çıkarım için CANN çalışma zamanı ve
ais_benchile dağıtın.
Link to this sectionGerç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.
Link to this sectionÖzet#
Bu kılavuzda, CANN ATC derleyicisini kullanarak Ultralytics YOLO modellerini Huawei Ascend .om formatına nasıl dışa aktaracağınızı öğrendiniz. 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; böylece eğitilmiş bir .pt kontrol noktasından Ascend Yapay Zeka İşlemcilerinde hızlandırılmış FP16 çıkarımına doğrudan bir yol elde edersiniz.
Kullanım hakkında daha fazla ayrıntı için resmi CANN belgelerini ziyaret edin.
Ayrıca, diğer Ultralytics YOLO entegrasyonları hakkında daha fazla bilgi edinmek istiyorsanız, çok sayıda faydalı kaynak bulmak için entegrasyon kılavuzu sayfamızı ziyaret edin.
Link to this sectionSSS#
Link to this sectionUltralytics YOLO modelimi Ascend formatına nasıl dışa aktarabilirim?#
Ultralytics ve CANN araç zincirini yükleyin, atc komutunun PATH üzerinde olması için CANN ortamını yükleyin, ardından Python'da model.export(format="ascend", name="Ascend310B4") ile veya CLI'dan yolo export model=yolo26n.pt format=ascend name=Ascend310B4 kullanarak dışa aktarın. name değerini dağıtım cihazınızın SoC'si olarak ayarlayın.
Link to this sectionBir modeli dışa aktarmak için Ascend donanımına ihtiyacım var mı?#
Hayır. ATC derleyicisi tamamen ana bilgisayarda çalışır, bu nedenle derleme, NPU takılı 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ız vardır.
Link to this sectionDışa aktarma neden "No supported Ops kernel and engine are found" hatasıyla başarısız oluyor?#
CANN kurulumunuz, istediğiniz SoC için operatör çekirdeklerini içermiyor. Her araç zinciri belirli SoC aileleri için çekirdekler paketler, bu nedenle hedefinizle eşleşen Ascend-cann-kernels-<soc> paketini yükleyin veya bu cihaz ailesi için oluşturulmuş bir kapsayıcı imajı kullanın.
Link to this sectionAscend dışa aktarımı neden yalnızca FP16'yı destekliyor?#
Ascend AI Core evrişimleri yalnızca DT_FLOAT16 ve DT_INT8 tensörlerini kabul eder. Bir FP32 çevrimdışı modeli 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.
Link to this sectionHangi Ascend cihazları destekleniyor?#
name argümanı aracılığıyla seçilen, yüklü CANN araç zincirinizin çekirdek sağladığı herhangi bir SoC. Doğrulanmış dört hedef ve bunların Ultralytics Platform'daki kullanılabilirliği için Supported Devices bölümüne bakın.