Экспорт Ultralytics YOLO NCNN
Развертывание моделей компьютерного зрения на устройствах с ограниченной вычислительной мощностью, таких как мобильные или встраиваемые системы, требует тщательного выбора формата. Использование оптимизированного формата гарантирует, что даже устройства с ограниченными ресурсами смогут эффективно справляться со сложными задачами компьютерного зрения.
Экспорт в формат NCNN позволяет оптимизировать ваши модели Ultralytics YOLO26 для легковесных приложений на устройствах. Это руководство описывает, как преобразовать ваши модели в формат NCNN для повышения производительности на мобильных и встраиваемых устройствах.
Зачем экспортировать в NCNN?

Фреймворк NCNN, разработанный Tencent, — это высокопроизводительный фреймворк для вычислений логического вывода нейронных сетей, оптимизированный специально для мобильных платформ, включая мобильные телефоны, встроенные устройства и устройства IoT. NCNN совместим с широким спектром платформ, включая Linux, Android, iOS и macOS.
NCNN известен своей высокой скоростью обработки на мобильных CPU и обеспечивает быстрое развертывание моделей глубокого обучения на мобильных платформах, что делает его отличным выбором для создания приложений на базе ИИ.
Ключевые особенности моделей NCNN
Модели NCNN предоставляют несколько ключевых функций, которые обеспечивают машинное обучение на устройстве, помогая разработчикам развертывать модели на мобильных, встраиваемых и периферийных устройствах:
Эффективность и высокая производительность: Модели NCNN легковесны и оптимизированы для мобильных и встраиваемых устройств, таких как Raspberry Pi, с ограниченными ресурсами, при этом сохраняя высокую точность в задачах компьютерного зрения.
Квантование: NCNN поддерживает квантование — метод, который снижает точность весов и активаций модели для повышения производительности и уменьшения объема занимаемой памяти.
Совместимость: Модели NCNN совместимы с популярными фреймворками глубокого обучения, включая TensorFlow, Caffe и ONNX, что позволяет разработчикам использовать существующие модели и рабочие процессы.
Простота использования: NCNN предоставляет удобные инструменты для преобразования моделей между форматами, обеспечивая бесперебойную совместимость в различных средах разработки.
Ускорение GPU с помощью Vulkan: NCNN поддерживает Vulkan для ускоренного вывода на GPU от различных производителей, включая AMD, Intel и другие GPU, отличные от NVIDIA, что обеспечивает высокопроизводительное развертывание на более широком спектре оборудования.
Варианты развертывания с NCNN
Модели NCNN совместимы с различными платформами развертывания:
Мобильное развертывание: Оптимизированы для Android и iOS, обеспечивая бесшовную интеграцию в мобильные приложения для эффективного вывода на устройстве.
Встраиваемые системы и устройства IoT: Идеально подходят для устройств с ограниченными ресурсами, таких как Raspberry Pi и NVIDIA Jetson. Если стандартный вывод на Raspberry Pi с руководством Ultralytics недостаточен, NCNN может обеспечить значительное повышение производительности.
Развертывание на настольных ПК и серверах: Поддерживает развертывание на Linux, Windows и macOS для рабочих процессов разработки, обучения и оценки.
Ускорение GPU с помощью Vulkan
NCNN поддерживает ускорение GPU через Vulkan, обеспечивая высокопроизводительный вывод на широком спектре GPU, включая видеокарты AMD, Intel и другие, отличные от NVIDIA. Это особенно полезно для:
- Поддержка GPU от разных производителей: В отличие от CUDA, которая ограничена GPU NVIDIA, Vulkan работает с GPU от нескольких производителей.
- Системы с несколькими GPU: Выберите конкретное устройство Vulkan в системах с несколькими GPU, используя
device="vulkan:0",device="vulkan:1", и т. д. - Развертывание на периферийных и настольных устройствах: Используйте ускорение GPU на устройствах, где CUDA недоступна.
Чтобы использовать ускорение Vulkan, укажите устройство Vulkan при выполнении вывода:
Вывод с помощью Vulkan
from ultralytics import YOLO
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
# Run inference with Vulkan GPU acceleration
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg' device=vulkan:0
Требования Vulkan
Убедитесь, что для вашего GPU установлены драйверы Vulkan. Большинство современных драйверов GPU по умолчанию включают поддержку Vulkan. Вы можете проверить доступность Vulkan с помощью таких инструментов, как vulkaninfo в Linux или Vulkan SDK в Windows.
Экспорт в NCNN: Преобразование вашей модели YOLO26
Вы можете расширить совместимость моделей и гибкость развертывания путем преобразования моделей YOLO26 в формат NCNN.
Установка
Чтобы установить необходимые пакеты, выполните команду:
Установка
# Install the required package for YOLO26
pip install ultralytics
Подробные инструкции и рекомендации см. в руководстве по установке Ultralytics. Если вы столкнетесь с какими-либо трудностями, обратитесь к нашему руководству по распространенным проблемам для поиска решений.
Использование
Все модели Ultralytics YOLO26 изначально поддерживают экспорт, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать наилучшую настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'ncnn' | Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для ввода модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
half | bool | False | Включает квантование FP16 (полуточной точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании. |
batch | int | 1 | Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps). |
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO26 NCNN
После экспорта моделей Ultralytics YOLO26 в формат NCNN, вы можете развернуть их с помощью YOLO("yolo26n_ncnn_model/") методом, как показано в примере использования выше. Инструкции по развертыванию для конкретных платформ см. в следующих ресурсах:
Android: Создание и интеграция моделей NCNN для обнаружения объектов в приложениях Android.
macOS: Развертывание моделей NCNN в системах macOS.
Linux: Развертывание моделей NCNN на устройствах Linux, включая Raspberry Pi и аналогичные встраиваемые системы.
Windows x64: Развертывание моделей NCNN на Windows x64 с использованием Visual Studio.
Обзор
Это руководство охватывает экспорт моделей Ultralytics YOLO26 в формат NCNN для повышения эффективности и скорости на устройствах с ограниченными ресурсами.
Для получения дополнительной информации обратитесь к официальной документации NCNN. Другие варианты экспорта см. на нашей странице руководства по интеграции.
Часто задаваемые вопросы
Как экспортировать модели Ultralytics YOLO26 в формат NCNN?
Для экспорта вашей модели Ultralytics YOLO26 в формат NCNN:
Python: Используйте
exportметода из класса YOLO.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model'CLI: Используйте
yolo exportcommand.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Подробные параметры экспорта см. в документации по экспорту.
Каковы преимущества экспорта моделей YOLO26 в NCNN?
Экспорт моделей Ultralytics YOLO26 в NCNN предоставляет несколько преимуществ:
- Эффективность: Модели NCNN оптимизированы для мобильных и встроенных устройств, что обеспечивает высокую производительность даже при ограниченных вычислительных ресурсах.
- Квантование: NCNN поддерживает такие методы, как квантование, которые повышают скорость модели и уменьшают использование памяти.
- Широкая совместимость: Вы можете развертывать модели NCNN на нескольких платформах, включая Android, iOS, Linux и macOS.
- Ускорение GPU с помощью Vulkan: Используйте ускорение GPU на AMD, Intel и других не-NVIDIA GPU через Vulkan для более быстрого вывода.
Более подробную информацию см. в разделе «Зачем экспортировать в NCNN?».
Почему мне следует использовать NCNN для моих мобильных AI-приложений?
NCNN, разработанный Tencent, специально оптимизирован для мобильных платформ. Основные причины использования NCNN включают:
- Высокая производительность: Разработан для эффективной и быстрой обработки на мобильных CPU.
- Кроссплатформенность: Совместимость с популярными фреймворками, такими как TensorFlow и ONNX, что упрощает преобразование и развертывание моделей на различных платформах.
- Поддержка сообщества: Активная поддержка сообщества обеспечивает постоянные улучшения и обновления.
Дополнительную информацию см. в разделе «Ключевые особенности моделей NCNN».
Какие платформы поддерживаются для развертывания моделей NCNN model deployment?
NCNN универсален и поддерживает различные платформы:
- Мобильные устройства: Android, iOS.
- Встроенные системы и устройства IoT: Устройства, такие как Raspberry Pi и NVIDIA Jetson.
- Настольные компьютеры и серверы: Linux, Windows и macOS.
Для повышения производительности на Raspberry Pi рассмотрите возможность использования формата NCNN, как подробно описано в нашем руководстве по Raspberry Pi.
Как развернуть модели Ultralytics YOLO26 NCNN на Android?
Для развертывания моделей YOLO26 на Android:
- Сборка для Android: Следуйте руководству NCNN Build for Android.
- Интеграция с вашим приложением: Используйте NCNN Android SDK для интеграции экспортированной модели в ваше приложение для эффективного логического вывода на устройстве.
Подробные инструкции см. в разделе Развертывание экспортированных моделей YOLO26 NCNN.
Более подробные руководства и варианты использования см. в руководстве по развертыванию Ultralytics.
Как использовать ускорение GPU с помощью Vulkan с моделями NCNN?
NCNN поддерживает Vulkan для ускорения GPU на AMD, Intel и других не-NVIDIA GPU. Чтобы использовать Vulkan:
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan device
Для систем с несколькими GPU укажите индекс устройства (например, vulkan:1 для второго GPU). Убедитесь, что для вашего GPU установлены драйверы Vulkan. См. Ускорение GPU с помощью Vulkan раздел для получения более подробной информации.