Link to this sectionЭкспорт CoreML для моделей YOLO26#
Apple устанавливает специализированные AI-чипы — Neural Engine — во все современные iPhone, iPad и Mac, а CoreML — это единственный способ их программирования. Экспорт моделей Ultralytics YOLO26 в CoreML превращает обученную контрольную точку .pt в нативный .mlpackage, который выполняет все шесть задач YOLO на устройстве за миллисекунды, без необходимости подключения к сети и передачи данных за пределы устройства.
Официальный iOS SDK Ultralytics YOLO и плагин Flutter запускают экспорт CoreML на Apple Neural Engine «из коробки» — поддерживаются инференс камеры в реальном времени, предсказание по одному изображению и автоматическая загрузка моделей для всех шести задач YOLO26. Для развертывания на NPU Android ознакомься с интеграцией Qualcomm QNN.
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
Link to this sectionЧто такое CoreML?#
CoreML (в стиле Apple «Core ML») — это фреймворк Apple для машинного обучения на устройстве. Он загружает модели в современном формате ML Program — это пакет .mlpackage, который создает экспортер Ultralytics, — и распределяет их между CPU, GPU и Apple Neural Engine (ANE), специализированным NPU в каждом чипе Apple Silicon. Поскольку все выполняется локально, инференс работает офлайн, не добавляет задержек сети и сохраняет пользовательские данные на устройстве.
CoreML напрямую интегрируется с фреймворком Vision от Apple, который управляет масштабированием и ориентацией изображений перед их подачей в модель — именно так iOS SDK Ultralytics передает кадры с камеры в YOLO практически с нулевыми затратами на предобработку.
Link to this sectionЗачем экспортировать YOLO26 в CoreML?#
- Скорость Neural Engine: детекция YOLO26n выполняется от начала до конца за 3.8 мс на iPhone 17 Pro для отдельных изображений и ~16 мс/кадр при непрерывном использовании камеры в реальном времени (см. таблицу и примечания ниже) — это комфортный режим реального времени с запасом производительности для работы твоего приложения.
- Без NMS по архитектуре: YOLO26 является end-to-end решением, поэтому для экспортированного графа не требуется конвейер NMS, а декодирование занимает менее миллисекунды. Более старые модели, такие как YOLO11, могут включать конвейер CoreML NMS с помощью
nms=True. - Приватно и офлайн: все вычисления остаются на устройстве — никаких обращений к облаку, никаких API-ключей, полная конфиденциальность данных.
- Один экспорт — вся экосистема: один и тот же файл
.mlpackageработает на iOS, iPadOS, macOS, watchOS, tvOS и visionOS, а также поддерживает официальный iOS SDK и плагин Flutter от Ultralytics.
Link to this sectionИзмеренная производительность#
Инференс от начала до конца для одного изображения для официальных моделей YOLO26n INT8 CoreML на iPhone 17 Pro (Apple A19, iOS 26.5). Каждая ячейка показывает общее время (предобработка + инференс + постобработка, исключая аннотирование) с разбивкой по этапам ниже. В iOS Vision выполняет масштабирование входных данных внутри запроса на инференс, поэтому предобработка указана как 0, а ее стоимость включена в инференс.
| Модель | Задача | размер (пиксели) | CPU.cpuOnly(мс) | Neural Engine.cpuAndNeuralEngine(мс) |
|---|---|---|---|---|
| YOLO26n | Обнаружение | 640 | 9.1 0.0 / 9.1 / 0.0 | 3.8 0.0 / 3.8 / 0.0 |
| YOLO26n-seg | Сегментация | 640 | 12.3 0.0 / 12.1 / 0.2 | 4.8 0.0 / 4.5 / 0.3 |
| YOLO26n-sem | Семантика | 10241 | 21.8 0.0 / 21.0 / 0.8 | 12.1 0.0 / 11.3 / 0.8 |
| YOLO26n-cls | Классификация | 224 | 2.2 0.0 / 2.2 / 0.0 | 2.0 0.0 / 2.0 / 0.0 |
| YOLO26n-pose | Поза | 640 | 12.0 0.0 / 11.9 / 0.0 | 3.8 0.0 / 3.8 / 0.0 |
| YOLO26n-obb | OBB | 1024 | 21.7 0.0 / 21.7 / 0.0 | 7.2 0.0 / 7.2 / 0.0 |
- 1 Экспорт семантического CoreML встраивает ArgMax в граф и возвращает компактную карту классов в полном разрешении (
[1, 1024, 1024]) вместо float-логитов, поэтому постобработка представляет собой цветовое сканирование длительностью менее миллисекунды, а маски отображаются с высокой четкостью пикселей. - Значения скорости — это задержка при обработке одного изображения — среднее арифметическое 15 запусков после 3 прогревочных прогонов на bus.jpg, измеренное с помощью пошагового тайминга iOS SDK через инструмент тестирования Flutter plugin в режиме профилирования (оптимизированный нативный код). Постоянная работа камеры в реальном времени занимает больше времени (добавление рамок к каждому кадру и температурная стабилизация): YOLO26n detect измеряется примерно в 16 мс/кадр в приложении живой камеры на том же устройстве — см. документацию по производительности iOS SDK для профилирования в установившемся режиме.
- Соответствующая таблица для CPU/GPU/NPU Snapdragon находится в разделе интеграции Qualcomm QNN.
Link to this sectionЭкспорт моделей YOLO26 в CoreML#
Link to this sectionУстановка#
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsКонвертер coremltools устанавливается автоматически при первом экспорте. Экспорт работает на macOS или x86 Linux; подробные инструкции и лучшие практики смотри в нашем руководстве по установке и руководстве по распространенным проблемам.
Link to this sectionИспользование#
Формат CoreML поддерживает режимы Экспорт, Предсказание и Валидация. Инференс и валидация с CoreML работают только на macOS. Экспортируй свою модель, а затем загрузи ее для выполнения инференса или проверки точности.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export to CoreML (FP16 by default); int8=True matches the official app models
model.export(format="coreml", int8=True) # creates 'yolo26n.mlpackage'from ultralytics import YOLO
# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported CoreML model (macOS)
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 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
half | bool | False | Включает квантование весов FP16, уменьшая размер модели вдвое с незначительным влиянием на точность — это хороший выбор по умолчанию для Neural Engine. |
int8 | bool | False | Включает квантование весов INT8 для самых маленьких моделей; официальные модели приложений Ultralytics поставляются в формате INT8. |
nms | bool | False | Встраивает конвейер CoreML NMS. Не требуется для YOLO26, работающей без NMS; используй для более ранних моделей, таких как YOLO11. |
dynamic | bool | False | Позволяет использовать динамические размеры входных данных, повышая гибкость при обработке изображений с различными размерами. |
batch | int | 1 | Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps). |
Для получения дополнительной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Link to this sectionНацеливание на Neural Engine#
CoreML выбирает оборудование через MLModelConfiguration.computeUnits. iOS SDK Ultralytics по умолчанию использует .cpuAndNeuralEngine на iOS 16+ вместо .all: в приложении камеры в реальном времени GPU уже занят композитингом превью и оверлеев, поэтому исключение его из работы позволяет избежать конфликтов и джиттера времени кадра, пока ANE выполняет основную работу. Выбирай .cpuOnly только для проверки совместимости — таблица выше показывает, сколько это стоит.
Link to this sectionРазвертывание экспортированных моделей YOLO26 CoreML#
Самый быстрый путь — это официальный iOS SDK Ultralytics YOLO, тот же пакет Swift, на котором работают приложение Ultralytics для iOS и плагин Flutter. Он автоматически распознает имена официальных моделей, загружает и кэширует .mlpackage и возвращает полностью декодированные результаты:
import UltralyticsYOLO
// Loads the official INT8 model (downloaded and cached on first use), then runs inference
let yolo = YOLO("yolo26n", task: .detect) { result in
if case .success(let model) = result {
let results = model(uiImage) // boxes, labels, confidences, timing
}
}Для приложений с камерой используй готовый YOLOView из SDK для инференса в реальном времени с нативными оверлеями или используй плагин Flutter для кроссплатформенных приложений, использующих одну кодовую базу с Android.
Интегрировать «сырой» файл .mlpackage самостоятельно также несложно с помощью стека Apple — загрузи его через MLModel, оберни в VNCoreMLRequest и передавай изображения через VNImageRequestHandler. Эти ресурсы охватывают детали:
- Интеграция модели Core ML в твое приложение: руководство Apple по объединению и вызову модели CoreML.
- CoreML Tools: справочник по конвертации, квантованию и оптимизации для инструментария
coremltools, который обеспечивает этот экспорт. - Отчеты о производительности Xcode Core ML: профилирование размещения слоев на устройстве и задержек для твоей конкретной модели и устройства.
Поставляй модель либо встроенной в бандл приложения (мгновенная доступность, идеально для моделей nano/small), либо загружаемой при первом запуске и кэшируемой (меньший размер бинарного файла, легкие обновления модели) — официальные приложения используют второй подход с релизными ассетами GitHub.
Link to this sectionРекомендуемый рабочий процесс#
- Обучай свою модель с помощью режима обучения Ultralytics или начни с официальных весов YOLO26
- Экспортируй с помощью
model.export(format="coreml", int8=True)на macOS или x86 Linux - Проверяй точность с помощью
model.val()на Mac и профилируй с помощью отчета о производительности Xcode Core ML на целевом устройстве - Развертывай с помощью iOS SDK, плагина Flutter или собственной интеграции Vision, нацеливаясь на
.cpuAndNeuralEngine
Link to this sectionРезюме#
В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO26 в формат .mlpackage для CoreML, квантовать их для Apple Neural Engine и развертывать с задержками в считанные миллисекунды — через официальный iOS SDK и плагин Flutter или через собственную интеграцию Vision. Для других целей развертывания просмотри страницу руководства по интеграции и сравни форматы с режимом Benchmark.
Link to this sectionFAQ#
Link to this sectionКак экспортировать модели YOLO26 в формат CoreML?#
Запусти model.export(format="coreml") в Python или yolo export model=yolo26n.pt format=coreml из CLI на macOS или x86 Linux. Добавь int8=True, чтобы соответствовать официальным моделям приложений. Экспорт создает программу yolo26n.mlpackage, готовую для Xcode, iOS SDK или плагина Flutter.
Link to this sectionНужно ли мне nms=True при экспорте YOLO26?#
Нет. YOLO26 работает без NMS от начала до конца, поэтому экспортированный граф уже выдает финальные детекции, а затраты на декодирование составляют гораздо меньше миллисекунды. Опция nms=True существует для более ранних моделей, таких как YOLO11, где она встраивает конвейер CoreML NMS, чтобы твоему приложению не пришлось реализовывать подавление.
Link to this sectionКакую точность использовать — FP16 или INT8?#
Официальные модели приложений Ultralytics поставляются в INT8, что минимизирует размер загрузки и обеспечивает скорость, указанную в таблице выше. half=True (FP16) — это консервативная альтернатива практически без потери точности. Проверь свой точный экспорт с помощью model.val() на Mac перед поставкой.
Link to this sectionКак убедиться, что инференс выполняется на Neural Engine?#
Установи MLModelConfiguration.computeUnits = .cpuAndNeuralEngine (по умолчанию в iOS SDK на iOS 16+). Избегай .all в приложениях с камерой — GPU занят композитингом превью, и планирование инференса там вызывает джиттер времени кадра. Подтверди размещение с помощью отчета о производительности Xcode Core ML.
Link to this sectionМогу ли я запускать и проверять модели CoreML с помощью Ultralytics CLI?#
Да, на macOS: yolo predict model=yolo26n.mlpackage source=image.jpg и yolo val model=yolo26n.mlpackage data=coco8.yaml работают так же, как и с любым другим форматом. Выполнение CoreML требует оборудования Apple, поэтому эти режимы недоступны на Linux и Windows.
Link to this sectionКакой самый быстрый способ запустить YOLO26 в приложении iOS или Flutter?#
Используй официальный iOS SDK Ultralytics YOLO (Swift Package) или плагин Flutter. Оба варианта загружают официальные модели по имени с автоматической загрузкой и кэшированием, запускают их на Neural Engine и включают полноценные пользовательские интерфейсы камеры в реальном времени — таблица измеренной производительности выше была создана именно с этим стеком.