YOLO26N 姿态估计模型训练全流程 1. 环境准备 pipinstall ultralytics == 8.3 .02. 数据集配置 # data_pose.yaml path : ./datasettrain : train/imagesval : valid/imagestest : test/imagesnames : 0 : personnc : 1 task : posekpt_shape : [ 17 , 3 ] 3. 模型训练 #!/usr/bin/env python3 """train_pose.py - YOLO26N 姿态估计训练""" from ultralyticsimport YOLO# 加载预训练姿态模型 model= YOLO( "yolo26n-pose.pt" ) # 训练 results= model. train( data= "data_pose.yaml" , epochs= 100 , imgsz= 640 , batch= 16 , device= "0" , workers= 8 , patience= 20 , save= True , save_period= 10 , project= "runs/pose" , name= "yolo26n_pose_custom" , exist_ok= True , pretrained= True , optimizer= "auto" , lr0= 0.01 , lrf= 0.01 , momentum= 0.937 , weight_decay= 0.0005 , warmup_epochs= 3 , # 姿态专用参数 pose= 12.0 , # 关键点损失权重 kobj= 1.0 , # 关键点目标性损失 box= 7.5 , # 边界框损失 cls= 0.5 , # 分类损失 dfl= 1.5 , # DFL 损失 # 数据增强 mosaic= 1.0 , mixup= 0.0 , # 姿态任务不推荐 MixUp copy_paste= 0.0 , flipud= 0.0 , # 不上下翻转 fliplr= 0.5 , # 左右翻转 degrees= 10.0 , scale= 0.3 , plots= True , ) print ( f"最佳 mAP50: { results. best_map50: .4f } " ) print ( f"最佳 mAP50-95: { results. best_map50_95: .4f } " ) 4. 从检测模型迁移训练 # 如果没有预训练姿态模型,从检测模型迁移 from ultralyticsimport YOLO# 加载检测模型 model= YOLO( "yolo26n.pt" ) # 微调为姿态模型 results= model. train( data= "data_pose.yaml" , epochs= 100 , imgsz= 640 , batch= 16 , task= "pose" , freeze= 10 , # 冻结 backbone ) 5. 训练监控 # 查看训练曲线 from ultralyticsimport YOLO# 加载训练结果 results= YOLO( "runs/pose/yolo26n_pose_custom/weights/best.pt" ) # 查看指标 print ( f"mAP50: { results. metrics. box. map50} " ) print ( f"mAP50-95: { results. metrics. box. map } " ) print ( f"关键点 mAP: { results. metrics. pose. map } " ) 6. 超参数调优 # 关键超参数 pose : 12.0 # 关键点损失权重(增大提升关键点精度) kobj : 1.0 # 关键点目标性损失 box : 7.5 # 边界框损失 cls : 0.5 # 分类损失 dfl : 1.5 # DFL 损失 # 调优建议: # 关键点不准 → 增大 pose 权重(15-20) # 漏检多 → 增大 box 权重(10-15) # 误检多 → 增大 cls 权重(1.0-2.0) 7. 多尺度训练 # 多尺度训练(提升小目标关键点) model. train( data= "data_pose.yaml" , epochs= 100 , imgsz= 640 , multi_scale= True , # 启用多尺度 scale= 0.5 , # 缩放范围 ) 8. 训练结果分析 训练结果示例: ┌──────────────────┬──────────┐ │ 指标 │ 数值 │ ├──────────────────┼──────────┤ │ mAP50 (bbox) │ 92.5 │ │ mAP50-95 (bbox) │ 78.3 │ │ mAP50 (pose) │ 88.2 │ │ mAP50-95 (pose) │ 68.5 │ │ Precision │ 89.1 │ │ Recall │ 85.6 │ └──────────────────┴──────────┘总结 配置 推荐值 说明 模型 yolo26n-pose.pt 预训练权重 epochs 100-200 足够收敛 batch 16-32 根据显存 imgsz 640 标准尺寸 pose loss 12.0 关键点权重 flipud 0.0 不翻转 fliplr 0.5 左右翻转