Meet YOLO26: next-gen vision AI.

Link to this sectionЭкспорт Ultralytics YOLO в формат NCNN#

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

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

Link to this sectionЗачем экспортировать в NCNN?#

NCNN high-performance neural network inference framework

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

NCNN известен своей высокой скоростью обработки на мобильных CPU и позволяет быстро развертывать модели deep learning на мобильных платформах, что делает его отличным выбором для создания приложений на базе ИИ.

Link to this sectionКлючевые особенности моделей 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, что позволяет добиться высокой производительности на широком спектре оборудования.

Link to this sectionВарианты развертывания с NCNN#

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

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

  • Встраиваемые системы и устройства IoT: Идеально подходит для устройств с ограниченными ресурсами, таких как Raspberry Pi и NVIDIA Jetson. Если стандартного вывода на Raspberry Pi с помощью Ultralytics Guide недостаточно, 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" и т.д.
  • Edge и десктопные развертывания: Используй ускорение 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")
Требования Vulkan

Убедись, что у тебя установлены драйверы 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.

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Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'ncnn'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования: 16 (FP16) уменьшает размер модели и может ускорить логический вывод; 32/не задано — это FP32. Заменяет устаревший флаг half.
batchint1Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: 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 для object detection в приложениях 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 и других не-NVIDIA GPU через Vulkan для более быстрого вывода.

Более подробную информацию см. в разделе Зачем экспортировать в NCNN?.

Link to this sectionПочему стоит использовать NCNN для моих мобильных ИИ-приложений?#

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

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

Более подробную информацию см. в разделе Ключевые особенности моделей NCNN.

Link to this sectionКакие платформы поддерживаются для model deployment с 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:

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

Подробные инструкции см. в разделе Развертывание экспортированных моделей YOLO26 NCNN.

Для более продвинутых руководств и сценариев использования посети руководство по развертыванию Ultralytics.

Link to this sectionКак использовать ускорение 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. Дополнительные сведения см. в разделе Ускорение GPU через Vulkan.

Комментарии