Как экспортировать в NCNN из YOLO11 для плавной разработки
Развертывание моделей компьютерного зрения на устройствах с ограниченной вычислительной мощностью, таких как мобильные или встроенные системы, может быть сложной задачей. Необходимо убедиться, что вы используете формат, оптимизированный для оптимальной производительности. Это гарантирует, что даже устройства с ограниченной вычислительной мощностью смогут хорошо справляться с расширенными задачами компьютерного зрения.
Функция экспорта в формат NCNN позволяет оптимизировать ваши модели Ultralytics YOLO11 для использования в облегченных приложениях на устройствах. В этом руководстве мы расскажем, как преобразовать ваши модели в формат NCNN, чтобы ваши модели могли эффективно работать на различных мобильных и встроенных устройствах.
Зачем экспортировать в NCNN?
Фреймворк NCNN, разработанный Tencent, — это высокопроизводительный фреймворк для вычислений логического вывода нейронных сетей, оптимизированный специально для мобильных платформ, включая мобильные телефоны, встроенные устройства и устройства IoT. NCNN совместим с широким спектром платформ, включая Linux, Android, iOS и macOS.
NCNN известен своей высокой скоростью обработки на мобильных CPU и обеспечивает быстрое развертывание моделей глубокого обучения на мобильных платформах. Это упрощает создание интеллектуальных приложений, предоставляя возможности искусственного интеллекта прямо у вас под рукой.
Ключевые особенности моделей NCNN
Модели NCNN предлагают широкий спектр ключевых функций, которые обеспечивают машинное обучение на устройстве, помогая разработчикам запускать свои модели на мобильных, встроенных и периферийных устройствах:
-
Эффективность и высокая производительность: Модели NCNN разработаны для обеспечения эффективности и легкости, оптимизированы для работы на мобильных и встроенных устройствах, таких как Raspberry Pi, с ограниченными ресурсами. Они также могут достигать высокой производительности с высокой точностью в различных задачах компьютерного зрения.
-
Квантование: Модели NCNN часто поддерживают квантование, которое является методом, уменьшающим точность весов и активаций модели. Это приводит к дальнейшему повышению производительности и уменьшению объема занимаемой памяти.
-
Совместимость: Модели NCNN совместимы с популярными фреймворками глубокого обучения, такими как TensorFlow, Caffe и ONNX. Эта совместимость позволяет разработчикам легко использовать существующие модели и рабочие процессы.
-
Простота использования: Модели NCNN разработаны для легкой интеграции в различные приложения благодаря их совместимости с популярными фреймворками глубокого обучения. Кроме того, NCNN предлагает удобные инструменты для преобразования моделей между различными форматами, обеспечивая плавную совместимость во всей среде разработки.
Варианты развертывания с NCNN
Прежде чем мы рассмотрим код для экспорта моделей YOLO11 в формат NCNN, давайте разберемся, как обычно используются модели NCNN.
Модели NCNN, разработанные для эффективности и производительности, совместимы с различными платформами развертывания:
-
Развертывание на мобильных устройствах: Специально оптимизировано для Android и iOS, что обеспечивает плавную интеграцию в мобильные приложения для эффективного логического вывода на устройстве.
-
Встроенные системы и устройства IoT: Если вы обнаружите, что запуск inference на Raspberry Pi с помощью Руководства Ultralytics недостаточно быстр, переключение на экспортированную модель NCNN может помочь ускорить процесс. NCNN отлично подходит для таких устройств, как Raspberry Pi и NVIDIA Jetson, особенно в ситуациях, когда вам требуется быстрая обработка прямо на устройстве.
-
Развертывание на настольных компьютерах и серверах: Возможность развертывания в средах настольных компьютеров и серверов под управлением Linux, Windows и macOS, поддержка разработки, обучения и оценки с более высокими вычислительными мощностями.
Экспорт в NCNN: Преобразование вашей модели YOLO11
Вы можете расширить совместимость моделей и гибкость развертывания, преобразовав модели YOLO11 в формат NCNN.
Установка
Чтобы установить необходимые пакеты, выполните команду:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.
Использование
Все модели Ultralytics YOLO11 разработаны для поддержки экспорта из коробки, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo11n_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 по экспорту.
Развертывание экспортированных моделей YOLO11 NCNN
После успешного экспорта ваших моделей Ultralytics YOLO11 в формат NCNN, вы можете их развернуть. Основным и рекомендуемым первым шагом для запуска модели NCNN является использование метода YOLO("yolo11n_ncnn_model/"), как указано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию ваших моделей NCNN в различных других средах, ознакомьтесь со следующими ресурсами:
-
Android: В этой статье объясняется, как использовать модели NCNN для выполнения таких задач, как обнаружение объектов, через приложения Android.
-
macOS: Узнайте, как использовать модели NCNN для выполнения задач через macOS.
-
Linux: Изучите эту страницу, чтобы узнать, как развертывать модели NCNN на устройствах с ограниченными ресурсами, таких как Raspberry Pi и другие подобные устройства.
-
Windows x64 с использованием VS2017: Изучите этот блог, чтобы узнать, как развертывать модели NCNN на windows x64 с использованием Visual Studio Community 2017.
Обзор
В этом руководстве мы рассмотрели экспорт моделей Ultralytics YOLO11 в формат NCNN. Этот шаг преобразования имеет решающее значение для повышения эффективности и скорости моделей YOLO11, что делает их более эффективными и подходящими для вычислительных сред с ограниченными ресурсами.
Подробные инструкции по использованию см. в официальной документации NCNN.
Кроме того, если вам интересно изучить другие варианты интеграции для Ultralytics YOLO11, обязательно посетите нашу страницу руководства по интеграции для получения дополнительной информации и идей.
Часто задаваемые вопросы
Как экспортировать модели Ultralytics YOLO11 в формат NCNN?
Чтобы экспортировать вашу модель Ultralytics YOLO11 в формат NCNN, выполните следующие действия:
-
Python: Используйте
export
функция из класса YOLO.from ultralytics import YOLO # Load the YOLO11 model model = YOLO("yolo11n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
-
CLI: Используйте
yolo
команда сexport
.yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
Подробные параметры экспорта можно найти на странице Экспорт в документации.
Каковы преимущества экспорта моделей YOLO11 в NCNN?
Экспорт ваших моделей Ultralytics YOLO11 в NCNN предлагает несколько преимуществ:
- Эффективность: Модели NCNN оптимизированы для мобильных и встроенных устройств, что обеспечивает высокую производительность даже при ограниченных вычислительных ресурсах.
- Квантование: NCNN поддерживает такие методы, как квантование, которые повышают скорость модели и уменьшают использование памяти.
- Широкая совместимость: Вы можете развертывать модели NCNN на нескольких платформах, включая Android, iOS, Linux и macOS.
Для получения более подробной информации см. раздел Экспорт в 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 YOLO11 NCNN на Android?
Чтобы развернуть ваши модели YOLO11 на Android:
- Сборка для Android: Следуйте руководству NCNN Build for Android.
- Интеграция с вашим приложением: Используйте NCNN Android SDK для интеграции экспортированной модели в ваше приложение для эффективного логического вывода на устройстве.
Пошаговые инструкции можно найти в нашем руководстве по развертыванию моделей YOLO11 NCNN.
Для получения более продвинутых руководств и вариантов использования посетите страницу документации Ultralytics.