论文提出Cascade RPN算法来提升RPN模块的性能,该算法重点解决了RPN在迭代时anchor和feature不对齐的问题,论文创新点足,效果也很惊艳,相对于原始的RPN提升13.4%AR

论文:Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution

Introduction


  目前,性能高的目标检测网络大都为two-stage(RPN+R-CNN)架构,相对于R-CNN,很少有研究专门去提升RPN的性能。因此,论文着重研究如何提升RPN的性能,解决其探索性的achor定义以及探索性的feature与anchor对齐的局限性

  anchor由尺寸和长宽比定义,常规算法会使用一系列不同尺寸和长宽比的anchor来充分覆盖检测目标。设定合适的尺寸和长宽比是提升性能的关键,这通常需要一顿tuning

  论文重点强调对齐规则,即图片特征和anchor必须是一致的。如图1a所示,由于RPN的anchor是均匀分布的,其方差十分大,难以学习,需要进行迭代回归。但RPN没有类似RoIPool或RoIAlign的手段进行特征对齐,因为RPN的输入很多,性能十分重要,只能进行常规的滑动卷积进行输出,这就造成了anchor和feature的对称问题。如图2b,可以看到Iterative RPN的收益是微乎其微的,这是由于在iterative RPN中,stage2的anchor与其特征不对齐(依然均匀地卷积),如图1c,stage2的输入anchor精调了,但是stage2卷积时使用的特征区域还是精调之前的

  论文提出Cascade RPN来系统地解决前面提到的问题,算法主要有两个特点:

  • Cascade RPN使用单anchor,并且结合anchor-based和anchor-free的准则来进行正样本的判定
  • 为了获得多stage精调的好处并且保持特征和anchor对齐,Cascade RPN使用自适应卷积来精调每个stage的anchor,自适应卷积可以当作是个轻量级的RoI Align层

  Cascade RPN简单但有效,能比原生RPN高出13.4%AR,并且能集成到two-stage检测器中,如Fast R-CNN和Faster R-CNN分别提升3.1%和3.5%

Region Proposal Network and Variants


  文中简单介绍了RPN的概念,如图1a,通过卷积回归当前anchor与GT间的差值来进行精调,相信大家都比较了解了,这里就不再赘述了

Iterative RPN and Variants

  Iterative RPN的架构如图2b所示,通过迭代回归得出不同stage的差值,然后按顺序对anchor进行精调。从结构来看,如上所述,这样的方法收益是微乎其微的,因为其特征与anchor是不对齐的

  为了缓解对齐问题,一些研究使用可变形卷积来进行特征图上的空间变换,希望能使得精调后的anchor与变换后的特征对齐,如图2cd。但是这种方法并没有严格的约束去保证特征与变换后的anchor对齐,也很难确定变换后的特征和anchor是否对齐了

Cascade RPN

  • Adaptive Convolution

  对于feature map x,标准的二维卷积先通过网格$\mathbb{R}={(r_x,r_y)}$采样,然后与权重w加权求和。$\mathbb{R}$由卷积核大小与膨胀(dilation)定义,如$\mathbb{R}={(-1, -1), (-1, 0),.....,(0, 1),(1, 1)}$对应卷积核大小为3x3和膨胀为1。对于位置p的特征输出y,定义为

  在自适应卷积中,网格$\mathbb{R}$替换为从输入anchor计算出的偏移$\mathbb{O}$

  让$\overline{a}$定义为a在特征图上的精调后的anchor,偏移o可以分解为中心偏移和形状偏移

  其中,$o_{ctr}=(\overline{a_x}-p_x, \overline{a_x}-p_y)$为中心点偏移量,$o_{shp}$是形状偏移量,由anchor的形状和卷积核大小决定。假设卷积核大小为3x3,则$o_{shp}\in{(-\frac{\overline{a}_w}{2},-\frac{\overline{a}_h}{2}), (-\frac{\overline{a}_w}{2},0),...,(0,\frac{\overline{a}_h}{2}),(\frac{\overline{a}_w}{2},\frac{\overline{a}_h}{2})}$,由于偏移量是小数,采样时使用双线性插值

  如图3所示,常规卷积连续地采样特征,空洞卷积则根据膨胀按间隔采样特征,可变形卷积则根据学习的偏移来增大采样的空间位置,这是不规则的。而论文提出的自适应卷积则能保证在anchor内进行采样,是规则的,确保特征与anchor对齐

  • Sample Discrimination Metrics

  Cascade RPN每个位置仅使用一个anchor box,然后使用多stage的精调。在判定anchor的正负时,单纯地使用anchor-free或anchor-base方法都是不行的,因为使用anchor-free标准会导致stage2要求太低,而使用anchor-base则会导致stage1不能回归足够多的正样本。因此,Cascade RPN在stage1使用anchor-free标准,即中心点在GT center内即为正,而往后的stage则使用anchor-base标准,根据IoU进行判断

  • Cascade RPN

  Cascade RPN的架构如图2e所示,依靠自适应卷积来对齐特征和anchor。在stage1,自适应卷积可以认为是空洞卷积,因为anchor中心偏移为0,膨胀量根据shape而定。stage1的特征输出会连接到下一个阶段,因为其包含当前anchor的空间信息

  整体流程如公式1,stage1的anchor集合$\mathbb{A}^1$是均匀分布在图片上的,而在stage$ \tau $,计算出anchor的偏移$\omicron^\tau$并通过regressor $f\tau$计算出回归值$\hat{\delta}\tau$,再产生精调的anchor$a^{\tau+1}$。在最后的阶段,通过classifer计算出分类置信度,然后再进行NMS得出最后的结果

  • Learning

  Cascade RPN可以通过多任务的end-to-end方式进行训练,其中$L_{reg}{\tau}$是stage$\tau$回归loss,权重为$\alpha\tau$,$L_{cls}$则是分类的loss,两个loss通过$\lambda$进行权重调整。在实现时,分类使用二值交叉熵而回归使用IoU loss

