yolo位姿估計實驗

目錄

  1. 介紹
  2. 實驗過程
    2.1 數據集下載
    2.2 模型和數據配置文件修改
    2.3 模型訓練
  3. 參考鏈接

1. 介紹

1.1 簡介

YOLOv8-Pose是基于YOLOv4算法的姿勢估計模型,旨在實現實時高效的人體姿勢估計。姿勢估計在計算機視覺領域具有重要意義,可廣泛應用于視頻監控、運動分析、健康管理等領域。

1.2 背景

傳統的姿勢估計方法常需復雜網絡架構和大量計算資源,導致實時性不佳。YOLOv8-Pose通過對YOLOv4算法進行改進和優化,在目標檢測和姿勢估計兩方面融合任務,提高了模型的精度和效率。同時,利用深度學習技術和大規模數據集訓練,使模型具備更好的泛化能力和適用性。

1.3 應用領域

  • 運動分析: 用于體育訓練、舞蹈教學等領域,幫助教練和學員更好地分析和改進動作。
  • 健康管理: 結合智能設備進行人體姿勢監測,提供健身建議和健康管理。
  • 視頻監控: 在安防領域中,用于人體行為識別、異常檢測等應用。

1.4 總結

YOLOv8-Pose旨在解決傳統姿勢估計方法的不足,提供更高效、更準確的姿勢估計模型。其應用涵蓋了多個領域,具有廣泛的發展前景。

2. 實驗過程

2.1 數據集下載

coco8-pose數據集下載鏈接:https://ultralytics.com/assets/coco8-pose.zip
環境配置:
python版本:3.10.16
顯卡:xxx
cuda版本:cuda_11.1

安裝包版本參考:
anyio==4.8.0
astor==0.8.1
attrdict==2.0.1
babel==2.17.0
bce-python-sdk==0.9.29
beautifulsoup4==4.13.3
blinker==1.9.0
cachetools==5.5.1
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
colorama==0.4.6
contourpy==1.3.1
cssselect==1.2.0
cssutils==2.11.1
cycler==0.12.1
Cython==3.0.12
decorator==5.1.1
et_xmlfile==2.0.0
exceptiongroup==1.2.2
filelock==3.17.0
fire==0.7.0
Flask==3.1.0
flask-babel==4.0.0
fonttools==4.56.0
fsspec==2025.2.0
future==1.0.0
h11==0.14.0
httpcore==1.0.7
httpx==0.28.1
huggingface-hub==0.29.1
idna==3.10
imageio==2.37.0
imgaug==0.4.0
itsdangerous==2.2.0
Jinja2==3.1.5
joblib==1.4.2
kiwisolver==1.4.8
lazy_loader==0.4
lmdb==1.6.2
lxml==5.3.1
MarkupSafe==3.0.2
matplotlib==3.8.2
more-itertools==10.6.0
mpmath==1.3.0
networkx==3.4.2
numpy==1.26.3
opencv-contrib-python==4.6.0.66
opencv-python==4.6.0.66
opencv-python-headless==4.11.0.86
openpyxl==3.1.5
opt-einsum==3.3.0
packaging==24.2
paddleocr==2.7.3
paddlepaddle-gpu==2.6.2
pandas==2.2.3
pdf2docx==0.5.8
pillow==10.2.0
premailer==3.10.0
protobuf==3.20.2
psutil==7.0.0
py-cpuinfo==9.0.0
pyclipper==1.3.0.post6
pycryptodome==3.21.0
PyMuPDF==1.25.3
pyparsing==3.2.1
python-dateutil==2.9.0.post0
python-docx==1.1.2
pytz==2025.1
PyYAML==6.0.2
RapidFuzz==3.12.1
rarfile==4.2
requests==2.32.3
scikit-image==0.25.1
scikit-learn==1.6.1
scipy==1.15.1
seaborn==0.13.2
shapely==2.0.7
six==1.17.0
sniffio==1.3.1
soupsieve==2.6
sympy==1.13.1
termcolor==2.5.0
thop==0.1.1.post2209072238
threadpoolctl==3.5.0
tifffile==2025.1.10
torch==2.6.0
torchvision==0.21.0
tqdm==4.66.1
typing_extensions==4.12.2
tzdata==2025.1
ultralytics==8.1.9
urllib3==2.3.0
visualdl==2.5.3
Werkzeug==3.1.3

2.2 模型和數據配置文件修改

