Перейти к содержимому

Как экспортировать на NCNN с YOLOv8 для плавного развертывания

Развертывание моделей компьютерного зрения на устройствах с ограниченной вычислительной мощностью, таких как мобильные или встраиваемые системы, может быть непростым делом. Тебе нужно убедиться, что ты используешь формат, оптимизированный для оптимальной производительности. Это гарантирует, что даже устройства с ограниченной вычислительной мощностью смогут хорошо справляться с продвинутыми задачами компьютерного зрения.

Функция экспорта в формат NCNN позволяет оптимизировать твои Ultralytics YOLOv8 модели для легких приложений на базе устройств. В этом руководстве мы расскажем тебе о том, как конвертировать твои модели в формат NCNN , благодаря чему твои модели будут хорошо работать на различных мобильных и встраиваемых устройствах.

Почему тебе стоит экспортировать на NCNN?

NCNN обзор

Фреймворк NCNN Фреймворк, разработанный компанией Tencent, представляет собой высокопроизводительный нейросетевой фреймворк для вычисления выводов, оптимизированный специально для мобильных платформ, включая мобильные телефоны, встраиваемые устройства и устройства IoT. NCNN совместим с широким спектром платформ, включая Linux, Android, iOS, и macOS.

NCNN известен своей высокой скоростью обработки данных на мобильных процессорах и позволяет быстро развертывать модели глубокого обучения на мобильных платформах. Это упрощает создание умных приложений, позволяя использовать возможности искусственного интеллекта прямо на кончиках твоих пальцев.

Ключевые особенности моделей NCNN

Модели NCNN обладают широким спектром ключевых возможностей, которые обеспечивают машинное обучение на устройствах, помогая разработчикам запускать свои модели на мобильных, встраиваемых и граничных устройствах:

  • Эффективность и высокая производительность: модели NCNN сделаны эффективными и легкими, оптимизированными для работы на мобильных и встраиваемых устройствах вроде Raspberry Pi с ограниченными ресурсами. Они также могут достигать высокой производительности с высокой точностью при решении различных задач, основанных на компьютерном зрении.

  • Квантование: модели NCNN часто поддерживают квантование, которое представляет собой технику, снижающую точность весов и активаций модели. Это приводит к дальнейшему улучшению производительности и уменьшению занимаемой памяти.

  • Совместимость: модели NCNN совместимы с такими популярными фреймворками глубокого обучения, как. TensorFlow, Caffe и ONNX. Такая совместимость позволяет разработчикам легко использовать существующие модели и рабочие процессы.

  • Простота использования: модели NCNN предназначены для легкой интеграции в различные приложения благодаря совместимости с популярными фреймворками глубокого обучения. Кроме того, NCNN предлагает удобные инструменты для конвертации моделей между различными форматами, обеспечивая беспроблемную совместимость во всех сферах разработки.

Варианты развертывания с NCNN

Прежде чем мы посмотрим на код для экспорта YOLOv8 моделей в NCNN формат, давайте разберемся, как NCNN Обычно используются модели.

Модели NCNN, разработанные с учетом эффективности и производительности, совместимы с различными платформами развертывания:

  • Мобильное развертывание: Специально оптимизирован для Android и iOS, что позволяет без проблем интегрировать их в мобильные приложения для эффективной работы с выводами на устройствах.

  • Встраиваемые системы и IoT-устройства: Если ты обнаружил, что выполнение выводов на Raspberry Pi с помощью Ultralytics Guide недостаточно быстро, то переход на экспортируемую модель NCNN может помочь ускорить процесс. NCNN отлично подходит для таких устройств, как Raspberry Pi и NVIDIA Jetson, особенно в ситуациях, когда тебе нужна быстрая обработка данных прямо на устройстве.

  • Развертывание в настольных и серверных средах: Возможность развертывания в настольных и серверных средах Linux, Windows и macOS, поддержка разработки, обучения и оценки с более высокими вычислительными мощностями.

Экспорт в NCNN: Преобразование твоей модели YOLOv8

Ты можешь расширить совместимость моделей и гибкость развертывания, конвертируя модели YOLOv8 в формат NCNN.

Установка

Чтобы установить необходимые пакеты, выполни:

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.

Использование

