Yolo 训练结果分析

目录

训练结果目录

0.知识点

1.weights

2.args.yaml

3.confusion_matrix_normalized.png

4.confusion_matrix.png

5.F1_curve.png  

6.labels_correlogram.jpg

7.labels.jpg

8.P_curve.png

9.PR_curve. png

10.R_curve.png

11.results.csv

12.results.png


        在翻阅了各种博客,询问他人之后,发现对于 labels_correlogram.jpg 的介绍非常不清晰。身边的人也几乎不理解它是做什么用的,如何去分析。因此写下本篇博客。在本文,我对一些易混淆内容进行了补充性描述。

        持续更新中

模型:Yolov8s.pt

训练类别:13

训练结果目录

0.知识点

            |   Actual P    |   Actual N    |
------------|---------------|---------------|
Predicted P |      TP       |      FP       |
------------|---------------|---------------|
Predicted N |      FN       |      TN       |

命名规则:(验证是否正确True/False)(预测值)

TP:预测为P,实际为P,预测正确

FP:预测为P,实际为N,预测错误

FN:预测为N,实际为P,预测错误

TN:预测为N,实际为N,预测正确

P : Precision(精确率) = TP / (TP + FP),预测为P的样本中有多少真实为P(减少误诊)

R : Recall (召回率)= TP / (TP + FN),真实P样本中有多少被正确检出(减少漏诊)

Specificity (特异度)= TN / (TN + FP ),真实N样本中有多少被正确排除

F1 = 2*P*R / P + R ,平衡精确率与召回率的综合指标 

x:水平位置,y:垂直位置。举例:无人机一般 y < 0.2(图像上方20%区域内)

width、height 可以理解为像素大小

在训练结果分析中,这些参数都经过了归一化,范围在0~1之间

1.weights

weights目录下只有两个文件:

best.pt文件是训练过程中获得的,表现最好的权重文件。

last.pt是训练过程中最后一次获得的权重文件。

其中,best.pt用于模型推理部署(实际中使用的模型),last.pt用于下一次推理使用(机器使用的模型,可以从上一次训练的位置继续训练)

2.args.yaml

训练参数文件

task: detect
mode: train
model: 保密,有我大名
data: 保密,有我大名
epochs: 200
time: null
patience: 100
batch: 128
imgsz: 512
save: true
save_period: -1
cache: false
device: 0
workers: 8
project: 保密
name: 保密
exist_ok: false
pretrained: 保密
optimizer: auto
verbose: true
seed: 0
deterministic: true
single_cls: false
rect: false
cos_lr: false
close_mosaic: 10
resume: false
amp: true
fraction: 1.0
profile: false
freeze: null
multi_scale: false
overlap_mask: true
mask_ratio: 4
dropout: 0.0
val: true
split: val
save_json: false
save_hybrid: false
conf: null
iou: 0.7
max_det: 300
half: false
dnn: false
plots: true
source: null
vid_stride: 1
stream_buffer: false
visualize: false
augment: false
agnostic_nms: false
classes: null
retina_masks: false
embed: null
show: false
save_frames: false
save_txt: false
save_conf: false
save_crop: false
show_labels: true
show_conf: true
show_boxes: true
line_width: null
format: torchscript
keras: false
optimize: false
int8: false
dynamic: false
simplify: true
opset: null
workspace: null
nms: false
lr0: 0.01
lrf: 0.01
momentum: 0.937
weight_decay: 0.0005
warmup_epochs: 3.0
warmup_momentum: 0.8
warmup_bias_lr: 0.1
box: 7.5
cls: 0.5
dfl: 1.5
pose: 12.0
kobj: 1.0
nbs: 64
hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 0.0
translate: 0.1
scale: 0.5
shear: 0.0
perspective: 0.0
flipud: 0.0
fliplr: 0.5
bgr: 0.0
mosaic: 1.0
mixup: 0.0
copy_paste: 0.0
copy_paste_mode: flip
auto_augment: randaugment
erasing: 0.4
crop_fraction: 1.0
cfg: null
tracker: botsort.yaml
save_dir: 保密

解释主要参数含义:

task:detect  任务类型为检测

mode:train  运行模式为训练

model  文件中主要参数是nc值,nc(Number of Classes),有多少类别就修改为几。

data  为数据主路径、训练集路径、验证集路径、测试集路径(可忽略),和标签类别名称。

epochs  训练轮数

batch:128  每次训练取128张图像为一轮

imgsz  训练过程中输入的图像大小为512*512

seed  随机种子(用于确保训练可复现)

lr0  初始学习率

lrf  最终学习率衰减系数 (lr=lr0*lrf)

device  使用几号GPU

3.confusion_matrix_normalized.png

实际值和预测值识别准确率

4.confusion_matrix.png

实际值和预测值识别准确数 

5.F1_curve.png  

F1 = 2*P*R / P + R ,平衡精确率与召回率的综合指标 

