Skip to main content

Экспорт моделей YOLO26 в формат CoreML

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



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

Формат экспорта CoreML позволяет оптимизировать твои модели Ultralytics YOLO26 для эффективного обнаружения объектов в приложениях для iOS и macOS. В этом руководстве мы пройдемся по этапам преобразования твоих моделей в формат CoreML, чтобы они лучше работали на устройствах Apple.

CoreML

Apple CoreML deployment pipeline

CoreML — это фундаментальный фреймворк машинного обучения Apple, который базируется на Accelerate, BNNS и Metal Performance Shaders. Он предоставляет формат модели машинного обучения, который легко интегрируется в приложения iOS и поддерживает такие задачи, как анализ изображений, обработка естественного языка, преобразование аудио в текст и анализ звука.

Приложения могут использовать Core ML без необходимости подключения к сети или вызовов API, поскольку фреймворк Core ML работает за счет вычислений на самом устройстве. Это означает, что логический вывод (инференс) модели может выполняться локально на устройстве пользователя.

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

Фреймворк CoreML от Apple предлагает надежные функции для машинного обучения на устройствах. Вот ключевые возможности, которые делают CoreML мощным инструментом для разработчиков:

  • Комплексная поддержка моделей: Преобразует и запускает модели из популярных фреймворков, таких как TensorFlow, PyTorch, scikit-learn, XGBoost и LibSVM.

CoreML supported deep learning frameworks

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

  • Производительность и оптимизация: Использует CPU, GPU и Neural Engine устройства для достижения оптимальной производительности с минимальным расходом заряда и памяти. Предлагает инструменты для сжатия и оптимизации моделей, сохраняя при этом точности.

  • Простота интеграции: Предоставляет унифицированный формат для различных типов моделей и удобный API для бесшовной интеграции в приложения. Поддерживает специализированные задачи через такие фреймворки, как Vision и Natural Language.

  • Расширенные функции: Включает возможности обучения на устройстве для персонализированного опыта, асинхронные предсказания для интерактивного ML-опыта, а также инструменты для инспекции и валидации моделей.

Варианты развертывания CoreML

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

CoreML предлагает различные варианты развертывания моделей машинного обучения, включая:

  • Развертывание на устройстве: Этот метод напрямую интегрирует модели CoreML в твое приложение для iOS. Он особенно выгоден для обеспечения низкой задержки, повышенной конфиденциальности (так как данные остаются на устройстве) и работы в автономном режиме. Однако такой подход может быть ограничен аппаратными возможностями устройства, особенно для более крупных и сложных моделей, и может быть реализован двумя способами:

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

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

  • Облачное развертывание: Модели CoreML размещаются на серверах, и приложение для iOS обращается к ним через запросы API. Этот масштабируемый и гибкий вариант позволяет легко обновлять модели без пересмотра приложения. Он идеально подходит для сложных моделей или крупномасштабных приложений, требующих регулярных обновлений. Однако для него требуется интернет-соединение, и могут возникнуть проблемы с задержкой и безопасностью.

Экспорт моделей YOLO26 в CoreML

Экспорт YOLO26 в CoreML обеспечивает оптимизированную производительность машинного обучения на устройстве в экосистеме Apple, предлагая преимущества в эффективности, безопасности и бесшовной интеграции с платформами iOS, macOS, watchOS и tvOS.

Установка

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

Установка
# Install the required package for YOLO26
pip install ultralytics

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

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

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

Использование
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolo26n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO("yolo26n.mlpackage")

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")

Аргументы экспорта

АргументТипПо умолчаниюОписание
formatstr'coreml'Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для специфических размеров.
dynamicboolFalseПозволяет использовать динамические размеры входных данных, повышая гибкость при обработке изображений с различными размерами.
halfboolFalseВключает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании.
int8boolFalseАктивирует квантование INT8, дополнительно сжимая модель и ускоряя вывод с минимальной точности потери, в основном для пограничных (edge) устройств.
nmsboolFalseДобавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружения.
batchint1Указывает размер пакетного вывода модели для экспорта или максимальное количество изображений, которые экспортированная модель будет обрабатывать параллельно в режиме predict .
devicestrNoneУказывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps).
Совет

Пожалуйста, убедись, что используешь macOS или x86 Linux для экспорта в CoreML.

Для получения более подробной информации о процессе экспорта посети странице документации Ultralytics по экспорту.

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

