Towards Open World Object Detection 论文阅读笔记

news/2024/7/7 7:56:03
  • 这是CVPR2021的一篇论文

开放世界目标检测:

  1. 在没有提供相关监督的情况下将无法分类的目标检测出来标记为unknown

  2. 能够在后续提供这些标签时,不忘记之前的类别同时渐进地学得这些unknown的类别

  • 其实质是open set learning和incremental learning的结合

  • 现有检测器其实不太合理,将未标注的目标和背景混为一谈,导致训练空间其实是个畸形的不合理的空间。这导致某些未标注的类别还是被分类成错误的前景类别,假阳率很高

  • 并且,实际投入应用中,如自动驾驶,不可能事先把所有可能的类别都找出来进行训练,总是会遇到未标注未训练过的样本的,因此开放世界目标检测是个更加合理的模型

  • 当算法预测出未知类别时,需要人力观察未知类别,然后提供增量训练样本,使得模型学得新类别。


模型方法:

  • 主要思路是在隐空间中去聚类,把不属于当前已标记类别的特征分类为unknown,具体如下:

  • 取二阶段目标检测网络某个中间层的特征向量作为隐空间变量,对于每个类别都有一个聚类中心,通过一个loss函数来希望每个图片的这个特征离自己类别的聚类中心近一点,离其它类别的远一点:
    在这里插入图片描述

  • 通过最小化上述loss函数,来获得一种效果:在这个隐空间中,相同类别的ROI,其隐变量分布在较近的距离,而不同类别的较远,因此当一个ROI的隐变量离所有已知类别的聚类都很远时,说明这个ROI是unknown类,也即未标注类别。

  • 正常来讲,这个 p i p_i pi应该是该类别所有隐变量的均值,但是网络是训练的,所以对每个样本通过网络提取的隐变量会随着训练而变化,均值也会变化,所以 p i p_i pi也要变化。所以需要一个明确的更新算法,本文提出的算法如下:
    在这里插入图片描述

  • 意思就是,每隔 I I I次迭代,用各个类别各自最近 Q Q Q次迭代的样本的特征向量(也就是前面一直说的隐变量)来算各个类别的均值,然后和老的聚类中心做加权平均(平滑),作为各个类别新的聚类中心。当然一开始没有 Q Q Q个样本来算聚类中心,所以一开始的loss先按0来算,迭代 I I I次之后才开始算loss

  • 上述训练需要unknown样本,从RPN中获取,当某个ROI与所有标记的GT都不重叠时,当作unknown样本,并且只取输出score最高的前k个。

  • 当训练结束,推测阶段,基于一个输入特征向量F,该模型利用一个基于能量的模型去计算获取其预测类别,这里解释下什么是基于能量的模型:

  • 基于能量的模型(EBM)把我们所关心变量的各种组合和一个标量能量联系在一起。我们训练模型的过程就是不断改变标量能量的过程,因此就有了数学上期望的意义。比如,如果一个变量组合被认为是合理的,它同时也具有较小的能量。基于能量的概率模型通过能量函数来定义概率分布,可以用梯度下降法来训练。

  • 具体而言,基于能量的模型有下列公式:
    p ( x ) = e − E ( x ) ∑ x e − E ( x ) p(x) = \frac{e^{-E(x)}}{\sum_{x}{e^{-E(x)}}} p(x)=xeE(x)eE(x)
    在这里插入图片描述

  • 本模型使用的能量模型公式如下:
    在这里插入图片描述

  • 这里的g就是网络的全连接层的输出,普通的网络就是把g接到softmax去做分类的,这里利用了g构建了E,这个E的意义在于,对于不同的输入f,有不同的能量标量值与之对应,而由于在隐空间将已知类别和未知类别分得很开,所以这里已知类别的特征向量输入产生的能量和未知类别的特征向量输入产生的能量值有较大区分,如下图所示:

在这里插入图片描述

  • 为了找到区分known和unknown的能量值阈值,用韦伯分布去拟合两部分数据,得到两个韦伯分布,因此对于一个特征向量输入,产生一个能量值,能量值在两个分布上对应了两个概率密度,当在known分布上的概率密度值高于unknown分布上的概率密度值时,认为该特征来自一个已知类别,否则来自未知类别。之所以是韦伯分布,是实验出来的,比伽马分布、正态分布、指数分布都更优
  • 这样一来,在实现上其实只是分为两步,首先通过能量值判断是不是known;若是known,再看哪个类别的输出值更高,这点和原来的没有差别。
  • 至于如何根据新增加的样本,在不忘记原来类别的基础上进行增量学习,本文并没有提出新的方法,而是沿用了已有的方法。
  • 模型结构如下:
  • 在这里插入图片描述
  • 相较原有模型,该模型只是增加了一个loss,并且修改了分类层为能量模型

http://www.niftyadmin.cn/n/3657990.html

相关文章

TIOBE 2006年8月最流行开发语言排名 Ruby上窜迅猛

TIOBE 语言排名一个月更新一次。它的统计方法是基于全球有经验的工程师,科目和第三方厂商. 同时也参考来自google,msn,yahoo等搜索引擎计算得出的结果。当然,这个排名并不说明哪个语言绝对最好,但是它可以给你一个参考,当你构建一…

Learning from Noisy Anchors for One-stage Object Detection 论文阅读笔记

这是CVPR2020的一篇论文 当前的目标检测根据于GTbox的IOU把anchor标注为背景或前景类别的分类标签,使得一些不完善的label给训练带来了噪音,提高了训练难度。本文提供了一个 cleanliness score 作为一个soft label,并作为某些trick的权重&…

PC时代IE浏览器获胜,Web时代呢?

一直以来,IE阵营和Firefox阵营冲突不断,浏览器孰优孰劣的争执不绝于耳。而就在这几天,这个本就不平静的浏览器市场,突然变得更加喧闹起来。IE和Firefox两个之间曾经充满故事的浏览器产品几乎同时以崭新的姿态出现在人们的面前--IE…

Scale-Equalizing Pyramid Convolution for Object Detection 论文阅读笔记

这是CVPR2020的一篇文章 提出一种3D的卷积,除了在H和W维度,希望在scale维度,也就是pyramid的特征图上进行一种特殊的卷积,能够同时考虑多个scale的pyramid feature。现有方法对pyramid feature一般是之间放缩后相加,不…

扎根IE开发拥有自己理想的程序员--张硕

关于浏览器的话题,以ie7.0和firefox2.0 的相继发布,变成了一个引爆点.浏览器技术会朝什么方向发展呢?在PC时代ie6成为了一个标准,但那已经是5年前的事情了.那么在Web时代…

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 论文阅读笔记

这是微软亚洲研究院的一篇文章,原文作者: 文章目的在于探索将transformer用在vision问题上的可能性,从而充分利用transformer建模长依赖的能力把NLP模型用到cv上要解决的一个问题在于,NLP的注意单元大小是固定的,就是…

FcaNet: Frequency Channel Attention Networks 论文阅读笔记

这是浙江大学的一篇文章,目前放在arxiv上,原文作者: 文章的主要贡献在于把channel attention改为multi-spectral channel attention,文章认为原有channel attention利用global average pooling产生attention的值不太好&#xff0…

前端如何实现面向对象

交流所记: 面向对象的三要素: 封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的类或者对象隐藏信息继承:它可以使用现有类的所有功能,并在无…