一文打尽目标检测NMS(1): 精度提升篇

这篇具有很好参考价值的文章主要介绍了一文打尽目标检测NMS(1): 精度提升篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章来自于:曲終人不散丶@知乎,
连接:https://zhuanlan.zhihu.com/p/151914931, 本文仅用于学术分享,如有侵权,前联系后台做删文处理。

一文打尽目标检测NMS(1): 精度提升篇
众所周知,非极大值抑制NMS是目标检测常用的后处理算法,用于剔除冗余检测框,本文将对可以提升精度的各种NMS方法及其变体进行阶段性总结。

总体概要

对NMS进行分类,大致可分为以下六种,这里是依据它们在各自论文中的核心论点进行分类,这些算法可以同时属于多种类别。

  • 1.分类优先:传统NMSSoft-NMS (ICCV 2017)
  • 2.定位优先:IoU-Guided NMS (ECCV 2018)
  • 3.加权平均:Weighted NMS (ICME Workshop 2017)
  • 4.方差加权平均:Softer-NMS (CVPR 2019)
  • 5.自适应阈值:Adaptive NMS (CVPR 2019)
  • 6.+中心点距离:DIoU-NMS (AAAI 2020)

分类优先

传统NMS有多个名称,据不完全统计可以被称为:Traditional / Original / Standard / Greedy NMS,为统一起见,下称Traditional NMS

Traditional NMS算法是最为经典的版本,伪代码如下:
一文打尽目标检测NMS(1): 精度提升篇
作为最为人所知晓的版本,Traditional NMS不仅有CPU版本,并且现已有GPU版本,GPU版本为Ross Girshick大神编写,俗称CUDA NMS。多个深度学习框架也已将CUDA NMS纳入,作为基本函数使用,如Pytorch在Torchvision 0.3中正式集成了CUDA NMS。

缺点:

  • 顺序处理的模式,计算IoU拖累了运算效率。
  • 剔除机制太严格,依据NMS阈值暴力剔除。
  • 阈值是经验选取的。
  • 评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。

Soft-NMS是Traditional NMS的推广,主要旨在缓解Traditional NMS的第二条缺点。
数学上看,Traditional NMS的剔除机制可视为

一文打尽目标检测NMS(1): 精度提升篇
显然,对于IoU≥NMS阈值的相邻框,Traditional NMS的做法是将其得分暴力置0。这对于有遮挡的案例较不友好。因此Soft-NMS的做法是采取得分惩罚机制,使用一个与IoU正相关的惩罚函数对得分 s s s
进行惩罚。

线性惩罚:

一文打尽目标检测NMS(1): 精度提升篇
显然,对于IoU≥NMS阈值的相邻框,Traditional NMS的做法是将其得分暴力置0。这对于有遮挡的案例较不友好。因此Soft-NMS的做法是采取得分惩罚机制,使用一个与IoU正相关的惩罚函数对得分 s 进行惩罚。

  • 其中 M M M代表当前的最大得分框。
  • 线性惩罚有不光滑的地方,因而还有一种高斯惩罚:
    一文打尽目标检测NMS(1): 精度提升篇
    在迭代终止之后,Soft-NMS依据预先设定的得分阈值来保留幸存的检测框,通常设为0.0001

该文对两种惩罚方法的超参数也进行了实验,结果验证了超参数的不敏感性。经本人实测,Soft-NMS在Faster R-CNN中的提升约有0.5-0.8个点的AP提升。

缺点:

  • 仍然是顺序处理的模式,运算效率比Traditional NMS更低。
  • 对双阶段算法友好,而在一些单阶段算法上可能失效。
  • 如果存在定位与得分不一致的情况,则可能导致定位好而得分低的框比定位差得分高的框惩罚更多(遮挡情况下)
  • 评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。

定位优先

IoU-Guided NMS出现于IoU-Net一文中,研究者认为框的定位与分类得分可能出现不一致的情况,特别是框的边界有模棱两可的情形时。因而该文提出了IoU预测分支,来学习定位置信度,进而使用定位置信度来引导NMS。

一文打尽目标检测NMS(1): 精度提升篇
具体来说,就是使用定位置信度作为NMS的筛选依据,每次迭代挑选出最大定位置信度的框 M M M
,然后将IoU≥NMS阈值的相邻框剔除,但把冗余框及其自身的最大分类得分直接赋予 M M M
,这样一来,最终输出的框必定是同时具有最大分类得分与最大定位置信度的框。

优点

IoU-Guided NMS有助于提高严格指标下的精度,如AP75, AP90

缺点:

  • 顺序处理的模式,运算效率与Traditional NMS相同。
  • 需要额外添加IoU预测分支,造成计算开销。
  • 评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。

加权平均

一文打尽目标检测NMS(1): 精度提升篇

框共同决定一框

Weighted NMS出现于ICME Workshop 2017《Inception Single Shot MultiBox Detector for object detection》一文中。论文认为Traditional NMS每次迭代所选出的最大得分框未必是精确定位的,冗余框也有可能是定位良好的。那么与直接剔除机制不同,Weighted NMS顾名思义是对坐标加权平均,加权平均的对象包括 M M M自身以及IoU≥NMS阈值的相邻框。