Experiment


Experimental Setting

  实验的模型以ResNet50-FPN作为主干,每个特征level使用的尺寸为$322$,$642$,$1282$,$2562$,$512^2$。FPN采用two-stage,第一阶段使用anchor-free标准,center-region$\sigma_{ctr}$和ignore-region$\sigma_{ign}$分别为0.2和0.5,第二阶段使用anchor-based标准,IoU阈值为0.7。multi-task loss的stage-wise权重$\alpha^1=\alpha2=1$,平衡权重$\lambda=10$,NMS阈值为0.8。实验将图片等比缩放为$[800, 1333]$,不使用其余数据增强手段,在8GPU上用SGD训练12个epoch,batch 16,初始学习率为0.02,8周期和11周期降低10倍。RPN的性能用AR来衡量,最终的检测结果则以AP进行衡量

Benchmarking Results

Region Proposal Performance.Table1展示了Cascade RPN与state-of-the-art的RPN研究对比,其中Sharp Mask,GCN-NS,AttractionNet,ZIP结果直接从原文里获取,其余用mmdetection复现。Cascade RPN比原始的RPN提升了13.4%AR,由于遵守了对齐规则,Cascade RPN比其它的方法性能都要优异

Detection Performance.Table2展示了集成进two-stage检测器后的整体性能表现,Fast RCNN使用预先计算的anchor进行训练,而Faster RCNN则是end-to-end的。直接替换RPN的实验结果只有很小收益,需要修改一下实验参数,设定IoU阈值为0.65,只取top300 anchor。从结果看来,top300时在两个框架下分别提升了3.5%mAP和3.7%mAP

Ablation Study

Component-wise Analysis.  为了进一步了解Cascade RPN性能,进行了component-wise的实验。baseline是anchors为3的RPN,$AR_{1000}$为58.3,当anchor为1时,$AR_{1000}$降到55.8,意味着正样本的大幅减少。而当使用自适应卷积使用时,性能提升为67.8,这意味着对齐在多阶段精调的重要性。混合anchor-free和anchor-based准则带来了0.8%的提升,使用回归统计(对回归差值进行归一化)带来2.9%AR收益,IoU loss带来0.2%的提升

Acquisition of Alignment.  为了研究自适应卷积的性能,进行了Table4实验。从结果可以看出,当仅使用中心偏移时,提升6.1%AR,而当使用中心和形状偏移时,性能达到67.8%

Sample Discrimination Metrics.  Table5展示了采用标准的性能测试,从结果看来,单独使用anchor-free或anchor-based标准是不完美的,同时使用能带来很好的效果

Qualitative Evaluation.  图4的第一和第二行图片为stage1的结果,第三行为stage2的结果,可以看到,stage2的结果要好点

Number of Stages.  Table6展示了stage数量对结果的影响,可以看到2-stage和3-stage性能几乎一样,2-stage是个不错的选择

Extension with Cascade R-CNN.  在Cascade R-CNN上,Cascade RPN能提升0.8%AP

Conclusion


  论文提出优化版的Cascade RPN,该架构能够有效地解决RPN中anchor和feature的对齐问题,相对于原始的RPN,能提升13.4%AR,是个很不错的架构

创作不易,未经允许不得转载~

更多内容请关注个人微信公众号【晓飞的算法工程笔记】

