跳转至内容

YOLO11 模型的 CoreML 导出

在 iPhone 和 Mac 等 Apple 设备上部署计算机视觉模型需要一种能够确保无缝性能的格式。



观看: 如何在 Apple 设备上导出 Ultralytics YOLO11 到 CoreML 以实现 2 倍快速推理 🚀

CoreML 导出格式允许您优化 Ultralytics YOLO11 模型,以便在 iOS 和 macOS 应用程序中实现高效的对象检测。在本指南中,我们将引导您完成将模型转换为 CoreML 格式的步骤,从而使您的模型更容易在 Apple 设备上表现良好。

CoreML

CoreML 概述

CoreML 是 Apple 的基础机器学习框架,它建立在 Accelerate、BNNS 和 Metal Performance Shaders 之上。它提供了一种可无缝集成到 iOS 应用程序中的机器学习模型格式,并支持图像分析、自然语言处理、音频转文本转换和声音分析等任务。

由于 CoreML 框架使用设备端计算,因此应用程序可以利用 Core ML,而无需网络连接或 API 调用。这意味着可以在用户设备本地执行模型推理。

CoreML 模型的主要特性

Apple 的 CoreML 框架为设备上的机器学习提供了强大的功能。以下是使 CoreML 成为开发人员强大工具的关键特性:

  • 全面的模型支持: 转换和运行来自流行的框架(如TensorFlow、PyTorch、scikit-learn、XGBoost和LibSVM)的模型。

CoreML 支持的模型

  • 设备端机器学习:通过直接在用户设备上执行模型,无需网络连接,确保数据隐私和快速处理。

  • 性能和优化: 利用设备的 CPU、GPU 和神经引擎,以最小的功耗和内存使用实现最佳性能。提供模型压缩和优化工具,同时保持准确性

  • 易于集成:为各种模型类型提供统一的格式,以及用户友好的 API,以便无缝集成到应用程序中。 通过 Vision 和 Natural Language 等框架支持特定领域的任务。

  • 高级功能: 包括用于个性化体验的设备上训练功能、用于交互式 ML 体验的异步预测以及模型检查和验证工具。

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安装所需软件包时,如果遇到任何困难,请查阅我们的常见问题指南,获取解决方案和技巧。

用法

在深入了解使用说明之前,请务必查看 Ultralytics 提供的 YOLO11 模型系列。这将帮助您为您的项目需求选择最合适的模型。

用法

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 inttuple 640 模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。
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),适用于 Apple 芯片的 MPS(device=mps)。

提示

导出到 CoreML 时,请确保使用 macOS 或 x86 Linux 机器。

有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出

部署导出的 YOLO11 CoreML 模型

在成功将您的 Ultralytics YOLO11 模型导出到 CoreML 后,下一个关键阶段是有效地部署这些模型。有关在各种环境中部署 CoreML 模型的详细指南,请查看以下资源:

  • CoreML工具: 本指南包含将模型从TensorFlow、PyTorch和其他库转换为Core ML的说明和示例。

  • ML 和视觉:一系列综合视频,涵盖使用和实施 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 为在 Apple 设备上部署 Ultralytics YOLO11 模型提供了许多优势:

  • 设备端处理:支持在设备上进行本地模型推理,确保数据隐私并最大限度地减少延迟。
  • 性能优化: 充分利用设备的 CPU、GPU 和神经引擎的全部潜力,优化速度和效率。
  • 易于集成:提供与 Apple 生态系统(包括 iOS、macOS、watchOS 和 tvOS)的无缝集成体验。
  • 多功能性: 使用 CoreML 框架,支持广泛的机器学习任务,如图像分析、音频处理和自然语言处理。

有关将您的 CoreML 模型集成到 iOS 应用程序中的更多详细信息,请查看将 Core ML 模型集成到您的应用程序中指南。

导出到 CoreML 的 YOLO11 模型有哪些部署选项?

将您的 YOLO11 模型导出为 CoreML 格式后,您有多个部署选项:

  1. 设备端部署:将 CoreML 模型直接集成到您的应用程序中,以增强隐私和离线功能。这可以通过以下方式完成:

    • 嵌入式模型: 包含在应用程序包中,可立即访问。
    • 已下载的模型: 根据需要从服务器获取,从而使应用程序包的大小更小。
  2. 基于云的部署: 在服务器上托管 CoreML 模型,并通过 API 请求访问它们。这种方法支持更轻松的更新,并且可以处理更复杂的模型。

有关部署 CoreML 模型的详细指南,请参阅CoreML 部署选项

CoreML 如何确保 YOLO11 模型获得优化的性能?

CoreML 通过利用各种优化技术,确保 Ultralytics YOLO11 模型在设备上实现优化的性能:

  • 硬件加速: 使用设备的 CPU、GPU 和神经引擎进行高效计算。
  • 模型压缩: 提供压缩模型的工具,以减少其占用空间而不影响准确性。
  • 自适应推理: 根据设备的功能调整推理,以保持速度和性能之间的平衡。

有关性能优化的更多信息,请访问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 导出指南的使用部分



📅 创建于 1 年前 ✏️ 更新于 24 天前

评论