Parallel Feature Pyramid Network for Object Detection
Parallel Feature Pyramid Network for Object Detection
ECCV2018
总结:
文章借鉴了SPP的思想并通过MSCA(multi-scale context aggregation)模块进行特征融合从而提出PFPNet(Parallel Feature Pyramid Network)算法来提升目标检测的效果。
1.使用spp模块通过扩大网络宽度而不是增加深度来生成金字塔形特征图
2.提出msca模块,有效地结合了大不相同规模的上下文信息
3.效果好:82.3% (Pascal VOC 2007), 80.3% (PASCAL VOC 2012), 35.2% (MS-COCO),
4.速度快:a single Titan X:24fps(512*512),33fps(320*320),
特征金字塔回顾:

作者先回顾了之前的特征融合网络。(a)上方是常见的cnn网络,下面的结构则引入了特征金字塔,基于多个特征层进行预测,类似于SSD。(b)上方是近几年流行的U-net(也称为漏斗型网络),下方的结构融合不同层的特征进行预测,就是17年提出的FPN结构图。(c)是原始的空间金字塔结构,简单讲就是卷积后的特征图经过不同size的池化操作得到不同尺度的特征图,将不同尺度的特征图做融合后进行预测。(d)是文章提出的网络结构
网络结构:

Figure3是PFPNet的整体结构图。首先对于一张输入图像,先通过一个基础网络(VGG16全连接换卷积)提取特征,假设提取到的特征通道数是D,基于提取到的特征通过SPP网络得到不同尺度的特征图(记为高维特征b),用N表示尺度数量(图中N=3),得到的特征图通道数用CH表示,CH等于D;然后通过一个通道缩减操作bottleneck将(b)中的特征图的通道缩减得到低维特征(对应c),缩减后的通道数用CL表示,公式是CL=D/(N-1),(Figure3中(c)的输出特征通道数应该是2,而不是图中显示的1);然后通过MSCA操作得到融合后的特征图d,得到的特征通道数是Cp;最后基于融合后的多个特征图进行预测(每个特征图经过简单的预测网络(3*3conv)回归预测,非极大抑制得到最终结果)。

Figure4是MSCA模块的结构示意图。MSCA主要是基于特征通道的concat操作,但是输入特征有些不同。比如Figure4在得到P1这个融合特征时,是用fH(1)、下采样(双线性差值)后的fL(0)、上采样(非重叠平均池化)后的fL(2)进行concat后得到的。为什么不是用fL(1)而是用fH(1),因为在作者看来相同尺度的特征信息要足够多,而FH部分得到的特征是未经过通道缩减的,因此在得到某一个尺度的预测层特征时,被融合的对应尺度特征都是采用FH部分的输出特征,而不是FL部分的输出特征。相比之下,不同尺度的待融合特征采用FL部分的输出特征,相当于补充信息。因此concat后的特征通道数中有(N-1)*(D/(N-1))=D个是FL的输出,有D(等于CH)个是FH的输出,相当于各占一半,这也是前面介绍的为什么FL的输出特征通道数用D/(N-1)这个公式的原因。作者尝试过将CL=2D/N,全由FL进行concat操作得到融合特征,但是参数量增多且性能下降,这部分的实验结果没有展示出来,所以对于用fH的特征做融合对效果提升有多大就不得而知了。模块中的Convs也是一个瓶颈结构(bottleneck)。总的来说MSCA模块就是一个特征融合模块,作者期望通过concat操作最大程度地保存提取到的特征信息。
损失函数:
文章有两个不同的anchor确定方式,由此有两种对应的损失函数
一种是用SSD的anchor,此时loss记为PFPNet-S:;第二种使用ARM(anchor refinement module)模块的anchor,此时loss记为PFPNet-R:

超参数的选取:
文中有两个值需要人为设置,一个是金字塔的层数N,另一个是低维特征通道数CL。(其实这里有个问题,CL=D/N这不是确定的吗?为什么还可以调整?)作者根据取值不同做了实验。训练集为VOC07+VOC12的训练集,测试集为VOC07的测试集,取IOU为0.5,训练110K代,初始学习率10-3,在80K和100K衰减10倍。可以看到最优取值N=4,CL=256。

