Link to this sectionЭкспорт моделей Ultralytics YOLO для Huawei Ascend#
Развертывание моделей компьютерного зрения на процессорах Huawei Ascend требует их компиляции в автономный формат модели .om, выполняемый в Ascend AI Core. Экспорт моделей Ultralytics YOLO в Ascend позволяет запускать быстрый и энергоэффективный инференс на платах разработчика Atlas и устройствах OrangePi AIPro, которые используются в робототехнике, промышленном контроле и системах умных камер.
Link to this sectionЧто такое Huawei Ascend?#
Huawei Ascend — это семейство процессоров искусственного интеллекта в комплекте с CANN (Compute Architecture for Neural Networks), гетерогенным стеком вычислений от Huawei. В состав CANN входит ATC (Ascend Tensor Compiler) — хост-инструмент, который преобразует стандартный граф ONNX в аппаратную офлайн-модель .om для Ascend AI Core.
Поскольку ATC работает полностью на хосте, ты можешь компилировать модели на обычной машине под управлением Linux (x86-64 или ARM64) без какого-либо подключенного оборудования Ascend, а затем скопировать полученный файл .om на целевое устройство для инференса.
Link to this sectionФормат экспорта Ascend#
Экспортер Ultralytics сначала записывает промежуточный граф ONNX, а затем вызывает ATC для его компиляции под SoC, указанную в аргументе name. В результате создается самодостаточный каталог модели, содержащий бинарный файл .om и метаданные Ultralytics.
Link to this sectionКлючевые особенности моделей Ascend#
- Выделенный AI Core: Скомпилированные модели выполняются на Ascend AI Core, а не на хост-процессоре, что обеспечивает существенно более высокую пропускную способность для конвейеров работы с камерами в реальном времени.
- Компиляция на хосте: Для ATC не требуется подключенный NPU, поэтому экспорт можно запускать в CI, контейнерах или на ноутбуке.
- Ориентация на ONNX: Стандартный экспорт ONNX от Ultralytics напрямую поступает в инструментарий CANN без проприетарных промежуточных форматов.
- Статические формы: Форма входных данных закладывается в
.omна этапе компиляции, что устраняет накладные расходы на согласование формы во время выполнения. - Поддержка нескольких устройств: Один и тот же граф ONNX компилируется для любой поддерживаемой SoC путем изменения параметра
name.
Link to this sectionПоддерживаемые задачи#
Экспорт в Ascend поддерживает все семь задач Ultralytics. Обнаружение, сегментация экземпляров, поза, OBB и классификация охватывают семейства YOLO26, YOLO11 и YOLOv8; семантическая сегментация и оценка глубины доступны только для YOLO26.
| Задача | Поддерживается |
|---|---|
| Обнаружение объектов (Object Detection) | ✅ |
| Instance Segmentation | ✅ |
| Семантическая сегментация | ✅ |
| Оценка позы (Pose Estimation) | ✅ |
| OBB Detection | ✅ |
| Классификация | ✅ |
| Оценка глубины | ✅ |
Link to this sectionПоддерживаемые устройства#
Передавай целевую SoC с помощью параметра name; ATC встраивает ее в файл .om как --soc_version, поэтому она должна соответствовать плате, на которую ты выполняешь развертывание. Локально ты можешь компилировать для любой SoC, для которой твоя установка CANN предоставляет ядра. На платформе Ultralytics Platform целевые платформы 310B отмечены как «скоро появятся», пока их операторные ядра добавляются в сборочный образ.
name | Устройства | Локальный экспорт | Платформа |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Скоро появится |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Скоро появится |
Link to this sectionЭкспорт в Ascend: конвертация твоей модели YOLO#
Для экспорта в Ascend требуется инструментарий CANN, который работает только в Linux. Компилятор atc должен находиться в твоей переменной PATH — подключи скрипт окружения CANN перед экспортом, например: source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionУстановка#
Установи Ultralytics, а затем отдельно установи CANN от Huawei.
# Install the required package for YOLO
pip install ultralyticsИнструментарий CANN распространяется компанией Huawei и не устанавливается автоматически. Загрузите его со страницы загрузки сообщества Ascend или используйте один из официальных образов контейнеров ascendai/cann, которые содержат ATC и его зависимости.
ATC может компилировать код только для тех семейств SoC, для которых установлены операторные ядра. Инструментарий, содержащий только ядра ascend310p, завершается с ошибкой No supported Ops kernel and engine are found for ... Conv2D при запросе цели Ascend310B4. Установи соответствующий пакет Ascend-cann-kernels-<soc> для устройства, на которое выполняется развертывание.
Link to this sectionИспользование#
Формат Ascend поддерживает режимы Экспорта, Предсказания и Валидации. Инференс и валидация выполняются на оборудовании Ascend. Экспортируй свою модель, затем загрузи экспортированную модель для запуска инференса или проверки ее точности.
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 sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'ascend' | Целевой формат для экспортированной модели, определяющий совместимость с процессорами Ascend AI. |
name | str | 'Ascend310B4' | Целевая SoC, передаваемая в ATC в качестве параметра --soc_version, например Ascend310P3. Подойдет любая SoC, для которой в твоей установке CANN есть ядра; см. Поддерживаемые устройства. Должна совпадать с твоим целевым устройством. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входа модели, зашиваемый в файл .om как статическая форма. |
batch | int | 1 | Статический размер батча, скомпилированный в офлайн-модель. |
quantize | int | 16 | Точность квантования. Экспорт в Ascend поддерживает только FP16 и автоматически включает 16, если значение не указано. Заменяет устаревшие флаги half/int8. |
opset | int | 17 | Набор операций ONNX для промежуточного графа. Ограничен версией 17 — это наивысшая версия, которую принимает парсер ONNX в CANN. |
simplify | bool | True | Упрощает промежуточный граф ONNX с помощью onnxslim. |
nms | bool | False | Добавляет подавление не максимальных предсказаний (NMS) в поддерживаемые модели обнаружения, сегментации, позы и OBB. |
Ascend AI Core принимает только входы DT_FLOAT16 и DT_INT8 для сверток, поэтому офлайн-модель FP32 не может выполняться на этом оборудовании. Запрос quantize=32 вызовет ошибку, а не молча создаст неработоспособную модель.
Для получения дополнительной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Link to this sectionСтруктура вывода#
После успешного экспорта создается директория модели со следующей структурой:
yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)Файл .om представляет собой скомпилированную офлайн-модель, которую среда выполнения CANN загружает на устройстве. Его имя содержит целевую SoC, что делает артефакт самоописываемым; держи по одному файлу .om в каждой директории, так как загрузчик выбирает единственную найденную там модель. Файл metadata.yaml содержит имена классов, размер изображения и другую информацию, используемую конвейером инференса Ultralytics.
Link to this sectionРазвертывание экспортированных моделей YOLO Ascend#
Как только ты успешно экспортируешь свою модель Ultralytics YOLO в формат Ascend, следующим шагом будет ее развертывание на оборудовании Ascend.
Link to this sectionУстановка среды выполнения#
Для инференса требуется среда выполнения CANN на устройстве и Python-пакет ais_bench, который оборачивает привязки pyACL от CANN. Собери и установи его из репозитория инструментов Ascend от 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-*.whlСкопируй экспортированный каталог yolo26n_ascend_model на устройство, затем запусти инференс точно так же, как и с любым другим форматом Ultralytics.
Link to this sectionРекомендуемый рабочий процесс#
- Обучи свою модель с помощью режима обучения Ultralytics или начните с предварительно обученной контрольной точки.
- Экспортируй в Ascend на любом хосте Linux с установленным CANN, передав параметр
name, соответствующий твоей целевой SoC. - Скопируй экспортированный каталог модели на устройство Ascend.
- Выполни развертывание с помощью среды выполнения CANN и
ais_benchдля инференса на устройстве.
Link to this sectionПрименение в реальных условиях#
Модели YOLO, работающие на оборудовании Ascend, подходят для широкого спектра встроенных и промышленных приложений компьютерного зрения:
- Промышленная автоматизация: Высокоскоростной контроль качества и обнаружение дефектов на производственных линиях.
- Умное видеонаблюдение: Многокамерное обнаружение объектов в реальном времени на периферийных шлюзах без центрального сервера.
- Робототехника: Бортовая система восприятия для автономных мобильных роботов и коллаборативных манипуляторов.
- Умные города: Мониторинг дорожного движения и анализ пешеходов на маломощных придорожных модулях.
Link to this sectionРезюме#
В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат Huawei Ascend .om с помощью компилятора CANN ATC. Экспорт выполняется полностью на хосте, создает самодостаточный каталог модели и поддерживает любую совместимую SoC Ascend через единственный аргумент name — предоставляя тебе прямой путь от обученной контрольной точки .pt к ускоренному инференсу FP16 на процессорах Ascend AI.
Для получения дополнительной информации об использовании посетите официальную документацию CANN.
Кроме того, если вы хотите узнать больше о других интеграциях Ultralytics YOLO, посетите нашу страницу руководств по интеграции, где вы найдете множество полезных ресурсов.
Link to this sectionFAQ#
Link to this sectionКак экспортировать мою модель Ultralytics YOLO в формат Ascend?#
Установи Ultralytics и инструментарий CANN, подключи окружение CANN, чтобы atc был доступен в твоей переменной PATH, а затем выполни экспорт с помощью model.export(format="ascend", name="Ascend310B4") в Python или yolo export model=yolo26n.pt format=ascend name=Ascend310B4 из CLI. Установи для name значение SoC твоего целевого устройства.
Link to this sectionНужно ли мне аппаратное обеспечение Ascend для экспорта модели?#
Нет. Компилятор ATC работает полностью на хосте, поэтому компиляция возможна на стандартной машине Linux x86-64 или ARM64 без подключенного NPU. Оборудование Ascend требуется только для запуска инференса на экспортированном файле .om.
Link to this sectionПочему мой экспорт завершается с ошибкой "No supported Ops kernel and engine are found"?#
Твоя установка CANN не содержит операторных ядер для запрошенной SoC. Каждый инструментарий поставляется с ядрами для определенных семейств SoC, поэтому установи пакет Ascend-cann-kernels-<soc>, соответствующий твоей цели, или используй образ контейнера, собранный для этого семейства устройств.
Link to this sectionПочему экспорт в Ascend поддерживает только FP16?#
Свертки Ascend AI Core принимают только тензоры DT_FLOAT16 и DT_INT8. Офлайн-модель FP32 не смогла бы выполниться на этом железе, поэтому экспортер компилирует с параметром --precision_mode=force_fp16 и отклоняет явный запрос quantize=32.
Link to this sectionКакие устройства Ascend поддерживаются?#
Любая SoC, для которой установленный у тебя инструментарий CANN предоставляет ядра, выбираемая через аргумент name. См. раздел Поддерживаемые устройства для ознакомления с четырьмя проверенными целями и их доступностью на платформе Ultralytics Platform.