Sparse R-CNN: End-to-End Object Detection with Learnable Proposals - 论文阅读翻译

文章目录

  • Sparse R-CNN: End-to-End Object Detection with Learnable Proposals - 论文阅读翻译
    • 一、Abstract
    • 二、Introduction
    • 三、Sparse R-CNN
      • 3.1. Pipeline
      • 3.2. Module
        • Backbone
        • Learnable proposal box.
        • Learnable proposal feature
        • Dynamic instance interactive head.
        • Set prediction loss.
    • 四、Experiments

推荐:
作者解读
优秀解读

论文下载地址:点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,2020ECCV(细分版), 2020NIPS已更新完毕,欢迎下载…

一、Abstract

作者提出了Sparse R-CNN,一种purely稀疏目标检测方法。现有工作中目标检测严重依赖于密集的目标候选框,如在大小为H×W的的图像特征图的所有网格中各平铺K个锚框。在作者的方法中,在目标识别头提供了一组长度固定为N的可学习目标proposal稀疏集以进行分类和定位。通过将HWk个手工设计的目标候选框缩为N个可学习的proposal,Sparse R-CNN能够完全避免目标候选框的手工设计和多到一的标签分配的影响。并且其最终预测是直接输出的,不需要经过NMS后处理。Sparse R-CNN在精度、运行时长和训练收敛性能上与在COCO数据集上表现良好的baseline相当,在使用ResNet-50-FPN下训练3x后能达到44.5AP、22FPS。

二、Introduction

目标检测是要在图像中定位一组目标并识别其类别。密集先验一直是检测器成功的基石。在经典的计算机视觉中,滑动窗口范式,也就是将分类器应用在密集图像网格上,引领了目标检测方法多年。主流的一阶检测器是在密集的特征图网格上预定义标记,如锚框或参考点,并预测目标与边界框的相对尺度和偏移以及相应的类别。尽管两阶检测器是在一组稀疏的proposal上进行操作,但proposal生成算法也是基于的密集候选框。
这些方法非常直观,并且带来了健壮的性能和快速的训练及推理时间。但我们还需要注意的是这种密集先验检测器存在着一定的局限:1)密集先验方法会产生冗余和近乎重复的结果,因此需要NMS后处理操作。2)训练中的多到一的标签分配问题使网络对于启发式分配规则非常敏感。3)最终性能会受到锚框的大小,长宽比和数量,参考点的密集程度及proposal生成算法的影响。
尽管在目标检测中密集检测已受到了广泛认可,还有一个问题:是否可以设计一个稀疏的检测器?DETR提出将目标检测重新表述为一个直接的稀疏集预测问题,其输入是100个可学习的目标queries。最终的预测集不需要任何手工设计的后处理操作即可直接输出。尽管其框架简单有效,但其要求每个目标query都要和图像全局上下文交互,这样不仅减慢了其训练收敛,还阻止了其建立一种完全稀疏的目标检测流程。
作者认为稀疏属性应表现在两个方面:稀疏框和稀疏特征。稀疏框表示一组少量的初始框(100左右)即可预测图像中所有目标。稀疏特征则是指每个框的特征不需要去与整个图像中的其他特征进行交互。从这个角度来看,DETR并不纯粹,因为其每个目标query都需要和整个图像的密集特征进行交互。
本文中作者提出了Sparse RCNN,一种纯粹的稀疏方法,不需要在所有的图像网格中枚举候选目标框,也不需要将目标query与全局(密集)图像特征交互。如图1c所示,作者以一组4-d坐标表示的固定数量的可学习边界框来作为候选框。如在COCO数据集中,每张图只需要100个框和400个参数,而不是像RPN那样需要成千上万个候选框。这种稀疏候选框被用作proposal框通过ROIPool或ROIAlign提取ROI特征。
可学习的proposal框是对图像中潜在目标位置的统计信息,4-d坐标是目标的粗略表示,缺少姿态和形状等细节信息。这里作者引入了一个概念叫做proposal特征,这是一个高维(256)的潜在向量。与粗糙边界框相比,它被用于对丰富的实例特征进行编码。proposal特征会针对其唯一的目标识别头生成一系列自定义参数。作者称这个操作为动态实例交互头,因为其与最近的动态机制有一定的相似性。作者在实验中证实,以唯一的proposal特征而不是固定的参数来作为构建检测头的条件,是Sparse RCNN成功的关键。
在Sparse RCNN中最显著的属性是它的稀疏范式。初始输入是一组稀疏的proposal框和proposal特征,以及一对一的动态实例交互。并且不存在密集的候选框或者是与全局特征的交互。这种纯粹的稀疏性使Sparse RCNN成为RCNN系列中的新成员。
Sparse R-CNN在COCO数据集上证明了其准确度,运行时间和训练收敛性能与当前的检测器相当,其是第一个证明了稀疏设计合理的工作。
稀疏目标检测有消除设计密集候选框的潜力,但是在准确性上有所落后。

