Meet YOLO26: next-gen vision AI.

Link to this sectionЭкспорт CoreML для моделей YOLO26#

Для развертывания моделей компьютерного зрения на устройствах 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 еще лучше.

Link to this sectionCoreML#

Apple CoreML deployment pipeline

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

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

Link to this sectionКлючевые особенности моделей CoreML#

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

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

CoreML supported deep learning frameworks

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

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

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

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

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

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

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

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

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

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

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

Link to this sectionЭкспорт моделей YOLO26 в CoreML#

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

Link to this sectionУстановка#

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

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

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

Link to this sectionИспользование#

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

Формат CoreML поддерживает режимы Export, Predict и Validate. Инференс и валидация с помощью CoreML выполняются только в macOS. Экспортируй свою модель, а затем загрузи ее для запуска инференса или валидации точности.

Экспорт
from ultralytics import YOLO

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

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolo26n.mlpackage'
Предсказание
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionАргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'coreml'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
dynamicboolFalseПозволяет использовать динамические входные размеры, повышая гибкость при обработке изображений разных размеров.
halfboolFalseВключает квантование FP16 (половинная точность), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании.
int8boolFalseАктивирует квантование INT8, дополнительно сжимая модель и ускоряя инференс с минимальной потерей точности, преимущественно для периферийных устройств.
nmsboolFalseДобавляет Non-Maximum Suppression (NMS), что критически важно для точной и эффективной постобработки обнаружения.
batchint1Указывает размер пакетного инференса для экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для процессоров Apple silicon (device=mps).
Совет

Убедись, что при экспорте в CoreML ты используешь компьютер с macOS или x86 Linux.

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

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

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

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

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

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

Link to this sectionИтоги#

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

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

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

Link to this sectionFAQ#

Link to this sectionКак экспортировать модели 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 нашей документации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии