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

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

大家好,我是行路南。

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

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

  • 编程实现一下NMS

图森未来校招一面:

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

BIGO校招一面:

  • python实现NMS

货拉拉一面:

  • 编程实现NMS

阿里达摩院二面:

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

快手一面:

  • 编程实现NMS

地平线一面:

  • 编程实现NMS

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

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

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

初始时,非极大值抑制过程开始于一个检测框列表BBB、对应的置信度列表SSS、空的检测框列表DDD、阈值NtN_tNt

首先,找到最高置信度对应的检测框MMM, 将其从BBB中删除,并添加到最终检测框列表DDD中。然后,计算MMMBBB中其他检测框的重叠程度IOU,将IOU大于阈值NtN_tNt的目标检测框从BBB中删除。

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

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

image-20210308122116454

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

NMS 的一个主要问题是,它将与MMM重叠度大于阈值的其他检测框直接从B中删除了。

这就造成了,如果在MM

算法面试(5)------NMS(非极大值抑制)原理 Soft-NMS、DIoU-NMS 是什么? 这是一个目标检测领域的核心后处理题,也是面试高频考点。我们从基础 NMS 原理 → 缺陷 → 改进版(Soft-NMS、DIoU-NMS层递进,彻底讲透! 阅读详情

相关推荐

面试-手撕NMS(非极大值抑制)

非极大值抑制(Non-Maximum Suppression,NMS)是一种常用于目标检测和计算机视觉中的算法,用于去除重叠的边界框,保留最可能是真实目标的边界框。其核心就是对一组检测框,找出其中属于同一个类别且分数最高的那个框,然后把和这个框的IOU值大于阈值的那些框都删掉。

zhaoyqcsdn的博客 1082

cpp-NMSSoftNMS两种非极大值抑制算法实现

NMS\SoftNMS\两种非极大值抑制算法实现

概念解析 | 非极大值抑制(NMS):原理、缺点和改进

计算机视觉中,物体检测是一个核心且充满挑战的题。众多算法和技术应运而生,其中,非极大值抑制(NMS)是一种广泛应用于物体检测任务的后处理步骤。它的主要目标是过滤掉大量冗余的、高度重叠的候选框,只保留最具代表性的一个,从而提高检测效果。然而,NMS也存在一些不足之处,本文将详细介绍这些题,并探讨相关改进工作。图1:非极大值抑制示意图。

NLOS的博客 1528

NMS(非极大值抑制)Soft NMS C++/Python 代码实现

目录NMSPythonC++Soft-NMSPythonC++ NMSSoft-NMS概念定义见 参考链接:非极大值抑制(Non-Maximum Suppression,NMSNMS Python import numpy as np def iou(A, B): # 左上右下坐标(x1,y1,x2,y2) w = max(0, min(A[2], B[2]) - ma...

会意的博客 3251

目标定位和检测系列:交并比(IOU)和非极大值抑制(NMS)的pythonC/C++实现

Python实现 交并比(Intersection over Union)和非极大值抑制是(Non-Maximum Suppression)是目标检测任务中非常重要的两个概念。例如在用训练好的模型进行测试时,网络会预测出一系列的候选框。这时候我们会用NMS来移除一些多余的候选框。即移除一些IOU值大于某个阈值的框。然后在剩下的候选框中,分别计算ground truth的IOU值,通常会规定当候...

邦戈邦戈栗子的博客 2997

c++版的NMS(非极大抑制)实现

NMS(非极大抑制)是深度学习目标检测中常用的小算法,用来过滤掉同一个物体上的那些置信度较低的bbboxes,最后只剩下该目标检测框集中最大置信度的那个。 算法原理 说它是小算法的原因是其原理很简单。 1)先对输入检测框按置信度由高到低排序 2)挑选第一个检测框(即最高置信度,记为A)和其它检测框(记为B)进行iou计算 3)如果iou大于nmsThreshold, 那就将B清...

ltshan139的专栏 1万+

同花顺-图像算法工程师-笔试题

1.提高深层神经网络特征表达能力的方法是 答: 2.房间里有8个人,分别佩戴着从1号到8号的徽章,任意选3人记录其纪念号码,最大号码为6的概率是 答: 3.假设一个聚类模型的标签是已知的,如何评价该模型的性能 答: 4.简要说明目标检测过程中NMS算法流程 答: 5.深度神经网络中什么是梯度爆炸和梯度消失? 答: 6.解释batch-normalize的原理和实现过程 答: 7.请说明dropout的原理和实现方法 答: 8.在使用小样本训练集训练深度模型时,可以采用什么方法提高模型性能 答: 9.为什么引

zyd_1129的博客 3769

c++实现NMS(非极大抑制)

使用C++和OpenCV实现nms

weixin_43868576的博客 692

soft-nmsC++实现

出处:nms.cc #include <bits/stdc++.h> namespace nms { struct proposal { float score, x1, y1, x2, y2; }; inline static bool cmp(const proposal& a, const proposal& b) { return a.score &...

xiangxianghehe的博客 1273

