前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CV中的特征金字塔】四,CVPR 2018 PANet

【CV中的特征金字塔】四,CVPR 2018 PANet

作者头像
BBuf
发布2020-03-03 09:48:49
9840
发布2020-03-03 09:48:49
举报
文章被收录于专栏:GiantPandaCVGiantPandaCV

1. 前言

PANet是CVPR 2018的一篇实例分割论文,作者来自港中文,北大,商汤和腾讯优图。论文全称为:Path Aggregation Network for Instance Segmentation ,即用于实例分割的路径聚合网络。PANet在Nask RCNN的基础上做了多处改进,充在COCO 2017实例分割比赛上夺冠,同时也是目标检测比赛的第二名。接下来就一起来看看吧。

2. 贡献

PANet整体上可以看做是对Mask-RCNN做了多个改进,充分的融合了特征,具体来说PANet的贡献可以总结为如下几点。

  • FPN(这个已经有了,不算论文的贡献)。
  • Bottom-Up Path Augmentation
  • Adaptive Feature Pooling
  • Fully-Connected Fusion

接下来我们把这几个贡献点讲清楚就OK。

3. PANet整体结构

为了更好的去讲解上面几个小点,先看一下PANet的整体结构,如论文的Figure1所示。

PANet 结构

可以看到PANet的结构的组成部分就是我们讲的FPN,Bottom-Up Path Augmentation,Adaptive Feature Pooling,Fully-Connected Fusion这四个小模块了,接下来我们详细讲解。

4. FPN

FPN是CVPR 2017的一篇论文,昨天已经讲过了这里就不多说了,讲解的推文地址如下:【CV中的特征金字塔】二,Feature Pyramid Network

5. Bottom-up Path Augmentation

Bottom-up Path Augemtation的提出主要是考虑到网络的浅层特征对于实例分割非常重要,不难想到浅层特征中包含大量边缘形状等特征,这对实例分割这种像素级别的分类任务是起到至关重要的作用的。因此,为了保留更多的浅层特征,论文引入了Bottom-up Path Augemtation。我们从Figure1中可以看到,作者用红绿两个箭头来表示这个结构是如何起作用的?

红色的箭头表示在FPN中,因为要走自底向上的过程,浅层的特征传递到顶层需要经过几十个甚至上百个网络层,当然这取决于BackBone网络用的什么,因此经过这么多层传递之后,浅层的特征信息丢失就会比较严重。

绿色的箭头表作者添加了一个Bottom-up Path Augemtation结构,这个结构本身不到10层,这样浅层特征经过原始FPN中的横向连接到P2然后再从P2沿着Bottom-up Path Augemtation传递到顶层,经过的层数不到10层,能较好的保存浅层特征信息。注意,这里的N2和P2表示同一个特征图。 但N3,N4,N5和P3,P4,P5不一样,实际上N3,N4,N5是P3,P4,P5融合后的结果。

Bottom-up Path Augemtation的详细结构如Figure2所示,是一个常规的特征融合操作,这里展示的是经过一个尺寸为,步长为的卷积之后,特征图尺寸减小为原来的一半然后和这个特征图做add操作,得到的结果再经过一个卷积核尺寸为,的卷积层得到。

Bottom-up Path Augemtation详细结构

6. Adaptive Feature Pooling

这一结构做的仍然是特征融合。论文指出,在Faster-RCNN系列的标检测或分割算法中,RPN网络得到的ROI需要经过ROI Pooling或ROI Align提取ROI特征,这一步操作中每个ROI所基于的特征都是单层特征,FPN同样也是基于单层特征,因为检测头是分别接在每个尺度上的。比如ResNet网络中常用的res5的输出。

