博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【论文笔记】:Learning from Noisy Anchors for One-stage Object Detection
阅读量:3904 次
发布时间:2019-05-23

本文共 1596 字,大约阅读时间需要 5 分钟。

Title

在这里插入图片描述

  • 代码

CVPR 2020 camera ready

Summary

目前最先进的目标检测器依赖于回归和分类一系列可能的锚点,这些锚点根据它们与相应的GT的IoU分为正样本和负样本。这样的设置方法会导致歧义性标签的产生,这可能会产生噪音,并且对训练具有挑战性。

作者通过设计与锚相关联的cleanliness score来缓解由不完美的标签分配产生的噪声影响。在不增加任何额外计算开销的情况下估计出的cleanliness score,它不仅可以作为软标签来监督分类分支的训练,而且作为样本重加权因子来提高定位和分类精度。
所提出的方法在不同的骨干网络下可以稳步地提高RetinaNet约2%。

Research Objective

当下卡IoU threshold的label assignment strategy会对网络训练引入noise,所以作者希望能够减轻这种noisy label的影响。

Problem Statement

noisy label是怎么造成的

不同于其他分类任务中因为标注错误产生的noise, detection里面的noisy label是一个固有的问题。我们都知道如果一个框和ground-truth的overlap是100%,那么这个框理所应当被当做positive;如果没有任何overlap肯定应该是negative。但是中间的那些应该怎么给label呢?现在常见的方法都是卡阈值,高于某个阈值就是positive,低于某个阈值是negative,然而这并不一定是一种最优的策略,毕竟把一个IoU=0.5的框当做正样本可能会引入noise。

如何去消除这种noise呢?

  • 一种是既然现在label不合理,那就重新设计label assignment strategy
  • 另一种是既然有noise,那就想办法降低这些noisy samples对于训练的影响

Methods

在这里插入图片描述

loc_a表示定位confidence(这里作者采用预测box和对应的GT之间的IOU),cls_c表示分类confidence(网络直接预测confidence)。Apos和Aneg都是根据IOU选出的TOP-N而非全部。

由于loc_a和cls_c被归一化过,为了增加方差作者进行了改动。因此采用以下结果来计算加权:

在这里插入图片描述
其中f(x)=1/(1-x),和γ都是用来增大方差的。r被归一化到1.
整体流程:
在这里插入图片描述

Experiments

soft label和soft weight消融实验如下:

在这里插入图片描述
不同的超参数设置:
在这里插入图片描述
提出的方法运用于三种主干的retinanet之后结果如下:
在这里插入图片描述
应用于带FPN的F-RCNN的结果:
在这里插入图片描述
与其他检测器的对比:
在这里插入图片描述

总结

Thinks

  1. 这篇算是2019年的,根据相关工作介绍,算是属于目标检测第一篇做噪声的论文了,而且作者说是专门解决anchor-based的噪声问题(相关工作中介绍了分类中的噪声方法,但是没有检测领域的相关研究),刚好之前也看了一篇PPDet(2020),做的是anchor-free的噪声。
  2. 该篇论文很像之前做分类回归不一致问题的方法,通过对分类或者回归的重新加权,或者二次打分来降低个别劣质样本对模型训练的贡献。用动态软标签替代原来的{1,0},而软标签的设置与位置信息和预测出的分类置信度有关。实验表明位置信息起更大的作用。由于分类置信度完全由预测得出,实际上仅仅是IOU在起监督作用。但最终参与NMS的仍然是经过IOU优化过的cls confidence,所以也算是一种位置信息与分类信息结合。
  3. 动态设置权重。归根结底还是在一堆正样本中选择那些IOU较大的来"着重照顾"。而对于负样本,拥有较小IOU但输出较高cls confidence的同样会被赋予一定的权重来"压制"。本质上还是一种在动态分配label下的优化策略。

转载地址:http://bjxen.baihongyu.com/

你可能感兴趣的文章
vue面试题目(更新版)
查看>>
js字符串时间相减得出相减的天数
查看>>
JS怎么将日期的值转换为字符串格式,分别获取年份、月份和日期
查看>>
js中对小数取整
查看>>
查找与排序 In Java
查看>>
Java8 探索--Lambda
查看>>
Effective Java记录1:考虑用静态工厂方法代替构造器
查看>>
Effective Java记录2:遇到多个构造器考虑用构建器(Builder)
查看>>
Java 对象Clone
查看>>
设计模式随笔一
查看>>
一些Java编程题
查看>>
SqlPlus 编程点滴
查看>>
Java Int unpacking(分解)packing
查看>>
Computer and computer Science(计算机与计算机科学)
查看>>
计算机体系结构Computer Architecture
查看>>
webpack.DefinePlugin定义配置项供程序运行时使用
查看>>
android aar 包含静态库的打包
查看>>
微信小程序的简单总结
查看>>
发布npm包总结
查看>>
html页面中快速使用Vue.js
查看>>