數據配置文件路徑:yolov10/ultralytics/cfg/datasets/coco8-pose.yaml
修改點:(1)path路徑替換

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose  ← downloads here (1 MB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]# Classes
names:0: person# Download script/URL (optional)
download: https://ultralytics.com/assets/coco8-pose.zip

模型配置文件路徑:yolov10/ultralytics/cfg/models/v8/yolov8-pose.yaml

2.3 模型訓練

在項目路徑建立train_pose.py文件
預訓練模型下載鏈接:https://github.com/Sousannah/YOLOv8-Projects/blob/main/yolov8n-pose.pt

from ultralytics import YOLO# 加載模型
# model = YOLO('yolov8s-pose.yaml')  # 從頭訓練
model = YOLO('yolov8n-pose.pt')  # 使用預訓練模型 (recommended for training)
# model = YOLO('yolov8s-pose.yaml').load('yolov8s-pose.pt')  # 從yaml構建網絡并從預訓練模型中遷移權重# 訓練
results = model.train(data='./ultralytics/cfg/datasets/coco8-pose.yaml', epochs=5, imgsz=640, workers=0, batch=4, name="spose")

若出現類似_pickle.UnpicklingError: Weights only load failed. This file can still be loaded報錯,則在yolov10/ultralytics/nn/tasks.py文件里類似ckpt = torch.load(file, map_location=“cpu”)語句后加上weights_only=False。

3. 參考鏈接

  • https://github.com/THU-MIG/yolov10.git
  • 加載模型時torch.load函數的安全性導致報錯問題:https://blog.csdn.net/Water_7jjkk/article/details/144201970

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

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

相關文章

極簡Redis速成學習