在引入Adaptive Feature Pooling作者做了Figure3这个实验,可以看到图中有4条不同的曲线,分别对应了FPN网络中的4个特征层,然后每一层都会经过RPN网络获得ROI,因此这4条曲线就对应了4个ROI集合。图像中的横坐标表示的是ROI集合提取的不同层特征的占比。例如蓝色曲线表示level1的特征层,应该是尺度最小的ROI的集合,这一类型的ROI所提取的特征仅有30%是来自level1特征层的特征,剩下的70%均来自level2,3,4。其他level的特征层同理,因此就有了作者的这个思考和改进,也就是说对每个ROI提取不同层的特征并做融合,这对于提升模型效果显然是有好处的。

Adaptive Feature Pooling 灵感

本文提出的Adaptive Feature Pooling则是将单层特征换成多层特征,即每个ROI需要和多层特征(论文中是4层)做ROI Align的操作,然后将得到的不同层的ROI特征融合在一起,这样每个ROI特征就融合了多层特征。

Adaptive Feature Pooling的详细结构如Figure6所示。

RPN网络获得的每个ROI都要分别和特征层做ROI Align操作,这样个ROI就提取到4个不同的特征图,然后将4个不同的特征图融合在一起就得到最终的特征,后续的分类和回归都是基于此最终的特征进行。

7. Fully-Connected Fusion

PANet最后一个贡献是提出了Fully-connected Fusion,这是对原有的分割支路(FCN)引入一个前景二分类的全连接支路,通过融合这两条支路的输出得到更加精确的分割结果。这个模块的具体实现如Figure4所示。

Fully-Connected Fusion模块

从图中可以看到这个结构主要是在原始的Mask支路(即带deconv那条支路)的基础上增加了下面那个支路做融合。增加的这个支路包含个的卷积层,然后接一个全连接层,再经过reshape操作得到维度和上面支路相同的前背景Mask,即是说下面这个支路做的就是前景和背景的二分类,输出维度类似于文中说的。而上面的支路输出维度类似,其中代表数据集目标类别数。最终,这两条支路的输出Mask做融合以获得更加精细的最终结果。

8. 跨卡训练BN

作者还提到PANet的训练使用了跨卡BN层计算,引入这个的原因主要是为了在训练过程中BN层的计算会更稳定。因为BN层的计算依赖batch_size的设置,设置得过小会导致BN层的参数不稳定,但Two-Stage的目标检测算法搭配caffe框架,其batch_size会非常小,因此跨卡BN是必须的。

9. 实验结果

下面的Table1展示了PANet和Mask-RCNN,COCO 2016的冠军 FCIS算法的分割效果对比。

PANet的精度最高

下面的Table2则展示了和Mask RCNN、FCIS、RentinaNet算法在COCO数据集上的检测效果对比,可以看到。精度提升是很大的。

PANet在检测上也效果拔群

Tabel3则展示了这篇论文的消融实验,即文章提出的创新点带来的精度提升,其中RBL是这篇文章的BaseLine,也就是带FPN的Mask-RCNN。

消融实验

而Table6和Table7也值得关注,因为这里透漏了在实例分割中的一些涨点方法:

  • Deformable Convolution(DCN)可变性卷积,这天生就适合分割任务吧?
  • Testing tricks,提了2.5个mAP,主要包括Multi-Scale Tesing,这个比较耗时,但是效果一般都不差。
  • Horizontal Flip Tesing,不了解。
  • larger model 更深更宽的网络一般精度更好。
  • ensemble 模型融合,融合多个了ResNeXt-101、ResNet-269、SE-ResNeXt-101等网络的结果。

冠军Tricks

10. 附录

  • 论文原文:https://arxiv.org/pdf/1803.01534.pdf
  • 代码实现:https://github.com/ShuLiu1993/PANet
  • 参考资料:https://blog.csdn.net/u014380165/article/details/81273343
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GiantPandaCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 贡献
  • 3. PANet整体结构
  • 4. FPN
  • 5. Bottom-up Path Augmentation
  • 6. Adaptive Feature Pooling
  • 7. Fully-Connected Fusion
  • 8. 跨卡训练BN
  • 9. 实验结果
  • 10. 附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档