step1:在github上下载 yolov8项目
step2:在本地文件夹下新建文件夹eg:person_pose,下面的文件夹名字不做更改。
images存放的是图片,labels存放的是图片一一对应(文件名相同)的txt文件,每个文件夹下都分为训练集和验证集。
step3:更改数据集的路径,新建一个person_pose.yaml文件,也可以从coco8-pose.yaml复制过来
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文件夹下看到图像识别的结果。