redis是什么? 是一種以鍵值對形式存儲的數據庫,特點是基于內存存儲,讀寫快,性能高,常用于緩存、消息隊列等應用情境 redis的五種數據類型是什么? 分別是String、Hash、List、Set和Zset(操作命…

大語言模型學習--本地部署DeepSeek

本地部署一個DeepSeek大語言模型 研究學習一下。 本地快速部署大模型的一個工具 先根據操作系統版本下載Ollama客戶端 1.Ollama安裝 ollama是一個開源的大型語言模型(LLM)本地化部署與管理工具,旨在簡化在本地計算機上運行和管理大語言模型…

【OpenCV C++】以時間命名存圖,自動檢查存儲目錄,若不存在自動創建, 按下空格、回車、Q、S自動存圖

文章目錄 // 保存圖像的函數 void saveImage(const cv::Mat& frame) {// 生成唯一文件名auto now = std::chrono::system_clock::

【JavaEE】線程安全

【JavaEE】線程安全 一、引出線程安全二、引發線程安全的原因三、解決線程安全問題3.1 synchronized關鍵字(解決修改操作不是原子的)3.1.1 synchronized的特性3.1.1 synchronized的使用事例 3.2 volatile 關鍵字(解決內存可見性) …

Vue核心知識:動態路由實現完整方案

在Vue中實現動態路由,并結合后端接口和數據庫表設計,是一個復雜的項目,需要多個技術棧和步驟的配合。以下將詳細描述整個實現過程,包括數據庫設計、后端接口設計、前端路由配置以及如何實現動態路由的功能。 目錄 一、需求分析二…

自媒體多賬號如何切換不同定位才能做得更好

一、選擇稀缺增長的賽道,避開內卷紅海 1.職場賽道 ● 細分方向:公務員/體制內經驗分享、自由職業指南、遠程辦公技巧。例如,通過采訪自由職業者或分享遠程工作體驗,快速積累精準粉絲。 ● 優勢:職場人群需求明確&…

基于SpringBoot的校園二手交易平臺(源碼+論文+部署教程)

運行環境 校園二手交易平臺運行環境如下: ? 前端:Vue ? 后端:Java ? IDE工具:IntelliJ IDEA(可自行更換) ? 技術棧:SpringBoot Vue MySQL 主要功能 校園二手交易平臺主要包含前臺和…

iPhone 鏡像 連接錯誤

重置連接 defaults delete com.apple.ScreenContinuity打開 iPhone 鏡像 參考 mac鏡像iPhone無法連接報錯個人經歷的 iPhone 鏡像 bug 與部分解決辦法

Qt基礎入門-詳解

前言 qt之路正式開啟 💓 個人主頁:普通young man-CSDN博客 ? 文章專欄:C_普通young man的博客-CSDN博客 ? 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有問題 評論區見📝 🎉歡迎大家點贊&#x1f44…

Unity 優化封裝常用API和編輯器擴展工具包

資源名:WXTools 文章目錄 MeshRenderEditorSpriteGroupToolWXEditorUtilsComponentUtilsDataUtilsGameObjectUtilsRigidbodyUtilsStringUtilsTransformUtilsVectorUtilsWXTools 內容包括: MeshRenderEditor mesh擴展 SpriteGroupTool SpriteGroup操作…

python學習第三天

條件判斷 條件判斷使用if、elif和else關鍵字。它們用于根據條件執行不同的代碼塊。 # 條件判斷 age 18 if age < 18:print("你還是個孩子&#xff01;") elif age 18:print("永遠十八歲&#xff01;") else:print("你還年輕&#xff01;")…

ThinkPHP使用phpword讀取模板word文件并添加表格

1.安裝phpword包composer require phpoffice/phpword 2.模板文件結構 如上圖框住的是要替換的文本和要復制表格樣式 實現代碼 <?phpnamespace app\api\logic;use PhpOffice\PhpWord\Element\Table; use PhpOffice\PhpWord\SimpleType\TblWidth; use PhpOffice\PhpWord\…

(原創)用python語言基于paddleocr構建批量識別實現紙質和電子的增值稅專用發票程序

文章目錄 1. 說明2. 準備工作3. 代碼3.1 導入庫&#xff1a;3.2 遍歷發票指定處理方式3.3 發票識別相關函數3.4 發票字段定位函數3.6 識別記錄相關函數3.6 識別結果校驗3.7 文件預處理等其他函數3.8 main主函數 1. 說明 1.1 以paddle識別引擎為基礎的增值稅發票識別程序&#…

DeepSeek搭配Excel,制作自定義按鈕,實現辦公自動化!

今天跟大家分享下我們如何將DeepSeek生成的VBA代碼&#xff0c;做成按鈕&#xff0c;將其永久保存在我們的Excel表格中&#xff0c;下次遇到類似的問題&#xff0c;直接在Excel中點擊按鈕&#xff0c;就能10秒搞定&#xff0c;操作也非常的簡單. 一、代碼準備 代碼可以直接詢問…

解決顯示器在高刷條件下花屏的問題

起因是家里的顯示器好久沒用之后&#xff0c;100HZ的刷新率下會花屏&#xff0c;在75HZ的情況下就正常顯示&#xff0c;在網上找了一圈感覺是硬件問題解決不了 于是想了想如果我用90HZ呢&#xff1f;不過原始的情況下沒有自定義刷新率的選擇&#xff0c;不過amd和nvida控制面板…

IP-----雙重發布

目錄 6.雙重發布 1.重發布的作用 2.部署條件 1.必須存在ASBR 2.種子度量值 3.重發布的規則 4.重發布的數量 5.重發布的場景 1.場景和規則 2.直連和靜態 3.動態RIP 4.動態OSPF 5.更改開銷值 6.重發布的問題1 7.重發布的問題2 1.流量 2.前綴列表 3.偏移列表 4…

藍橋杯試題:DFS回溯

一、題目要求 輸入一個數組n&#xff0c;輸出1到n的全排列 二、代碼展示 import java.util.*;public class ikun {static List<List<Integer>> list new ArrayList<>();public static void main(String[] args) { Scanner sc new Scanner(System.in);…

Ruby基礎

一、字符串 定義 283.to_s //轉為string "something#{a}" //定義字符串&#xff0c;并且插入a變量的值 something//單引號定義變量 %q(aaaaaaaaa) // 定義字符串&#xff0c;&#xff08;&#xff09;內可以是任何數&#xff0c;自動轉義雙引號%Q("aaaaa"…

基于提示驅動的潛在領域泛化的醫學圖像分類方法(Python實現代碼和數據分析)

摘要 醫學圖像分析中的深度學習模型易受數據集偽影偏差、相機差異、成像設備差異等導致的分布偏移影響&#xff0c;導致在真實臨床環境中診斷不可靠。領域泛化&#xff08;Domain Generalization, DG&#xff09;方法旨在通過多領域訓練提升模型在未知領域的性能&#xff0c;但…

C#—Settings配置詳解

C#—Settings配置詳解 在C#項目中&#xff0c;全局配置通常指的是應用程序的設置&#xff08;settings&#xff09;&#xff0c;這些設置可以跨多個類或組件使用&#xff0c;并且通常用于存儲應用程序的配置信息&#xff0c;如數據庫連接字符串、用戶偏好設置等。 Settings配置…