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

CoreML Экспорт для моделей YOLO11

Deploying computer vision models on Apple devices like iPhones and Macs requires a format that ensures seamless performance.

The CoreML export format allows you to optimize your Ultralytics YOLO11 models for efficient object detection in iOS and macOS applications. In this guide, we'll walk you through the steps for converting your models to the CoreML format, making it easier for your models to perform well on Apple devices.

CoreML

CoreML Обзор

CoreML is Apple's foundational machine learning framework that builds upon Accelerate, BNNS, and Metal Performance Shaders. It provides a machine-learning model format that seamlessly integrates into iOS applications and supports tasks such as image analysis, natural language processing, audio-to-text conversion, and sound analysis.

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

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

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

  • Comprehensive Model Support: Converts and runs models from popular frameworks like TensorFlow, PyTorch, scikit-learn, XGBoost, and LibSVM.

CoreML Поддерживаемые модели

  • On-device Machine Learning: Ensures data privacy and swift processing by executing models directly on the user's device, eliminating the need for network connectivity.

  • Performance and Optimization: Uses the device's CPU, GPU, and Neural Engine for optimal performance with minimal power and memory usage. Offers tools for model compression and optimization while maintaining accuracy.

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

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

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

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

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

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

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

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

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

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

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

Установка

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

Установка

# Install the required package for YOLO11
pip install ultralytics

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

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

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

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

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml  # creates 'yolo11n.mlpackage''

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

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

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

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

  • CoreML Tools: This guide includes instructions and examples to convert models from TensorFlow, PyTorch, and other libraries to Core ML.

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

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

Резюме

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

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

Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find plenty of valuable resources and insights there.

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

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

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

Установка

pip install ultralytics

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

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

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml

For further details, refer to the Exporting YOLO11 Models to CoreML section of our documentation.

В чем преимущества использования CoreML для развертывания моделей YOLO11?

CoreML provides numerous advantages for deploying Ultralytics YOLO11 models on Apple devices:

  • On-device Processing: Enables local model inference on devices, ensuring data privacy and minimizing latency.
  • Оптимизация производительности: Используй весь потенциал устройств CPU, GPU и Neural Engine, оптимизируя скорость и эффективность.
  • Простота интеграции: Обеспечивает бесшовную интеграцию с экосистемами Apple, включая iOS, macOS, watchOS и tvOS.
  • Универсальность: Поддерживает широкий спектр задач машинного обучения, таких как анализ изображений, обработка аудио и естественного языка, используя фреймворк CoreML .

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

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

Как только ты экспортируешь свою модель YOLO11 в формат CoreML , у тебя будет несколько вариантов развертывания:

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

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

Подробное руководство по развертыванию моделей CoreML ты найдешь в разделе " Варианты развертыванияCoreML ".

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

CoreML ensures optimized performance for Ultralytics YOLO11 models by utilizing various optimization techniques:

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

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

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

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

Бегущее умозаключение

from ultralytics import YOLO

coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'

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

📅 Создано 9 месяцев назад ✏️ Обновлено 1 месяц назад

Комментарии