点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


导读

只说重要的,计算量基本不变,涨AP,3.5个点!

论文:https://arxiv.org/abs/2005.03101

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

在做目标检测的时候,利用不同level的特征进行预测已经是标准操作了,所以,如何进行不同特征层之间的融合有很多不同的方法,但是基本上都是先进行缩放,缩放到相同的分辨率,然后进行相加或者拼接。但是,不同level的特征层是有语义上的差别的,而其实不同层之间相关性是有区别的,距离越近的特征层的相关性越大:

因此,这篇文章提出了一种可以利用不同特征level之间的相关性的方法,而不仅仅是简单的相加或者拼接了。因为如果是相加的话,只是对应的元素的相加,并没有feature map之间的交互,如果是拼接的话,实际上把所有的level的特征层平等对待了。

先介绍几个概念:

1. pyramid convolution (PConv)

这里使用了类似3D卷积的方案,把不同level的特征图看成是视频帧中不同帧的特征图,然后对相邻N帧,比如N=3进行3D卷积,得到中间帧的3D卷积输出,而这个输出是融合了前后两个特征层的信息的,而且融合方式要比简单的相加或者拼接要更灵活,是可以通过3D卷积的参数学习到的。这个操作就叫做金字塔卷积,pyramid convolution (PConv)  。

这里有个问题,在做3D卷积的时候,相邻帧的特征图尺度是相同的,而这里不同level的特征图的尺度是不同的,这个也好办,以中间level为基准,尺寸大的降采样,尺寸小的上采样,缩放到一样再进行3D卷积就可以了,因此,这个PConv中第层的操作写成式子是这样:

s0.5表示stride-0.5的卷积,s2表示stride=2的卷积,这里,s0.5可以等效为先上采样再做一个卷积。因此,又可以表示为:

对于最底层,也就是分辨率最大的那层,最后一项没有,对于最上层,也就是分辨率最小的那层,第一项没有。

所以,这篇文章中的第一个重要的概念pyramid convolution (PConv) 现在就很清楚了,这其实就是一个对特征图金字塔进行3D卷积的模块。得到的是相邻的N个特征图进行交互后的结果。

PConv的使用流程如下:

从图中可以看到,我们用4个共享的PConv模块来代替了原来的RetinaNet中的检测head,只是在最后再分出两个分支做分类和定位。这样的设计可以比原始RetinaNet计算量更少。

2. Integrated batch normalization (BN)

这个有个要注意的地方,就是BN的使用,由于把PConv看成了一个3D卷积,因此BN的统计量的计算要在3D卷积的所有的特征图上进行,这样会使得统计偏差变小,特别是对于高层中分辨率小的特征图,而且在使用小batch size的时候,比如4的时候,也可以有好的结果。

3. Scale-equalizing pyramid convolution

如果大家还记得SIFT这个非常有名的特征提取算子,大家应该会知道特征金字塔这个概念,不同分辨率的图像堆叠在一起,构成一个金字塔的形状,大分辨率图像在底下,小分辨率图像在上面。构建特征金字塔有两个主要操作,一个是高斯滤波,一个是降采样。在进行高斯滤波时,同一个level中的不同层之前的平滑程度是不一样的,是越来越大的。这其实和CNN中的卷积神经网络非常的相似,只是CNN中的层数会更多,参数可学习,而且中间还会有非线性变换。

这里,文章的附录中证明了一个说法,就是pyramid convolution可以在高斯金字塔中提取出尺度不变性的特征。这个在下面的图a中可以很直观的看出来:

如果我们用N=1的PConv在金字塔中提取特征时,在不同的level上,使用相同的尺寸的卷积核,可以提取出不同尺度的特征。在构造高斯金字塔时,高斯模糊的目的是为了避免下采样时,高频噪声会留下来,影响下一层的特征提取,但是高斯模糊又不能太厉害,否则会伤害细节信息,所以,一般高斯模糊核的尺寸是和降采样率差不多的。

但是,如果我们用PConv来处理由CNN的backbone产生的特征金字塔的时候,这个特征金字塔和高斯金字塔还是很不一样的,不同的level之间的特征经过了很多的卷积和非线性层,如果把这种综合的效果也看成是一种模糊的话,这个模糊操作的模糊kernel是很大的,基本就是感受野的大小。从上图b中可以看到,是模糊的很厉害的。

如果我们要想去提取具有尺度不变性的特征的话,我们希望这个特征图的金字塔和高斯金字塔要比较相似才好,因为已经证明过高斯金字塔是可以用PConv提取尺度不变的特征的,所以如果特征图金字塔和高斯金字塔一样的话,也可以用PConv提取出尺度不变的特征。

而现在特征图金子图和高斯金字塔之间的主要的差别就是不同的level之间做的这个“模糊”效果不一样,特征图的“模糊”效果太厉害了,因此,原来的在不同的level上使用固定尺寸的高斯核就不合适了,高level的特征图使用的卷积核应该要大,而且,由于中间有很多的非线性的操作,导致每个像素之间还会不一样,所以不能只使用一个固定尺寸的卷积核。

