文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

终于把目标检测中的 NMS 搞懂了!

2024-11-29 20:31

关注

今天给大家分享目标检测中的一个关键知识点,NMS

目标检测中的非最大抑制(Non-Maximum Suppression, NMS)是一个关键步骤,用于去除多余的候选框(bounding boxes),从而精简检测结果。它主要用于确保每个目标只被检测一次,避免多个重叠的候选框表示同一个目标。

目标检测简介

目标检测(Object Detection)是一种计算机视觉技术,其主要任务是识别图像或视频中的目标,并确定每个目标的位置和类别。

与图像分类不同,目标检测不仅需要识别图像中包含的物体,还需要定位这些物体在图像中的具体位置(通常用边界框表示)。

图片

目标检测任务有多种算法,这些算法在过去十年中不断发展。

为了进一步提高性能并捕捉不同形状和大小的物体,算法会预测多个不同大小和长宽比的边界框。

图片

但是在所有边界框中,如何选择最合适、最准确的边界框?这就是 NMS 发挥作用的地方。

什么是非最大抑制?

图片中的物体可能大小和形状各异,为了完美捕捉每个物体,目标检测算法会创建多个边界框(左图)。理想情况下,对于图片中的每个物体,我们都必须有一个边界框,类似于右图。

图片

为了从多个预测的边界框中选择最佳边界框,这些目标检测算法使用非最大抑制。

该技术用于“抑制”可能性较小的边界框并仅保留最佳边界框。

非最大抑制如何起作用?

非最大抑制的目的是为对象选择最佳边界框,并拒绝或 “抑制” 所有其他边界框。

该算法迭代地选择最佳边界框,比较重叠,并删除冗余框,直到收敛。

NMS 考虑了两件事

你可以在下图中看到,除了边界框之外,模型还会返回客观性分数。

该分数表示模型对目标对象存在于此边界框中的确定程度。

图片

你可以看到所有边界框都有物体,但只有绿色边界框是检测物体的最佳边界框。

现在我们如何摆脱其他边界框?

非最大抑制将首先选择客观性得分最高的边界框。然后删除所有其他重叠度高的边界框。

所以在上面的图片中,

  1. 我们将为狗选择绿色边界框(因为它的客观性得分最高,为 98%)
  2. 并移除狗的黄色和红色框(因为它们与绿色框重叠较高)

其余的框也采用相同的过程,这个过程不断迭代,直到不再减少框。

最后,我们将得到以下结果。

图片

这就是 NMS 的工作原理。

实现非最大抑制

现在你应该对非最大抑制有了很好的理解。让我们将非最大抑制的过程分解为几个步骤。

图片

假设我们一个人和狗的图像,有六个边界框,每个边界框都有客观性分数。

图片

对于此图像,我们将使用 torchvision 库中的非最大抑制(NMS 算法)函数 nms() 。

此函数需要三个参数-

这里,由于上述坐标采用 x1、y1、宽度、高度格式,我们将按以下方式确定 x2、y2

x2 = x1 + 宽度 

y2 = y1 + 高度

import torch
from torchvision.ops import nms


boxes = torch.tensor([[190,380,(190+300),(380+150)],
                      [300,420,(300+150),(420+210)],
                      [320,360,(320+200),(360+230)],

                      [390,50,(390+300),(50+330)],
                      [490,45,(490+200),(45+500)],
                      [480,130,(480+150),(130+400)]], dtype=torch.float32)

scores = torch.tensor([[0.90],[0.98],[0.82], [0.87],[0.98],[0.82]], dtype=torch.float32)

nms(boxes = boxes, scores = scores, iou_threshold=0.2)

#tensor([1, 4])

对于我们的示例,这个 python 函数返回了边界框 1 和 4。


来源:程序员学长内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