Экспорт в 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 максимально эффективно.
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.
-
Расширенные функции: включает возможности обучения на устройстве для персонализации, асинхронные предсказания для интерактивного ML, а также инструменты для проверки и валидации моделей.
Варианты развертывания CoreML
Прежде чем мы перейдем к коду для экспорта моделей YOLO26 в формат CoreML, давай разберемся, где обычно используются модели CoreML.
CoreML предлагает различные варианты развертывания моделей машинного обучения, включая:
-
Развертывание на устройстве: этот метод напрямую интегрирует модели CoreML в твое приложение для iOS. Он особенно выгоден для обеспечения низкой задержки, повышенной конфиденциальности (поскольку данные остаются на устройстве) и автономной работы. Однако этот подход может быть ограничен аппаратными возможностями устройства, особенно для больших и сложных моделей, и может быть реализован двумя способами:
-
Встроенные модели: эти модели включены в пакет приложения и доступны немедленно. Они идеально подходят для небольших моделей, не требующих частого обновления.
-
Загружаемые модели: эти модели подгружаются с сервера по мере необходимости. Этот подход подходит для более крупных моделей или тех, которые нуждаются в регулярном обновлении. Это помогает уменьшить размер самого приложения.
-
-
Облачное развертывание: модели CoreML размещаются на серверах, и приложение iOS обращается к ним через API-запросы. Этот масштабируемый и гибкий вариант позволяет легко обновлять модели без выпуска новых версий приложения. Он идеально подходит для сложных моделей или крупномасштабных приложений, требующих регулярных обновлений. Однако для этого требуется подключение к интернету, что может вызвать проблемы с задержкой и безопасностью.
Экспорт моделей YOLO26 в CoreML
Экспорт YOLO26 в CoreML обеспечивает оптимизированную производительность машинного обучения на устройствах в экосистеме Apple, предлагая преимущества в эффективности, безопасности и бесшовной интеграции с платформами iOS, macOS, watchOS и tvOS.
Установка
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsДля получения подробных инструкций и рекомендаций по процессу установки ознакомься с нашим Руководством по установке YOLO26. Если при установке необходимых пакетов для YOLO26 у тебя возникнут трудности, обратись к нашему Руководству по распространенным проблемам за решениями и советами.
Использование
Прежде чем переходить к инструкциям по использованию, обязательно ознакомься с ассортиментом моделей YOLO26, предлагаемых Ultralytics. Это поможет тебе выбрать наиболее подходящую модель для требований твоего проекта.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo26n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo26n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'coreml' | Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров. |
dynamic | bool | False | Позволяет использовать динамические размеры входных данных, что повышает гибкость при обработке изображений разных размеров. |
half | bool | False | Включает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя логический вывод на поддерживаемом оборудовании. |
int8 | bool | False | Активирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), необходимое для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Указывает размер пакетного инференса для экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для процессоров Apple (device=mps). |
Пожалуйста, убедись, что при экспорте в CoreML ты используешь машину с macOS или x86 Linux.
Для получения более подробной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO26 CoreML
Успешно экспортировав модели Ultralytics YOLO26 в CoreML, следующим критическим этапом станет эффективное развертывание этих моделей. Для получения подробных инструкций по развертыванию моделей CoreML в различных средах ознакомься с этими ресурсами:
-
CoreML Tools: это руководство содержит инструкции и примеры конвертации моделей из TensorFlow, PyTorch и других библиотек в Core ML.
-
ML and Vision: коллекция подробных видеороликов, охватывающих различные аспекты использования и реализации моделей CoreML.
-
Интеграция модели Core ML в твое приложение: исчерпывающее руководство по интеграции модели CoreML в приложение iOS, описывающее шаги от подготовки модели до ее внедрения в приложение для различных функций.
Резюме
В этом руководстве мы разобрали, как экспортировать модели Ultralytics YOLO26 в формат CoreML. Следуя шагам, описанным в этом руководстве, ты сможешь обеспечить максимальную совместимость и производительность при экспорте моделей YOLO26 в CoreML.
Для получения дополнительной информации по использованию посети официальную документацию CoreML.
Также, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу страницу руководств по интеграции. Там ты найдешь множество полезных ресурсов и идей.
Часто задаваемые вопросы (FAQ)
Как экспортировать модели 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 нашей документации.
Каковы преимущества использования CoreML для развертывания моделей YOLO26?
CoreML предоставляет множество преимуществ для развертывания моделей Ultralytics YOLO26 на устройствах Apple:
- Обработка на устройстве: обеспечивает локальный логический вывод модели на устройствах, гарантируя конфиденциальность данных и минимизируя задержку.
- Оптимизация производительности: использует весь потенциал CPU, GPU и Neural Engine устройства, оптимизируя как скорость, так и эффективность.
- Простота интеграции: предлагает бесшовную интеграцию с экосистемами Apple, включая iOS, macOS, watchOS и tvOS.
- Универсальность: поддерживает широкий спектр задач машинного обучения, таких как анализ изображений, обработка аудио и обработка естественного языка с использованием фреймворка CoreML.
Для получения дополнительной информации об интеграции твоей модели CoreML в приложение для iOS ознакомься с руководством Интеграция модели Core ML в твое приложение.
Какие существуют варианты развертывания для моделей YOLO26, экспортированных в CoreML?
После того как ты экспортируешь свою модель YOLO26 в формат CoreML, у тебя будет несколько вариантов развертывания:
-
Развертывание на устройстве: напрямую интегрируй модели CoreML в свое приложение для повышенной конфиденциальности и автономной работы. Это можно сделать следующим образом:
- Встроенные модели: включены в пакет приложения, доступны немедленно.
- Загружаемые модели: подгружаются с сервера по мере необходимости, что уменьшает размер приложения.
-
Облачное развертывание: размещай модели CoreML на серверах и обращайся к ним через API-запросы. Этот подход поддерживает более простое обновление и позволяет работать с более сложными моделями.
Для получения подробных инструкций по развертыванию моделей CoreML обратись к разделу Варианты развертывания CoreML.
Как CoreML обеспечивает оптимизированную производительность моделей YOLO26?
CoreML обеспечивает оптимизированную производительность моделей Ultralytics YOLO26 за счет использования различных методов оптимизации:
- Аппаратное ускорение: использует CPU, GPU и Neural Engine устройства для эффективных вычислений.
- Сжатие моделей: предоставляет инструменты для сжатия моделей, чтобы уменьшить их размер без ущерба для точности.
- Адаптивный логический вывод: регулирует вычисления в зависимости от возможностей устройства, чтобы поддерживать баланс между скоростью и производительностью.
Для получения дополнительной информации об оптимизации производительности посети официальную документацию CoreML.
Могу ли я запускать логический вывод непосредственно с экспортированной моделью CoreML?
Да, ты можешь запускать логический вывод напрямую, используя экспортированную модель CoreML. Ниже приведены команды для Python и CLI:
from ultralytics import YOLO
coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")Для получения дополнительной информации обратись к разделу Использование руководства по экспорту CoreML.