Link to this sectionEsportazione Huawei Ascend per i modelli Ultralytics YOLO#
La distribuzione di modelli di visione artificiale sui processori IA Huawei Ascend richiede la loro compilazione nel formato di modello offline .om eseguito dall'Ascend AI Core. L'esportazione dei modelli Ultralytics YOLO su Ascend ti consente di eseguire un'inferenza rapida e a basso consumo energetico su schede sviluppatore Atlas e dispositivi OrangePi AIPro utilizzati in robotica, ispezioni industriali e distribuzioni di telecamere intelligenti.
Link to this sectionCos'è Huawei Ascend?#
Huawei Ascend è una famiglia di processori IA abbinata a CANN (Compute Architecture for Neural Networks), lo stack di calcolo eterogeneo di Huawei. CANN include ATC (Ascend Tensor Compiler), uno strumento lato host che converte un grafico ONNX standard in un modello offline .om specifico per l'hardware destinato all'Ascend AI Core.
Poiché l'ATC viene eseguito interamente sull'host, puoi compilare i modelli su una normale macchina Linux x86-64 o ARM64 senza alcun hardware Ascend collegato, per poi copiare il file .om risultante sul dispositivo di destinazione per l'inferenza.
Link to this sectionFormato di esportazione Ascend#
L'esportatore di Ultralytics scrive prima un grafico ONNX intermedio, quindi richiama l'ATC per compilarlo per il SoC di destinazione tramite l'argomento name. Il risultato è una directory di modello autonoma contenente il binario .om e i relativi metadati Ultralytics.
Link to this sectionCaratteristiche principali dei modelli Ascend#
- AI Core dedicato: I modelli compilati vengono eseguiti sull'Ascend AI Core anziché sulla CPU host, offrendo un throughput notevolmente superiore per le pipeline di telecamere in tempo reale.
- Compilazione lato host: L'ATC non richiede alcuna NPU collegata, quindi l'esportazione viene eseguita in CI, nei container o su un laptop.
- Basato su ONNX: L'esportazione ONNX standard di Ultralytics si inserisce direttamente nella toolchain CANN senza alcun formato intermedio proprietario.
- Forme statiche: La forma di input è incorporata nel file
.omal momento della compilazione, eliminando il sovraccarico di negoziazione della forma in fase di esecuzione. - Targeting multi-dispositivo: Lo stesso grafico ONNX viene compilato per qualsiasi SoC supportato modificando il parametro
name.
Link to this sectionAttività supportate#
L'esportazione Ascend supporta tutte e sette le attività di Ultralytics. Rilevamento, segmentazione delle istanze, stima della posa, OBB e classificazione coprono le famiglie YOLO26, YOLO11 e YOLOv8; la segmentazione semantica e la stima della profondità sono disponibili solo per YOLO26.
| Compito | Supportato |
|---|---|
| Object Detection | ✅ |
| Segmentazione di istanze | ✅ |
| Segmentazione semantica | ✅ |
| Pose Estimation | ✅ |
| Rilevamento OBB | ✅ |
| Classificazione | ✅ |
| Stima della profondità | ✅ |
Link to this sectionDispositivi supportati#
Passa il SoC di destinazione con l'argomento name; l'ATC lo inserisce nel file .om come --soc_version, quindi deve corrispondere alla scheda su cui effettui la distribuzione. In locale puoi compilare per qualsiasi SoC per il quale la tua installazione CANN fornisce i kernel. Sulla Ultralytics Platform, le destinazioni 310B sono indicate come in arrivo mentre i relativi kernel di operatore vengono aggiunti all'immagine di build.
name | Dispositivi | Esportazione locale | Piattaforma |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | In arrivo |
Ascend310B1 | OrangePi AIPro 8T | ✅ | In arrivo |
Link to this sectionEsportazione su Ascend: Conversione del tuo modello YOLO#
L'esportazione su Ascend richiede il toolkit CANN, disponibile solo per Linux. Il compilatore atc deve trovarsi nel tuo PATH: esegui il sourcing dello script di ambiente CANN prima di esportare, ad esempio source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionInstallazione#
Installa Ultralytics, quindi installa CANN separatamente da Huawei.
# Install the required package for YOLO
pip install ultralyticsIl toolkit CANN è distribuito da Huawei e non viene installato automaticamente. Scaricalo dalla pagina di download della community Ascend oppure utilizza una delle immagini container ufficiali ascendai/cann, che includono l'ATC e le sue dipendenze.
L'ATC può compilare solo per le famiglie di SoC i cui kernel di operatore sono installati. Un toolkit contenente solo i kernel ascend310p fallisce con l'errore No supported Ops kernel and engine are found for ... Conv2D se richiesto per una destinazione Ascend310B4. Installa il pacchetto Ascend-cann-kernels-<soc> corrispondente per il dispositivo su cui effettui la distribuzione.
Link to this sectionUtilizzo#
Il formato Ascend supporta le modalità Esportazione, Previsione e Convalida. L'inferenza e la convalida vengono eseguite sull'hardware Ascend. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne la precisione.
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 sectionArgomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'ascend' | Formato di destinazione per il modello esportato, che definisce la compatibilità con i processori IA Ascend. |
name | str | 'Ascend310B4' | SoC di destinazione passato all'ATC come --soc_version, ad esempio Ascend310P3. Qualsiasi SoC per cui la tua installazione CANN dispone di kernel è valido; consulta la sezione Dispositivi supportati. Deve corrispondere al tuo dispositivo di distribuzione. |
imgsz | int o tuple | 640 | Dimensione desiderata dell'immagine per l'input del modello, incorporata nel file .om come forma statica. |
batch | int | 1 | Dimensione del batch statico compilata nel modello offline. |
quantize | int | 16 | Quantization precision. Ascend export is FP16-only and auto-enables 16 if not specified. Replaces the deprecated half/int8 flags. |
opset | int | 17 | Opset ONNX per il grafico intermedio. Limitato a 17, la versione più alta accettata dal parser ONNX di CANN. |
simplify | bool | True | Semplifica il grafo intermedio ONNX con onnxslim. |
nms | bool | False | Aggiunge la soppressione dei massimi non coincidenti (Non-Maximum Suppression) ai modelli di rilevamento, segmentazione, posa e OBB supportati. |
L'Ascend AI Core accetta solo input DT_FLOAT16 e DT_INT8 per le convoluzioni, quindi un modello offline FP32 non può essere eseguito sull'hardware. La richiesta di quantize=32 genera un errore anziché produrre silenziosamente un modello che non verrà eseguito.
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Link to this sectionStruttura dell'output#
Dopo un'esportazione riuscita, viene creata una directory del modello con il seguente layout:
yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)Il file .om è il modello offline compilato che il runtime CANN carica sul dispositivo. Il suo nome contiene il SoC di destinazione in modo che l'artefatto sia autoesplicativo; mantieni un solo file .om per directory, poiché il caricatore seleziona l'unico modello che trova lì. Il file metadata.yaml contiene i nomi delle classi, la dimensione dell'immagine e altre informazioni utilizzate dalla pipeline di inferenza di Ultralytics.
Link to this sectionDistribuzione dei modelli YOLO Ascend esportati#
Una volta esportato con successo il tuo modello Ultralytics YOLO nel formato Ascend, il passaggio successivo consiste nel distribuirlo sull'hardware Ascend.
Link to this sectionInstallazione del runtime#
L'inferenza richiede il runtime CANN sul dispositivo e il pacchetto Python ais_bench, che incapsula i binding pyACL di CANN. Compilalo e installalo dal repository degli strumenti Ascend di Huawei:
# 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-*.whlCopia la directory del modello esportato yolo26n_ascend_model sul dispositivo, quindi esegui l'inferenza esattamente come faresti con qualsiasi altro formato Ultralytics.
Link to this sectionFlusso di lavoro consigliato#
- Addestra il tuo modello utilizzando la Modalità di addestramento di Ultralytics oppure parti da un checkpoint preaddestrato.
- Esporta su Ascend su qualsiasi host Linux con CANN installato, passando il parametro
nameche corrisponde al tuo SoC di destinazione. - Copia la directory del modello esportato sul dispositivo Ascend.
- Distribuisci con il runtime CANN e
ais_benchper l'inferenza sul dispositivo.
Link to this sectionApplicazioni nel mondo reale#
I modelli YOLO in esecuzione su hardware Ascend sono adatti a un'ampia gamma di applicazioni di visione embedded e industriale:
- Automazione industriale: Ispezione della qualità ad alta velocità e rilevamento dei difetti sulle linee di produzione.
- Sorveglianza intelligente: Rilevamento di oggetti multi-telecamera in tempo reale su gateway edge senza un server centrale.
- Robotica: Percezione a bordo per robot mobili autonomi e bracci collaborativi.
- Città intelligenti: Monitoraggio del traffico e analisi dei pedoni su unità a bordo strada a basso consumo.
Link to this sectionRiepilogo#
In questa guida hai imparato a esportare i modelli Ultralytics YOLO nel formato .om di Huawei Ascend utilizzando il compilatore CANN ATC. L'esportazione viene eseguita interamente sull'host, produce una directory di modello autonoma e si rivolge a qualsiasi SoC Ascend supportato tramite un singolo argomento name, offrendo un percorso diretto da un checkpoint .pt addestrato all'inferenza FP16 accelerata sui processori IA Ascend.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale CANN.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO, visita la nostra pagina della guida all'integrazione per trovare molte risorse utili.
Link to this sectionFAQ#
Link to this sectionCome posso esportare il mio modello Ultralytics YOLO nel formato Ascend?#
Installa Ultralytics e il toolkit CANN, esegui il sourcing dell'ambiente CANN in modo che atc si trovi nel tuo PATH, quindi esporta con model.export(format="ascend", name="Ascend310B4") in Python o yolo export model=yolo26n.pt format=ascend name=Ascend310B4 dalla CLI. Imposta name sul SoC del tuo dispositivo di distribuzione.
Link to this sectionHo bisogno dell'hardware Ascend per esportare un modello?#
No. Il compilatore ATC viene eseguito interamente sull'host, quindi la compilazione funziona su una normale macchina Linux x86-64 o ARM64 senza alcuna NPU collegata. Ti serve l'hardware Ascend solo per eseguire l'inferenza sul file .om esportato.
Link to this sectionPerché la mia esportazione fallisce con l'errore "No supported Ops kernel and engine are found"?#
La tua installazione CANN non contiene i kernel di operatore per il SoC richiesto. Ciascun toolkit include i kernel per specifiche famiglie di SoC, quindi installa il pacchetto Ascend-cann-kernels-<soc> corrispondente alla tua destinazione o utilizza un'immagine container creata per quella famiglia di dispositivi.
Link to this sectionPerché l'esportazione Ascend supporta solo FP16?#
Le convoluzioni dell'Ascend AI Core accettano solo tensori DT_FLOAT16 e DT_INT8. Un modello offline FP32 fallirebbe nell'esecuzione sull'hardware, quindi l'esportatore compila con --precision_mode=force_fp16 e rifiuta una richiesta esplicita di quantize=32.
Link to this sectionQuali dispositivi Ascend sono supportati?#
Qualsiasi SoC per il quale il toolkit CANN installato fornisce i kernel, selezionato tramite l'argomento name. Consulta la sezione Dispositivi supportati per i quattro target convalidati e la loro disponibilità sulla Ultralytics Platform.