三、Sparse R-CNN

Sparse R-CNN的中心思想是将由RPN得到的成千上万的候选框替换为一组较小的proposal框集。

3.1. Pipeline

Sparse R-CNN是一个简单的网络,由backbone,动态实例交互头和两个特定任务预测层组成(如图3所示)。共有三个输入,一张图,一组proposal框和proposal特征。后两个是可学习的,可以与网络中的其他参数一起优化。

3.2. Module

Backbone

以ResNet-FPN作为backbone来生成多尺度的特征图,以P2-P5构建金字塔特征。Sparse RCNN能够从更复杂的设计中获益以进一步提升其性能,如堆叠编码器层和加入DCN。不过作者还是与Faster RCNN作比较以验证其有效性和简单性。

Learnable proposal box.

一组固定数量的可学习的proposal框(N×4)被用作区域建议,而不是由区域建议网络(RPN)的预测得到。这些proposal框由值在0到1间的4维参数表示,表示归一化中心坐标、高度和宽度。在训练时proposal框的参数会通过反向传播算法更新。由于proposal框是可学习的,作者在实验中发现初始化的影响很小,因此框架会更加灵活。
从概念上来说,这些学到的proposal框是训练集中潜在目标位置的统计信息,可看作不管输入,对图像中最有可能包含目标的区域的初步猜测。RPN得到proposals与当前图像关联密切,提供了粗糙的目标定位,作者认为第一阶段的定位操作在后期存在对框的定位进行细化操作的情况下是可省略的。合理的统计数据即可作为初始候选框。因此Sparse RCNN可归为由完全密集到由密集到稀疏到完全稀疏的目标检测器范式扩展。

Learnable proposal feature

4维proposal框是一种用来描述目标的简短明了的表达方式,它提供了对目标的粗略定位,但丢失了如目标的姿势和形状等细节信息。作者引入了proposal特征(N×d)的概念,这是一个高维(如256)特征向量,用于对丰富的实例特征进行编码。proposal特征的数量和框的数量相同。

Dynamic instance interactive head.

给定N个proposal框,Sparse RCNN先利用ROIAlign操作来提取每个框的特征,然后通过预测头生成最终预测。
图4有对预测头进行描述,记为动态实例交互模块。每个ROI 特征会输入其专用的检测头来进行目标的定位和分类,即每个头都基于特定的proposal特征。proposal特征和proposal框是一个一一对应的关系。N个proposal框对应N个proposal特征。每个ROI特征fi(S×S×C)会与对应的proposal特征pi©交互,来过滤掉无效的bins并输出最终的目标特征©。最终的回归预测是通过带ReLU和隐藏维度C的3层感知机来计算的,分类预测是通过线性映射层进行。
对于轻量化设计,作者使用带Relu激活函数的连续1×1卷积来实现交互。每个proposal特征pi会与ROI特征进行卷积以得到更具判别性的特征。交互头的实现细节并不关键,只要支持并行操作提升效率就行。
proposal特征可看做一种注意力机制的实现,用于关注S×S大小的ROI中bins。Proposal特征生成卷积的核参数,然后以得到的卷积处理ROI特征获得最终特征。这样会让那些具有最多前景信息的bins对最终的定位和分类产生影响。
作者采用迭代结构来进一步提升性能。新生成的目标框和目标特征会用作下一阶段的proposal框和proposal特征。得益于稀疏特性和轻量动态头,这只带来了少量的计算开销。作者将自注意力模块嵌入到动态头中以推断目标之间的关系,只需输入目标特征。
DETR中提出的目标查询与proposal特征有相似的设计。但是目标查询是对位置编码进行学习。与目标查询进行交互时,特征图需要添加空间位置编码,否则会导致性能显着下降。作者的proposal特征与位置无关,并且证明了此框架无需位置编码即能很好地work。

Set prediction loss.

Sparse R-CNN对固定大小的分类和框坐标预测的集合采用集合预测损失。基于集合的损失会在预测框和GT目标间产生最佳的二分匹配,定义如下:

分类损失是focal loss,L1 loss和GIOU loss分别用于归一化后的中心坐标和宽高的损失计算。训练loss和匹配cost一样,除了只在各匹配对上执行。最终的loss是按照训练batch内的目标数量归一化后的所有对的loss的总和。
R-CNN系列一直受标签分配问题的困扰,因为存在着多对一的匹配关系。在这里作者提供了一种基于集合损失的一对一匹配的新的可能。这是一种端到端目标检测的新的尝试。

