作者 | VincentLee

来源 | 晓飞的算法工程笔记 公众号 

特征金字塔是解决物体尺度问题的重要手段,但是不同level的特征图其实存在较大的语义差距。为了消除这些语义差距,很多研究专注于如何加强特征的融合,但这些研究大都直接将特征图缩放相加,没有很好地考虑特征金字塔的内在属性。

受尺度空间理论(多尺度提取特征点)的启发,论文提出PConv(pyramid convolution),使用3-D卷积来关联相近的特征图,挖掘尺度间的相互作用。考虑到特征金字塔的层间特征变化较大,层间各点的对应无规律,论文提出SEPC(scale-equalizing pyramid convolution)对特征金字塔的高层特征进行可变形卷积,能够自适应实际的尺度变化,保持层间尺度均衡。

论文的主要贡献如下:

  • 提出轻量级金字塔卷积PConv,对特征金字塔进行3-D卷积来挖掘内在尺度的关联性。

  • 提出尺度均衡的金字塔卷积SEPC来减少特征金字塔与高斯金字塔间差异(论文证明了PConv在高斯金字塔上具有尺度不变性)。

  • 该模块能够提升SOTA single-stage目标检测算法的性能,而且几乎不影响推理速度。

Pyramid convolution

PConv(pyramid convolution)其实是个3-D卷积,横跨尺度和空间维度,如图4a所示,PConv可表示为N个不同的2-D卷积。

但不同pyramid level的特征图大小是不同的,为了容纳不同的尺寸,在PConv在处理不同的特征图时使用不同的stride,论文采样,首个卷积核的stride为2,最小的的卷积核的stride为0.5。

PConv可表示为公式1,、和为3个独立的2-D卷积核,为输入的特征图,代表stride为2的卷积核。

stride为0.5的卷积核先对特征图双线性上采样2倍,再用stride为1的卷积核进行处理。PConv也使用zero-padding,对于底层和顶层的pyramid level仅需使用公式2的其中两项即可,PConv的计算量大约为原始FPN的1.5倍。

Pipeline

如图5a所示,RetinaNet可看作是的PConv,将4个Conv head替换成的PConv head,堆叠的PConv能够有效地逐步提高相关性,而且不会带来过多的额外计算。但为了尽可能减少计算量,可以选择分类和定位分支先共享4层PConv,再额外分别添加一层普通卷积层,如图5b所示,这样设计的计算量甚至比原生的RetinaNet还要少,具体计算可以看原文Appendix 1。

Integrated batch normalization (BN) in the head

  PConv使用共享的BN层,统计feature pyramid中所有特征图,而不是单图统计。由于统计来自于pyramid内所有的特征图,方差会变得更小。这样,即使使用很小的batch size也可以很好地训练BN层(方差较稳定)。

Scale-equalizing pyramid convolution

PConv对于不同的level都使用固定的卷积核大小,在高斯金字塔上(模糊程度不严重且高斯核接近特征图缩放比例),PConv能够提取尺度不变的特征,具体证明可以看原文Appendix 3。

但实际中,由于多层卷积和非线性操作的存在,特征金字塔的模糊程度比高斯金字塔要严重得多(特征的缩放程度可能跟特征图大小不成比例),使用固定的卷积核大小很难提取尺度不变的特征。为此,论文提出SEPC(scale-equalizing pyramid convolution),对除最底层外的高层特征使用可变形卷积,单独预测一个offset,能够自适应各层的模糊程度,保持特征图间的尺度均衡,从而提取尺度不变的特征。

  SEPC主要有以下好处:

  • 可变形卷积的自适应性能够处理特征金字塔较大的层间模糊程度。

  • 消除特征金字塔与高斯金字塔间的差异(论文证明PConv能够对高斯金字塔提取特征不变的特征)。

  • 由于高层特征的卷积计算量相对于低层减少了4倍(面积减少),对高层加入可变形卷积仅带来少量额外的计算量。

  SEPC分为两个版本,SEPC-full对图5b的Combined head和Extra head加入SEPC,而SEPC-lite则仅对Extra head加入SEPC。

Experiments

Single-stage object detectors

Effect of each component

Comparison of different BN implementations in the head

BN层的输出,和为参数,和为统计结果,图7的三种BN的对比,其中Integrated BN(iBN)为论文提出的共享BN,全部参数和统计共享

Comparison with other feature fusion modules

Comparison with state-of-the-art object detectors

Extension to two-stage object detectors

结论

论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡。PConv和SEPC对SOTA的检测算法有显著地提升,并且没有带来过多的额外计算量。

论文地址:https://arxiv.org/pdf/2005.03101.pdf

