目錄
- 介紹
- 實驗過程
2.1 數據集下載
2.2 模型和數據配置文件修改
2.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