CV面试高频夺命三连问:什么是NMS ? NMS与Soft-NMS的区别是什么? 编程实现一下呗(C++ or Python)?

本文详细解释了NMS(非极大值抑制)的基本过程,指出其在密集场景下可能导致目标丢失的问题,并介绍了Soft-NMS作为改进方法,通过衰减置信度来解决这一问题。此外,提供了C++和Python的NMS实现代码参考。
摘要由CSDN通过智能技术生成

大家好,我是行路南。

本文是CV面试系列第一篇。上段时间,笔者对2020年各大视觉大厂面试题目进行了梳理。结果发现NMS真的是一道基本题和高频题。这里可以列出几家的题目给大家看看:

百度图像算法工程师社招二面:

  • 编程实现一下NMS

图森未来校招一面:

  • Soft-NMS和NMS的区别,解决了什么问题。Soft-NMS的具体过程

BIGO校招一面:

  • python实现NMS

货拉拉一面:

  • 编程实现NMS

阿里达摩院二面:

  • C++实现非极大值抑制

快手一面:

  • 编程实现NMS

地平线一面:

  • 编程实现NMS

可见,对于NMS,我们不仅需要理解它的概念,还要进一步它的不足和改进的方法,最最最重要的要掌握一门语言能够实现它。这样我们才能在面试中游(bu)刃(bei)有(diao)余(da)…

夺命第一问:NMS是什么?描述一下它的基本过程

NMS又称非极大值抑制,它是目标检测管道中的一个必要组成部分。

初始时,非极大值抑制过程开始于一个检测框列表 B B B、对应的置信度列表 S S S、空的检测框列表 D D D、阈值 N t N_t Nt

首先,找到最高置信度对应的检测框 M M M, 将其从 B B B中删除,并添加到最终检测框列表 D D D中。然后,计算 M M M B B B中其他检测框的重叠程度IOU,将IOU大于阈值 N t N_t Nt的目标检测框从 B B B中删除。

对于 B B B中剩余的检测框,继续重复这个过程,直到 B B B为空时结束。

下图中是Fast R-CNN目标检测中应用NMS的例子。从左上到右上,是生成候选区域(Proposal)的过程;从右上到右下,是使用分类网络得到类别置信度和使用回归网络得到偏移量进而修正位置的过程;从右下到左下,是对每个目标上检测到的框进行筛选的过程,这个过程就是通过NMS来实现。

image-20210308122116454

夺命第二问: Soft-NMS和NMS的区别,解决了NMS什么问题?

NMS 的一个主要问题是,它将与 M M M重叠度大于阈值的其他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值