当前位置:网站首页>YOLOPose实战:手把手实现单阶段的人体姿态估计+代码解读
YOLOPose实战:手把手实现单阶段的人体姿态估计+代码解读
2022-07-21 14:23:00 【烧技湾】
开源地址: https://github.com/TexasInstruments/edgeai-yolov5/tree/yolo-pose
导读:
前不久看到一则新闻,YOLO之父Joseph Redmon离开CV界,原因是受不了道德的谴责,该技术已被用在军事和隐私问题上。最近,YOLO又火了,YOLOv7在速度和精度的平衡上达到了最佳水平。而基于YOLOv5的YOLOPose也在人体姿态估计领域取得了端到端领先的性能。本篇记录复现YOLOPose的过程,与代码解读。
一、设置
1.1 克隆仓库,安装依赖库,检查Pytorch和GPU。
!git clone https://github.com/ultralytics/yolov5 # clone repo
#YOLO-Pose分支无法克隆,直接下载zip包即可;
%cd edge-yolov5-yolo-pose/
%pip install -r requirements.txt # install dependencies
import torch
from IPython.display import Image, clear_output # to display images
clear_output()
print(f"Setup complete. Using torch {
torch.__version__} ({
torch.cuda.get_device_properties(0).name if torch.cuda.is_available() else 'CPU'})")
Setup complete. Using torch 1.9.1+cu101 (Tesla V100-SXM2-16GB)
如果pytorch版本不对,会出现下列问题:
AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
#https://blog.csdn.net/qq_40280673/article/details/125095353
#正确的版本
pip install torch==1.9.1
pip install torchvision==0.10.1
本地conda环境下运行,(pytorch-cifar) [email protected]:edgeai-yolov5-yolo-pose$ pip install torch==1.9.1
二、推理
2. 1 下载训练好的YOLO和YOLOPose模型;
(pytorch-cifar) [email protected]:edgeai-yolov5-yolo-pose$ ./weights/download_weights.sh
由于直接打开链接下载,会出现格式错误,这里推荐命令行下载:
wget http://software-dl.ti.com/jacinto7/esd/modelzoo/gplv3/08_02_00_11/edgeai-yolov5/pretrained_models/checkpoints/keypoint/coco/edgeai-yolov5/other/best_models/yolov5s6_640_57p5_84p3_kpts_head_6x_dwconv_3x3_lr_0p01/weights/last.pt
#此处下载Yolov5s6_pose_960
2.2 准备数据
数据集需要准备成YOLO格式,因为数据加载需要同时读取关键点和位置框的信息。有专门的代码库可以产生所需要的格式,见https://github.com/ultralytics/JSON2YOLO 。由于作者已经把coco keypoints转换成所需的格式,直接去下载附件包即可。并且将数据集软连接到所需要文件夹中,文件夹目录如下所示:
edgeai-yolov5
│ README.md
│ ...
│
coco_kpts
│ images
│ annotations
| labels
│ └─────train2017
│ │ └───
| | └───
| | '
| | .
│ └─val2017
| └───
| └───
| .
| .
| train2017.txt
| val2017.txt
软连接可参考如下:
(base) [email protected]:NewProjects$ ln -s ~/Datasets/coco/* coco_kpts
(base) [email protected]:coco_kpts$ rm coco
即可删除软连接
2.3 运行
真实标注如下所示:
YOLOPose实测效果,如下图所示:
放大的细节对比:
不难发现,YOLOPose在小尺度的人体检测上有亮点(如左图最右边,右图最左边)!
bug调试
ImportError: cannot import name 'amp' from 'torch.cuda' (/home/wqt/anaconda3/envs/pytorch-cifar/lib/python3.7/site-packages/torch/cuda/__init__.py)
原始conda环境下torch版本比较低,按照install requirement.txt中安装又容易出现最高版本,最好的选择是看作者推荐的版本,或者从issue中找答案。
AttributeError: Cant get attribute SPPF on module models.common
这是由于下载的yolov5分支是比较早期的,要么下载最新git,要么直接把这个类贴进去。可参考https://blog.csdn.net/Steven_Cary/article/details/120886696
总结:
想改进YOLO去提升性能,可能面临的主要麻烦有:首先,涉及的改动联动太多;其次,数据格式也需要改成YOLO格式,如果想在其他数据库上运行,先要过数据这一关,一股蛋蛋的忧桑涌上心头
边栏推荐
猜你喜欢
一次 MySQL 误操作导致P0级事故
Wechat applet_ 19. Custom components -behaviors
在Cygwin环境下构建和使用EmberZNet PRO Zigbee Host应用程序
百度飞桨EasyDL X 韦士肯:看轴承质检如何装上“AI之眼”
Outdoor resource optical fiber management
How to realize visualization of basic equipment efficiently
Revit API:EditScope
Postman - post request application / x-www-from-urlencoded
基于通用单片机(久齐) 半导体制冷制热的控制 手机散热器按摩仪器中冷热头的控制
融云超级群的「新能力」
随机推荐
互联网和传输层协议
数字藏品系统开发——商城盲盒h5平台搭建
07. Use of octave language - variables, values, vectors, matrices
bypass 某狗sql和xss
问题来了:4GB物理内存的机器上申请8G内存能成功吗?
Typora beta expired solution
leetcode 1306.跳跃游戏 III
Three.js(7):局部纹理刷新
Outdoor resource optical fiber management
FPGA设计中遇到的奇葩问题之“芯片也要看出身”(三)
如何规避以太网接口与布线不匹配的风险
haproxy2.6负载安装配置
Talk about 36 tips of interface design
一些工具改造
64.最小路径和
6.1 恶意代码防范
开户做期货那家公司手续费低 安全
AUTOCAD——JOIN合并命令
Data center cable management
Discussion on DLL killing free technology