跳至内容

CoreML 导出YOLO11 模型

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

CoreML 导出格式可以优化您的 Ultralytics YOLO11模型,以便在iOS 和 macOS 应用程序中高效检测对象。在本指南中,我们将指导您完成将模型转换为CoreML 格式的步骤,使您的模型更容易在苹果设备上良好运行。

CoreML

CoreML 概述

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

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

CoreML 机型的主要特点

Apple 的CoreML 框架为设备上的机器学习提供了强大的功能。以下是CoreML 成为开发者强大工具的主要功能:

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

CoreML 支持的机型

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

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

  • 易于集成:为各种类型的模型提供统一格式,并提供用户友好的应用程序接口,可无缝集成到应用程序中。通过视觉和自然语言等框架支持特定领域的任务。

  • 高级功能:包括用于个性化体验的设备上培训功能、用于交互式 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 模式。

有关导出过程的更多详情,请访问Ultralytics 有关导出的文档页面

部署导出的YOLO11 CoreML 模型

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

摘要

在本指南中,我们介绍了如何将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 为在苹果设备上部署 Ultralytics YOLO11在苹果设备上部署

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

有关将CoreML 模型集成到iOS 应用程序的详细信息,请查看将核心 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 年前 ✏️已更新 1 天前

评论