原论文标题:Acquisition of Localization Confidence for Accurate Object Detection

1. 前言

Megvii在ECCV 2018上的一篇oral,思路非常清奇,提出了Localization Confidence(定位置信度)这一概念,直接学习预测框与gt框的IoU,用于取代nms中的score。同时,提出了一个基于优化的bbox refinement方法。这些创新可以轻易地嵌入到现有的目标检测系统中。个人感觉,目标检测这一研究方向最近新挖了很多坑,仿佛继kaiming的一系列大作之后焕发了第二春。除这篇文章外,再简单推荐三篇其他文章:

  • 旷视ECCV 2018的另一篇DetNet,在目标检测的Backbone上下工夫,认为预训练模型应该往目标任务上靠,譬如目标检测要想达到更好的定位精度,深层的空间分辨率不应该像分类一样缩小32倍,当然对空间分辨率的要求只是检测任务的特点之一,那么是不是有其他特点可以挖掘,进而从其他方向继续改进Backbone,这是一个很值得研究的问题。
  • MSRA CVPR 2018的oral,Relation Network,基于Attention,根据object的appearance特征和geometry特征对物体关系进行建模,提高检测效果,并且将关系模块运用在duplicate remove中,进行可学习的nms,实现了第一个完全end-to-end的目标检测系统。个人感觉,这篇文章对关系的建模还有改进的空间,学出来的所谓“关系”并不知道是什么东西,更像是把Attention强行套入目标检测系统中。不过可学习的nms是很大的创新。
  • MSRA ECCV 2018的oral,Learning Region Features for Object Detection,给出了各种ROI pooling变体的统一数学描述,并且基于这一数学描述,提出了一种可学习的版本,让网络自适应地学习Region Features,选择合适的pooling方式,抛弃了pooling的手工设计,使得object detection朝着fully learnable的方向又迈进一步。论文的二作Han Hu在一次Talk中提到,给出统一的数学描述之后,他们也只是给出了一种可行的可学习方案,肯定不是最好的方案,所以这也是个很大的坑。

这是我对这几篇文章粗浅的认识,有时间的话再来补笔记,关于这些文章的细节,也欢迎留言探讨。闲话不再扯,正式开始分析这篇文章。

2. Motivation

直接上图说明问题。

在传统的nms中,先根据分类的confidence对每个预测bbox进行排序,confidence最大的bbox必然留下来,计算其他bbox和这个bbox的iou,大于阈值的bbox直接去掉。这是一种贪心算法,很粗暴,也会造成很多问题,比如之前很多文章都提到在crowd的环境中贪心会造成很多问题。但是这篇文章对nms的过程进行了深入思考,提出了另一个问题。nms算法其实有一个重要假设,分类confidence越大,与gt bbox的iou也就越大,想想就有问题!如Fig. 1(a),黄框是gt,红框和绿框是FPN的预测bbox。红框的cls conf都比绿框高,然而与gt的iou并不比绿框高,问题非常严重,譬如最左边那只鸟,如果在评价算法中把iou阈值设成0.7,那就算这只鸟没有检到!简直血亏!所以,nms的confidence应该专门设计一个指标,也就是loc conf。只要有了这个东西,重新设计nms就是很容易的事情了,而且这个东西肯定还可以搞很多别的事情。

缺失定位confidence的另一个问题是bbox回归的可解释性较差。作者举了个例子,在Cascade RCNN(CVPR 2018 spotlight,直接搜索标题就能查到)中提出了bbox迭代回归的非单调问题,如图Fig 1(b),如果多次使用(同一个)bbox回归器,定位精度反而会下降。(文章中此处所说的input bbox是指RPN或selective search得到的前景bbox)

3. 深入思考object loc

这一节对物体定位中的两个关键缺陷作探讨:(1)cls conf与loc acc的misalignment问题。(我就不加说明地直接用缩写了,应该都能看懂,如果有疑问可以直接向我提)(2)bbox回归的不单调问题。实验用标准的FPN在COCO trainval35k上训练作为baseline,在minival上测试。

