macOS - 快速上手使用 YOLO

在這里插入圖片描述

文章目錄

    • 一、關于 yolo
    • 二、安裝
    • 三、命令行使用
      • 官方示例
      • yolo cfg
      • yolo predict
    • 四、Python 調用
      • results 數據


一、關于 yolo

YOLO(YOLO(You Only Look Once)是一種流行的物體檢測和圖像分割模型,由華盛頓大學的約瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)開發。YOLO 于 2015 年推出,因其高速度和高精確度而廣受歡迎。

  • Docs: https://docs.ultralytics.com
  • Solutions: https://docs.ultralytics.com/solutions/
  • Community: https://community.ultralytics.com
  • GitHub: https://github.com/ultralytics/ultralytics

PS : Flash-Attention 官方明確要求 CUDA 環境23,而 macOS 不支持 NVIDIA CUDA,所以無法安裝。
本教程以 Mac Mini M4 為例。


二、安裝

安裝 torch

https://pytorch.org/get-started/locally/


安裝 ultralytics

pip install ultralytics 

驗證 yolo 安裝 – 查看版本

yolo --version

打印信息:

$ yolo --version 
Creating new Ultralytics Settings v0.0.6 file ? 
View Ultralytics Settings with 'yolo settings' or at '/Users/es/Library/Application Support/Ultralytics/settings.json'
Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.
WARNING ?? argument '--version' does not require leading dashes '--', updating to 'version'.
8.3.158

三、命令行使用

常用命令

yolo help
yolo checks
yolo version
yolo settings
yolo copy-cfg
yolo cfg
yolo solutions help

語法格式:

yolo TASK MODE ARGS

  • TASK (optional) is one of [‘classify’, ‘segment’, ‘pose’, ‘detect’, ‘obb’]
  • MODE (required) is one of [‘benchmark’, ‘track’, ‘export’, ‘val’, ‘train’, ‘predict’]
  • ARGS (optional) are any number of custom ‘arg=value’ pairs like ‘imgsz=320’ that override defaults.

更多參數詳見:https://docs.ultralytics.com/usage/cfg


官方示例

Train a detection model for 10 epochs with an initial learning_rate of 0.01

yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01

Predict a YouTube video using a pretrained segmentation model at image size 320:

yolo predict model=yolo11n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320

Val a pretrained detection model at batch-size 1 and image size 640:

yolo val model=yolo11n.pt data=coco8.yaml batch=1 imgsz=640

Export a YOLO11n classification model to ONNX format at image size 224 by 128 (no TASK required)

yolo export model=yolo11n-cls.pt format=onnx imgsz=224,128

Ultralytics solutions usage

yolo solutions count or in ['crop', 'blur', 'workout', 'heatmap', 'isegment', 'visioneye', 'speed', 'queue', 'analytics', 'inference', 'trackzone'] source="path/to/video.mp4"

yolo cfg

$ yolo cfg
Printing '/opt/miniconda3/lib/python3.13/site-packages/ultralytics/cfg/default.yaml'task: detect 
mode: train
model: null
data: null
epochs: 100
time: null
patience: 100
batch: 16
imgsz: 640
save: true
save_period: -1
cache: false
device: null
workers: 8
project: null
name: null
exist_ok: false
pretrained: true
optimizer: auto
verbose: true
seed: 0
deterministic: true
single_cls: false
rect: false
cos_lr: false
close_mosaic: 10
resume: false
amp: true
fraction: 1.0
profile: false
freeze: null
multi_scale: false
overlap_mask: true
mask_ratio: 4
dropout: 0.0
val: true
split: val
save_json: false
conf: null
iou: 0.7
max_det: 300
half: false
dnn: false
plots: true
source: null
vid_stride: 1
stream_buffer: false
visualize: false
augment: false
agnostic_nms: false
classes: null
retina_masks: false
embed: null
show: false
save_frames: false
save_txt: false
save_conf: false
save_crop: false
show_labels: true
show_conf: true
show_boxes: true
line_width: null
format: torchscript
keras: false
optimize: false
int8: false
dynamic: false
simplify: true
opset: null
workspace: null
nms: false
lr0: 0.01
lrf: 0.01
momentum: 0.937
weight_decay: 0.0005
warmup_epochs: 3.0
warmup_momentum: 0.8
warmup_bias_lr: 0.1
box: 7.5
cls: 0.5
dfl: 1.5
pose: 12.0
kobj: 1.0
nbs: 64
hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 0.0
translate: 0.1
scale: 0.5
shear: 0.0
perspective: 0.0
flipud: 0.0
fliplr: 0.5
bgr: 0.0
mosaic: 1.0
mixup: 0.0
cutmix: 0.0
copy_paste: 0.0
copy_paste_mode: flip
auto_augment: randaugment
erasing: 0.4
cfg: null
tracker: botsort.yaml

