深度学习图像识别笔记(三):yolov5检测结果分析

这篇具有很好参考价值的文章主要介绍了深度学习图像识别笔记(三):yolov5检测结果分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Confusion matrix 混淆矩阵

是一种可视化工具,特别用于监督学习。通过这个矩阵,可以很清晰地看出机器是否将两个不同的类混淆了。
深度学习图像识别笔记(三):yolov5检测结果分析
上图的表格其实就是confusion matrix

  • True/False: 预测结果是否正确
  • Positive/Negative:预测的方向是正方向还是负方向
  1. 真阳性(True Positive, TP): 预测为正样本,实际为正样本,预测正确
  2. 真阴性(True Negative, TN):预测为负样本,实际为负样本,预测正确
  3. 假阳性(False Positive, FP):预测为正样本,实际为负样本,预测错误(预测为正样本是错的)
  4. 假阴性(False Negative, FN):预测为负样本,实际为正样本,预测错误(预测为负样本是错的)

举例说明:
假设识别类别,其中加了狗的图片,即认为狗图片为负样本,猫图片为正样本。

  • 猫的图片被预测为猫,为TP;
  • 狗的图片被预测为狗,为TN;
  • 狗的图片被预测为猫,为FP;
  • 猫的图片被预测为狗,为FN;

二、由混淆矩阵衍生出的指标

1、Accuracy 准确率

被分对的样本/总样本数
深度学习图像识别笔记(三):yolov5检测结果分析

     一般来说,正确率越高,分类器越好。

但只用这个指标不够全面,因为若负样本的数量远>正样本数量,虽然正确率仍可以很高,但完全错分类正样本仍能达到较高的Acc。

2、 Error rate 错误率

与accuray相对,描述被分类器错分的比例。
深度学习图像识别笔记(三):yolov5检测结果分析

3、 Sensitive 灵敏度

表示所有正例中被分对的比例,和改良分类器对正例的识别能力。在所有真实值是positive的结果中,模型预测对的比重。
深度学习图像识别笔记(三):yolov5检测结果分析

4、Specificity 特效度

所有负例中被分对的比例,衡量分类器对负例的识别能力
深度学习图像识别笔记(三):yolov5检测结果分析

5、Precision 精度

度量精确性,表示被分为正例的示例中实际为正例的比例。
在模型预测为正样本的所有结果中,有多少真正为正样本的比例。
深度学习图像识别笔记(三):yolov5检测结果分析

6、Recall 召回率

度量覆盖面,由多少个正例被分为正例
深度学习图像识别笔记(三):yolov5检测结果分析

三、指标对比分析

深度学习图像识别笔记(三):yolov5检测结果分析

1、precision 和 recall

上文提到,Accuracy并不能完全反映检测结果,所以需要PrecisionRecall
(下面的空格横线只是为了让等号对齐,没有任何意义)

  • 提高Precision = 提高二分类器预测正样本门槛
    _____________= 使二分类预测的正样本尽可能是真实正样本
  • 提高Recall = 降低二分类器预测正样本门槛
    _____________=使得二分类器尽可能将真实的正例挑选出来

(1)在意TP

由公式可以看到,PrecisionRecall的分子都是True Positive

  • Precision看的是,在预测正向的情况下,实际的【精准度】是多少;
  • Recall看的是,在实际为正向的状况下,预测模型【能召回多少】实际正向的答案。

PrecisionRecall的结果看重哪一个,主要取决于具体的项目情况。例如:

  • 指纹识别门锁,我们更在意预测正向(开门)的答对了多少,不是很在意实际正向(主人)的答对了多少。也就是说,在意Precision,不在意Recall
  • 广告投放中,我们在意实际正向(潜在客户)的答对了多少,而不是很在意预测正向(广告投放)的答对了多少。

(2)不在意TF

这个结果没有什么意思,在指纹识别门锁中,是陌生人按指纹不开门。通常情况下,实际上为正样本的结果比负样本要少,预测为正样本的一定会比预测为负样本少,所以True Negative的数量最多,也没有什么讨论意义。

2、F1 Score 综合评价指标

若一个任务中,PrecisionRecall同等重要,想要用一个指标统一,则有了F1 Score,也称为F1 Measure。它是精确率和召回率的调和平均数,最大为1(最好),最小为0(最差)。
深度学习图像识别笔记(三):yolov5检测结果分析
深度学习图像识别笔记(三):yolov5检测结果分析
当beta=1时,F1-Measure = F1 Score

把两个值综合变为一个值,就方便做模型对比了。

(1)为什么采用调和平均的方法?

调和平均常用于计算平均速率,在固定距离下,所花时间就是平均速率,这和数据成倒数关系,而F1 Measure也同样是这样的数据特性,在固定TP的情况下,有不同的分母,所以这里使用调和平均较为适当。

四、检测结果出来的图怎么看?

1、P曲线

P_curve.png:准确率precision与置信度confidence的关系图。
【置信度confidence:用来判断边界框内的物体是正样本还是负样本,大于置信度阈值的判定为正样本,小于置信度阈值的判定为负样本即背景。】
深度学习图像识别笔记(三):yolov5检测结果分析
画图的代码在yolov5代码的utils文件夹下的metrics.py文件中,代码如下:

def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'):
    # Metric-confidence curve
    fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)

    if 0 < len(names) < 21:  # display per-class legend if < 21 classes
        for i, y in enumerate(py):
            ax.plot(px, y, linewidth=1, label=f'{names[i]}')  # plot(confidence, metric)
    else:
        ax.plot(px, py.T, linewidth=1, color='grey')  # plot(confidence, metric)

    y = py.mean(0)
    ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}')
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.set_xlim(0, 1)
    ax.set_ylim(0, 1)
    plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
    fig.savefig(Path(save_dir), dpi=250)

