Экспорт CoreML для моделей YOLO11
Развертывание моделей компьютерного зрения на устройствах Apple, таких как iPhone и Mac, требует формата, обеспечивающего бесперебойную работу.
Смотреть: Как экспортировать Ultralytics YOLO11 в CoreML для 2-кратного ускорения инференса на устройствах Apple 🚀
Формат экспорта 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, PyTorch, scikit-learn, XGBoost и LibSVM.
-
Машинное обучение на устройстве: Обеспечивает конфиденциальность данных и быструю обработку, выполняя модели непосредственно на устройстве пользователя, устраняя необходимость в сетевом подключении.
-
Производительность и оптимизация: Использует CPU, GPU и Neural Engine устройства для оптимальной производительности с минимальным энергопотреблением и использованием памяти. Предлагает инструменты для сжатия и оптимизации моделей с сохранением точности.
-
Простота интеграции: Предоставляет унифицированный формат для различных типов моделей и удобный API для простой интеграции в приложения. Поддерживает задачи, специфичные для предметной области, с помощью таких фреймворков, как Vision и Natural Language.
-
Расширенные функции: Включает возможности обучения на устройстве для персонализированного опыта, асинхронные прогнозы для интерактивного машинного обучения, а также инструменты проверки и валидации моделей.
Варианты развертывания 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 |
Добавляет Non-Maximum Suppression (NMS), необходимую для точной и эффективной постобработки обнаружения. |
batch |
int |
1 |
Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
device |
str |
None |
Указывает устройство для экспорта: GPU (device=0 ), CPU (device=cpu ), MPS для Apple silicon (device=mps ). |
Совет
При экспорте в CoreML убедитесь, что вы используете macOS или x86 Linux машину.
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO11 CoreML
После успешного экспорта ваших моделей Ultralytics YOLO11 в CoreML, следующим важным этапом является эффективное развертывание этих моделей. Подробные инструкции по развертыванию моделей CoreML в различных средах см. в следующих ресурсах:
-
Инструменты CoreML: Это руководство содержит инструкции и примеры для преобразования моделей из TensorFlow, PyTorch и других библиотек в Core ML.
-
ML и Vision: Коллекция подробных видеороликов, охватывающих различные аспекты использования и внедрения моделей CoreML.
-
Интеграция модели Core 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 у вас есть несколько вариантов развертывания:
-
Развертывание на устройстве: Непосредственно интегрируйте модели CoreML в свое приложение для повышения конфиденциальности и автономной функциональности. Это можно сделать следующим образом:
- Встроенные модели: Включены в пакет приложения, доступны немедленно.
- Загружаемые модели: Получаются с сервера по мере необходимости, что позволяет уменьшить размер пакета приложения.
-
Развертывание в облаке: Размещайте модели CoreML на серверах и получайте к ним доступ через API-запросы. Такой подход упрощает обновления и позволяет обрабатывать более сложные модели.
Подробные инструкции по развертыванию моделей CoreML см. в разделе Варианты развертывания CoreML.
Как CoreML обеспечивает оптимизированную производительность для моделей YOLO11?
CoreML обеспечивает оптимизированную производительность для моделей Ultralytics YOLO11 за счет использования различных методов оптимизации:
- Аппаратное ускорение: Использует 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.