Успешно экспортировав свои модели Ultralytics YOLO26 в CoreML, следующим критическим этапом станет эффективное развертывание этих моделей. Подробные инструкции по развертыванию моделей CoreML в различных средах ты найдешь в следующих ресурсах:

  • Инструменты CoreML: Это руководство содержит инструкции и примеры преобразования моделей из TensorFlow, PyTorch и других библиотек в Core ML.

  • ML и Vision: Коллекция подробных видеороликов, охватывающих различные аспекты использования и реализации моделей CoreML.

  • Интеграция модели Core ML в твое приложение: Полное руководство по интеграции модели CoreML в приложение iOS, описывающее шаги от подготовки модели до ее внедрения в приложение для различных функций.

Резюме

В этом руководстве мы разобрали, как экспортировать модели Ultralytics YOLO26 в формат CoreML. Следуя описанным здесь шагам, ты обеспечишь максимальную совместимость и производительность при экспорте моделей YOLO26 в CoreML.

Для получения более подробной информации об использовании посети официальную документацию CoreML.

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

FAQ

Как мне экспортировать модели YOLO26 в формат CoreML?

Для экспорта твоих моделей Ultralytics YOLO26 в формат CoreML тебе сначала нужно убедиться, что у тебя установлен пакет ultralytics. Ты можешь установить его с помощью:

Установка
pip install ultralytics

Затем ты можешь экспортировать модель, используя следующие команды Python или CLI:

Использование
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreml")

Для получения подробной информации обратись к разделу Экспорт моделей YOLO26 в CoreML нашей документации.

Каковы преимущества использования CoreML для развертывания моделей YOLO26?

CoreML предоставляет многочисленные преимущества для развертывания моделей Ultralytics YOLO26 на устройствах Apple:

  • Обработка на устройстве: Позволяет выполнять локальный инференс модели на устройствах, обеспечивая конфиденциальности данных и минимизируя задержки.
  • Оптимизация производительности: Использует весь потенциал CPU, GPU и Neural Engine устройства, оптимизируя как скорость, так и эффективность.
  • Простота интеграции: Предлагает опыт бесшовной интеграции с экосистемами Apple, включая iOS, macOS, watchOS и tvOS.
  • универсальности: Поддерживает широкий спектр задач машинного обучения, таких как анализ изображений, обработка аудио и обработка естественного языка, с использованием фреймворка CoreML.

Для получения подробной информации об интеграции твоей модели CoreML в приложение iOS ознакомься с руководством по Интеграция модели Core ML в твое приложение.

Какие существуют варианты развертывания моделей YOLO26, экспортированных в CoreML?

После экспорта модели YOLO26 в формат CoreML у тебя есть несколько вариантов развертывания:

  1. Развертывание на устройстве: Прямая интеграция моделей CoreML в твое приложение для повышения конфиденциальности и функциональности в автономном режиме. Это можно сделать следующим образом:

    • Встроенные модели: Включены в пакет приложения, доступны сразу.
    • Загружаемые модели: Загружаются с сервера по мере необходимости, что позволяет уменьшить размер пакета приложения.
  2. Облачное развертывание: Размещение моделей CoreML на серверах и доступ к ним через запросы API. Этот подход облегчает обновление и позволяет работать с более сложными моделями.

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

Как CoreML обеспечивает оптимизированную производительность моделей YOLO26?

CoreML обеспечивает оптимизированную производительность моделей Ultralytics YOLO26 с помощью различных методов оптимизации:

  • Аппаратное ускорение: Использует CPU, GPU и Neural Engine устройства для эффективных вычислений.
  • Сжатие модели: Предоставляет инструменты для сжатия моделей с целью уменьшения их размера без ущерба для точности.
  • Адаптивный инференс: Регулирует инференс в зависимости от возможностей устройства, чтобы поддерживать баланс между скоростью и производительностью.

Для получения дополнительной информации об оптимизации производительности посети официальную документацию CoreML.

Могу ли я запустить инференс напрямую с экспортированной моделью CoreML?

Да, ты можешь запускать инференс напрямую, используя экспортированную модель CoreML. Ниже приведены команды для Python и CLI:

Запуск инференса
from ultralytics import YOLO

coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")

Для получения дополнительной информации обратись к разделу использования руководства по экспорту CoreML.

Комментарии