【MAC】YOLOv8/11/12 转换为 CoreML 格式并实现实时目标检测

发布于:2025-05-30 ⋅ 阅读:(37) ⋅ 点赞:(0)

在本文中,我们将详细介绍如何将 YOLOv8/11/12 模型转换为 CoreML 格式,并使用该模型在摄像头实时检测中进行目标检测。主要适用于M1、M2、M3、M4芯片的产品。
以下教程在YOLOv8/11/12均适用,此处就以 YOLOv11 举例

目录

前提条件

在开始之前,确保您已经完成以下步骤:

  1. 安装 Python 3.12,并创建一个 Conda 环境:

    conda create --name yolocoreml python=3.12
    conda activate yolocoreml
    
  2. 安装所需的依赖项:

    pip install ultralytics coremltools pillow numpy opencv-python
    
  3. 确保您已经有了 YOLOv11 模型(例如 yolo11n.pt)用于转换。

YOLOv8/11/12 转换为 CoreML

我们可以使用以下 Python 脚本将 YOLOv8/11/12 模型转换为 CoreML 格式。convertCoreml.py 脚本完成了这个任务:

from ultralytics import YOLO

# 加载 YOLOv11 模型
model = YOLO("yolo11n.pt")

# 将模型导出为 CoreML 格式
model.export(format="coreml")  # 创建 'yolo11n.mlpackage' 文件

这段代码加载 YOLOv11 模型(.pt 格式)并将其导出为 CoreML 格式(.mlpackage),可以在苹果设备上进行推理。

实时目标检测

CoreML 模型准备好后,我们可以使用摄像头视频流来进行实时目标检测。yolocoreml_demo.py 脚本通过在每一帧上进行推理来实现这一目标。

演示功能:

  • 实时目标检测,直接从摄像头获取视频流。
  • 根据置信度和交并比(IoU)过滤检测框,增加准确度。
  • 为不同类别的目标框使用不同的颜色进行标注。

下面是 yolocoreml_demo.py 脚本的核心部分:

import cv2
import numpy as np
from ultralytics import YOLO
import argparse
from torchvision.ops import box_iou

# 解析命令行参数
def parse_args():
    parser = argparse.ArgumentParser(description="YOLO 目标检测")
    parser.add_argument('--model', type=str, default

网站公告

今日签到

点亮在社区的每一天
去签到