Mac M 系列芯片 YOLOv8 部署教程(CPU/Metal 后端一键安装)

在 Mac M 系列芯片(Apple Silicon/ARM 架构)上部署 YOLOv8,有一些注意事项:PyTorch 需要安装 ARM 原生版本,推理可利用 Metal 后端加速 CPU。本文教你一步步完成环境配置、模型下载、依赖安装和验证推理。


1️⃣ 环境准备

  1. 操作系统:macOS(Apple M 系列芯片,ARM 架构)

  2. Python:推荐 3.9 或 3.10

  3. 包管理:安装 Miniforge 或 Miniconda(ARM 原生版本)

  4. 工具:Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install wget

2️⃣ 手动下载模型和测试图片

创建目录并下载模型、测试图片:

mkdir -p ~/yolo/models
mkdir -p ~/yolo/images# 下载 YOLOv8n 模型
wget -O ~/yolo/models/yolov8n.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt# 下载测试图片
wget -O ~/yolo/images/bus.jpg https://github.com/ultralytics/assets/raw/main/bus.jpg

注:如果目录或文件已存在,可跳过下载。


3️⃣ 一键部署脚本(Mac M 系列)

保存为 deploy-yolov8-mac.sh,直接执行即可完成环境安装和验证:

#!/bin/bashYOLO_DIR="$HOME/yolo"
MODEL_PATH="$YOLO_DIR/models/yolov8n.pt"
IMAGE_PATH="$YOLO_DIR/images/bus.jpg"# 创建目录
mkdir -p "$YOLO_DIR/models"
mkdir -p "$YOLO_DIR/images"# 下载模型和图片(如不存在)
[ ! -f "$MODEL_PATH" ] && wget -O "$MODEL_PATH" https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
[ ! -f "$IMAGE_PATH" ] && wget -O "$IMAGE_PATH" https://github.com/ultralytics/assets/raw/main/bus.jpg# 配置 conda 环境
ENV_NAME="yolov8-mac"
PYTHON_VER="3.9"
conda create -n $ENV_NAME python=$PYTHON_VER -y
source ~/miniforge3/etc/profile.d/conda.sh
conda activate $ENV_NAME# 安装依赖
pip install -U pip setuptools wheel
pip install torch torchvision torchaudio
pip install ultralytics onnxruntime-macos tensorboard wandb# 验证安装
yolo predict model="$MODEL_PATH" source="$IMAGE_PATH"echo "部署完成!请在 runs/predict/ 查看检测结果 🎉"

执行脚本:

chmod +x deploy-yolov8-mac.sh
./deploy-yolov8-mac.sh

4️⃣ 部署流程图(文本示意)

创建目录 ~/yolo│├── 下载模型 yolov8n.pt│└── 下载测试图片 bus.jpg│创建 Conda 环境│
安装 PyTorch + YOLOv8 (Apple Silicon/Metal)│验证安装│┌─────────┴─────────┐│                   │检测结果生成?         检查依赖或路径│Yes│部署成功 🎉

说明:Mac M 系列使用 Metal 后端加速 CPU 推理,无需 CUDA GPU。


5️⃣ CPU/Metal 后端说明

步骤Mac M 系列 (ARM/Metal)说明
Python 环境3.9 (Conda)推荐 ARM 原生
CUDA 驱动不需要Metal 后端加速
PyTorch 版本ARM 原生高效利用 M 系列 CPU/GPU
YOLOv8 安装pip 安装 ultralytics包含推理功能
模型 & 图片手动或脚本下载均可可复用
推理速度CPU + Metal 加速快于纯 CPU
验证步骤yolo predict model=MODEL_PATH source=IMAGE_PATHCLI 统一

6️⃣ 总结

  • Mac M 系列部署 YOLOv8 不需要 CUDA,直接安装 ARM 原生 PyTorch + Metal 后端即可

  • 可以使用脚本一键完成环境配置、依赖安装和推理验证

  • 流程简单,适合团队成员直接使用

  • 结果保存在 runs/predict/ 目录,方便查看


结果图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98684.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫实战:研究Units模块,构建气象数据采集和分析系统

1. 引言 1.1 研究背景 随着信息技术的飞速发展,互联网已成为全球最大的信息库,涵盖气象、金融、医疗、农业等多个领域的海量数据。这些数据蕴含着巨大的潜在价值,如何有效获取并深入分析这些数据成为当下研究的热点。Python 作为一种功能强大的编程语言,凭借其丰富的库资…

网页设计模板 HTML源码网站模板下载

互联网已成为现代社会不可或缺的一部分,网站则是连接线上与线下世界的桥梁。无论是用于展示个人作品集、推广商业产品还是提供公共服务信息,一个设计精良且功能完善的网站都能发挥巨大作用。然而,传统的手工编码方式不仅耗时费力,…

Flink KeyedProcessFunction为什么能为每个key定义State和Timer?

问题描述 一个常见的开窗逻辑(12H 或者 500条): import org.apache.flink.api.common.state.ValueState; import org.apache.flink.api.common.state.ValueStateDescriptor; import org.apache.flink.api.common.typeinfo.Types; import or…

【C++】模版初阶---函数模版、类模版

🌟个人主页:第七序章 🌈专栏系列:C++ 目录 ❄️前言: 🌈1.泛型编程: 🌈2.函数模板 🍭2.1函数模板概念 🍭2.2函数模板格式 &am…

查找算法(Java)

