Softer-NMS:CMU&旷视最新论文提出定位更加精确的目标检测算法

Softer-NMS:CMU&旷视最新论文提出定位更加精确的目标检测算法

 

前天arXiv新上论文《Softer-NMS: Rethinking Bounding Box Regression for Accurate Object Detection》,来自卡内基梅隆大学与旷视科技的研究人员在文中提出了一种新的非极大抑制算法Softer-NMS,显著改进了目标检测的定位精度,代码已经开源,目前Github上的Star已超100,可谓短短两天已经引起了不小的关注。

作者信息:

目前NMS算法的问题

非极大抑制(Non-maximum suppression,NMS)算法对于目前state-of-the-art目标检测算法从多个候选位置定位目标非常重要,在目前的NMS算法中,使用目标的分类分数作为候选位置精确度的体现,即分类成某类物体的分数越高代表定位精度也越精确,但作者发现,其实很多时候并不是如此。

作者关注了两种目前NMS会出问题的情况:

1)所有的候选包围框都不够精确(这时候该选择哪一个?或者有没有可能综合这些候选框的信息提高精度?);

2)拥有高的分类分数的候选包围框不精确(如何更有效地评价候选框的定位精度?)。

请看下图:

图中(a)展示了2个均在某些坐标不精确的候选包围框,(b)展示了定位精度高的候选框分类分数较低。

以上检测失败的例子都表明,定位置信度并不是与分类置信度强相关(事实上好的分类器应该对定位信息不敏感)。

算法思想

基于上述观察,该文提出了一种新的包围框回归的损失函数(KL Loss),用来同时学习包围框变换和定位置信度。

KL Loss 包围框回归

作者建模包围框预测是一种高斯分布,而ground truth包围框是Dirac delta function(狄拉克delta函数,又称为狄拉克delta分布,是一种标准差趋近于0的高斯分布的极限,如下图所示)。

KL 散度用来衡量两个概率分布的非对称性度量,KL散度越接近0代表两个概率分布越相似。

KL loss即为最小化包围框预测的高斯分布和ground truth的狄拉克delta分布的KL散度。直观上解释,KL Loss使得包围框预测呈高斯分布,且与ground truth相近。而将包围框预测的标准差看作置信度。

网络架构

由图中可知,标准差估计与包围框定位都包含在损失函数Lreg中。

损失函数定义:

当候选框预测不准确的时候,希望方差尽可能小,减小Lreg。(更接近ground truth的包围框预测肯定是稳定的,方差较小的)

Softer-NMS算法流程

得到上述置信度,即可以在Soft NMS后进一步改进,将大于一定重叠度阈值Nt的候选包围框根据置信度加权平均。(因为在训练的时候寻求包围框预测的方差小,所以这一步加权平均后不会出现框出来“四不像”的情况)

实验结果

作者使用多个网络模型在PASCAL VOC2007和MS-COCO数据库上进行了实验。

作者首先研究了加权时的阈值,Table 1中,发现0.5~0.8是较理想的区间,作者在后续实验使用了0.7。

Table 2通过分析实验表明,该文提出KL Loss和softer-NMS稳定提高了定位的精度。

作者测试了在MS-COCO数据库上的推断速度,发现Softer-NMS只是轻微增加了一点时间,可以忽略不计。

通过与FPN ResNet-50 、fast rcnn结合在 MS-COCO 上的实验,与其他NMS方法比如IoU-Net相比,取得了性能优势,达到了state-of-the-art的包围框定位精度(37.8%)。

使用Faster R-CNN在PASCAL VOC 2007数据集上结合不同的骨干网也取得了显著的性能优势。

Softer-NMS运行结果示例:

图中(a)展示通过加权平均提精了定位精度,(b)展示了对于定位来说包围框预测置信度比分类置信度更可靠。

总结

通过设计新的包围框回归损失函数KL Loss和基于此包围框置信度的加权平均NMS方法,该文发明的Softer-NMS取得了显著的性能提升,提精了目标检测定位精度。

论文地址:

https://arxiv.org/abs/1809.08545

代码地址:

https://github.com/yihui-he/softer-NMS

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对不起,我无法为您提供准确的代码和详细步骤,因为我无法浏览互联网或提供特定的代码示例。但是,我可以向您解释一下如何结合YOLOv5s和Softer-NMS的步骤。 1. 下载YOLOv5s的代码:首先,您需要下载YOLOv5s的代码,您可以在YOLOv5的官方GitHub页面上找到相关的代码和文档。 2. 安装依赖项:根据YOLOv5s的要求,您需要安装所需的依赖项。通常,您可以在代码仓库中的requirements.txt文件中找到这些依赖项,并使用pip进行安装。 3. 下载Softer-NMS的代码:Softer-NMS是一种用于目标检测的后处理技术,用于改进边界框之间的重叠问题。您可以在GitHub上找到相关的Softer-NMS代码,并将其下载到本地。 4. 将Softer-NMS集成到YOLOv5s中:根据Softer-NMS的文档或示例,将其集成到YOLOv5s的代码中。这可能涉及到修改YOLOv5s的推理代码,以应用Softer-NMS算法来处理边界框。 5. 测试和调试:完成集成后,您可以通过运行一些测试图像或视频来验证修改后的YOLOv5s算法是否正常工作。您可以检查输出边界框的质量,以确保Softer-NMS被正确应用。 请注意,这只是一个大致的步骤指南,并不包含具体的代码和细节。为了成功地结合YOLOv5s和Softer-NMS,您需要详细了解这两个算法的实现和原理,并进行必要的代码修改和调试。建议您参考YOLOv5和Softer-NMS的官方文档和示例代码,以获取更具体的指导和支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值