前言本文介绍了应用程序,基本原理,多类NMS方法和实用代码,NMS缺陷和NMS的改进思想,引入了几种改善NMS的常见方法,并提供了与其他异常方法的链接。
本文很久以前就发布了。一位读者评论说,他没有介绍多种NMS以使他不满意,因此他补充了这一点。通过方式,添加了NMS的缺点和改进。
欢迎注意公共帐户简历技术指南,并专注于计算机视觉,最新技术跟踪,经典论文解释和简历招聘信息的技术摘要。
从字面意义上理解,抑制那些非超大的大元素,并保留最大元素。它主要用于目标检测,目标跟踪,3D重建,数据挖掘等,从而抑制那些非最大值的抑制。
目前,NMS通常用于标准NMS,软NMS,Diou NMS等。将来会出现新版本的柔和的NMS,加权NMS和其他改进版本。
以目标测试为例,将在目标检测和推理过程中生成许多检测框(A,B,C,D,E,F等)。许多测试框都要检测到相同的目标,但最后,每个目标中只有一个需要一个。检测框,NMS选择最高分数检测框(假设是C),然后计算相应的分数。c的值和剩余的框。当IOU值超过设置阈值(通常设置为0.5时,目标检测通常仅设置为0.7),即抑制超过阈值的盒子,抑制方法是设置检测的得分框至0。在回合后,继续在其余检测框中找到最高分数,然后抑制和iou。超过阈值的框架将保留到几乎没有重叠的最终帧,以此方式基本上只有一个针对每个目标的检测框。
实施代码:(以Pytorch为例)
除了自己的实施外,您还可以直接使用torchvision.ops.nms来实现它。
上面的方法是将所有盒子放在一起将NMS组合在一起而不考虑类别。也就是说,不应筛选一种框,因为它具有超过阈值的另一种类型的盒子。
对于多种类别的NMS,它的想法相对简单:在每个类别中内部进行NMS。
实现方法:将一个偏移添加到每个框的坐标中,偏移由类别索引确定。
以下是torchvision.ops.batched_nms的实现源代码和使用
此处的偏移使用框中的最大偏移基准测试,然后每个类别索引乘以该基准测试以获得与每个类相对应的偏移量。此类别将所有盒子分开。
在yolo_v5中,它自己编写了实施代码。
请求通知:欢迎朋友可以编写以下内容与我联系(微信:“ Lightdesire”)。
免责声明:如果您有一定数量的报酬,请详细联系。提交“添加之前。
招聘|移民技术招聘深度学习,愿景,3D视觉,机器人算法工程师和其他职位
计算机视觉进入路线
Yolo系列梳理(1)Yolov1-Yolov3
Yolo系列梳理(2)Yolov4
Yolo系列梳理(3)Yolov5
计算机视觉中的注意机制
从零 - 与Pytorch模型教程(3)构建变压器网络
从零 - 与Pytorch模型教程(2)构建网络
从零Pytorch模型教程(1)数据阅读数据阅读
stylegan摘要|完全了解SOTA方法和建筑的新进展
有关使用视觉代码的教程
可视化守则功能图
工业形象的研究摘要异常测试(2019-2020)
关于快速学习新技术或新领域的个人思维和思想的摘要
原始:https://juejin.cn/post/7095282171627175949