研一 | yolov8姿态识别_训练自己的数据集

394 阅读1分钟

step1:在github上下载 yolov8项目

step2:在本地文件夹下新建文件夹eg:person_pose,下面的文件夹名字不做更改。

c7e0133d430bbf24e4c0cf4e37e6d51d.png

images存放的是图片,labels存放的是图片一一对应(文件名相同)的txt文件,每个文件夹下都分为训练集和验证集。

step3:更改数据集的路径,新建一个person_pose.yaml文件,也可以从coco8-pose.yaml复制过来

image.png

step4:在根目录下新建train.py文件

from ultralytics.models.yolo.pose import PoseTrainer

model = "./ultralytics/cfg/models/v8/yolov8-pose.yaml"  # s model
data = './ultralytics/cfg/datasets/person_pose.yaml'
mode = "train/exp"
optimizer = "auto"
workers = 8
batch=16

args = dict(
    model=model,
    data=data,
    epochs=300,
    device="0",
    mode=mode,
    workers=workers,
    batch=batch,
    optimizer=optimizer,
    )

trainer = PoseTrainer(overrides=args)
trainer.train()

这里定义了模型的配置文件路径和数据集的路径。yolov8-pose.yaml包含了模型的架构和超参数配置,而person_pose.yaml包含了训练所需的数据集信息。mode指定了训练的目标,这里是将训练结果输出到train/exp目录。optimizer设置为"auto",意味着将自动选择优化算法。

注意:一定要先运行这个文件,训练出自己的权重文件才能进行图像的预测。

step5:在根目录下新建predict.py文件

from ultralytics.models.yolo.pose import PosePredictor

source = './ultralytics/assets'
model = './runs/pose/train/exp/weights/best.pt'
mode = 'inference/exp'

args = dict(
    model=model,
    source=source,
    mode=mode,
    )

predictor = PosePredictor(overrides=args)
predictor.predict_cli()

  • source:指定了要处理的源数据的路径,这里是./ultralytics/assets,可以是图像或视频文件。
  • model:指定了预训练模型的路径,这里指向了训练后生成的最佳模型权重文件best.pt
  • mode:指定了要执行的模式,这里是'inference/exp',表示进行推理实验。

最后可以在inference/exp文件夹下看到图像识别的结果。