一文打尽目标检测NMS(1): 精度提升篇
一文打尽目标检测NMS(1): 精度提升篇

优点:

Weighted NMS通常能够获得更高的Precision和Recall,以本人的使用情况来看,只要NMS阈值选取得当,Weighted NMS均能稳定提高AP与AR,无论是AP50还是AP75,也不论所使用的检测模型是什么。

缺点:

  • 顺序处理模式,且运算效率比Traditional NMS更低。
  • 加权因子是IoU与得分,前者只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面;而后者受到定位与得分不一致问题的限制。

方差加权平均

Softer-NMS同样是坐标加权平均的思想,不同在于权重
发生变化,以及引入了box边界的不确定度。

关于目标检测box不确定度,可参考笔者的另一篇文章《一文了解目标检测边界框概率分布》

加权公式如下:
一文打尽目标检测NMS(1): 精度提升篇
在加权平均的过程中,权重越大有两种情形:1. 与 M M M 的IoU越大;2. 方差越小,代表定位不确定度越低。
一文打尽目标检测NMS(1): 精度提升篇

优点:

  • 可以与Traditional NMS或Soft-NMS结合使用。
  • 通常可以稳定提升AP与AR。

缺点:

  • 顺序处理模式,且运算效率比Traditional NMS更低。
  • 需要修改模型来预测方差。
  • 加权因子是IoU与方差,前者依然只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。

自适应阈值

以上这些NMS都基于这样的假设:与当前最高得分框重叠越大,越有可能是冗余框。

Adaptive NMS的研究者认为这在物体之间有严重遮挡时可能带来不好的结果。我们期望当物体分布稀疏时,NMS可选用小阈值以剔除更多冗余框;而在物体分布密集时,NMS选用大阈值,以获得更高的召回。既然如此,该文提出了密度预测模块,来学习一个框的密度。

一文打尽目标检测NMS(1): 精度提升篇
一文打尽目标检测NMS(1): 精度提升篇

优点:

  • 可以与前面所述的各种NMS结合使用。
  • 对遮挡案例更加友好。

缺点:

  • 与Soft-NMS结合使用,效果可能倒退 (受低分检测框的影响)。
  • 顺序处理模式,运算效率低。
  • 需要额外添加密度预测模块,造成计算开销。
  • 评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。

+中心点距离

DIoU-NMS出现于Distance-IoU一文,研究者认为若相邻框的中心点越靠近当前最大得分框
的中心点,则其更有可能是冗余框。也就是说,考虑IoU相同的情况,如下所示
一文打尽目标检测NMS(1): 精度提升篇
第一种相比于第三种越不太可能是冗余框。基于该观点,研究者使用所提出的DIoU替代IoU作为NMS的评判准则,公式如下:
一文打尽目标检测NMS(1): 精度提升篇
一文打尽目标检测NMS(1): 精度提升篇
一文打尽目标检测NMS(1): 精度提升篇
研究者进一步比较了Traditional NMS和DIoU-NMS的性能,在YOLOv3和SSD上,选取NMS阈值为[0.43,0.48]。可以看到DIoU-NMS在每个阈值上都优于Traditional NMS,此外还值得一提的是,即便是性能最差的DIoU-NMS也比性能最好的Traditional NMS相当或更优,说明即便不仔细调整NMS阈值,DIoU-NMS也通常能够表现更好。
一文打尽目标检测NMS(1): 精度提升篇
这里顺便一提,既然都比了[0.43, 0.48]的阈值,就让人比较好奇更宽的阈值范围会怎样?Traditional NMS会不会有反超DIoU-NMS的情况?当然我个人比较认同DIoU-NMS更优的范围会大一些,也就是NMS阈值不必精调也可放心使用DIoU-NMS。文章来源地址https://www.toymoban.com/news/detail-442895.html

优点:

  • 从几何直观的角度,将中心点考虑进来有助于缓解遮挡案例。
  • 可以与前述NMS变体结合使用。
  • 保持NMS阈值不变的情况下,必然能够获得更高recall (因为保留的框增多了),至于precision就需要调
    来平衡了。
  • 个人认为+中心点距离的后处理可以与DIoU/CIoU损失结合使用,这两个损失一方面优化IoU,一方面指引中心点的学习,而中心点距离学得越好,应该对这种后处理思想的执行越有利。

缺点:

  • 依然是顺序处理模式,运算效率低。
  • DIoU的计算比IoU更复杂一些,这会降低运算效率。
  • 在保持NMS阈值不变的情况下,使用DIoU-NMS会导致每次迭代剩余更多的框,这会增加迭代轮数,进一步降低运算效率。(经本人实测,DIoU-NMS是Traditional NMS 起码1.5倍耗时)

