Перейти к содержанию

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

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

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

CoreML

CoreML Обзор

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

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

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

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

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

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

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

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

  • Простота интеграции: Обеспечивает единый формат для различных типов моделей и удобный 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'

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

Аргумент Тип По умолчанию Описание
format str 'coreml' Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgsz int или tuple 640 Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для получения конкретных размеров.
half bool False Включает квантование FP16 (половина точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании.
int8 bool False Активирует квантование INT8, что еще больше сжимает модель и ускоряет вывод с минимальной потерей точности, в первую очередь для пограничных устройств.
nms bool False Добавляет не максимальное подавление (NMS), необходимое для точной и эффективной постобработки обнаружения.
batch int 1 Указывает размер пакетного вывода экспортной модели или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в predict режим.

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

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

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

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

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

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

Резюме

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

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

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как экспортировать модели 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

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

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

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

  • Обработка на устройстве: Обеспечивает локальный вывод модели на устройствах, гарантируя конфиденциальность данных и минимизируя задержки.
  • Оптимизация производительности: Использует весь потенциал устройств 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 обеспечивает оптимальную производительность Ultralytics YOLO11 моделей за счет использования различных методов оптимизации:

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

Более подробную информацию об оптимизации производительности можно найти в официальной документации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 .

📅 Создано 1 год назад ✏️ Обновлено 1 день назад

Комментарии