菜单

可视化

相关源文件

本文档介绍了YOLOv5中提供的可视化工具和技术。可视化在理解模型行为、分析数据集特性和评估模型性能方面起着至关重要的作用。YOLOv5提供了一套全面的可视化工具,帮助用户检查和解释目标检测管道的各个方面。

有关为许多这些可视化提供支持的指标计算的信息,请参阅性能指标

可视化功能概述

YOLOv5提供了以下可视化工具:

  1. 模型输出(检测、边界框)
  2. 数据集探索
  3. 训练进度和结果
  4. 模型评估和比较
  5. 神经网络特征图
  6. 性能分析

来源: utils/plots.py1-518 utils/metrics.py334-381

核心可视化组件

颜色系统

Colors类提供了一致的颜色调色板,用于在整个YOLOv5生态系统中可视化检测结果。它确保每个类别始终获得相同的颜色,从而使可视化更具可读性。

该类使用源自Ultralytics颜色方案的调色板,包含20种不同的颜色。当通过__call__方法访问时,它会根据类别的索引返回RGB或BGR格式的元组。

来源: utils/plots.py31-73

标注图像

使用边界框、标签和其他信息标注图像是YOLOv5的核心功能。其主要工具是Annotator类,该类从ultralytics.utils.plotting导入。

来源: utils/plots.py151-213

检测可视化

绘制带检测框的图像

plot_images函数创建了一个图像网格,并可选择性地添加边界框注释。它广泛用于可视化模型预测或真实标签。

主要功能

  • 支持分批次可视化,图像以网格形式排列
  • 可以显示带类别标签的边界框
  • 显示预测的置信度分数
  • 处理归一化和像素坐标
  • 能够显示文件名

来源: utils/plots.py151-213

保存检测到的对象

save_one_box函数提取并以单独的图像文件形式保存检测到的对象,这对于创建裁剪对象的数据集或更仔细地检查特定检测结果非常有用。

主要参数

  • xyxy: 边界框坐标
  • im: 源图像
  • file: 输出文件路径
  • gain: 边界框扩展因子(默认值:1.02)
  • pad: 填充像素(默认值:10)
  • square: 是否使输出为正方形(默认值:False)
  • BGR: 颜色顺序(默认值:False,保存为RGB)

来源: utils/plots.py500-517

训练可视化

学习率可视化

plot_lr_scheduler函数可视化训练过程中的学习率调度,这有助于验证学习率是否符合预期。

来源: utils/plots.py216-230

训练结果可视化

plot_results函数从结果CSV文件中生成训练指标的综合图表。它可视化了训练过程中损失、精确率、召回率和mAP等关键指标。

可视化的主要指标

  • 框损失和目标性损失
  • 分类损失
  • 精确率和召回率
  • mAP@0.5 和 mAP@0.5:0.95
  • 各种其他性能指标

该函数应用高斯平滑来帮助识别嘈杂数据中的趋势。

来源: utils/plots.py434-462

超参数进化可视化

plot_evolve函数为遗传算法超参数进化结果创建可视化。它有助于理解不同超参数如何影响模型性能。

来源: utils/plots.py403-431

数据集和标签可视化

标签分布可视化

plot_labels函数创建了对数据集标签特性的全面可视化。

  1. 类别分布直方图
  2. 边界框中心的空间分布
  3. 宽度/高度分布
  4. 宽度与高度的相关性
  5. 边界框的可视化表示

这种可视化对于理解数据集平衡和识别潜在问题(如类别不平衡或异常的边界框分布)至关重要。

来源: utils/plots.py327-370

图像分类可视化

imshow_cls函数显示一个图像网格,并可选择性地显示类别标签和预测,这对于可视化分类结果或数据集样本很有用。

来源: utils/plots.py373-399

评估可视化

精确率-召回率曲线

plot_pr_curve函数可视化了模型在各个类别和整体模型性能下的精确率-召回率权衡。它展示了模型在各个类别和整体模型性能下的精确率-召回率权衡。

来源: utils/metrics.py337-358

指标-置信度曲线

plot_mc_curve函数显示精确率、召回率或F1分数等指标如何随置信度阈值变化。这有助于为特定应用选择最佳置信度阈值。

来源: utils/metrics.py362-381

混淆矩阵

ConfusionMatrix.plot方法将模型的分类性能可视化为混淆矩阵,显示每个类别的真阳性、假阳性、假阴性和真阴性。

来源: utils/metrics.py124-222

模型对比

plot_val_study函数创建用于比较不同模型变体的可视化,显示精度(mAP)和速度(ms/image)之间的权衡。

来源: utils/plots.py272-325

特征图可视化

feature_visualization函数允许可视化神经网络的内部特征图,这对于理解模型在不同层级学习到的模式非常有用。

关键方面:

  • 可视化中间层的特征图
  • 不包括检测和分割头层
  • 为每个通道创建特征图网格
  • 以PNG和NumPy格式保存,以供进一步分析

来源: utils/plots.py79-106

常见可视化工作流程

训练监控工作流程

数据集分析工作流程

结论

YOLOv5的可视化工具提供了全面的工具,用于理解模型行为、训练动态、数据集特性和评估结果。这些可视化对于开发健壮的目标检测模型和诊断开发过程中的问题至关重要。

有关为许多这些可视化提供支持的指标计算的信息,请参阅性能指标

来源: utils/plots.py1-518 utils/metrics.py1-381