论文代码:https://github.com/jshilong/SEPC

推荐阅读

  • 真没想到,Python 还能实现 5 毛特效

  • Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相

  • 深度学习基础总结,无一句废话(附完整思维导图)

  • 第一个"国产"Apache 顶级项目 Kylin,了解一下!| 原力计划

  • 调查了 17,000 多位程序员,当前的云原生开发现状究竟如何?

  • CSW:惊天巨骗 or 比特币“图腾”中本聪?

  • 你点的每个“在看”,我都认真当成了AI

SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020相关推荐

  1. SEPC:商汤提出使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020

    论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡.PConv ...

  2. OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform)

    OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform) 1. 效果图 2. 原理 2.1 步骤 2.2 opencv实现方法 2.3 SIFT ...

  3. 目标检测中多尺度:特征金字塔FPN_Feature Pyramid Networks for Object Detection

    原始内容来源于: https://blog.csdn.net/cdknight_happy/article/details/100528127 https://blog.csdn.net/WZZ181 ...

  4. 特征点提取—尺度不变特征SIFT算法

    目录 SIFT算法概述 尺度空间与与金字塔表达 1 高斯模糊 2 金字塔构建 2.1 金字塔多分辨率 3.空间极值点检测(关键点的初步探查) 4.关键点描述 4.1 KPD生成 4.2.关键点的主方向 ...

  5. 无需3D运动数据训练,最新人体姿势估计方法达到SOTA | CVPR 2020

    作者 | Muhammed Kocabas 译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 人体的运动对于理解人的行为是非常重要的.尽管目前已经在单图像3D姿势和动作估计方面取得 ...

  6. CVPR 2020 SEPC论文解析:使用尺度均衡金字塔卷积做目标检测

    点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 导读 只说重要的,计算量基本不变,涨AP,3.5个点! 论文:https://a ...

  7. 【论文解读】CVPR 2020 SEPC论文解析:使用尺度均衡金字塔卷积做目标检测

    导读 只说重要的,计算量基本不变,涨AP,3.5个点! 论文:https://arxiv.org/abs/2005.03101 代码:https://github.com/jshilong/SEPC ...

  8. 深度学习(6)之卷积的几种方式:1D、2D和3D卷积的不同卷积原理(全网最全!)

    深度学习(6)之卷积的几种方式:1D.2D和3D卷积的不同卷积原理(全网最全!) 英文原文 :A Comprehensive Introduction to Different Types of Co ...

  9. 多通道和单通道3D卷积及其运算过程详解

    多通道和单通道3D卷积过程详解 前言 3D卷积作用 Pytorch中对应函数参数详解 单通道3D卷积详解 多通道3D卷积 前言 大家对1D卷积的介绍以及2D卷积中单通道和多通道的介绍已经十分完备了,我 ...

最新文章

  1. easymock快速入门
  2. 在“软件工程:研究与实践”研讨会上关于UML Use-Case的开放空间讨论
  3. primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
  4. (网页)AngularJS 参考手册
  5. 操作系统【五】分段内存管理+段页式内存管理
  6. Flex 4 NativeWindow 中添加Flex组件(问题很多,尚不完善)
  7. 广东计算机学会 信息学省初赛,报名丨2019第36届全国信息学奥林匹克竞赛于广州二中举办!...
  8. 分布式文件系统MooseFs部署(二)
  9. css左侧投影_css单边投影与双侧投影
  10. 【论文笔记】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
  11. windows下调整linux分区大小,如何在Windows 10/8/7中调整分区大小
  12. MP4转AVI转AMV教程:教你把B站视频导入你的MP3MP4随身听播放器
  13. wps表格怎么用计算机,怎么样在wps表格中添加计算器
  14. 云原生存储和云存储有什么区别?
  15. python谢尔宾斯基三角形
  16. Struts1与Struts2原理以及区别
  17. MySQL LEFT函数的使用
  18. 网易2019实习生招聘算法题(一)
  19. c语言五子棋最简单的ai,C++简单五子棋的AI设计实现
  20. 寿星万年历源代码(JAVA/VB NET)

热门文章

  1. Word2Vec教程(2)- Negative Sampling
  2. 数据结构与算法python版 MOOC 第九周
  3. 大家都有什么时间管理的工具和技巧?这款便签软件赶紧收藏
  4. 计算机英文术语完全介绍
  5. 航空发动机原理复习之计算题总结(三)
  6. Adobe FlasCC中 C++端与Flash端的函数参数(如数组和ByteArray)传递
  7. 独立级联模型线性阈值模型
  8. 微软官方下载windows 7啦
  9. 原生Mysql之 join和inst优化r
  10. java时间日期格式化和JDBC中的处理