YOLO 训练结果速查表

训练日志里最常见的是这一行:

1
Class  Images  Instances  Box(P  R  mAP50  mAP50-95)

1. P / Precision / 精确率

含义:模型检测出来的框里,有多少是真的。

公式大概是:

1
Precision = 检测正确的框 / 所有检测出来的框

举例:

1
Precision = 0.80

意思是模型检测出来的 100 个框里,大约 80 个是对的,20 个可能是误检。

特点:

1
2
Precision 高:误检少
Precision 低:误检多

在你的交通场景里:

1
把树、阴影、路牌误检成车 → Precision 会低

2. R / Recall / 召回率

含义:真实存在的目标里,有多少被模型找出来了。

公式大概是:

1
Recall = 检测正确的框 / 真实目标总数

举例:

1
Recall = 0.38

意思是真实有 100 辆车/人,模型大概只检出了 38 个,漏了 62 个。

特点:

1
2
Recall 高:漏检少
Recall 低:漏检多

对你这个项目很重要:

1
2
3
漏车 → 车辆跟踪断
漏人 → 人流统计不准
漏检 → 后面 ByteTrack 也很难补回来

交通检测里,Recall 通常比 Precision 更重要


3. mAP / mean Average Precision / 平均精度

mAP 是目标检测里最常用的综合指标。

它综合考虑:

1
2
3
4
框有没有检出来
类别对不对
置信度排序好不好
框位置准不准

YOLO 日志里常见两个:

1
2
mAP50
mAP50-95

4. mAP50

IoU ≥ 0.5 时的平均精度。

这是比较宽松的指标。

1
mAP50 高:说明模型大体能把目标框出来

比如:

1
car mAP50 = 0.775

说明 car 这个类别检测已经不错。

航拍交通大概可以这么看:

1
2
3
4
mAP50 < 0.3   效果较弱
mAP50 0.3~0.5 初步可用
mAP50 0.5~0.7 不错
mAP50 > 0.7 很好

5. mAP50-95

IoU 从 0.5 到 0.95 多个阈值下的综合平均精度。

这是更严格的指标。

它不只是看有没有框到,还看框得准不准。

1
2
mAP50-95 高:框更准,模型更稳
mAP50-95 低:框位置不够准,或者小目标检测不好

航拍小目标场景,这个指标一般不会特别高。

大概判断:

1
2
3
4
mAP50-95 > 0.20  初版可用
mAP50-95 > 0.30 航拍小目标还可以
mAP50-95 > 0.40 比较不错
mAP50-95 > 0.50 很好

你之前的:

1
2
all mAP50-95 = 0.211
car mAP50-95 = 0.526

说明:

1
2
整体一般
但 car 类别很好

6. IoU / Intersection over Union / 交并比

预测框和真实框的重叠程度。

1
IoU = 预测框和真实框的交集面积 / 并集面积

大概理解:

1
2
3
IoU = 1.0   完全重合
IoU = 0.5 基本框对
IoU < 0.3 框得不准

mAP50 里的 50,就是:

1
IoU >= 0.5

7. Conf / Confidence / 置信度

模型认为这个框是某个类别的可信程度。

推理时你经常会写:

1
conf=0.10

含义是:

1
只保留置信度 >= 0.10 的框

特点:

1
2
conf 越高:框越少,误检少,但漏检多
conf 越低:框越多,漏检少,但误检多

你的交通航拍建议先试:

1
2
3
conf=0.05
conf=0.10
conf=0.15

如果是车辆跟踪,通常不要设太高。


8. F1

F1 是 Precision 和 Recall 的综合指标。

1
F1 高 = 误检和漏检比较平衡

如果你不知道 conf 设多少,可以看:

1
BoxF1_curve.png

F1 最高的位置,通常就是比较平衡的置信度阈值。


二、训练 Loss 类

训练日志里有:

1
2
3
4
5
6
train/box_loss
train/cls_loss
train/dfl_loss
val/box_loss
val/cls_loss
val/dfl_loss

1. box_loss

边界框损失。

表示预测框和真实框的位置差距。

1
2
box_loss 越低:框的位置越准
box_loss 越高:框偏差越大

2. cls_loss

分类损失。

表示类别判断错得多不多。

