Безопасность корпоративного уровня: Соответствует ISO 27001 + SOC 2 Type I.

Link to this sectionЭкспорт CoreML для моделей YOLO26#

Apple оснащает все современные iPhone, iPad и Mac специализированным ИИ-процессором Neural Engine, а CoreML является поддерживаемым Ultralytics способом развертывания моделей на этих устройствах. Экспорт моделей Ultralytics YOLO26 в CoreML превращает обученную контрольную точку .pt в нативный формат .mlpackage, который выполняет все семь задач YOLO локально с низкой задержкой, без необходимости подключения к сети и выхода данных с устройства.

Запускай YOLO на Apple Neural Engine уже сегодня с помощью официальных мобильных приложений

Официальные Ultralytics YOLO iOS SDK и плагин Flutter позволяют запускать экспорт CoreML на Apple Neural Engine «из коробки» — обеспечивая инференс с камеры в реальном времени, предсказание для одного изображения и автоматическую загрузку моделей для всех семи задач YOLO26, включая Depth. Информацию о развертывании на NPU для Android см. в интеграции Qualcomm QNN.

Будущий формат Core AI от Apple

Apple представила новый фреймворк Core AI и формат .aimodel для поколения iOS 27 и macOS 27. Экспорт Ultralytics в Core AI запланирован на четвертый квартал 2026 года, но пока недоступен. CoreML остается поддерживаемым форматом для текущих релизов Ultralytics и обеспечения широкой совместимости с устройствами Apple.



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

Link to this sectionЧто такое CoreML?#

Apple CoreML deployment pipeline

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 для одного изображения и за 11,3 мс/кадр при использовании камеры в режиме реального времени; YOLO26n Depth занимает 5,5 мс для одного изображения и 16,5 мс/кадр в режиме камеры (см. таблицу и примечания ниже).
  • Без 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.2). В каждой ячейке указано общее время (препроцессинг + инференс + постпроцессинг, без учета аннотации) с разбивкой по этапам под ним. В iOS Vision выполняет масштабирование входных данных внутри запроса на инференс, поэтому препроцессинг отображается как 0, а его стоимость включена в инференс.

МодельЗадачаразмер
(пиксели)
CPU
.cpuOnly
(мс)
Neural Engine
.cpuAndNeuralEngine
(мс)
YOLO26nОбнаружение6409.1
0.0 / 9.1 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-segСегментация64012.3
0.0 / 12.1 / 0.2
4.8
0.0 / 4.5 / 0.3
YOLO26n-semСемантика1024121.8
0.0 / 21.0 / 0.8
12.1
0.0 / 11.3 / 0.8
YOLO26n-depthDepth64024.8
0.0 / 23.9 / 0.9
5.5
0.0 / 4.7 / 0.9
YOLO26n-clsКлассификация2242.2
0.0 / 2.2 / 0.0
2.0
0.0 / 2.0 / 0.0
YOLO26n-poseПоза64012.0
0.0 / 11.9 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-obbOBB102421.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 в режиме профилирования (оптимизированный нативный код). Стабильная работа камеры в реальном времени требует больше времени, так как включает конвейер захвата и масштабирования, а также тепловую стабилизацию: YOLO26n detect показывает 11,3 мс/кадр, а YOLO26n Depth — 16,5 мс/кадр в приложении камеры на том же устройстве — см. документацию по производительности 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 with INT8 weight quantization, matching the official app models
model.export(format="coreml", quantize=8)  # 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Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'coreml'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования (только для весов в CoreML): 16 (FP16), 8 (INT8), "w8a16" (веса INT8 с активациями FP16) или 32/не задано (FP32). Не заданные ML-программы NMS используют FP16 для предварительного просмотра в Xcode; передай 32, чтобы переопределить это. Заменяет устаревшие флаги half/int8.
nmsboolFalseВстраивает конвейер CoreML NMS. Только для моделей обнаружения (для других задач игнорируется с предупреждением); не требуется для YOLO26, где NMS не используется, но пригодится для более ранних моделей, таких как YOLO11.
dynamicboolFalseПозволяет использовать динамические размеры входных данных, повышая гибкость при обработке изображений с различными размерами.
batchint1Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: 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 только для проверки совместимости — таблица выше показывает, сколько это стоит.

Запуск модели CoreML из Python на Mac host (через Ultralytics или coremltools) следует тем же правилам: Ultralytics загружается с ComputeUnit.CPU_AND_NE (macOS 13+ с переходом на CPU_ONLY в старых версиях macOS), что позволяет выполнять инференс на Neural Engine (в ~3 раза быстрее, чем на CPU). Это также позволяет избежать текущего ограничения macOS, при котором использование стандартных ComputeUnit.ALL / CPU_AND_GPU, добавляющих путь компиляции GPU/MPSGraph, прерывает процесс с ошибкой Error: MLIR pass manager failed в coremltools 9.x.

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. Эти ресурсы охватывают детали:

Поставляй модель либо встроенной в бандл приложения (мгновенная доступность, идеально для моделей nano/small), либо загружаемой при первом запуске и кэшируемой (меньший размер бинарного файла, легкие обновления модели) — официальные приложения используют второй подход с релизными ассетами GitHub.

Link to this sectionРекомендуемый рабочий процесс#

  1. Обучай свою модель с помощью режима обучения Ultralytics или начни с официальных весов YOLO26
  2. Экспортируй с помощью model.export(format="coreml", quantize=8) на macOS или x86 Linux.
  3. Проверяй точность с помощью model.val() на Mac и профилируй с помощью отчета о производительности Xcode Core ML на целевом устройстве
  4. Развертывай с помощью 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. Добавь quantize=8, чтобы соответствовать официальным моделям приложения. Экспорт создает yolo26n.mlpackage ML Program, готовую для Xcode, iOS SDK или плагина Flutter.

Link to this sectionНужно ли мне nms=True при экспорте YOLO26?#

Нет. YOLO26 работает без NMS, поэтому экспортированный граф уже выдает финальные результаты обнаружения, а декодирование занимает значительно меньше миллисекунды. Опция nms=True существует для более ранних моделей обнаружения, таких как YOLO11: она встраивает конвейер CoreML NMS, чтобы твоему приложению не приходилось реализовывать подавление. Конвейеры CoreML NMS поддерживают только обнаружение объектов, поэтому nms=True игнорируется с предупреждением для других задач, таких как сегментация и определение позы.

Link to this sectionКакую точность использовать — FP16 или INT8?#

Официальные модели приложения Ultralytics поставляются в формате INT8, что минимизирует размер загрузки и обеспечивает скорость, указанную в таблице выше. quantize=16 (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 и включают полноценные пользовательские интерфейсы камеры в реальном времени — таблица измеренной производительности выше была создана именно с этим стеком.

Комментарии