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#
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.
-
Машинное обучение на устройстве: Обеспечивает конфиденциальность данных и быстроту обработки, выполняя модели непосредственно на устройстве пользователя, что исключает необходимость в сетевом подключении.
-
Производительность и оптимизация: Использует 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Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'coreml' | Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions. |
dynamic | bool | False | Позволяет использовать динамические входные размеры, повышая гибкость при обработке изображений разных размеров. |
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 по экспорту.
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 у тебя есть несколько вариантов развертывания:
-
Развертывание на устройстве: Прямая интеграция моделей CoreML в твое приложение для повышения конфиденциальности и автономной функциональности. Это можно сделать следующим образом:
- Встроенные модели: Включены в пакет приложения, доступны сразу.
- Загружаемые модели: Извлекаются с сервера по мере необходимости, что позволяет уменьшить размер пакета приложения.
-
Облачное развертывание: Размещение моделей 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.