YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义

这篇具有很好参考价值的文章主要介绍了YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、正负样本

YOLOv5正负样本定义

  • yolov5输出有3个预测分支,每个分支的每个网格有3个anchor与之对应。
  • 没有采用IOU最大的匹配方法,而是通过计算该bounding-box和当前层的anchor的宽高比,如果最大比例大于4(设定阈值),则比例过大,则说明匹配度不高,将该bbox过滤,在当前层认为是背景;
  • 计算这些box落在哪个网格内,同时利用四舍五入规则,找出最近的两个网格,将这三个网格都认为是负责预测该bbox的,所以理论上最多一个gt会分配9个正样本anchor,最少为3个(因为引入了相邻两个网格)

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

参考:
YOLOv3/v4/v4/x中正负样本的定义

Yolo系列 | Yolov4v5的模型结构与正负样本匹配

二、YOLOv5 - 在多类别中应用NMS(非极大值抑制)

2.1 非极大值抑制(NMS)

非极大值抑制虽然一般不作评价指标,但是也是目标检测中一个很重要的步骤,因为下期就要步入经典模型的介绍了,所以这里随着评价指标简单介绍下。

单个预测目标
NMS的英文为Non-Maximum Suppression,就是在预测的结果框和相应的置信度中找到置信度比较高的bounding box。对于有重叠在一起的预测框,如果和当前最高分的候选框重叠面积IoU大于一定的阈值的时候,就将其删除,而只保留得分最高的那个。如下图:

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

计算步骤:

  • NMS计算出每一个bounding box的面积,然后根据置信度进行排序,把置信度最大的bounding box作为队列中首个要比较的对象;
  • 计算其余bounding box与当前最大score box的IoU,去除得到的IoU大于设定的阈值的bounding box【比如0.6】,保留小的IoU预测框;
  • 然后重复上面的过程,直至候选bounding box为空。

YOLOv5针对多个类别的预测目标

根据参数执行多个类一起应用NMS还是执行按照不同的类分别应用NMS

  • 不同的类分别应用NMS(非极大值抑制),即每个索引值对应一个类别,不同类别的元素之间不会应用NMS。
    实现方法一句话
    多类别NMS(非极大值抑制)的处理策略是为了让每个类都能独立执行NMS,在所有的边框上添加一个偏移量。偏移量仅取决于类IDX,并且足够大,以便来自不同类的框不会重叠。

三、目标检测模型的评价指标(交并比、Acc, Precision, Recall, AP, mAP, RoI)

3.1 交并比 — IoU

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

公式即为: IoU = (A∩B) / (A∪B)

3.2 准确率/精度/召回率/FPR/F1指标

  • 预测值为正例,记为P(Positive)
  • 预测值为反例,记为N(Negative)
  • 预测值与真实值相同,记为T(True)
  • 预测值与真实值相反,记为F(False)

那么从上面可以知道:

TP -- 预测值和真实值一样,预测值为正样本(真实值为正样本)
TN -- 预测值和真实值一样,预测值为负样本(真实值为负样本)
FP -- 预测值和真实值不一样,预测值为正样本(真实值为负样本)【FP中的P表示预测为正例,但是预测错了】
FN -- 预测值和真实值不一样,预测值为负样本(真实值为正样本)

3.2.1、 准确率accuracy

就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好,如下:

accuracy = (TP+TN)/(TP+TN+FP+FN)

上公式中的TP+TN即为所有的正确预测为正样本的数据与正确预测为负样本的数据的总和,TP+TN+FP+FN即为总样本的个数。

3.2.2、精度precision

是从预测结果的角度来统计的,是说预测为正样本的数据中有多少个是真正的正样本,即“找的对”的比例,如下:

 precision = TP/( TP+FP)

上公式中的TP+FP即为所有的预测为正样本的数据,TP即为预测正确的正样本个数。

3.2.3、召回率recall / TPR(灵敏度true positive rate)

召回率recall和TPR(灵敏度(true positive rate))是一个概念,都是从真实的样本集来统计的,是说在总的正样本中,模型找回了多少个正样本,即“找的全”的比例,如下:

recall/TPR  = TP/(TP+FN)

3.2.4、F1-Score

F1分数(F1-score)是分类问题的一个衡量指标。F1分数认为召回率和精度同等重要, 一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。计算公式如下:

F1 = 2TP/(2TP+FP+FN)

3.2.5、PR曲线—AP值 / ROC曲线-AUC值

PR曲线,就是precision和recall的曲线,PR曲线中precision为纵坐标,recall为横坐标,如下图:

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

那么PR曲线如何评估模型的性能呢?从图上理解,如果模型的精度越高召回率越高那么模型的性能越好。也就是说PR曲线下面的面积越大,模型的性能越好。绘制的时候也是设定不同的分类阈值来获得对应的坐标,从而画出曲线。

平均准确率AP

AP即Average Precision,称为平均准确率,是对不同召回率点上的准确率进行平均,在PR曲线图上表现为PR曲线下面的面积。AP的值越大,则说明模型的平均准确率越高。

ROC曲线和AUC值

ROC的全称是Receiver Operating Characteristic Curve,中文名字叫“受试者工作特征曲线”,对于ROC来说,横坐标就是FPR,而纵坐标就是TPR,因此可以想见,当TPR越大,而FPR越小时,说明分类结果是较好的。如下图:

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

3.2.6、 平均精度均值 — mAP

mAP是英文mean average precision的缩写,意思是平均精度均值,这个词听起来有些拗口,我们来仔细捋一捋。上面我们知道了什么是AP,AP就是PR曲线下面的面积(如下图),是指不同召回率下的精度的平均值。

