YOLO 迁移训练全流程
从自己标注一路走到端侧部署:标注 → data.yaml → 训练 → best.pt → 上板计数。
标注
data.yaml
训练
best.pt
部署
w
h
(x,y)中心
YOLO 标签 xxx.txt(一图一 txt)
class x_center y_center w h
0 0.234375 0.655523
0.463750 0.688953
归一化 0~1 · 中心点式
非像素、非两顶点(区别于 VOC / COCO)
工具:X-AnyLabeling → 导出 YOLO HBB
classes.txt:序号从 0 开始
目录组织
dataset/
├─ images/
├─ train/ └─ val/
├─ labels/
├─ train/ └─ val/
└─ data.yaml
images/labels 拼写须正确
文件名一一对应 · 9:1 划分
data.yaml
path: /abs/dataset
train: images/train
val: images/val
names:
0: red_bull
1: pepsi
2: sprite
训练命令(迁移学习:从预训练权值起步)
yolo detect train data=data.yaml
pretrained=yolo26n.pt epochs=10 batch=16
逐 epoch 打印三项损失:
box_loss
cls_loss
dfl_loss
验证指标(逐类别):
Box(P)
R
mAP50
mAP50-95
results.png:loss 下降,mAP 上升
epoch 1 → 10
train loss ↓
mAP50-95 ↑
训好没有?三看,然后取 best.pt
best.pt
验证最优 · 部署用
last.pt
✓ loss 稳定下降
✓ mAP 持续上升
✓ val_pred ≈ val_labels
产物在 runs/detect/train/
results.png · 真值/预测对比图
直接用 COCO 权值检不出方块!
端侧部署:香橙派跑 best.pt,boxes.cls 计数
香橙派(端侧)
results = model(img)
n = len(results.boxes.cls)
方块数量 count =
3
作业3 扩展③:自训计数器替换 VLM
1
▶ 播放
重放