非极大值抑制_目标检测中的非极大值抑制

本文使用 Zhihu On VSCode 创作并发布

1 NMS

非极大值抑制(Non-Maximum Suppression, NMS)基本思想是搜索局部极大值,对非极大值进行抑制。在目标检测中,在同一位置上可能产生大量的候选框,这些候选框之间可能会有重叠,这时需要利用NMS找到最佳的边界框,对其他的边界框进行抑制。

1.1 算法流程

输入:候选框列表,置信度得分列表,IoU阈值

输出:置信度为极大值的候选框

  1. 按照置信度对所有候选框进行排序
  2. 将置信度最高的候选框添加到输出候选框列表中,并将其从输入候选框中删除
  3. 计算挑选出的候选框与当前所有输入候选框之间的IoU
  4. 删除IoU大于阈值的输入候选框
  5. 重复第2-4步,直到输入候选框列表为空

1.2 NMS的缺点

  1. NMS将IoU高于阈值的候选框的分数置0,如果真实物体在重叠区域出现,那么使用NMS可能会漏检
  2. 需要手动设置阈值
  3. 这时一个后处理过程,使用CPU计算,会比较慢

1.3 Python实现

import numpy as np
def nms(dets, threshold):
    res_dets = []
    if not dets
        return res_dets
    
    # 获取边界框和分数
    x1 = dets[:, 0]
    y1 = dets[:, 1]
    x2 = dets[:, 2]
    y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值