然而,在目标检测中,一个模型通常会检测很多种物体,那么每一类都能绘制一个PR曲线,进而计算出一个AP值。那么多个类别的AP值的平均就是mAP.

yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

YOLOv5中mAP@0.5与mAP@0.5:0.95的含义

  • mAP@0.5:mean Average Precision(IoU=0.5)

将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP

如图所示,AP50,AP60,AP70……等等指的是取detector的IoU阈值大于0.5,大于0.6,大于0.7……等等。数值越高,即阈值越大,精度越低。
yolov5 map曲线,DeepLearning,目标检测,YOLO,计算机视觉

  • mAP@.5:.95(mAP@[.5:.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。

参考:目标检测 YOLOv5 - 在多类别中应用NMS(非极大值抑制)https://blog.csdn.net/flyfish1986/article/details/119177472

目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI)https://blog.csdn.net/kuweicai/article/details/105082446

【必备】目标检测中的评价指标有哪些?https://cloud.tencent.com/developer/article/1624811

mAP@0.5与mAP@0.5:0.95的含义,YOLOhttps://blog.csdn.net/ruyingcai666666/article/details/109670567?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-109670567-blog-89851944.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-109670567-blog-89851944.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2

参考引用:

YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义_yolov5中的map值含义_是七叔呀的博客-CSDN博客YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义https://blog.csdn.net/m0_46378271/article/details/126089673文章来源地址https://www.toymoban.com/news/detail-771257.html

到了这里,关于YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • YOLO物体检测-系列教程1:YOLOV1整体解读(预选框/置信度/分类任/回归任务/损失函数/公式解析/置信度/非极大值抑制)

    YOLOV1整体解读 YOLOV2整体解读 YOLOV1提出论文:You Only Look Once: Unified, Real-Time Object Detection two-stage(两阶段):Faster-rcnn Mask-Rcnn系列 one-stage(单阶段):YOLO系列 最核心的优势:速度非常快,适合做实时检测任务! 但是缺点也是有的,效果通常情况下不会太好! 机器学习 分类任

    2024年02月09日
    浏览(31)
  • 图像处理之canny边缘检测(非极大值抑制和高低阈值)

    Canny算子是John F.Canny 大佬在1986年在其发表的论文 《Canny J. A computational approach to edge detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986 (6): 679-698.》提出来的。 低错误率。所有边缘都应该被找到,并且应该没有伪响应。也就是检测到的边缘必须尽可能时真实的边缘

    2024年02月16日
    浏览(31)
  • 非极大值抑制(NMS)算法详解

    百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署) 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS) 百度飞桨(PaddlePaddle) - PP

    2024年02月06日
    浏览(29)
  • 春招面试准备笔记——NMS(非极大值抑制)算法

    NMS(非极大值抑制)算法非极大值抑制是用于减少物体检测算法中重叠边界框或区域的数量的技术。通过对每个类别的检测框按置信度排序,然后逐个遍历,保留置信度最高的框,并抑制与其重叠且置信度低的框,从而得到更准确和简洁的检测结果。 假设我们使用一个人脸检

    2024年02月21日
    浏览(45)
  • openCV实战-系列教程5:边缘检测(Canny边缘检测/高斯滤波器/Sobel算子/非极大值抑制/线性插值法/梯度方向/双阈值检测 )、原理解析、源码解读 ?????OpenCV实战系列总目录

    打印一个图片可以做出一个函数: Canny是一个科学家在1986年写了一篇论文,所以用自己的名字来命名这个检测算法,Canny边缘检测算法这里写了5步流程,会用到之前《openCV实战-系列教程》的内容。  使用高斯滤波器,以平滑图像,滤除噪声。 计算图像中每个像素点的梯度强

    2024年02月11日
    浏览(39)
  • 【NMS,非极大值抑制】Python和C++的实现

    代码如下:

    2024年02月15日
    浏览(24)
  • 非极大值抑制详细原理(NMS含代码及详细注释)

    作者主页: 爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主 爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域. https://blog.csdn.net/Code_and516?type=collect 个人介绍:打工人。 分享内容

    2023年04月21日
    浏览(40)
  • YOLOv5基础知识入门(7)— NMS(非极大值抑制)原理解析

    前言: Hello大家好,我是小哥谈。 NMS是指非极大值抑制(non maximum suppression),它是一种常用于物体检测任务的算法。在物体检测中,通常会有多个预测框(bounding box)被提议出来,并且这些框可能存在重叠或者重复的情况。NMS的目的就是通过抑制非极大值的方式,来选择出

    2024年02月12日
    浏览(30)
  • 深度学习基本功3:NMS(Non-Maximum Suppression,非极大值抑制)算法原理及实现

    大多数目标检测算法(稠密预测)在得到最终的预测结果时,特征图的每个位置都会输出多个检测结果,整个特征图上会出很多个重叠的框。例如要检测一辆车,可能会有多个bbox都把这辆车给框了出来,因此需要从这些bbox中选出框得最好的,删除掉其它的。要定义框得好与

    2024年02月06日
    浏览(32)
  • Canny边缘检测方法中的非极大抑制

    什么是非极大抑制 在目标检测中,通常会使用各种各样的方法来让计算机找到目标的所在位置,然而,计算机的输出往往并不是单一的,也就是说,一个目标可能会输出多个结果(如下图所示),这些结果有好有坏,因此就需要使用 非极大抑制 的方法来筛选出最优结果,说

    2024年02月09日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包