yolo predict

$ yolo predict model=yolo11n.pt imgsz=640 conf=0.25
Downloading https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt to 'yolo11n.pt'...
100%|████████████████████████████████████████████| 5.35M/5.35M [00:08<00:00, 655kB/s]
WARNING ?? 'source' argument is missing. Using default 'source=/opt/miniconda3/lib/python3.13/site-packages/ultralytics/assets'.
Ultralytics 8.3.158 🚀 Python-3.13.2 torch-2.7.1 CPU (Apple M4)
YOLO11n summary (fused): 100 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPsimage 1/2 /opt/miniconda3/lib/python3.13/site-packages/ultralytics/assets/bus.jpg: 640x480 4 persons, 1 bus, 28.8ms
image 2/2 /opt/miniconda3/lib/python3.13/site-packages/ultralytics/assets/zidane.jpg: 384x640 2 persons, 1 tie, 20.5ms  
Speed: 1.9ms preprocess, 24.6ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)  
Results saved to runs/detect/predict  
💡 Learn more at https://docs.ultralytics.com/modes/predict    

執行日志說明

  • 從 releases 下載模型:https://github.com/ultralytics/assets/releases,下載完后,保存在了 當前執行腳本的目錄下。
  • 沒有設置圖片,默認使用 ultralytics 庫下的圖片: /opt/miniconda3/lib/python3.13/site-packages/ultralytics/assets
  • 識別結果在 runs/detect/predict 文件夾下
  • 更多 predict 的使用可見:https://docs.ultralytics.com/modes/predict

四、Python 調用

from ultralytics import YOLO# Load a model
model = YOLO("yolo11n-seg.pt")  # load an official modelmodel_path = 'yolo11n-seg.pt'
# model_path = ''
model = YOLO(model_path)  # load a custom model# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image# Access the results
for result in results:xy = result.masks.xy  # mask in polygon formatxyn = result.masks.xyn  # normalizedmasks = result.masks.data  # mask in matrix format (num_objects x H x W)print('\n-- results : ', results)   

results 數據

此處 results 列表只有一個元素

