论文地址:https://openaccess.thecvf.com/content/CVPR2021/html/Yuan_Multiple_Instance_Active_Learning_for_Object_Detection_CVPR_2021_paper.html
代码:https://github.com/yuantn/MI-AOD
发表于:CVPR 21
作者官方解析:https://zhuanlan.zhihu.com/p/362764637

Abstract

尽管主动学习在图像识别方面取得了很大的进展,但仍然缺乏一种专门用于目标检测的实例级主动学习方法。在本文中,我们提出了多实例主动目标检测(MI-AOD),通过观察实例级的不确定性来选择信息量最大的图像进行检测器训练。MI-AOD定义了一个实例不确定性学习模块,该模块利用在已标注集上训练的两个对抗性实例分类器的差异来预测未注记集的实例不确定性。MI-AOD将未标记的图像视为实例包,将图像中的feature anchor视为实例,并通过以多实例学习(MIL)的方式对实例重新加权来估计图像的不确定性。迭代的实例不确定性学习和重新加权有助于抑制噪声实例,从而缩小实例不确定性和图像级不确定性之间的差距。实验证明,MI-AOD为实例级主动学习设定了一个坚实的基线。在常用的目标检测数据集上,MI-AOD以明显的优势胜过最先进的方法,特别是在标注集较小的时候。

I. Introduction

本文是少数在顶会上进行将主动学习与目标检测结合起来的工作。用文中的话讲,本文是第一篇(不过也有一篇同期工作发表在了ICCV 21)。对于之前的工作,都是将用于分类任务的主动学习算法进行简单修改然后应用与目标检测的benchmark中,没有考虑目标检测的任务特性,因此性能肯定是次优的。本文主要从以下几个角度去解决问题:

首先是评估每个bounding box的不确定性。这里采取了比较传统的思路,设计了两个不同的分类头,通过比较这两个分类头预测结果之间的差异来评估不确定性。至于这个分类头是怎么弄成"不一样"的,具体做法是采用对抗训练的方式,思路将在后文的Maximizing Instance Uncertainty部分介绍。

另外一个问题是已标注集分布与未标注集分布的对齐问题。如果这两者之间本身的差异过大,那么拿用已标注集训练的模型去判断未标注集的不确定性是没有意义的。为此,本文提出对这两者进行对齐,思路将在本文的Minimizing Instance Uncertainty部分进行介绍。

最后,为了减少噪声样本的干扰,本文还提出了Instance Uncertainty Re-weighting来进行加权处理。

II. Maximizing Instance Uncertainty

这一步对应的是主动学习的必备过程,如何去评估一个样本的不确定性。为此,本文选取了基于Prediction Discrepancy的思路。那么现在的问题就是怎么让同一输入产生不同的输出,本文的方法是多装了一个instance classifier(下图中的f1,f2f_1,f_2f1​,f2​):

现在,只要让f1,f2f_1,f_2f1​,f2​的参数不同就行了。具体的做法是,在正常训练完毕后,固定ggg的参数,使用以下对抗损失函数对f1,f2f_1,f_2f1​,f2​进行微调,使这两者参数差异尽量大的同时维持检测器的性能:argmin⁡Θ\θgLmax⁡=∑x∈XLldet(x)−∑x∈XUλ⋅ldis(x)\underset{\Theta \backslash \theta_{g}}{\operatorname{argmin}} \mathcal{L}_{\max }=\sum_{x \in \mathcal{X}_{L}} l_{d e t}(x)-\sum_{x \in \mathcal{X}_{U}} \lambda \cdot l_{d i s}(x)Θ\θg​argmin​Lmax​=x∈XL​∑​ldet​(x)−x∈XU​∑​λ⋅ldis​(x) ldis(x)=∑i∣y^if1−y^if2∣l_{d i s}(x)=\sum_{i}\left|\hat{y}_{i}^{f_{1}}-\hat{y}_{i}^{f_{2}}\right| ldis​(x)=i∑​∣∣∣​y^​if1​​−y^​if2​​∣∣∣​

III. Minimizing Instance Uncertainty

在对instance classifier进行微调,使其能够评估实例的不确定性后,接下来进行的操作是进行分布对齐,如下图所示:

在这一阶段,由于特征分布信息主要与backbone ggg相关,因此固定预测头fr,f1,f2f_r,f_1,f_2fr​,f1​,f2​,对ggg进行微调:argmin⁡θgLmin =∑x∈XLldet(x)+∑x∈XUλ⋅ldis(x)\underset{\theta_{g}}{\operatorname{argmin}} \mathcal{L}_{\text {min }}=\sum_{x \in \mathcal{X}_{L}} l_{d e t}(x)+\sum_{x \in \mathcal{X}_{U}} \lambda \cdot l_{d i s}(x) θg​argmin​Lmin ​=x∈XL​∑​ldet​(x)+x∈XU​∑​λ⋅ldis​(x) 在保证检测性能的情况下尽量使分布差异变小。