比如:

1
2
3
car 被识别成 van
people 被识别成 pedestrian
truck 被识别成 car

这些会影响 cls_loss

1
cls_loss 越低:类别分得越准

3. dfl_loss

Distribution Focal Loss。

它也是和框的位置精度有关,帮助模型更精细地回归边界框。

简单理解:

1
dfl_loss 低:框边界更准确

你不需要深究它,主要看它有没有稳定下降。


4. train lossval loss

1
2
train loss:训练集上的损失
val loss:验证集上的损失

正常情况:

1
2
3
train loss 下降
val loss 下降
mAP 上升

过拟合情况:

1
2
3
4
5
train loss 继续下降
val loss 上升
mAP 不动
Recall 下降
Precision 上升

你前面说的情况就是后期过拟合/平台期。


三、训练参数类

1. epoch

完整训练一遍训练集,叫 1 个 epoch。

1
epochs=100

意思是训练集完整看 100 遍。

不是越多越好。后期如果 mAP 不涨,继续训练可能过拟合。


2. batch-size

每次送进 GPU 的图片数量。

1
batch-size=32

双 T4 时大概是:

1
2
总 batch=32
每张卡约 16 张

特点:

1
2
batch 越大:训练更稳定,显存占用更高
batch 越小:显存省,但梯度波动大

但 batch 不是越大越好。

航拍小目标里,提高 imgsz 往往比盲目提高 batch 更有用。


3. imgsz

训练/推理时输入图片尺寸。

1
2
3
imgsz=640
imgsz=960
imgsz=1280

特点:

1
2
imgsz 越大:小车、小人更容易被看到
imgsz 越大:训练和推理越慢,显存占用越高

你的航拍交通场景:

1
2
3
640:速度快,但小目标容易漏
960:更平衡
1280:小目标更好,但慢

4. lr / lr0 / Learning Rate / 学习率

控制模型每次更新参数的幅度。

1
2
lr 太大:训练不稳定,loss 抖动
lr 太小:学得慢,可能收敛不动

你日志里看到:

1
2
lr0
lrf

通常不用手动细调,Ultralytics 的 optimizer=auto 会自动处理很多东西。


5. optimizer

优化器,用来更新模型参数。

常见:

1
2
3
SGD
Adam
AdamW

你日志里可能看到:

1
optimizer: AdamW

一般不用手动改,Ultralytics 自动选择即可。


6. AMP

Automatic Mixed Precision,自动混合精度训练。

1
--amp

特点:

1
2
3
显存更省
训练更快
精度通常不受明显影响

GPU 训练建议开启。


7. workers / num-workers

数据加载线程数。

1
--num-workers 4

作用:

1
2
提高数据读取速度
减少 GPU 等待 CPU 加载图片

如果数据读取慢,可以试:

1
2
num-workers=4
num-workers=8

但太大也可能卡。


8. device

训练设备。

1
2
3
--device 0
--device 0,1
--device cpu

含义:

1
2
3
0    使用第 1 张 GPU
0,1 使用两张 GPU
cpu 使用 CPU

双 T4 就是:

1
--device 0,1

四、模型结构类

1. parameters / params

模型参数量。

比如:

1
9,956,378 parameters

参数越多,模型容量越大。

一般:

1
n < s < m < l < x

例如:

1
2
3
4
5
yolo26n 最小最快
yolo26s 小模型,适合实时
yolo26m 平衡
yolo26l 更准更慢
yolo26x 最大最准但最慢

2. GFLOPs

模型计算量。

1
22.5 GFLOPs

GFLOPs 越高,推理越慢,算力需求越大。

边缘设备部署时要重点看。


3. layers

模型层数。

1
260 layers

普通使用不用太关心。


4. fused

你可能看到:

1
YOLO26s summary (fused)

表示模型把一些层融合了,比如 Conv + BN 融合,用于更快推理。

1
fused 后推理更快

5. gradients

训练时参数是否还在更新。

推理/验证时看到:

1
0 gradients

正常,因为验证时不训练。


五、速度类

日志里可能有:

1
Speed: 0.1ms preprocess, 0.5ms inference, 0.1ms postprocess per image

1. preprocess

推理前处理耗时。

包括:

