CoreML Экспорт для моделей YOLO11
Развертывание моделей компьютерного зрения на устройствах Apple, таких как iPhone и Mac, требует формата, обеспечивающего бесперебойную работу.
Формат экспорта CoreML позволяет оптимизировать ваши Ultralytics YOLO11 модели для эффективного обнаружения объектов в приложениях iOS и macOS. В этом руководстве мы расскажем вам о том, как конвертировать модели в формат CoreML , чтобы облегчить работу с ними на устройствах Apple.
CoreML
CoreML это основополагающий фреймворк Apple для машинного обучения, созданный на базе Accelerate, BNNS и Metal Performance Shaders. Он предоставляет формат моделей машинного обучения, который легко интегрируется в приложения iOS и поддерживает такие задачи, как анализ изображений, обработка естественного языка, преобразование аудио в текст и анализ звука.
Приложения могут использовать преимущества Core ML без необходимости подключения к сети или вызовов API, поскольку фреймворк Core ML работает с использованием вычислений на устройстве. Это означает, что вывод модели может быть выполнен локально на устройстве пользователя.
Ключевые особенности моделей CoreML
Фреймворк CoreML от Apple предлагает широкие возможности для машинного обучения на устройствах. Вот ключевые особенности, которые делают CoreML мощным инструментом для разработчиков:
- Всесторонняя поддержка моделей: Конвертирует и запускает модели из таких популярных фреймворков, как TensorFlow, PyTorchscikit-learn, XGBoost и LibSVM.
-
Машинное обучение на устройстве: Обеспечивает конфиденциальность данных и быструю обработку благодаря выполнению моделей непосредственно на устройстве пользователя, исключая необходимость подключения к сети.
-
Производительность и оптимизация: Использует возможности устройств 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.
Установка
Чтобы установить необходимый пакет, выполните команду:
Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомьтесь с нашим руководством по установке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")
Аргументы экспорта
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
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
установлен пакет. Вы можете установить его, используя:
Далее вы можете экспортировать модель с помощью следующих команд Python или CLI :
Использование
Более подробную информацию см. в разделе "Экспорт моделей 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 у вас есть несколько вариантов развертывания:
-
Развертывание на устройстве: Прямая интеграция моделей CoreML в ваше приложение для повышения конфиденциальности и автономной функциональности. Это можно сделать как:
- Встроенные модели: Включены в пакет приложений и доступны сразу.
- Загруженные модели: Загружаются с сервера по мере необходимости, что позволяет уменьшить размер пакета приложения.
-
Развертывание в облаке: Разместите модели CoreML на серверах и получайте к ним доступ через API-запросы. Такой подход обеспечивает более легкое обновление и позволяет работать с более сложными моделями.
Подробное руководство по развертыванию моделей CoreML см. в разделе "Варианты развертыванияCoreML ".
Как CoreML обеспечивает оптимальную производительность моделей YOLO11 ?
CoreML обеспечивает оптимальную производительность Ultralytics YOLO11 моделей за счет использования различных методов оптимизации:
- Аппаратное ускорение: Для эффективных вычислений используется CPU, GPU и нейронный движок устройства.
- Сжатие моделей: Предоставляет инструменты для сжатия моделей с целью уменьшения их площади без ущерба для точности.
- Адаптивное умозаключение: Настраивает выводы в зависимости от возможностей устройства, чтобы сохранить баланс между скоростью и производительностью.
Более подробную информацию об оптимизации производительности можно найти в официальной документацииCoreML .
Могу ли я проводить расчеты непосредственно с экспортированной моделью CoreML ?
Да, вы можете выполнить вывод непосредственно с помощью экспортированной модели CoreML . Ниже приведены команды для Python и CLI:
Выполнение умозаключений
Дополнительные сведения см. в разделе "Использование" руководства по экспорту CoreML .