解释一下图(a),横坐标是nms之前的预测bbox与各自匹配上的gt bbox的iou,纵坐标是预测bbox的cls conf,可以看到它们的相关性不够大,定量来看,两者的Pearson相关系数仅为0.217。其实这个问题我在第二节分析过了,如此弱的相关系数直接证明了nms的基本假设是有问题的,至少在COCO上有问题。图(b)纵坐标换成了loc conf,是作者提出的改进,具体做法下面再说,可以看到改进后相关系数达到了0.617。

再看这张图,Cascade R-CNN就是用了多个回归器进行迭代bbox回归,可以看出,基于迭代回归的方法,在一定的迭代次数之后AP都会被伤害,而使用作者提出的基于优化的方法,AP不会下降,至少是随着迭代次数单调不减的。

3. IoU-Net

重点开始,先摆上算法结构图。

结构很清楚,跟FPN不同的地方有两个,一是RoI pooling改成了PrRoI pooling,这应该是旷厂内部的一个工作;而是除了cls和reg头,加上了IoU头,结构也是三层全连接。文章专门设计了IoU头的训练方法,这个我就不写了。图中的Jittered RoIs就是为这个训练准备的。IoU头完全可以和其他部分联合端到端训练。

得到预测的IoU之后,就可以做IoU-guided的nms,具体方法前面已经说了好几遍了,只是把排序的key换成了预测的IoU而已。另外加了一个小trick,一旦在nms过程中box i“吞并”了box j,那么box i的cls conf取i和j之大者。也就是说如果有一堆框去预测同一个gt box,那么cls conf取其中最大的一个。(这个说法是我自己加的,不够严谨,不过这样理解基本没问题)

另一个重要创新是基于优化的bbox refinement,

(未完待续)

IoU-Net论文笔记的更多相关文章

  1. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  2. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  3. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  4. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  5. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  6. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

  7. 论文笔记(1):Deep Learning.

    论文笔记1:Deep Learning         2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...

  8. 论文笔记(2):A fast learning algorithm for deep belief nets.

    论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...

  9. 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN

    论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN ICCV 2017 Paper: http://op ...

  10. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

随机推荐

  1. php代码判断用户访问的当前协议是否为https

    public function isHttps() { if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) ...

  2. 【Linux】部署NTP时间同步服务器

    1. 查看机器的Linux版本 查看集群内所有服务器的linux版本,确保相同,不要跨大版本. [root@bigdata111 ~]# cat /etc/redhat-release CentOS ...

  3. uni-app 实现热更新

    前端打包 app 即把写好的静态资源文件套壳打包成 app ,而热更新即下载并替换 app 内部的静态资源文件,实现 app 的版本升级. 在uni-app 中,我们是如何实现热更新的呢?下面来看代码 ...

  4. 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...

  5. powerDesigner关联数据库显示中文注释

    最近使用powerdesigner,遇到些问题,记录一下[安装过程就略过了] 一.安装odbc驱动 分享下驱动,百度网盘链接:https://pan.baidu.com/s/1UYPq_PEQkDOJ ...

  6. 【POJ - 3579 】Median(二分)

    Median Descriptions 给N数字, X1, X2, ... , XN,我们计算每对数字之间的差值:∣Xi - Xj∣ (1 ≤ i < j ≤N). 我们能得到 C(N,2) 个 ...

  7. centos启动排障

    centos6 启动引导第一阶段破坏 破坏mbr前446字节 先备份 [root@centos6 ~]# dd if=/dev/sda of=/root/mbr bs=1 count=446 破坏 [ ...

  8. Django模块

    django.contrib.humanize 一系列Django的模板过滤器,有助于向数据添加“人文关怀”. 把'django.contrib.humanize'添加到INSTALLED_APPS设 ...

  9. Vue 实例之事件 操作样式 (文本、事件、属性、表单、条件)指令

    Vue 可以独立完成前后端分离式web项目的JavaScript框架 三大主流框架之一: Angular React Vue 先进的前端设计模式:MVVM 可以完全脱离服务器端,以前端代码复用的方式渲 ...

  10. Win32汇编常用算数指令

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...