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的更多相关文章

  1. 【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)

    目录 0. 前言 1. 博客一 2.. 博客二 0. 前言   这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里 ...

  2. 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 ...

  3. 『计算机视觉』FPN:feature pyramid networks for object detection

    对用卷积神经网络进行目标检测方法的一种改进,通过提取多尺度的特征信息进行融合,进而提高目标检测的精度,特别是在小物体检测上的精度.FPN是ResNet或DenseNet等通用特征提取网络的附加组件,可 ...

  4. Feature Pyramid Networks for Object Detection

    Feature Pyramid Networks for Object Detection 特征金字塔网络用于目标检测 论文地址:https://arxiv.org/pdf/1612.03144.pd ...

  5. 论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)

    论文源址:https://arxiv.org/abs/1612.03144 代码:https://github.com/jwyang/fpn.pytorch 摘要 特征金字塔是用于不同尺寸目标检测中的 ...

  6. 论文阅读 | FPN:Feature Pyramid Networks for Object Detection

    论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 201 ...

  7. FPN-Feature Pyramid Networks for Object Detection

    FPN-Feature Pyramid Networks for Object Detection 标签(空格分隔): 深度学习 目标检测 这次学习的论文是FPN,是关于解决多尺度问题的一篇论文.记录 ...

  8. 目标检测--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 ...

  9. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

随机推荐

  1. 星云测试插装编译流程与CI集成

    星云测试Horn插装采用脚本配置方式自动对语法进行扫描和插装,在整个插装过程中需要用到星云提供的插件工具.通过与CI集成,在CI编译前通过jenkins调用星云插装插件模块进行必要的数据填充,生成对应 ...

  2. 在Mac OSX上运行Windows应用程序

    在Mac OSX中,借助wine,不需要安装虚拟机也可以运行Window应用程序. wine是一个在Linux和UNIX之上的,WIndows3.x和Windows APIs的实现.是运用API转换技 ...

  3. 基于TORCS和Torch7实现端到端连续动作自动驾驶深度强化学习模型(A3C)的训练

    基于TORCS(C++)和Torch7(lua)实现自动驾驶端到端深度强化学习模型(A3C-连续动作)的训练 先占坑,后续内容有空慢慢往里填 训练系统框架 先占坑,后续内容有空慢慢往里填 训练系统核心 ...

  4. Mysql数据库(0)习题分析

    1.查询表中第二高工资的Id,如果没有,返回NULL.此题的关键是如果遇到Empty set,就必须要返回NULL. (1)使用子查询. offset ) AS SecondHighestSalary ...

  5. Pythonyu语法入门01

    引子 ​ 基于上一篇所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序. ​ 本篇的主题是先带大家了解下编程 ...

  6. 详细讲解IPython

    ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数.学习ipython ...

  7. 一:VSCode引入jupyter

    1:安装 2:示例代码 #%% import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np x , , ) ...

  8. 学习笔记63_python反射

    ####反射预备知识一########### __call__ 对象后面加括号,触发执行. python中,类的默认的内置方法,有一个名为__call__,如 class foo: def  __in ...

  9. python变量和运算

    本文收录在Python从入门到精通系列文章系列 1. 指令和程序 计算机的硬件系统通常由五大部件构成,包括:运算器.控制器.存储器.输入设备和输出设备. 其中,运算器和控制器放在一起就是我们通常所说的 ...

  10. 【IOS开发—视图控制器】

    一.UIViewController 视图控制器是UIViewController类或者其子类对象,每个视图控制器都负责管理一个视图层次结构.在UIViewController中有一个重要的UIVie ...