以下为用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尺寸大小与预训练权重的匹配。
单卡训练命令
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软件中下的命令窗口下运行。
文章来源地址https://www.toymoban.com/news/detail-789491.html
文章来源:https://www.toymoban.com/news/detail-789491.html
到了这里,关于YOLO-pose复现流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!