Экспорт Ultralytics YOLO в формат NCNN
Развертывание моделей computer vision на устройствах с ограниченной вычислительной мощностью, таких как мобильные или встраиваемые системы, требует тщательного выбора формата. Использование оптимизированного формата гарантирует, что даже устройства с ограниченными ресурсами смогут эффективно справляться со сложными задачами компьютерного зрения.
Экспорт в формат NCNN позволяет оптимизировать твои модели Ultralytics YOLO26 для легких приложений на устройствах. Это руководство описывает, как конвертировать твои модели в формат NCNN для повышения производительности на мобильных и встраиваемых устройствах.
Зачем экспортировать в NCNN?
Фреймворк NCNN, разработанный Tencent, представляет собой высокопроизводительную среду вычислений для инференса neural network, оптимизированную специально для мобильных платформ, включая мобильные телефоны, встраиваемые системы и IoT-устройства. NCNN совместим с широким спектром платформ, включая Linux, Android, iOS и macOS.
NCNN известен своей высокой скоростью обработки на мобильных CPU и обеспечивает быстрое развертывание моделей deep learning на мобильных платформах, что делает его отличным выбором для создания приложений на базе ИИ.
Ключевые особенности моделей NCNN
Модели NCNN обладают рядом ключевых особенностей, которые обеспечивают machine learning на самом устройстве, помогая разработчикам развертывать модели на мобильных, встраиваемых и edge-устройствах:
-
Эффективность и высокая производительность: Модели NCNN являются легковесными и оптимизированными для мобильных и встраиваемых устройств, таких как Raspberry Pi с ограниченными ресурсами, при сохранении высокой accuracy в задачах компьютерного зрения.
-
Квантование: NCNN поддерживает квантование — метод, который снижает precision весов и активаций модели для повышения производительности и уменьшения объема занимаемой памяти.
-
Совместимость: Модели NCNN совместимы с популярными фреймворками глубокого обучения, включая TensorFlow, Caffe и ONNX, что позволяет разработчикам использовать существующие модели и рабочие процессы.
-
Простота использования: NCNN предоставляет удобные инструменты для конвертации моделей между форматами, обеспечивая плавную совместимость в различных средах разработки.
-
Ускорение GPU через Vulkan: NCNN поддерживает Vulkan для ускорения инференса на GPU от различных производителей, включая AMD, Intel и другие не-NVIDIA GPU, что позволяет добиться высокой производительности на более широком спектре оборудования.
Варианты развертывания с NCNN
Модели NCNN совместимы с множеством платформ развертывания:
-
Мобильное развертывание: Оптимизировано для Android и iOS, обеспечивая бесшовную интеграцию в мобильные приложения для эффективного инференса на устройстве.
-
Встраиваемые системы и IoT-устройства: Идеально подходит для устройств с ограниченными ресурсами, таких как Raspberry Pi и NVIDIA Jetson. Если стандартного инференса на Raspberry Pi с помощью Ultralytics Guide недостаточно, 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"и т.д. - Развертывание на Edge и десктопах: Используй ускорение GPU на устройствах, где CUDA недоступна.
Чтобы использовать ускорение 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")Убедись, что у тебя установлены драйверы Vulkan для твоего GPU. Большинство современных драйверов GPU включают поддержку Vulkan по умолчанию. Ты можешь проверить доступность Vulkan с помощью таких инструментов, как vulkaninfo в Linux или Vulkan SDK в Windows.
Экспорт в NCNN: Конвертация твоей модели YOLO26
Ты можешь расширить совместимость моделей и гибкость развертывания, конвертировав модели YOLO26 в формат NCNN.
Установка
Чтобы установить необходимые пакеты, выполни:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и лучшие практики см. в Ultralytics Installation guide. Если ты столкнешься с какими-либо трудностями, обратись к нашему Common Issues guide за решениями.
Использование
Все модели 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")Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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 (device=mps). |
Для получения более подробной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO26 NCNN
После экспорта твоих моделей Ultralytics YOLO26 в формат NCNN ты можешь развернуть их с помощью метода YOLO("yolo26n_ncnn_model/"), как показано в примере использования выше. Инструкции по развертыванию для конкретных платформ см. в следующих ресурсах:
-
Android: Сборка и интеграция моделей NCNN для object detection в приложениях Android.
-
macOS: Развертывание моделей NCNN в системах macOS.
-
Linux: Развертывание моделей NCNN на устройствах Linux, включая Raspberry Pi и подобные встраиваемые системы.
-
Windows x64: Развертывание моделей NCNN на Windows x64 с использованием Visual Studio.
Резюме
В этом руководстве мы рассмотрели экспорт моделей Ultralytics YOLO26 в формат NCNN для повышения эффективности и скорости на устройствах с ограниченными ресурсами.
Дополнительные подробности см. в official NCNN documentation. Другие варианты экспорта можно найти на нашей странице integration guide page.
Часто задаваемые вопросы (FAQ)
Как экспортировать модели 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 export.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Подробные параметры экспорта см. в документации Export.
Каковы преимущества экспорта моделей YOLO26 в NCNN?
Экспорт твоих моделей Ultralytics YOLO26 в NCNN дает несколько преимуществ:
- Эффективность: Модели NCNN оптимизированы для мобильных и встраиваемых устройств, что обеспечивает высокую производительность даже при ограниченных вычислительных ресурсах.
- Квантование: NCNN поддерживает такие методы, как квантование, которые повышают скорость работы модели и сокращают использование памяти.
- Широкая совместимость: Ты можешь развертывать модели NCNN на множестве платформ, включая Android, iOS, Linux и macOS.
- Ускорение GPU через Vulkan: Используй ускорение GPU на AMD, Intel и других не-NVIDIA GPU через Vulkan для более быстрого инференса.
Более подробную информацию см. в разделе Why Export to NCNN?.
Почему мне стоит использовать NCNN для своих мобильных ИИ-приложений?
NCNN, разработанный Tencent, специально оптимизирован для мобильных платформ. Основные причины использования NCNN включают:
- Высокая производительность: Разработан для эффективной и быстрой обработки на мобильных CPU.
- Кроссплатформенность: Совместим с популярными фреймворками, такими как TensorFlow и ONNX, что упрощает конвертацию и развертывание моделей на различных платформах.
- Поддержка сообщества: Активная поддержка сообщества обеспечивает постоянные улучшения и обновления.
Более подробную информацию см. в разделе Key Features of NCNN Models.
Какие платформы поддерживаются для model deployment через NCNN?
NCNN универсален и поддерживает различные платформы:
- Мобильные: Android, iOS.
- Встраиваемые системы и IoT-устройства: Устройства типа Raspberry Pi и NVIDIA Jetson.
- Десктоп и серверы: Linux, Windows и macOS.
Для повышения производительности на Raspberry Pi рассмотри возможность использования формата NCNN, как описано в нашем Raspberry Pi Guide.
Как я могу развернуть модели Ultralytics YOLO26 NCNN на Android?
Чтобы развернуть свои модели YOLO26 на Android:
- Сборка для Android: Следуй руководству NCNN Build for Android.
- Интеграция с твоим приложением: Используй Android SDK для NCNN, чтобы интегрировать экспортированную модель в свое приложение для эффективного инференса на устройстве.
Подробные инструкции см. в разделе Deploying Exported YOLO26 NCNN Models.
Для получения дополнительных продвинутых руководств и вариантов использования посети Ultralytics deployment guide.
Как мне использовать ускорение 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). Убедись, что установлены драйверы Vulkan для твоего GPU. Подробнее см. в разделе Vulkan GPU Acceleration.