1
2
3
4
resize
letterbox
归一化
转 tensor

2. inference

模型真正前向推理耗时。

这是核心推理速度。

1
inference 越低,模型越快

3. postprocess

后处理耗时。

包括:

1
2
3
NMS
过滤低置信度框
坐标还原

4. FPS

每秒处理多少帧。

大概计算:

1
FPS = 1000 / 每帧总毫秒

但实际视频处理还包括:

1
2
3
4
5
读取视频
画框
写视频
编码
显示

所以真实 FPS 要实际测试。


六、图片文件名含义

1. results.png

训练全过程曲线图。

看:

1
2
3
loss 有没有下降
mAP 有没有上升
Precision / Recall 是否稳定

这是最常看的图。


2. results.csv

每个 epoch 的详细数字。

适合用 Pandas 精确查看。


3. BoxPR_curve.png

Precision-Recall 曲线。

1
2
曲线越靠右上越好
面积越大,mAP 越高

看整体检测能力。


4. BoxF1_curve.png

F1 和置信度阈值的关系。

用来选合适的 conf


5. BoxP_curve.png

Precision 和置信度阈值的关系。

1
conf 越高,Precision 越高

6. BoxR_curve.png

Recall 和置信度阈值的关系。

1
conf 越低,Recall 越高

7. confusion_matrix.png

混淆矩阵。

看类别有没有识别错。

比如:

1
2
3
4
van 被识别成 car
truck 被识别成 car
people 被识别成 pedestrian
motor 被识别成 bicycle

8. confusion_matrix_normalized.png

归一化混淆矩阵。

更适合看比例。

比如某个类别大部分被识别成 background,说明漏检严重。


9. labels.jpg

训练集标签分布图。

看:

1
2
3
每个类别数量
框大小分布
框位置分布

你这个 VisDrone 场景通常:

1
2
car 很多
bus / truck / awning-tricycle 少

所以 car 效果往往最好。


10. train_batch*.jpg

训练时的样本图。

看:

1
2
3
标注框是否正确
类别是否正确
增强后图片是否异常

11. val_batch*_labels.jpg

验证集真实标注。

这是标准答案。


12. val_batch*_pred.jpg

模型在验证集上的预测结果。

要和 val_batch*_labels.jpg 对比。

看:

1
2
3
4
漏检了哪些车/人
有没有误检
框位置准不准
小目标有没有检测出来

七、检测结果判断里的常见缩写

缩写 全称 中文 作用
P Precision 精确率 看误检
R Recall 召回率 看漏检
AP Average Precision 单类平均精度 单个类别效果
mAP mean Average Precision 多类别平均精度 整体效果
mAP50 mAP at IoU 0.5 宽松平均精度 看大体检测能力
mAP50-95 mAP at IoU 0.5~0.95 严格平均精度 看框是否精确
IoU Intersection over Union 交并比 框重叠程度
F1 F1 Score F1 分数 P 和 R 的平衡
Conf Confidence 置信度 过滤预测框
NMS Non-Maximum Suppression 非极大值抑制 去掉重复框
TP True Positive 真阳性 检测对了
FP False Positive 假阳性 误检
FN False Negative 假阴性 漏检
GT Ground Truth 真实标注 标准答案
FPS Frames Per Second 每秒帧数 推理速度
AMP Automatic Mixed Precision 自动混合精度 加速、省显存

八、你的交通航拍项目重点看什么

你不用每个指标都纠结。你的项目建议重点看:

1
2
3
4
5
1. car / van / truck / bus / motor 的 Recall
2. car / van / truck / bus / motor 的 mAP50
3. pedestrian / people 的 Recall
4. all 的 mAP50 和 mAP50-95
5. val_batch*_pred.jpg 和真实视频效果

如果是车辆检测/跟踪:

1
2
3
优先 Recall
其次 mAP50
再看 Precision

因为:

1
2
误检可以用 ROI / 车道区域 / ByteTrack 过滤
漏检会导致轨迹断、计数少

一句话总结:

1
2
3
P 看误检,R 看漏检,mAP50 看能不能检出来,mAP50-95 看框得准不准。
best.pt 用来部署,last.pt 只是最后一轮。
val_batch_pred 看模型预测,val_batch_labels 看真实答案。