[ultralytics.engine.results.Results object with attributes:boxes: ultralytics.engine.results.Boxes object
keypoints: None
masks: ultralytics.engine.results.Masks object
names: {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', 4: 'airplane', 5: 'bus', 6: 'train', 7: 'truck', 8: 'boat', 9: 'traffic light', 10: 'fire hydrant', 11: 'stop sign', 12: 'parking meter', 13: 'bench', 14: 'bird', 15: 'cat', 16: 'dog', 17: 'horse', 18: 'sheep', 19: 'cow', 20: 'elephant', 21: 'bear', 22: 'zebra', 23: 'giraffe', 24: 'backpack', 25: 'umbrella', 26: 'handbag', 27: 'tie', 28: 'suitcase', 29: 'frisbee', 30: 'skis', 31: 'snowboard', 32: 'sports ball', 33: 'kite', 34: 'baseball bat', 35: 'baseball glove', 36: 'skateboard', 37: 'surfboard', 38: 'tennis racket', 39: 'bottle', 40: 'wine glass', 41: 'cup', 42: 'fork', 43: 'knife', 44: 'spoon', 45: 'bowl', 46: 'banana', 47: 'apple', 48: 'sandwich', 49: 'orange', 50: 'broccoli', 51: 'carrot', 52: 'hot dog', 53: 'pizza', 54: 'donut', 55: 'cake', 56: 'chair', 57: 'couch', 58: 'potted plant', 59: 'bed', 60: 'dining table', 61: 'toilet', 62: 'tv', 63: 'laptop', 64: 'mouse', 65: 'remote', 66: 'keyboard', 67: 'cell phone', 68: 'microwave', 69: 'oven', 70: 'toaster', 71: 'sink', 72: 'refrigerator', 73: 'book', 74: 'clock', 75: 'vase', 76: 'scissors', 77: 'teddy bear', 78: 'hair drier', 79: 'toothbrush'}
obb: None
orig_img: array([[[119, 146, 172],[121, 148, 174],[122, 152, 177],...,[161, 171, 188],[160, 170, 187],[160, 170, 187]],[[120, 147, 173],[122, 149, 175],[123, 153, 178],...,[161, 171, 188],[160, 170, 187],[160, 170, 187]],[[123, 150, 176],[124, 151, 177],[125, 155, 180],...,[161, 171, 188],[160, 170, 187],[160, 170, 187]],...,[[183, 182, 186],[179, 178, 182],[180, 179, 183],...,[121, 111, 117],[113, 103, 109],[115, 105, 111]],[[165, 164, 168],[173, 172, 176],[187, 186, 190],...,[102,  92,  98],[101,  91,  97],[103,  93,  99]],[[123, 122, 126],[145, 144, 148],[176, 175, 179],...,[ 95,  85,  91],[ 96,  86,  92],[ 98,  88,  94]]], dtype=uint8) 
orig_shape: (1080, 810)
path: '/Users/es/Documents/code/code24/bus.jpg'
probs: None
save_dir: 'runs/segment/predict'
speed: {'preprocess': 2.8683749842457473, 'inference': 56.7722920095548, 'postprocess': 5.611875036265701}]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912046.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912046.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912046.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

<script setup> 語法糖

下面&#xff0c;我們來系統的梳理關于 Vue 3 <script setup> 語法糖 的基本知識點&#xff1a; 一、<script setup> 核心概念 1.1 什么是 <script setup>&#xff1f; <script setup> 是 Vue 3 中 Composition API 的編譯時語法糖&#xff0c;它通過…

MYSQL-InnoDB邏輯存儲結構 詳解

InnoDB邏輯存儲結構 段—區—頁—行 表空間&#xff1a; 默認情況下InnoDB有一個共享表空間ibdata1&#xff0c;所有數據放入這個表空間&#xff0c;如果開啟了innodb_file_per_table&#xff08;默認ON&#xff09;&#xff0c;每張表都可以放到一個單獨的表空間&#xff0…

[特殊字符] Python 批量合并 Word 表格中重復單元格教程(收貨記錄案例實戰)

在日常辦公中&#xff0c;Word 表格中常出現重復的“供應商名稱”或“物料編碼”&#xff0c;會導致表格冗余且視覺混亂。這時候&#xff0c;用 Python 自動合并重復單元格可以大幅提升表格專業度和可讀性。本篇給大家演示如何用 python-docx 實現該功能。 ? 功能概覽 自動讀取…

從零構建Node.js服務托管前端項目

下面是一個完整的指南&#xff0c;教你如何從零開始構建一個Node.js服務來托管前端項目&#xff0c;并代理API請求到其他服務器。 1. 項目初始化 # 創建項目目錄 mkdir node-proxy-server cd node-proxy-server# 初始化npm項目 npm init -y# 安裝必要依賴 npm install expres…

Lynx vs React Native vs Flutter 全面對比:三大跨端框架實測分析

一文看懂三大熱門跨端技術的歷史淵源、架構機制、開發體驗、包體積對比與性能評估。 我陪你用實測數據帶你理性選型&#xff0c;不踩坑&#xff0c;不盲信。 1. 框架簡介&#xff1a;它們是誰&#xff1f;來自哪里&#xff1f;干嘛用&#xff1f; 框架名稱所屬公司發布時間初衷…

CKESC的ROCK 180A-H 無人機電調:100V 高壓冗余設計與安全保護解析

一、核心技術參數與性能指標 電壓范圍&#xff1a;支持 12~26S 鋰電&#xff08;適配 110V 高壓系統&#xff09;電流特性&#xff1a; 持續工作電流&#xff1a;90A&#xff08;特定散熱條件&#xff09;瞬時耐流&#xff08;1 秒&#xff09;&#xff1a;220A&#xff0c;3 …

優化 ArcPy 腳本性能

使用并行處理 如果硬件條件允許&#xff0c;可以使用 Python 的并行處理模塊&#xff08;如 multiprocessing&#xff09;來同時處理多個小任務。這樣可以充分利用多核處理器的優勢&#xff0c;提高腳本的執行效率。 import multiprocessing def process_raster(raster):arcpy…

Windows下CMake通過鴻蒙SDK交叉編譯三方庫

前言 華為鴻蒙官方的文章CMake構建工程配置HarmonyOS編譯工具鏈 中介紹了在Linux平臺下如何使用CMake來配置鴻蒙的交叉編譯環境&#xff0c;編譯輸出在Harmony中使用的第三方so庫以及測試demo。 本文主要是在Windows下實現同樣的操作。由于平臺差異的原因&#xff0c;有些細節…

從C學C++(6)——構造函數和析構函數

從C學C(6)——構造函數和析構函數 若無特殊說明&#xff0c;本博客所執行的C標準均為C11. 構造函數與析構函數 構造函數定義 構造函數是特殊的成員函數&#xff0c;當創建類類型的新對象&#xff0c;系統自動會調用構造函數構造函數是為了保證對象的每個數據成員都被正確初…

清理 Windows C 盤該注意什么

C 盤空間不足會嚴重影響系統性能。 清理 C 盤文件時&#xff0c;首要原則是安全。錯誤地刪除系統文件會導致 Windows 無法啟動。下面我將按照 從最安全、最推薦到需要謹慎操作的順序&#xff0c;為你詳細列出可以清理的文件和文件夾&#xff0c;并提供操作方法。 第一梯隊&…

Python Selenium 滾動到特定元素

文章目錄 Python Selenium 滾動到特定元素?? **1. 使用 scrollIntoView() 方法&#xff08;最推薦&#xff09;**&#x1f5b1;? **2. 結合 ActionChains 移動鼠標&#xff08;模擬用戶行為&#xff09;**&#x1f9e9; **3. 使用坐標計算滾動&#xff08;精確控制像素&…

你寫的 Express 接口 404,可能是被“動態路由”吃掉了

本文首發在我的個人博客&#xff1a;你寫的 Express 接口 404&#xff0c;可能是被“動態路由”吃掉了 前情提要 最近參與公司的一個項目前端 React&#xff0c;后端用的 Express。目前我就做一些功能的新增或者修改。 對于 Express &#xff0c;本人沒有公司項目實戰經驗&…

【Java面試】你是怎么控制緩存的更新?

&#x1f504; 一、數據實時同步失效&#xff08;強一致性&#xff09; 原理&#xff1a;數據庫變更后立即失效或更新緩存&#xff0c;保證數據強一致。 實現方式&#xff1a; Cache Aside&#xff08;旁路緩存&#xff09;&#xff1a; 讀流程&#xff1a;讀緩存 → 未命中則…

react-嵌套路由 二級路由

什么是嵌套路由&#xff1f; 在一級路由中又內嵌了其他路由&#xff0c;這種關系就叫做嵌套路由&#xff0c;嵌套至一級路由內的路由又稱作二級路由 嵌套路由配置 實現步驟 配置二級路由 children嵌套 import Login from "../page/Login/index"; import Home from …

【CMake基礎入門教程】第八課:構建并導出可復用的 CMake 庫(支持 find_package() 查找)

很好&#xff01;我們進入 第八課&#xff1a;構建并導出可復用的 CMake 庫&#xff08;支持 find_package() 查找&#xff09;。 &#x1f3af; 本課目標 你將掌握&#xff1a; 如何構建一個庫并通過 install() 導出其配置&#xff1b; 如何讓別人在項目中使用 find_package…

Jenkins與Kubernetes深度整合實踐

采用的非jenkins-slave方式 jenkins配置&#xff1a; Jenkins添加k8s master節點的服務器信息 在Jenkins容器內部與k8s master節點設置免費登錄 # docker過濾查詢出運行的Jenkins服務 $ docker ps | grep jenkins# 進入Jenkins容器內部 $ docker exec -it jenkins-server /bi…

GraphQL API-1

簡介 判斷GraphQL方式 判斷一個網站是否使用了GraphQL API&#xff0c;可以通過以下幾種方法&#xff1a; 1. 檢查網絡請求 查看請求端點 GraphQL 通常使用單一端點&#xff0c;常見路徑如&#xff1a; /graphql/api/graphql/gql/query 觀察請求特征 POST 請求為主&…

推薦C++題目練習網站

LeetCode LeetCode是一個全球知名的編程練習平臺&#xff0c;提供大量C題目&#xff0c;涵蓋數據結構、算法、系統設計等。題目難度從簡單到困難&#xff0c;適合不同水平的學習者。平臺支持在線編寫代碼并即時運行測試&#xff0c;提供詳細的題目討論區和官方解答。 Codeforc…

Spring Cloud 微服務(服務注冊與發現原理深度解析)

&#x1f4cc; 摘要 在微服務架構中&#xff0c;服務注冊與發現是整個系統運行的基礎核心模塊。它決定了服務如何被定位、調用和管理。 本文將深入講解 Spring Cloud 中 Eureka 的服務注冊與發現機制&#xff0c;從底層原理到源碼分析&#xff0c;再到實際開發中的最佳實踐&a…

【Linux 設備模型框架 kobject 和 kset】

Linux 設備模型框架 kobject 和 kset 一、Linux 設備模型概述二、kobject 與 kset 的核心概念1. kobject2. kset3. 關鍵數據結構 三、kobject 與 kset 的實現源碼四、源碼解析與使用說明1. kset 的創建與初始化2. kobject 的創建與屬性3. sysfs 屬性操作4. 用戶空間訪問示例 五…