一起复习AI面试题(1):NMSsoft-NMS相关面试

“反正关注我之后,拿offer都拿到手软,工资都蹭蹭的涨” 更多都在微信公众号:hulugeAI 题1:概述nms 当两个box空间位置非常接近,就以score更高的那个作为基准,看IOU即重合度如何,如果其重合度超过阈值,就抑制score更小的box,因为没有必要输出两个接近的box,只保留score大的就可以了。 题2:NMS的过程: 1 将各组box按照score降序排列 2 从score最大值开始,置为当前box,保存idex,然后依次遍历后面的box,计算当前box的IO.

gsrhehe的博客 915

春招面试准备笔记——NMS(非极大值抑制)算法

NMS(非极大值抑制)算法非极大值抑制是用于减少物体检测算法中重叠边界框或区域的数量的技术。通过对每个类别的检测框按置信度排序,然后逐个遍历,保留置信度最高的框,并抑制其重叠且置信度低的框,从而得到更准确和简洁的检测结果。

m0_56569131的博客 1338

C++实现nmssoftmax

C++实现NMSsoftmax

qq_41920323的博客 674

非极大值抑制(NMS)在目标检测中的改进应用

NMS用于筛选出最佳的候选框,去除多余的检测框,从而提高检测的精度。在目标检测任务中,传统的NMS方法首先需要按照检测框预测的类别进行分类,然后对每个类别内的检测框独立应用NMS算法。为了解决这个题,研究者们提出了一种改进的NMS方法,其核心思想是在应用NMS之前,先对不同类别的预测框进行空间上的区分。第二轮:在新的S1集合中,C的置信度分数最高,集合S1中的剩余框分别C计算IoU,因为D、EC的IoU>0.5,所以D、E将从S1中移除,C也将作为结果从集合S1中移除,放入最终结果中。

m0_51030297的博客 1732

NMS及其改进

NMS及其改进NMSSoft-NMS基于学习的算法Softer-NMSIOU-Net NMS 1.只用于预测,不用于训练; 2.在每一类的所有box中进行筛选; 3.IOU太大则被删除。 公式: Soft-NMS 1.不要直接地删除所有IOU大于阈值的框,而是降低其置信度; 2.分数降低常用两种方法:线性法和高斯法。 线性法: M为当前得分最高框,bi 为待处理框,bi 和M的IOU越大,bi 的得分si 就下降的越厉害(而不是直接置零)。但该式并不是一个连续的函数,当一个边框M的IoU超过阈值Nt时

bblingbbling的博客 3508

目标检测之Soft-NMS

一、目标检测之Soft-NMS Improving Object DetectionWith One Line of Code 论文链接:https://arxiv.org/abs/1704.04503 论文代码:https://github.com/bharatsingh430/soft-nms 二、Soft-NMS 算法 原来的NMS可以描述如下:将IOU大于阈值的窗口的得分全部置为0。...

thisiszdy的博客 832

NMS——卷积网络改进实现

本文介绍了用卷积神经网络改进传统NMS的方法,文章来源于2016ICLR《A CONVNET FOR NON-MAXIMUM SUPPRESSION》,该文章状态为正在审核。 1-传统的NMS 2-NMS-ConvNet 2-1 映射制作score map 2-2 制作IOU层 2-3 网络解析 2-4 输出及Loss 未完待续

shuzfan的专栏 1万+

目标检测NMS非极大值抑制及改进

非极大值抑制题,解决同一个物体有多于一个候选框输出的题。NMS用于过滤掉重叠的候选框。 (1)算法输入:包含各框的位置坐标,以及置信度得分 (2)算法步骤:设定IOU阈值,比如0.7。所有边框按照置信度进行排序,取得分最高的边框并保存,使其其余边框计算IOU,去掉计算结果中大于0.7的结果。对于剩下的结果再度计算,直至所有边框消失。 存在题: (1)强制去掉得分较低的边框,影响召回率。 (2)IOU阈值难以人为确定。 (3)得分高的边框位置不一定更优。 (4)速度有点慢 Soft NMS法:对于得分

种一棵树最好的时间是十年前,其次是现在 3407

面试题总结——编程题关于IOU、NMS

编程题一.关于IOU1.1 IOU定义1.2 IOU的优缺点1.3 IOU的实现代码二.关于NMS.关于Kmeans 一.关于IOU 1.1 IOU定义 Intersection over Union (IOU) 是目标检测领域中一个重要的评价值。 上图中框出了ground truth box和predict box。   IOU 通过计算预测的边框和真实的边框之间的Intersection Area I(相交的面积) 和 Union Area U(总的面积) 的比值来获得,公式如下:        

boss-dog 2191

soft-nms(softnms)(pytorch实现)& softer nms

softnmssofter nmsnms的两个改进算法

hxxjxw的博客 6710
上一篇: 【论文学习】Soft-NMS: 用一行代码改进目标检测
下一篇: 【LeetCode 精选TOP】剑指 Offer 32 - I. 从上到下打印二叉树
行路南
博客等级 码龄13年 433粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值