【目标检测出】评价指标

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

常见的评价指标有交并比(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

相关文章
|
人工智能 运维 Serverless
一键部署 Qwen3! 0 代码,2 种方式全新体验
Qwen3 正式发布并开源 8 款混合推理模型,包括两款 MoE 模型(Qwen3-235B-A22B 和 Qwen3-30B-A3B)及六个 Dense 模型。这些模型支持 119 种语言,在代码、数学等测试中表现优异,并提供思考与非思考两种模式。依托阿里云函数计算 FC 算力,FunctionAI 平台支持模型服务和应用模板部署,适用于多种场景。用户可通过 Serverless 架构快速构建高弹性、智能化应用,显著降低开发成本,提升效率。试用链接及详细文档已提供,欢迎体验。
|
9月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
计算机视觉
YOLOv11改进策略【小目标改进】| 2024-TOP 自适应阈值焦点损失(ATFL)提升对小目标的检测能力
YOLOv11改进策略【小目标改进】| 2024-TOP 自适应阈值焦点损失(ATFL)提升对小目标的检测能力
2148 11
YOLOv11改进策略【小目标改进】| 2024-TOP 自适应阈值焦点损失(ATFL)提升对小目标的检测能力
|
Web App开发 Rust 前端开发
常见浏览器内核
常见浏览器内核包括:Blink(用于 Chrome、Edge 等),注重性能与现代网页支持;WebKit(用于 Safari 和早期 Chrome),强调高效能;Gecko(用于 Firefox),支持强大扩展;Trident(用于 IE,已被 Edge 替代);EdgeHTML(用于早期 Edge,现已转为 Blink);Servo(实验性,基于 Rust)。这些内核负责渲染网页内容、处理 CSS 和 JavaScript,直接影响用户体验,并随技术发展持续演进。
|
Kubernetes 容器
Kubernetes(K8S) 拉取镜像 ImagePullBackOff pull access denied
Kubernetes(K8S) 拉取镜像 ImagePullBackOff pull access denied
755 0
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
865 2
|
Linux Shell API
深入探索 `dbus-run-session`:Linux下的D-Bus会话管理工具
`dbus-run-session`是Linux下管理D-Bus会话的工具,它确保桌面环境和应用间的通信。当登录图形桌面时,D-Bus会话自动创建,支持应用和服务间的消息传递。通常不需要直接使用,但在特定情况下,可以通过`dbus-run-session bash`启动shell会话运行D-Bus相关命令。注意避免重复启动会话,勿以root运行,确保环境变量正确,可使用`--verbose`选项进行调试。了解其工作原理有助于解决D-Bus相关问题。
|
存储 Python
Python多个set中的交集
Python多个set中的交集
465 1
|
存储 缓存 C++
GGML 非官方中文文档(1)
GGML 非官方中文文档
779 1
|
存储 算法 异构计算
GGML 非官方中文文档(5)
GGML 非官方中文文档
524 1