6.labels_correlogram.jpg

            可以通过这张图直观看到数据标签分布情况:哪些标签之间具有较强的相关性,有助于优化模型的训练和预测效果。如果我们发现某些标签之间的相关性过强,可以考虑将它们合并成一个标签,从而简化模型并提高效率。

            颜色表示相关性的强弱,颜色越深表示相关性越高。

            横纵坐标数值范围表示归一化后的相关性或分布强度。

            x轴为水平位置,y轴为垂直位置。举例:无人机一般 y < 0.2(图像上方20%区域内)。

            width、height意为像素大小

    注意:图中有用的一共就四个图表。

    (x,y):中心点分布图。展示目标中心点在图像中的分布,帮助识别目标常出现的位置区域。

    • 大量目标靠近边缘 → 考虑标注框是否被截断
    • 中心区域目标稀疏 → 需增加该区域样本

    (y,width):垂直关系和宽度关系图。分析目标在不同垂直位置时的宽度变化,验证近大远小的透视规律:y值越大(位置越靠下),width通常越大。

    • 高位宽目标(y<0.3且width>0.3)→ 可能是飞鸟误标
    • 低位窄目标(y>0.8且width<0.1)→ 需检查小目标漏检

    (width,height):宽度高度关系图

    • width/height>3 → 可能为错误拉长的标注框
    • width≈height且值过大 → 可能误标整个画面为主体

    (y,height):垂直关系与高度关系图。图中 y=0.6且height非常小,同时width可以看到也非常小,意味着图像中下部分有大量小检测框,可能是落叶数据集过多导致。

    • 若某y区间高度分布单一 → 需添加尺度扰动增强
    • 高空目标高度方差小 → 可针对性压缩标注误差阈值

    7.labels.jpg

    左上图:数据分布情况,可以看到图中dock和leaf的标签数据量远超其它数据集,可能会导致模型识别偏向识别dock和leaf,可能会导致其它小数量集的类别很难建模和识别。

    右上图:检测框的尺寸和数量

    左下图:检测框中心点相对于全图的位置

    右下图:检测框占整幅图的大小

    8.P_curve.png

    P 曲线,其中 P 为精确率:预测的样本中有多少是实际真实的。

    9.PR_curve. png

    PR 曲线, 即精确率 - 召回率曲线。是评估训练模型的性能指标。

    精确率:模型预测为正类的样本中实际为正类的比例

    召回率:实际为正类的样本中被正确预测的比例。

    越靠近右上角,代表性能越高。

    当出现快速下降时,需要检查样本质量。

    10.R_curve.png

    R 曲线,召回率曲线,实际为正类的样本中被正确预测的比例。

    11.results.csv

    放一丢丢..太多了

    epoch,time,train/box_loss,train/cls_loss,train/dfl_loss,metrics/precision(B),metrics/recall(B),metrics/mAP50(B),metrics/mAP50-95(B),val/box_loss,val/cls_loss,val/dfl_loss,lr/pg0,lr/pg1,lr/pg2
    1,274.778,3.48685,5.23751,2.84181,0.00098,0.08904,0.00058,0.00017,4.02334,inf,19.6383,0.00332773,0.00332773,0.00332773
    2,430.11,2.08612,3.07477,1.82182,0.56143,0.6054,0.59612,0.37044,1.39146,1.50964,1.34317,0.00662809,0.00662809,0.00662809
    3,584.761,1.22649,1.33372,1.20918,0.79997,0.72684,0.80048,0.55994,1.04828,0.9956,1.1053,0.00989545,0.00989545,0.00989545
    4,738.261,1.00079,0.92408,1.08493,0.89965,0.83716,0.88896,0.69699,0.8405,0.68717,0.97734,0.0098515,0.0098515,0.0098515
    5,891.267,0.88013,0.75631,1.03173,0.93169,0.87794,0.91631,0.73602,0.72515,0.58314,0.92421,0.009802,0.009802,0.009802

    主要观察 metrics/mAP50(B) 和 metrics/mAP50-95(B) 

    1.mAP50(B):、在 IoU(交并比)阈值为 0.5 时,所有类别(或指定类别组B)的平均精度

    • 对每个类别分别计算精确率-召回率曲线(PR曲线)
    • 计算曲线下面积(AP值)
    • 对所有类别的 AP 值取平均(若标注(B)则限定特定类别组)
    • 强调“检测率”

    2.mAP50-95(B):在 IoU 阈值从 0.5 到 0.95(步长0.05)区间内,取10个阈值点计算的 mAP 平均值

    • 分别在 IoU=0.5, 0.55, 0.6,...,0.95 时计算 AP
    • 对所有阈值点的 AP 值取平均
    • 强调“精度”

    当 mAP50 高但 mAP50-95 低时,模型存在定位偏差(框位置不准但分类正确)

    当两者均低 —> 需检查数据质量或模型结构

    12.results.png

     results.csv的图表形式

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值