Прежде чем погрузиться в инструкцию по использованию, важно отметить, что, хотя все моделиUltralytics YOLOv8 доступны для экспорта, ты можешь убедиться, что выбранная тобой модель поддерживает функцию экспорта, здесь.

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("./yolov8n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Более подробно о поддерживаемых вариантах экспорта можно узнать на странице документацииUltralytics , посвященной вариантам развертывания.

Развертывание экспортированных YOLOv8 NCNN моделей

После успешного экспорта твоих моделей Ultralytics YOLOv8 в формат NCNN ты можешь приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска NCNN-модели является использование метода YOLO("./model_ncnn_model"), как описано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию твоих NCNN-моделей в различных других условиях, взгляни на следующие ресурсы:

  • Android: В этом блоге рассказывается о том, как использовать модели NCNN для выполнения таких задач, как обнаружение объектов, через приложения Android .

  • macOS (): Пойми, как использовать модели NCNN для выполнения задач через macOS.

  • Linux: Изучи эту страницу, чтобы узнать, как развернуть модели NCNN на устройствах с ограниченными ресурсами, таких как Raspberry Pi и другие подобные устройства.

  • Windows x64 с помощью VS2017: Изучи этот блог, чтобы узнать, как развернуть модели NCNN на windows x64 с помощью Visual Studio Community 2017.

Резюме

В этом руководстве мы рассмотрели экспорт моделей Ultralytics YOLOv8 в формат NCNN. Этот шаг преобразования имеет решающее значение для повышения эффективности и скорости работы моделей YOLOv8, делая их более эффективными и подходящими для вычислительных сред с ограниченными ресурсами.

За подробными инструкциями по использованию обращайся к официальной документации NCNN .

Кроме того, если тебе интересно изучить другие варианты интеграции Ultralytics YOLOv8 , обязательно посети страницу нашего руководства по интеграции, где ты найдешь дополнительную информацию.

ВОПРОСЫ И ОТВЕТЫ

Как экспортировать модели Ultralytics YOLOv8 в формат NCNN ?

Чтобы экспортировать свою модель Ultralytics YOLOv8 в формат NCNN , выполни следующие шаги:

  • Python: Используй export функция из класса YOLO .

    from ultralytics import YOLO
    
    # Load the YOLOv8 model
    model = YOLO("yolov8n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'
    
  • CLI: Используй yolo команда с export аргумент.

    yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'
    

О подробных параметрах экспорта читай на странице " Экспорт" в документации.

В чем преимущества экспорта моделей YOLOv8 на NCNN?

Экспорт твоих моделей Ultralytics YOLOv8 в NCNN дает несколько преимуществ:

  • Эффективность: модели NCNN оптимизированы для мобильных и встраиваемых устройств, что обеспечивает высокую производительность даже при ограниченных вычислительных ресурсах.
  • Квантование: NCNN поддерживает такие техники, как квантование, которые повышают скорость работы модели и уменьшают расход памяти.
  • Широкая совместимость: Ты можешь развернуть модели NCNN на множестве платформ, включая Android, iOS, Linux и macOS.

Более подробную информацию ты найдешь в разделе документации " Экспорт на NCNN ".

Почему я должен использовать NCNN для своих мобильных AI-приложений?

NCNN, разработанный компанией Tencent, специально оптимизирован для мобильных платформ. Основные причины использовать NCNN включают в себя:

  • Высокая производительность: Разработан для эффективной и быстрой обработки данных на мобильных процессорах.
  • Кроссплатформенность: Совместим с такими популярными фреймворками, как TensorFlow и ONNX, что упрощает конвертацию и развертывание моделей на разных платформах.
  • Поддержка сообщества: Активная поддержка сообщества обеспечивает постоянные улучшения и обновления.

Чтобы понять больше, посети обзорNCNN в документации.

Какие платформы поддерживаются для развертывания модели NCNN ?

NCNN универсален и поддерживает различные платформы:

  • Мобильный: Android, iOS.
  • Встраиваемые системы и IoT-устройства: Такие устройства, как Raspberry Pi и NVIDIA Jetson.
  • Настольные компьютеры и серверы: Linux, Windows и macOS.

Если запуск моделей на Raspberry Pi недостаточно быстр, то конвертация в формат NCNN может ускорить работу, как это подробно описано в нашем руководстве по Raspberry Pi.

Как развернуть Ultralytics YOLOv8 NCNN модели на Android?

Чтобы развернуть свои модели YOLOv8 на сайте Android:

  1. Сборка для Android: Следуй руководству NCNN Build for Android.
  2. Интегрируй в свое приложение: Используй NCNN Android SDK, чтобы интегрировать экспортированную модель в твое приложение для эффективных выводов на устройстве.

Пошаговые инструкции ты найдешь в нашем руководстве по развертыванию моделей YOLOv8 NCNN .

Более продвинутые руководства и примеры использования можно найти на странице документацииUltralytics .



Создано 2024-03-01, Обновлено 2024-07-05
Авторы: glenn-jocher (6), abirami-vina (1)

Комментарии