【目标检测出】评价指标

简介: 【目标检测出】评价指标

常见的评价指标有交并比(iou及改进),准确率,精度,召回率,FPR,F1-Score,PR曲线-AP值,ROC曲线-AUC值,mAP值和FPS

✨ 1 交并比

假设有两个矩形,分别为A和B:

f5eb68b1aff94ea9b60711bde2fb92a3.png

则交并比公式:

884d4ff48e9a4e9994deb771ee53a71c.png

即A交B比A并B。

代码实现:

主函数

  eps = torch.finfo(torch.float32).eps
    bboxes1_area = (bboxes1[..., 2] - bboxes1[..., 0]).clamp_(min=0) * (bboxes1[..., 3] - bboxes1[..., 1]).clamp_(min=0)
    bboxes2_area = (bboxes2[..., 2] - bboxes2[..., 0]).clamp_(min=0) * (bboxes2[..., 3] - bboxes2[..., 1]).clamp_(min=0)
    w_intersect = (torch.min(bboxes1[..., 2], bboxes2[..., 2]) - torch.max(bboxes1[..., 0], bboxes2[..., 0])).clamp_(min=0)
    h_intersect = (torch.min(bboxes1[..., 3], bboxes2[..., 3]) - torch.max(bboxes1[..., 1], bboxes2[..., 1])).clamp_(min=0)
    area_intersect = w_intersect * h_intersect
    area_union = bboxes2_area + bboxes1_area - area_intersect
    ious = area_intersect / area_union.clamp(min=eps)

655d2b75586b49ef9db46a2a1ff34084.png

bboxes1_area和bboxes2_area即bboxes1和bboxes2即面积。