IV. Instance Uncertainty Re-weighting

对于目标检测而言,detector会给出非常多的instance,但这些实例并不都是有用的。比方说,有的instance其实只是误检测的背景,那么这种instance本身的不确定性高不高我们也不关心,最终算不确定性还需要经过一步加权的过程。具体过程如下:

借助Multi-Instance Learning的思想,将每张图像视为一个实例包。然后,构造一个实例分类器fmilf_{mil}fmil​来对一个包中每个实例分别进行打分:

这一步涉及到很多公式。简单总结的话,这个打分有点类似于常见的uncertainty。比如对应背景instance,其分类为背景的confidence本身是较低的;而对于前景instance,则confidence较高,据此便可以进行区分。

[论文阅读] Multiple Instance Active Learning for Object Detection相关推荐

  1. [论文解读]Deep active learning for object detection

    Deep active learning for object detection 文章目录 Deep active learning for object detection 简介 摘要 初步 以前 ...

  2. 论文阅读 End-to-End Multi-View Fusion for 3D Object Detection in Lidar Point Clouds

    [论文阅读] End-to-End Multi-View Fusion for 3D Object Detection in Lidar Point Clouds 原文链接:https://arxiv ...

  3. 【论文阅读】【综述】3D Object Detection 3D目标检测综述

    目录 写在开头 3D Object Detection 相关博客: Sliding window Vote3Deep: Fast Object Detection in 3D Point Clouds ...

  4. ICPR 2020 | 论文阅读 ——SyNet: An Ensemble Network for Object Detection in UAV Images

    SyNet 1. Motivation 2. Method 2.1. Object detecion 2.2. SyNet 2.3 Image Augmentation 3. Experiments ...

  5. 论文阅读:Disp R-CNN:Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation

    Disp R-CNN: Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation 摘要(理解) 作 ...

  6. 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)

    paper:https://arxiv.org/abs/2105.11111 code:GitHub - LiWentomng/OrientedRepPoints: The code for &quo ...

  7. 论文阅读:CenterNet: Keypoint Triplets for Object Detection(CVPR2019)

    论文地址:https://arxiv.org/abs/1904.08189 github实现:https://github.com/Duankaiwen/CenterNet 摘要 目标检测中,基于关键 ...

  8. 三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds

    PointPillars: Fast Encoders for Object Detection from Point Clouds code ID: https://github.com/nuton ...

  9. [论文阅读] Variational Adversarial Active Learning

    论文地址:https://arxiv.org/abs/1904.00370 代码:https://github.com/sinhasam/vaal 发表于:ICCV'19 Abstract 主动学习的 ...

最新文章

  1. 超图桌面版加载obj 3D模型 - 2
  2. 运行维护:UPS电源并列运行分析及维护应用
  3. 济南泉水与城市生态主题 第四届泉水文化论坛第二次会议
  4. 智源-知乎联合发布大规模用户关系数据集,同步开启10万元竞赛
  5. 拋棄虛擬機,微軟實驗讓我們在線做(一)
  6. Java使用原子类进行多线程的 i++ 操作示例
  7. chromebook刷机_如何从Chromebook上的APK侧面加载Android应用
  8. 如何使用JavaScript检查输入是否为空
  9. [C++ Primer] 第2章: 变量
  10. mexcuda输入nvcc中的参数
  11. Await Async和Thread.waitAll想法?未完待续
  12. 江苏省苏州市谷歌高清卫星地图下载
  13. 有向图(网)、无向图(网)的构造以及遍历
  14. PSP开发简明教程(2)
  15. 如何获取美团饿了么的推广链接赚钱
  16. 超级会员创作者收益说明
  17. 劳务派遣与劳务外包的主要区别
  18. python人名查电话(字典)_Python基础练习——使用字典存储电话薄
  19. 使用EasyPoi利用excel模板导出excel表格下载
  20. 平均电流型LED降压恒流驱动器 常用恒流IC

热门文章

  1. python excel插件_django使用插件下载excel的方法
  2. linux判断是否能上网_如何判断飘窗是否能砸掉?砸掉飘窗可以怎么利用?
  3. (第四章)数据表的约束
  4. java 去掉 t_[Java教程]LocalDateTime去掉T
  5. python3.7 matplotlib增加坐标说明_python matplotlib:如何在极坐标图中的轴和刻度标签之间插入更多空格?...
  6. 理解metrics.classification_report
  7. Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine
  8. Uncaught Error: Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)
  9. stm32 Keil编译后查看代码/内存占用空间,Flash/RAM占用大小,Code-Data,RO-Data,RW-Data,ZI-Data是什么含义
  10. vector所存储对象地址在vector操作过程中发生变化