NeurIPS 2019 Spotlight | Cascade RPN,结构的艺术带来极致的提升的更多相关文章

  1. 实战级Stand-Alone Self-Attention in CV,快加入到你的trick包吧 | NeurIPS 2019

    论文提出stand-alone self-attention layer,并且构建了full attention model,验证了content-based的相互关系能够作为视觉模型特征提取的主要基 ...

  2. 有关cascade的结构体

    /* internal cascade classifier */ typedef struct CvCascadeHaarClassifier { CV_INT_HAAR_CLASSIFIER_FI ...

  3. NeurIPS 2019 | 基于Co-Attention和Co-Excitation的少样本目标检测

    论文提出CoAE少样本目标检测算法,该算法使用non-local block来提取目标图片与查询图片间的对应特征,使得RPN网络能够准确的获取对应类别对象的位置,另外使用类似SE block的sque ...

  4. 2019年最值得关注的AI领域技术突破及未来展望

    选自venturebeat 翻译:魔王.一鸣 前言 AI 领域最杰出的头脑如何总结 2019 年技术进展,又如何预测 2020 年发展趋势呢?本文介绍了 Soumith Chintala.Celest ...

  5. 目标检测 | 经典算法 Cascade R-CNN: Delving into High Quality Object Detection

    作者从detector的overfitting at training/quality mismatch at inference问题入手,提出了基于multi-stage的Cascade R-CNN ...

  6. NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”

    七月份的尾巴,机器学习顶会NeurIPS 2019的初步结果已经来了. 一年一度的吐槽盛会也由此开始. "有评审问我啥是ResNet." "有评审问我为啥没引用X论文.我 ...

  7. Guided Anchoring:在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019

    Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案   ...

  8. 【Swift】iOS 9 Core Spotlight

    前言 感觉 Spotlight 这个功能还是蛮有用的,能提升用户活跃,增加应用内容曝光几率. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: ...

  9. WordPress插件--WP BaiDu Submit结构化数据插件又快又全的向百度提交网页

    一.WP BaiDu Submit 简介 WP BaiDu Submit帮助具有百度站长平台链接提交权限的用户自动提交最新文章,以保证新链接可以及时被百度收录. 安装WP BaiDu Submit后, ...

随机推荐

  1. Python拾遗(2)

    包括Python中的常用数据类型. int 在64位平台上,int类型是64位整数: 从堆上按需申请名为PyIntBlcok的缓存区域存储整数对象 使用固定数组缓存[-5, 257]之间的小数字,只需 ...

  2. numpy的索引

    import numpy as np A =np.arange(3,15).reshape(3,4) print(A) #第一行 print(A[2]) #返回元素 print(A[1][2]) pr ...

  3. 生鲜电商的两极战:巨头VS地头

    ​ ​ "九月蟹黄满,十月蟹肉香",螃蟹年年相似,总是美味无边,但购买渠道却随着互联网普及而变得愈发多样起来.此前,大闸蟹礼券风靡就是最佳代表之一.虽然也引发诸多问题,但消费者也越 ...

  4. 告别ThinkPHP6的异常页面, 让我们来拥抱whoops吧

    春节期间熟悉了TP6, 也写了一个TP6的博客程序,但系统的异常页面实在另外头疼,很多时候无法查看到是哪行代码出的问题. 所以就特别的想把whoops引进来,经过一系列的研究,终于找到了解决的办法: ...

  5. NOI Online 赛前刷题计划

    Day 1 模拟 链接:Day 1  模拟 题单:P1042 乒乓球  字符串 P1015 回文数  高精 + 进制 P1088 火星人  搜索 + 数论 P1604 B进制星球  高精 + 进制 D ...

  6. 一起了解 .Net Foundation 项目 No.10

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. LLILC LLILC ( ...

  7. 某图片站反爬加密字段x-api-key破解

    前言 此次逆向的是某“你们都懂”领域的图片站,目前此站限制注册,非会员无法访问:前两天偶然搞到了份邀请码,进入后发现质量还可以,于是尝试爬取,在爬虫编写过程中发现此站点采用了不少手段来阻止自动化脚本( ...

  8. Windows 使用激活服务器激活操作步骤

    最近装了win10企业版系统,总结下激活步骤,激活后是正版,半年后需要重新激活,不介意的小伙伴可以试试,这不是重点,重点是企业版超级clean...... 服务器激活系统步骤,打开cmd或者xshel ...

  9. @Mapper与@Repository区别

    @Mapper:是mybatis-plus注解 @Repository:是spring注解 @Mapper= @Repository + @MapperScan(basePackages = &quo ...

  10. Mac使用brew安装MongoDB

    之前一直使用以下命令安装MongoDB,但是一直安装不上 brew install mongodb 后来看了官网,安装方法如下 brew tap mongodb/brew //这步不知道需不需要 br ...