w_intersect和h_intersect是bboxes1和bboxes2相交部分的宽和高,比如(torch.min(bboxes1[…, 2], bboxes2[…,2])即在x1_max和x2_max中找到较小的,即相交部分的右下角x轴坐标,其余同理。

area_intersect即计算相交面积。

area_union计算A并B的面积。 clamp函数规定下限。

👻 1.2 giou

原论文地址

ba00a7f86ae94973858333e13f30e2aa.png

✨ 2 precision(精度)和recall(召回率)

在论文里面经常会遇到precision(精度)和recall(召回率),下面进行介绍。

首先,我们要了解一下混淆矩阵,其中包含四个元素:

TP(True Positive):真正例,即实际为正样本且被预测为正样本的数量。

FN(FalseNegative):假反例,即实际为正样本但被预测为负样本的数量。

TN(TrueNegative):真反例,即实际为负样本且被预测为负样本的数量。

FP(FalsePositive):假正例,即实际为负样本但被预测为正样本的数量。

c1c7ac9a22a143978e2b573d6e110a89.png

利用该混淆矩阵,可以==计算precision和recall==。 ****

precision表示模型预测为正类的样本中,实际上真正属于正类的比例,公式为:

69b8fd6dc6e64eef8db7221c5370c30b.png

精确率越高:说明模型在预测正类样本时的准确性越高,即预测为正类的样本中,真正属于正类的比例越大。这意味着模型在区分正类和负类方面表现得更好,误报率较低。但精确率忽略了实际为正类的样本中,被模型漏报(即预测为负类)的情况。

recall表示实际为正类的样本中,被模型正确预测为正类的比例,公式为:

4197885c61024ccf91fef31b1cd2c164.png

召回率越高:说明模型在识别正类样本方面的效果越好,即实际为正类的样本中,被正确预测为正类的比例越大。这意味着模型在捕捉正类样本方面表现得更好,漏报率较低。但召回率忽略了模型预测为正类的样本中,实际上属于负类(即误报)的情况。

精确度和召回率之间的关系:

当精确度升高,即模型更加严格地预测正类时,可能将更多的正样本预测为负样本,那么实际为正样本中预测正确的就变少了,则召回率降低。

反之同理。

(这也体现了,两个各自忽略的即对方关注的)

✨ 3 AP和mAP

25a66843a8d542eb93b80b68ab700ff3.png

从第二节我们知道了精准度和召回率之间的关系,如上图PR曲线所示。

两个部分都有关注与忽略的地方,那么如何将两者结合平衡呢?

PR曲线下方的面积即是一种方案,称为AP值

mAP就是对所有类AP值取平均值。

👻 3.1 具体计算

  1. 剔除类别置信度低的预测框(每个包含目标预测框都有一个包含目标类别的分数预测),一般为0.5。
  2. 计算预测框与GT的IOU。IOU>0.5设置为TP,IOU<=0.5设置为FP,没有检测到的GT的数量设置为FN
  3. 计算recall和precision
  4. 计算PR曲线面积,下面是一个计算示例(某点函数值代替某段函数值)
  5. ccc7320db72046beb86be899beda26da.png

相关文章
|
9月前
|
机器学习/深度学习
大模型中的Scaling Law是什么?
【2月更文挑战第9天】大模型中的Scaling Law是什么?
14254 3
大模型中的Scaling Law是什么?
阿里云海外服务器地域及所在城市国家对照表
阿里云海外地域的其他国家和地区的节点包括:中国香港、亚太东南1、亚太东南2、亚太东南3、亚太东南5、亚太南部1、亚太东北1、美国西部1、美国东部1、、欧洲中部1、英国(伦敦)、中东东部1,阿里云帮助中心分享阿里云海外地域节点的城市国家对照表: 阿里云海外服务器地域及所在城市国家对照表 地域名称...
6605 0
|
数据可视化
研发效能提升 36 计第二课:照亮问题,效能提升从可视化交付过程开始
“提升研发效能”是产品研发的共同目标。但是,应该从哪里开始呢?本次课程,是研发效能提升 36 计系列课程第二课,两位讲师将分享阿里巴巴的经验——从可视化端到端交付过程、暴露问题开始,开启研发效能提升之路。
|
9月前
|
机器学习/深度学习 监控 算法
ICCV2023 | 基于动作敏感性学习的时序动作定位
ICCV2023 | 基于动作敏感性学习的时序动作定位
360 0
|
9月前
|
存储 供应链 Python
用Python代码打造超市收银系统
用Python代码打造超市收银系统
683 1
|
NoSQL Unix Shell
段错误调试神器 - Core Dump详解
一、前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来.
1480 0
|
Shell
Solving environment: failed with initial frozen solve. Retrying with flexible solve的解决方法
Solving environment: failed with initial frozen solve. Retrying with flexible solve的解决方法
13258 0
Solving environment: failed with initial frozen solve. Retrying with flexible solve的解决方法
|
机器学习/深度学习 数据采集 存储
关于人工智能在数据质量管理中的应用
说实在的,人工智能这个概念有些过于高大上,从大的方面包括深度学习、机器学习、强化学习等等,而深度学习又包括图像识别、语音识别、自然语言处理、预测分析;机器学习则包括监督学习、无监督学习、半监督学习,监督学习又细分为回归、分类、决策树等等。理论上人工智能什么都能做,什么都能迎合的上。 关键数据质量管理实在太接地气了,以至于大家都理解为数据质量检查规则定义、数据质量检查规则脚本、检查规则执行引擎、数据质量检查规则执行情况监控,数据质量检查报告;而数据质量校验规则无非就是一致性、准确性、唯一性、真实性、及时性、关联性、完整性的一堆校验,再大白话一些无非就是SQL语句。 而本人面临的还不是基于数据仓库
979 0
|
机器学习/深度学习 传感器 人工智能
【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
|
3月前
|
存储 机器学习/深度学习 搜索推荐
去中心化的模型训练
去中心化的模型训练(Decentralized Model Training)是一种不依赖单一中心服务器或数据存储中心,而是在多个节点(如设备或数据拥有者)上进行联合训练的方法。这种训练模式可以更好地保护数据隐私、降低数据传输成本,并提升模型的鲁棒性和可扩展性。随着数据安全和隐私保护需求的提升,去中心化训练在深度学习和人工智能应用中的重要性逐渐增加。
112 4

热门文章

最新文章