Link to this sectionЭкспорт Ultralytics YOLO в NCNN#
Развертывание моделей компьютерного зрения на устройствах с ограниченной вычислительной мощностью, таких как мобильные или встроенные системы, требует тщательного выбора формата. Использование оптимизированного формата гарантирует, что даже устройства с ограниченными ресурсами смогут эффективно справляться с продвинутыми задачами компьютерного зрения.
Экспорт в формат NCNN позволяет оптимизировать твои модели Ultralytics YOLO26 для легких приложений на устройствах. Это руководство описывает, как конвертировать твои модели в формат NCNN для повышения производительности на мобильных и встроенных устройствах.
Link to this sectionЗачем экспортировать в NCNN?#
Фреймворк NCNN, разработанный Tencent, представляет собой высокопроизводительный фреймворк для вычислений нейронных сетей, оптимизированный специально для мобильных платформ, включая мобильные телефоны, встроенные устройства и устройства IoT. NCNN совместим с широким спектром платформ, включая Linux, Android, iOS и macOS.
NCNN известен своей высокой скоростью обработки на мобильных процессорах и позволяет быстро развертывать модели глубокого обучения на мобильных платформах, что делает его отличным выбором для создания приложений на базе ИИ.
Link to this sectionКлючевые особенности моделей NCNN#
Модели NCNN обладают несколькими ключевыми особенностями, которые позволяют выполнять машинное обучение непосредственно на устройстве, помогая разработчикам развертывать модели на мобильных, встроенных и граничных устройствах:
-
Эффективность и высокая производительность: Модели NCNN легкие и оптимизированы для мобильных и встроенных устройств, таких как Raspberry Pi, с ограниченными ресурсами, при этом сохраняя высокую точность в задачах компьютерного зрения.
-
Квантование: NCNN поддерживает квантование — метод, который снижает точность весов и активаций модели для улучшения производительности и уменьшения объема используемой памяти.
-
Совместимость: Модели NCNN совместимы с популярными фреймворками глубокого обучения, включая TensorFlow, Caffe и ONNX, что позволяет разработчикам использовать существующие модели и рабочие процессы.
-
Простота использования: NCNN предоставляет удобные инструменты для конвертации моделей между форматами, обеспечивая плавную совместимость в различных средах разработки.
-
Ускорение GPU с помощью Vulkan: NCNN поддерживает Vulkan для ускоренного вывода на GPU от различных производителей, включая AMD, Intel и другие GPU, отличные от NVIDIA, что обеспечивает высокопроизводительное развертывание на более широком спектре оборудования.
Link to this sectionВарианты развертывания с NCNN#
Модели NCNN совместимы с различными платформами для развертывания:
-
Мобильное развертывание: Оптимизировано для Android и iOS, обеспечивая бесшовную интеграцию в мобильные приложения для эффективного вывода на устройстве.
-
Встроенные системы и устройства IoT: Идеально подходит для устройств с ограниченными ресурсами, таких как Raspberry Pi и NVIDIA Jetson. Если стандартного вывода на Raspberry Pi с помощью руководства Ultralytics недостаточно, NCNN может обеспечить значительное улучшение производительности.
-
Развертывание на ПК и серверах: Поддерживает развертывание на Linux, Windows и macOS для процессов разработки, обучения и оценки.
Link to this sectionУскорение 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 при запуске вывода:
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.
Link to this sectionЭкспорт в NCNN: Конвертация твоей модели YOLO26#
Ты можешь расширить совместимость модели и гибкость развертывания, конвертировав модели YOLO26 в формат NCNN.
Link to this sectionПоддерживаемые задачи#
Экспорт в NCNN поддерживает стандартный набор задач Ultralytics YOLO26.
| Задача | Поддерживается |
|---|---|
| Обнаружение объектов | ✅ |
| Сегментация экземпляров | ✅ |
| Семантическая сегментация | ✅ |
| Оценка позы | ✅ |
| OBB-детекция | ✅ |
| Классификация | ✅ |
Link to this sectionУстановка#
Чтобы установить необходимые пакеты, выполни:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и лучшие практики см. в руководстве по установке Ultralytics. Если ты столкнешься с трудностями, обратись к нашему руководству по распространенным проблемам за решениями.
Link to this sectionИспользование#
Все модели Ultralytics YOLO26 разработаны с поддержкой экспорта «из коробки», что облегчает их интеграцию в твой предпочтительный рабочий процесс развертывания. Ты можешь просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать лучшую настройку для своего приложения.
Формат NCNN поддерживает режимы Export, Predict и Validate. Экспортируй модель, затем загрузи экспортированную модель для запуска вывода или проверки ее точности.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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 по экспорту.
Link to this sectionРазвертывание экспортированных моделей 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.
Link to this sectionИтоги#
В этом руководстве мы рассмотрели экспорт моделей Ultralytics YOLO26 в формат NCNN для повышения эффективности и скорости на устройствах с ограниченными ресурсами.
Для получения дополнительной информации обратись к официальной документации NCNN. Другие варианты экспорта можно найти на нашей странице руководства по интеграции.
Link to this sectionFAQ#
Link to this sectionКак мне экспортировать модели Ultralytics YOLO26 в формат NCNN?#
Чтобы экспортировать твою модель Ultralytics YOLO26 в формат NCNN:
-
Python: Используй метод
exportиз класса YOLO.from ultralytics import YOLO # Load a 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.
Link to this sectionКаковы преимущества экспорта моделей YOLO26 в NCNN?#
Экспорт твоих моделей Ultralytics YOLO26 в NCNN дает несколько преимуществ:
- Эффективность: Модели NCNN оптимизированы для мобильных и встроенных устройств, обеспечивая высокую производительность даже при ограниченных вычислительных ресурсах.
- Квантование: NCNN поддерживает такие методы, как квантование, которые увеличивают скорость модели и уменьшают использование памяти.
- Широкая совместимость: Ты можешь развертывать модели NCNN на нескольких платформах, включая Android, iOS, Linux и macOS.
- Ускорение GPU с помощью Vulkan: Используй ускорение GPU на AMD, Intel и других GPU, отличных от NVIDIA, через Vulkan для более быстрого вывода.
Для получения более подробной информации см. раздел Зачем экспортировать в NCNN?.
Link to this sectionПочему мне стоит использовать NCNN для моих мобильных ИИ-приложений?#
NCNN, разработанный Tencent, специально оптимизирован для мобильных платформ. Ключевые причины использовать NCNN включают:
- Высокая производительность: Разработан для эффективной и быстрой обработки на мобильных процессорах.
- Кроссплатформенность: Совместим с популярными фреймворками, такими как TensorFlow и ONNX, что облегчает конвертацию и развертывание моделей на разных платформах.
- Поддержка сообщества: Активная поддержка сообщества обеспечивает постоянные улучшения и обновления.
Для получения дополнительной информации см. раздел Ключевые особенности моделей NCNN.
Link to this sectionКакие платформы поддерживаются для развертывания моделей NCNN?#
NCNN универсален и поддерживает различные платформы:
- Мобильные: Android, iOS.
- Встроенные системы и устройства IoT: Устройства, такие как Raspberry Pi и NVIDIA Jetson.
- ПК и серверы: Linux, Windows и macOS.
Для повышения производительности на Raspberry Pi рассмотри возможность использования формата NCNN, как описано в нашем руководстве по Raspberry Pi.
Link to this sectionКак я могу развернуть модели Ultralytics YOLO26 NCNN на Android?#
Чтобы развернуть твои модели YOLO26 на Android:
- Сборка для Android: Следуй руководству NCNN Build for Android.
- Интеграция с твоим приложением: Используй Android SDK NCNN для интеграции экспортированной модели в твое приложение для эффективного вывода на устройстве.
Подробные инструкции см. в разделе Развертывание экспортированных моделей YOLO26 NCNN.
Для получения более продвинутых руководств и примеров использования посети руководство Ultralytics по развертыванию.
Link to this sectionКак мне использовать ускорение GPU Vulkan с моделями NCNN?#
NCNN поддерживает Vulkan для ускорения GPU на AMD, Intel и других GPU, отличных от NVIDIA. Чтобы использовать 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. Более подробную информацию см. в разделе Ускорение GPU с помощью Vulkan.