目录 一.定义 二.分类 三.线性查找 原理: 思路分析 代码实现 例题实践 1.两数之和 方法一:暴力穷举法 思路分析 代码实现 方法二:创建哈希表 思路分析 代码实现 2.移动零 思路分析 代码实现 四.二分查找 原理: …

计算机网络--四层模型,IP地址和MAC地址

四层模型:分别是应用层,传输层,网络层和链路层。应用层:提供了应用程序之间相互通信的接口,允许用户访问网络服务。这一层定义了应用程序如何与底层网络进行交互。例如HTTP协议。传输层:它处理数据的分段、…

解析、创建Excel文件的开源库OpenXLSX介绍

OpenXLSX是一个C库,用于读取、写入、创建和修改.xlsx格式的Microsoft Excel文件,源码地址:https://github.com/troldal/OpenXLSX ,License为BSD-3-Clause,可在Windows、Linux、MaCOS平台上使用。最新发布版本为v0.3.2&…

【C++】C++11 篇二

【C】C11 篇二前言移动构造函数移动赋值运算符重载类成员变量初始化 (缺省值出自C11强制生成默认函数的关键字default:禁止生成默认函数的关键字delete:继承和多态中的final与override关键字(出自C11可变参数模板递归函数方式展开参数包逗号表达式展开参…

构建Python环境的几种工具

本文主要介绍如何构建Python环境来处理不同的工作。 1.常用的构建Python环境的工具 ①venv(内置模块):Python 3.3 内置标准库模块,无需额外安装。 ②virtualenv:venv的前身,功能更强大且支持旧版Python。 ③conda:来自 Anaconda 或 Miniconda。不仅能…

c#项目编译时外部依赖文件的同步问题

很多场景因为资源文件太多或太大无法放到资源里面或者是依赖的dll文件,需要编译时同步到bin\debug或bin\release下的,这里面要修改工程文件代码实现。 比如,我把这个项目依赖的dll和附加文件放到ref_dll文件夹里面,希望编译的时候…

数学建模常用算法-模拟退火算法

一、模拟退火算法模拟退火的灵感来源于物理中的 “退火过程”—— 将金属加热到高温后,缓慢冷却,金属原子会在热能作用下自由运动,逐渐形成能量最低的稳定结构。算法将这一过程抽象为数学模型:“温度 T”:对应物理中的…

架构很简单:业务架构图

缘起业务架构是一个复杂的体系,如何更简单的表达,并能使用起来呢?所谓:大道至简。基于此,这篇文章就开始了。业务是一切架构的开始,如果没有业务,架构又有什么作用呢?所以做架构首先…

【前端埋点】纯前端实现 A/B Test

“纯前端实现 A/B Test”,意思就是 没有后端分流、也不依赖流量网关,那么只能靠前端逻辑来做“流量切分”。 🎯 目标 80% 的用户 → A 页面20% 的用户 → B 页面且要保证 同一个用户每次访问结果一致(否则用户刷新页面时 A/B 会跳…

Day22_【机器学习—集成学习(3)—Boosting—Adaboost算法】

Adaptive Boosting(自适应提升)是基于 Boosting思想实现的一种集成学习算法,核心思想是通过逐步提高那些被前一步分类错误的样本的权重来训练一个强分类器。一、Adaboost算法直线相当于一个弱学习器,正确的数据权重减小,错误的数据权重增加二…

C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法

C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法一、传值参数1. 值类型2. 引用类型,并且创建对象3. 引用类型,不创建对象二、引用参数1. 值类型2. 引用类型,创建新对象3. 引用类型,不…

模型部署:(二)安卓端部署Yolov5-v6.0目标检测项目全流程记录

模型部署:(二)安卓端部署Yolov5-v6.0目标检测项目全流程记录1、下载NCNN项目2、下载基于安卓的yolov5项目3、修改相应的配置文件4、将项目打包成apk包5、部署自己训练的yolov5模型6、相关资料下载:1、下载NCNN项目 # 链接地址 ht…

图形基础算法:如何将点与带曲线边的多边形位置关系算法做稳定

简介判断点与多边形位置关系算法是几何算法中最基础的算法之一,包括布尔运算在内的非常非常多的算法都会用到它。它的稳定是算法库稳定的关键。下面我们从一个边都是直线的多边形开始了解射线法的原理。然后看看引入曲线后会带来哪些问题,以及在实际应用…

react的filber架构

好问题 👍 你问的是 React Fiber 架构。这是 React 16 引入的核心机制,用来解决 React 在大规模更新时的性能问题。下面我给你从 背景 → Fiber 是什么 → 原理 → 优点 → 流程 来系统讲。一、为什么需要 Fiber?在 React 15 及以前&#xff…

Lucky STUN穿透结合群晖NAS实现docker下transmission监听端口动态更新

参考文章 LCUKY系列教程 一 「LUCKY STUN穿透」使用 cURL 自动修改 Transmission 的监听端口 二 「LUCKY STUN穿透」使用 Webhook 自动修改 qbittorrent 的监听端口 三 LUCKY STUN穿透在Windows上使用UPnP工具为BT客户端自动添加内外端口号不同的映射规则 四「LUCKY STUN穿透」…

如何在Ubuntu畅玩鸣潮等游戏

本教程只包括Steam上的游戏。# 更新软件源 sudo apt update # 安装Steam sudo apt install steam首先,在Ubuntu的snap商店安装Steam,启动,登陆,下载游戏。到这里的操作都比较简单,对于没有反作弊的游戏,往往…