YOLO-pose复现流程

以下为用yolov5训练人体姿态估计复现流程

一、数据集准备

下载得到的原coco-kpts数据集格式如下

是由Annotations和Images和labels三个子文件夹组成。
①然后将Images文件夹名称改为images,两者区别为首字母一个大写,一个小写,需要改为小写。
②将改为images的文件夹剪切进labels文件夹下,现在的coco-kpts数据集由Annotations和labels两个子文件夹组成。其中labels文件夹包含原本自身的内容和剪切进去的images文件。如下图所示为需要准备好的数据集存放格式。 

Annotations下包含如上图所示的三个必须的文件夹,labels下包含images和labels两个必须文件夹,以及train2017.txt和val2017.txt两个必须的txt文件。 

 二、原代码的修改

1.命令行运行

①首先修改你的数据集配置文件

即yolo-pose/data/coco_kpts.yaml文件
打开coco_kpts.yaml文件,就三句有效的话。train:和val:以及test:
将train和val后修改为你自己电脑下对应的train2017.txt和val2017.txt文件的绝对路径,如下图所示。

 ②下载预训练权重

下载你所需要训练的模块对应的预训练权重,放置在yolo-pose/weigths路径下,如下图所示。

③命令行训练

需要注意,切记对应好你要训练模型的yaml文件与img尺寸大小与预训练权重的匹配。 

扫描二维码关注公众号,回复: 16439695 查看本文章

单卡训练命令

python train.py --data data/coco_kpts.yaml --cfg model/hub/yolov5s6_kpts.yaml --weights weights/5s_last.pt --batch-size 16 --img 960 --kpt-label --device 0

--data为需要选用的数据集文件,--cfg为需要选用的关键点模型文件,--weights为你所采用的预训练权重 --batch-size为你批量化一次训练图片的总数,根据显存修改,--img为你训练预处理图像的大小,--kpt-label为采用关键点训练,否则训练的是人,而不是人的关键点,--device为你选用的GPU序号。

多卡训练命令

python train.py --data data/coco_kpts.yaml --cfg model/hub/yolov5s6_kpts.yaml --weights weights/5s_last.pt --batch-size 16 --img 960 --kpt-label --device 0,1,2,3

参数含义与上述一致,单卡多卡唯一的不同就是在--device后面的序号书,如果需要调用多卡,写上所有需要调用的GPU序号即可。
以上训练后的结果,包括权重、日志等文件在yolo-pose/runs/train/exp(),第几次训练找到对应的epx文件。

④命令行验证(可视化) 

python detect.py --weights weights/best.pt(你最好的权重) --source data/images(你所需要验证的图片以及视频,均放在此文件下,直接能够对此文件下的图片和视频全部实现验证,无需其它多余操作) --img-size 960 --device 0(需要多卡验证,仅需加入对应的GPU序号即可) --kpt-label
例如:

python detect.py --weights weights/best.pt --source data/images --img-size 960 --device 0 --kpt-label

验证后的可视化结果保存在yolo-pose/runs/detect/exp(),第几次验证找到对应的epx文件。 

 ⑤查看训练及损失曲线

tensorboard --logdir=日志文件绝对路径
例如:

tensorboard --logdir=/media/wkp/Data/zuoxinhao/lzy/yolo-pose/runs/train/exp1

 命令行运行此代码,可以在ubuntu下运行,也可以在windows的pycharm软件中下的命令窗口下运行

2.pycharm直接运行

①首先修改你的数据集配置文件

即yolo-pose/data/coco_kpts.yaml文件
打开coco_kpts.yaml文件,就三句有效的话。train:和val:以及test:
将train和val后修改为你自己电脑下对应的train2017.txt和val2017.txt文件的绝对路径,如下图所示。

②下载预权重

下载你所需要训练的模块对应的预训练权重,放置在yolo-pose/weigths路径下,如下图所示。

③pycharm直接训练

需要注意,切记对应好你要训练模型的yaml文件与img尺寸大小与预训练权重的匹配。

(1)将--weights此列加入default=‘预训练权重’
(2)将--cfg此列加入default=‘模型文件路径’
(3)将--data此列加入default=‘数据集文件路径’
(4)修改--epochs列default后的训练代数,修改--batch-size列default后的批处理大小,修改--img-size列default后的图片预处理大小
(5)将--kpt-label列加入defau=True
(6)单卡训练与多卡训练
单卡训练的话就把--device此列后改为default=‘0’
多卡训练的话就把--device此列后改为default=‘0,1,2,3’(调用几张就几个序号)
训练后的结果,包括权重、日志等文件在yolo-pose/runs/train/exp(),第几次训练找到对应的epx文件。

④pycharm验证(可视化)

(1)将--weights此列加入default=‘你要验证的权重,一般为最好的权重’
(2)将--source此列加入default='需要验证的图片和视频路径'(你所需要验证的图片以及视频,均放在此文件下,直接能够对此文件下的图片和视频全部实现验证,无需其它多余操作)
(3)将--img-size此列加入default='960or640'
(4)将--kpt-label列加入defau=True
(5)单卡验证与多卡验证
单卡验证的话就把--device此列后改为default=‘0’
多卡验证的话就把--device此列后改为default=‘0,1,2,3’(调用几张就几个序号)验证后的可视化结果保存在yolo-pose/runs/detect/exp(),第几次验证找到对应的epx文件。

⑤查看训练及损失曲线

在pychram软件中的命令窗下运行
tensorboard --logdir=日志文件绝对路径
例如:

tensorboard --logdir=/media/wkp/Data/zuoxinhao/lzy/yolo-pose/runs/train/exp1

命令行运行此代码,可以在ubuntu下运行,也可以在windows的pycharm软件中下的命令窗口下运行。 


 

猜你喜欢

转载自blog.csdn.net/weixin_42715977/article/details/130459653