实验结果:

Table2为不同模块对模型的影响,说明了模块的有效性。


其中,PFPNet-S512说明anchor用SSD的方式,图片大小512*512;-R说明anchor使用用ARM模块。

另外:文中有个总结说得特别好,那就是对于目标检测任务而言,真正有用的特征一定具备这3个特点:1、特征要包含目标的细节信息。2、特征要通过足够深的网络提取得到。3、特征要包含目标的语义信息。
Parallel Feature Pyramid Network for Object Detection的更多相关文章
- 【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)
目录 0. 前言 1. 博客一 2.. 博客二 0. 前言 这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里 ...
- Feature Pyramid Networks for Object Detection比较FPN、UNet、Conv-Deconv
https://vitalab.github.io/deep-learning/2017/04/04/feature-pyramid-network.html Feature Pyramid Netw ...
- 『计算机视觉』FPN:feature pyramid networks for object detection
对用卷积神经网络进行目标检测方法的一种改进,通过提取多尺度的特征信息进行融合,进而提高目标检测的精度,特别是在小物体检测上的精度.FPN是ResNet或DenseNet等通用特征提取网络的附加组件,可 ...
- Feature Pyramid Networks for Object Detection
Feature Pyramid Networks for Object Detection 特征金字塔网络用于目标检测 论文地址:https://arxiv.org/pdf/1612.03144.pd ...
- 论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)
论文源址:https://arxiv.org/abs/1612.03144 代码:https://github.com/jwyang/fpn.pytorch 摘要 特征金字塔是用于不同尺寸目标检测中的 ...
- 论文阅读 | FPN:Feature Pyramid Networks for Object Detection
论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 201 ...
- FPN-Feature Pyramid Networks for Object Detection
FPN-Feature Pyramid Networks for Object Detection 标签(空格分隔): 深度学习 目标检测 这次学习的论文是FPN,是关于解决多尺度问题的一篇论文.记录 ...
- 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...
- 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...
随机推荐
- 轻量级CNN模型mobilenet v1
mobilenet v1 论文解读 论文地址:https://arxiv.org/abs/1704.04861 核心思想就是通过depthwise conv替代普通conv. 有关depthwise ...
- web前端面试题(含答案)
HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...
- [翻译]Jupyter notebook .NET Core 内核预览1
当您想到Jupyter Notebooks时,您可能会考虑使用Python,R,Julia或Scala而不是.NET编写代码. 今天,我们很高兴宣布您可以在Jupyter Notebooks中编写.N ...
- [2018-06-28] 创建第一个django项目
1.创建一个名称为tmpl的项目 django-admin.py startproject tmpl 2.进入刚刚创建的tmpl目录 cd tmpl 3.创建一个名称为learn的应用 python ...
- 题解 【洛谷】AT654
题解 AT654 [役人[错题已隐藏]] 此题题面没搬过来, 会日语的dalao可以自行去ATCoder查看. 给出此题的JavaAC代码: public class Main { public st ...
- 详解SpringBoot应用跨域访问解决方案
一.什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访 ...
- Python基础学习(一)之Python的概述与环境安装
Python介绍 Python语言介绍 Python是一门高级的.面向对象的.解释性.脚本语言. 高级语言:贴近开发者,对应底层语言,底层语言贴近机器:java.C#.php .ruby 面向对象对应 ...
- Tornado 异步socketTCP通信
Tornado 有 TCPClient 和 TCPServer 两个类,可用于实现 tcp 的客户端和服务端.事实上,这两个类都是对iostream的简单包装. 真正重要的是 iostream ios ...
- linux搭建简易网站
1.检查环境 getenforce #查看seLinux运行状态 Enforcing #强行执行 setenforce #临时关闭selinux vim /etc/selinux/config #编辑 ...
- Docker学习-Docker搭建Consul集群
1.环境准备 Linux机器三台 网络互通配置可以参考 https://www.cnblogs.com/woxpp/p/11858257.html 192.168.50.21 192.168.50.2 ...