总结:

  • 加权平均法通常能够稳定获得精度与召回的提升。
  • 定位优先法,方差加权平均法与自适应阈值法需要修改模型,不够灵活。
  • 中心点距离法可作为额外惩罚因子与其他NMS变体结合。
  • 得分惩罚法会改变box的得分,打破了模型校准机制。
  • 运算效率的低下可能会限制它们的实时应用性。

参考文献

  • Soft-NMS --Improving Object Detection With One Line of Code. ICCV 2017
  • Acquisition of Localization Confidence for Accurate Object Detection. ECCV 2018
  • Inception Single Shot MultiBox Detector for object detection. ICME Workshop 2017
  • Bounding Box Regression with Uncertainty for Accurate Object Detection. CVPR 2019
  • Adaptive NMS: Refining Pedestrian Detection in a Crowd. CVPR 2019
  • Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression. AAAI 2020

到了这里,关于一文打尽目标检测NMS(1): 精度提升篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【目标检测】 非极大值抑制—NMS

    在目标检测任务中,一个目标可能会被多个边界框检测到,这些边界框可能会有不同的位置和大小,但表示同一个目标。 非极大值抑制 (Non-Maximum Suppression, NMS )是一种常用的方法,用于抑制这些重叠的边界框,只保留置信度最高的那个边界框,从而得到最终的目标检测结

    2024年02月04日
    浏览(43)
  • 目标检测的置信度和NMS

    置信度(confidence) 还存在一个很关键的问题:在训练中我们挑选哪个bounding box的准则是选择预测的box与ground truth box的IOU最大的bounding box做为最优的box,但是在预测中并没有ground truth box,怎么才能挑选最优的bounding box呢?这就需要另外的参数了,那就是下面要说到的置信度。

    2024年02月06日
    浏览(47)
  • 【目标检测】非极大值抑制NMS的原理与实现

    非极大值抑制(Non-Maximum Suppression,NMS)是目标检测中常用的一种技术,它的主要作用是去除冗余和重叠过高的框,并保留最佳的几个。 NMS计算的具体步骤如下: 首先根据目标检测模型输出结果,得到一系列候选框及其对应的概率分数。 对所有候选框按照概率分数进行降序

    2024年02月08日
    浏览(40)
  • 【目标检测】概念理解:region proposal、bounding box、anchor box、ground truth、IoU、NMS、RoI Pooling

    最近刚接触图像识别,理解一些概念十分困难,尤其是动不动就冒出个看不懂的英语,让人抓狂。查了不少资料后做一个总结并加上一些自己的理解,理解若有误,烦请大家指出,相互学习。 本文主要对 region proposal、anchor box、bounding box、bounding box regression、ground truth、IoU、

    2024年02月05日
    浏览(52)
  • YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度

    大家好,我是哪吒。 上一篇介绍了YOLOv7如何提高目标检测的速度和精度,基于模型结构提高目标检测速度,本篇介绍一下 基于优化算法提高目标检测速度 。 🏆本文收录于,目标检测YOLO改进指南。 本专栏为改进目标检测YOLO改进指南系列,🚀均为全网独家首发,打造精品专

    2023年04月26日
    浏览(50)
  • YOLOv7如何提高目标检测的速度和精度,基于模型结构提高目标检测速度

    目标检测是计算机视觉领域中的一个重要任务,它的主要目标是在图像或视频中准确地定位和识别特定目标。目标检测算法的速度和精度是衡量其性能的两个重要指标,它们通常是相互矛盾的。在实际应用中,我们需要在速度和精度之间进行权衡,选择适合实际需求的算法。

    2023年04月23日
    浏览(60)
  • 自研算法提升文本图像篡改检测精度,抖音技术团队获 ICDAR2023 分类赛道冠军...

    动手点关注 干货不迷路 近日,抖音 CV 技术团队在 ICDAR 2023 的“Detecting Tampered Text in Images”比赛中,利用自研的“CAS”算法从 1267 个参赛队伍中脱颖而出,获得分类赛道的第一名。 ICDAR(International Conference on Document Analysis and Recognition),是国际文档图像分析和识别领域公认的

    2024年02月15日
    浏览(36)
  • 【2】YOLOv8原理解析:重新定义实时目标检测的速度和精度

    YOLO(You Only Look Once) 是由 Joseph Redmon 和 Ali Farhadi 在华盛顿大学开发的流行的目标检测和图像分割模型。第一个版本的 YOLO 于 2015 年发布,并因其高速度和准确性而迅速赢得了广泛的关注。 YOLOv2 于 2016 年发布,通过引入批归一化、锚框和尺寸聚类等方法改进了原始模型。 YOLO

    2023年04月16日
    浏览(41)
  • RCS-YOLO快速高精度的用于脑肿瘤检测的目标检测模型学习实践

    最近看到了一篇有意思的论文,讲的是开发应用于医疗领域内的肿瘤检测的快速高精度的目标检测模型,论文地址在这里,如下所示:   凭借速度和准确性之间的良好平衡,尖端的YOLO框架已成为最有效的算法之一用于对象检测。然而,使用YOLO网络的性能很少在脑肿瘤检测中

    2024年02月14日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包