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
英文地址,請注明出處:http://en.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,啟動,登陸,下載游戲。到這里的操作都比較簡單,對于沒有反作弊的游戲,往往…