四、Experiments



Sparse R-CNN: End-to-End Object Detection with Learnable Proposals - 论文阅读翻译相关推荐

  1. Sparse R-CNN: End-to-End Object Detection with Learnable Proposals论文翻译

    Sparse R-CNN: End-to-End Object Detection with Learnable Proposals论文翻译 摘要 1.介绍 2.相关工作 3.Sparse R-CNN ...

  2. Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

    摘要 过去的目标检测都严重依赖设置密集的目标候选框(如Faster R-CNN),比如对特征图(HW)每个像素设置k个anchor boxes,这样就会有成千上万个acnhors(HW*k),这样过于 ...

  3. Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读

    Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读 摘要 介绍 相关工作 方法 Dynamic Head 扩展到现存的检 ...

  4. Dynamic Head Unifying Object Detection Heads with Attentions 论文阅读笔记

    Dynamic Head Unifying Object Detection Heads with Attentions论文阅读笔记 这是微软在CVPR2021发表的文章,在coco数据集上取得了目前 ...

  5. 【Sparse R-CNN】《Sparse R-CNN:End-to-End Object Detection with Learnable Proposals》

    arXiv-2020 作者的博客:Sparse R-CNN 文章目录 1 Background and Motivation 2 Related Work 3 Advantages / Contrib ...

  6. Minimum Barrier Salient Object Detection at 80 FPS 论文阅读笔记

    这几天帮学长研究这篇论文,整理了这些笔记,由于我在CV方面刚刚入门,博客中可能会有很多错误与不当之处,希望大家能多多指正. 附上我自己修改的C++代码,可以运行在windows环境下: 链接:http ...

  7. [论文翻译]Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

    Sparse R-CNN:具有可学习提案的端到端目标检测 摘要 我们提出稀疏R-CNN,一个纯稀疏检测图像物体的方法.现有目标检测的工作严重依赖于密集候选对象,比如在H×WH×WH×W大小的图像特征图 ...

  8. Choosing Smartly: Adaptive Multimodal Fusion for Object Detection in Changing Environments论文阅读笔记

    论文:https://arxiv.org/pdf/1707.05733v1.pdf Abstract 对象检测是在动态和变化的环境中运行的自动机器人的基本任务.机器人应该能够在存在传感器噪声的情况下也 ...

  9. 【目标检测】cvpr21_Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

    文章目录 一.背景 二.动机 三.方法 3.1 Backbone 3.2 Learnable proposal box 3.3 Learnable proposal feature 3.4 Dynam ...

最新文章

  1. [java]窗口的创建
  2. Java中的equals学习小结
  3. Linq 常用操作(增删改)
  4. python数据分析_上海交大学姐带你10分钟学会Python数据分析_python_教育
  5. bme280 环境传感器开发板_盘一盘那些年我们常用的物联网开发板!
  6. 秒懂云通信:如何用阿里云语音通知服务(小白指南)
  7. Gartner:2025年有效细分市场中过半企业的 IT 支出将转向云
  8. 关得紧紧的 FreeEIM飞鸽传书
  9. Exact-k:组合推荐的秘密
  10. linux执行多个命令_您必须知道的前50多个Linux命令
  11. iOS POST 上传图片
  12. APP自动化-显示等待/强制等待/命令等待
  13. AWD:赛前准备工作以及深度脚本讲解
  14. 个所税服务器没有企业信息,【重要】企业纳税申报一定要看进来!
  15. 南邮2020/2021电工电子技术期末试卷
  16. 微信小程序点击事件和长按事件
  17. GoF总结-18(状态模式)
  18. 苹果台式机怎么设置我的电脑计算机,怎么让台式电脑用苹果手机的wifi上网
  19. 管中窥豹SPDK RBD bdev模块
  20. 基于李雅普诺夫函数的跟踪控制(一)

热门文章

  1. 虽然简单粗暴,但这的确是事实
  2. 桌面文件夹计算机操作被限制,解决本次操作由于这台计算机的限制而被取消
  3. 基于熵保持映射先验的快速图像对比度增强算法的python实现
  4. 前端测试(jtest)
  5. 一段失败的管理经历,养成爱加班低效率工作习惯的人管理真的很累
  6. 对Excel表格操作的常用工具类
  7. js margin作用到父元素_JS margin边距
  8. Android Studio |返回键
  9. 电脑断电后无法正常启动怎么办?
  10. 联想ERP项目实施案例分析(9) 工作方法总结