从代码中可以看到,下面这句话对应图例中最后一句。

ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}')

y.max是指图上所有类别的precious的最大值,这里是1。下面的PR曲线可以看到是0.991。
argmax函数百度一下定义:
深度学习图像识别笔记(三):yolov5检测结果分析
这个函数大约是为了体现这个模型的最终展示效果。因为可以看到,6个类别的曲线,有的精度比较好,有的不太好,通过整合成一条曲线来展示一个综合性能。(这点是猜测,如有其他见解欢迎讨论)

2、R曲线

深度学习图像识别笔记(三):yolov5检测结果分析

3、P-R曲线

preciousrecall之间的关系,PR曲线下围城的面积称作AP,所有类别AP的平均值即为mAP。
深度学习图像识别笔记(三):yolov5检测结果分析
深度学习图像识别笔记(三):yolov5检测结果分析
如果一个学习器的PR曲线A完全包住另一个学习器B的PR曲线,则可断言A的性能优于B。但是A和B发生交叉,那性能该如何判断呢?我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点F1。平衡点(BEP)是 P=R(准确率 = 召回率)时的取值,即斜率为1,F1值越大,我们可以认为该学习器的性能较好。

4、result.png

深度学习图像识别笔记(三):yolov5检测结果分析Box:YOLO V5使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准;
Objectness:推测为目标检测loss均值,越小目标检测越准;
Classification:推测为分类loss均值,越小分类越准;
Precision:精确率(所有分类正确中的正样本比例);
Recall:召回率(有多少正样本被找到)
val Box: 验证集bounding box损失
val Objectness:验证集目标检测loss均值
val classification:验证集分类loss均值
mAP@0.5:阈值大于0.5的平均mAP。【其中,mAP指PR曲线下的面积AP的平均值,@后面的数表示判定IoU为正负样本的阈值】
mAP@0.5:0.95:表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。【@0.5:0.95表示阈值取0.5:0.05:0.95后取均值】

一般训练结果主要观察精确率和召回率波动情况(波动不是很大则训练效果较好),然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果。

5、 F1_curve.png

深度学习图像识别笔记(三):yolov5检测结果分析
F1-score与置信度间的关系。F1-score是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最大为1,最小为0。【1是最好,0是最差】

6、Labels.jpg

深度学习图像识别笔记(三):yolov5检测结果分析
第一个图:classes 每个类别的数据量
第二个图 :labels 标签
第三个图 :center xy
第四个图 :labels 的长和宽

参考博文

秒懂Confusion Matrix之混淆矩阵详解
yolov5 训练结果解析
关于yolov5的一些说明(txt文件、训练结果分析等)文章来源地址https://www.toymoban.com/news/detail-425275.html

到了这里,关于深度学习图像识别笔记(三):yolov5检测结果分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)

    摘要:基于深度学习的花卉检测与识别系统用于常见花卉识别计数,智能检测花卉种类并记录和保存结果,对各种花卉检测结果可视化,更加方便准确辨认花卉。本文详细介绍花卉检测与识别系统,在介绍算法原理的同时,给出 P y t h o n 的实现代码、训练数据集,以及 P y

    2024年01月19日
    浏览(33)
  • python毕业设计 深度学习yolov5车辆颜色识别检测系统 - opencv

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月04日
    浏览(39)
  • 基于深度学习的安全帽识别检测系统(python OpenCV yolov5)

    收藏和点赞,您的关注是我创作的动力    基于深度学习算法,以PaddlePaddle深度学习框架作为实验环境,选取了开源的安全帽识别数据库和实地拍摄的安全帽佩戴照片,使用样本扩增增加了实验数据集的样本数,选取了Faster R-CNN、SSD与YOLO v3三种深度神经网络模型,构建出安

    2024年02月08日
    浏览(38)
  • 计算机设计大赛 深度学习YOLOv5车辆颜色识别检测 - python opencv

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com

    2024年02月19日
    浏览(57)
  • 基于深度学习的高精度鸽子检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度鸽子检测识别系统可用于日常生活中或野外来检测与定位鸽子目标,利用深度学习算法可实现图片、视频、摄像头等方式的鸽子目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月09日
    浏览(43)
  • 基于深度学习的高精度猴子检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度猴子检测识别系统可用于日常生活中或野外来检测与定位猴子目标,利用深度学习算法可实现图片、视频、摄像头等方式的猴子目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月12日
    浏览(66)
  • 基于深度学习的高精度老虎检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度老虎检测识别系统可用于日常生活中或野外来检测与定位老虎目标,利用深度学习算法可实现图片、视频、摄像头等方式的老虎目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月12日
    浏览(42)
  • 基于深度学习的高精度绵羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度绵羊检测识别系统可用于日常生活中或野外来检测与定位绵羊目标,利用深度学习算法可实现图片、视频、摄像头等方式的绵羊目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月10日
    浏览(43)
  • 基于深度学习的高精度山羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度山羊检测识别系统可用于日常生活中或野外来检测与定位山羊目标,利用深度学习算法可实现图片、视频、摄像头等方式的山羊目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月07日
    浏览(52)
  • 基于深度学习的高精度足球检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度足球检测识别系统可用于日常生活中或野外来检测与定位足球目标,利用深度学习算法可实现图片、视频、摄像头等方式的足球目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包