于是,这里就很自然的用到了可变形卷积的思想,如上图的b,最底层的特征图用的是固定的3x3的卷积,但是上层的特征图上用的就是可变形的卷积核,这样一来,就可以做到不同level的特征图上提取出尺度一致的特征出来,这个操作就叫做scale-equalizing pyramid convolution (SEPC)  。实际上就是在PConv中,对于高level的特征图使用可变形卷积。

4. 实验

iBN的效果:基本都有效果,不同的方法略有不同。

和DCN的对比,也就是把RetinaNet中head中的卷积换成DCN:

和其他不同的特征融合模块相比:

和其他的检测器相比:

—END—

论文链接:https://arxiv.org/abs/2005.03101

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

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

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

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

  2. CVPR 2020 Oral | 旷视提出目前最好的密集场景目标检测算法:一个候选框,多个预测结果...

    作为 CVPR 2020 Oral展示论文之一, 该文提出一种简单却有效的基于候选框的物体检测方法,尤其适用于密集物体检测.该方法通过一个候选框.多个预测框的概念,引入 EMD Loss.Set NM ...

  3. CVPR 2020 | 中科院、商汤联合提出大规模多标签目标检测新算法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:学术头条 AI博士笔记系列推荐 周志华<机器学习>手 ...

  4. 做目标检测,这6篇就够了:CVPR 2020目标检测论文盘点

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源:机器之心 CVPR 2020 会议上,有哪些目标检测论文值得关注? 目标检测是计算机视觉 ...

  5. access open 知乎_做目标检测,这6篇就够了:CVPR 2020目标检测论文盘点

    CVPR 2020 会议上,有哪些目标检测论文值得关注? 选自heartbeat,作者:Derrick Mwiti,机器之心编译,参与:陈萍. 目标检测是计算机视觉中的经典问题之一.凭借大量可用数据. ...

  6. coco数据集目标检测论文_做目标检测,这6篇就够了:CVPR 2020目标检测论文盘点...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 选自heartbeat 作者:Derrick Mwiti 转载:机 ...

  7. 21岁华人本科生,凭什么拿下CVPR 2020最佳论文提名?

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在训练神经网络的时候,经常会出现「缺数据」的情况. 这时候,就需要「数据增强」来获取更多数据.而近几年,镜像反转成了最为常用的方法之一. 转 ...

  8. 后浪“95”获 CVPR 2020 最佳论文,前得主这样解读

    来源 | AI TIME 论道 CVPR 2020已落下帷幕,共计投稿6656篇,录用1470篇,涵盖的方向包括目标检测.目标跟踪.图像分割.人脸识别.姿态估计.三维点云.视频分析.模型加速.GAN. ...

  9. radioml2018数据集_7 Papers Radios | CVPR 2020获奖论文;知识蒸馏综述

    机器之心 & ArXiv Weekly Radiostation 参与:杜伟.楚航.罗若天 本周的重要论文是CVPR 2020 公布的各奖项获奖论文,包括最佳论文和最佳学生论文等. 目录: K ...

最新文章

  1. 用这种方法实现无监督端到端图像分类!(附论文)
  2. 后缀数组的学习(三):SA数组实现代码分析
  3. 用神经网络二分类吸引子与排斥子
  4. linux中mysql如何删除库,Linux环境下MySQL基础命令(2)----查看、创建、删除库和表...
  5. ABAP性能优化之向内表添加纪录
  6. 列表-列表统计及删除方法扩展
  7. CRISP-DM:数据挖掘标准流程
  8. Java 数组获取最大值和最小值
  9. jenkins插件管理提示“update information obtained:不可用ago”
  10. android+6.0中兴v5s,中兴v5s
  11. 激光雷达互动交互大屏全息互动投影Tuio多点触摸检测驱动引擎
  12. MIPS中addi指令被分成三条指令的问题
  13. 【操作系统】分页式虚拟存储系统
  14. Android 复制 粘贴 剪贴板的使用 ClipboardManager
  15. 爬壁机器人外文文献_仿生爬壁机器人的研究现状
  16. Oracle修改SEQUENCE起始值
  17. 信捷plc modbus通信
  18. 利用sentinel hub Python开发包查询和下载Sentinel-2等卫星遥感数据
  19. php正则表达式替换字符,php正则表达式如何替换字符
  20. [A001]兄弟连3天学会php

热门文章

  1. 2023年跨境电商行业研究报告
  2. git创建密钥连接的方法
  3. 服务器字体用法和响应式布局入门
  4. (可下载)《2020年网络安全威胁信息研究报告(2021年)》上新
  5. 关于 Chukwa 数据收集监控系统的介绍
  6. ES6 Symbol类型的应用、symbol属性名的遍历、Symbol.for()Symbol.keyFor()
  7. emc整改措施及案例_EMC整改常用方法小结
  8. [人工智能-数学基础-1]:深度学习中的数学地图:计算机、数学、数值计算、数值分析、数值计算、微分、积分、概率、统计.....
  9. centos 的各种应用
  10. 彻底删除Windows 7下残留打印机驱动