这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,有许多亮点,解决了多尺度目标的检测问题。

# 论文题目

FeaturePyramidNetworksforObjectDetection

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

#论文解读

FPN网络结构

图a  多尺度金字塔 这是一个特征图像金字塔,整个过程是先对原始图像构造图像金字塔,然后在图像金字塔的每一层提出不同的特征,然后进行相应的预测。这种方法的缺点是计算量大,需要大量的内存;优点是可以获得较好的检测精度。

图b  浅层的网络更关注于细节和位置信息,高层的网络更关注于语义信息,而高层的语义信息能够帮助我们准确的检测出目标,因此我们可以利用最后一个卷积层上的feature map来进行预测。

图c  同时利用低层特征和高层特征,分别在不同的层同时进行预测,这是因为我的一幅图像中可能具有多个不同大小的目标,区分不同的目标可能需要不同的特征,对于简单的目标我们仅仅需要浅层的特征就可以检测到它,对于复杂的目标我们就需要利用复杂的特征来检测它。整个过程就是首先在原始图像上面进行深度卷积,然后分别在不同的特征层上面进行预测。

图d(FPN网络)首先我们在输入的图像上进行深度卷积,然后对Layer2上面的特征进行降维操作(即添加一层1x1的卷积层),对Layer4上面的特征就行上采样操作,使得它们具有相应的尺寸,然后对处理后的Layer2和处理后的Layer4执行加法操作(对应元素相加),将获得的结果输入到Layer5中去。其背后的思路是为了获得一个强语义信息,这样可以提高检测性能。其实看下面的代码就可以明白,把卷积之后的{Ck}层和上采样之后的{Pk}层进行相加,目的是把低层次高分辨率的信息和高层次强语义的信息结合起来,提高检测性能和小目标识别。

FPN+Resnet网络结构如下所示:

#网络架构实现代码

# Build the shared convolutional layers.
# Bottom-up Layers
# Returns a list of the last layers of each stage, 5 in total.
# 扔掉了C1
_, C2, C3, C4, C5 = resnet_graph(input_image, "resnet101", stage5=True)
# Top-down Layers
# TODO: add assert to varify feature map sizes match what's in config
P5 = KL.Conv2D(256, (1, 1), name='fpn_c5p5')(C5)
P4 = KL.Add(name="fpn_p4add")([KL.UpSampling2D(size=(2, 2), name="fpn_p5upsampled")(P5),KL.Conv2D(256, (1, 1), name='fpn_c4p4')(C4)])
P3 = KL.Add(name="fpn_p3add")([KL.UpSampling2D(size=(2, 2), name="fpn_p4upsampled")(P4),KL.Conv2D(256, (1, 1), name='fpn_c3p3')(C3)])
P2 = KL.Add(name="fpn_p2add")([KL.UpSampling2D(size=(2, 2), name="fpn_p3upsampled")(P3),KL.Conv2D(256, (1, 1), name='fpn_c2p2')(C2)])
# 把每个{Pk}层都乘以一个3*3的卷积生成特征图.
P2 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p2")(P2)
P3 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p3")(P3)
P4 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p4")(P4)
P5 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p5")(P5)
# P6 is used for the 5th anchor scale in RPN. Generated by
# subsampling from P5 with stride of 2.
P6 = KL.MaxPooling2D(pool_size=(1, 1), strides=2, name="fpn_p6")(P5)
# Note that P6 is used in RPN, but not in the classifier heads.
rpn_feature_maps = [P2, P3, P4, P5, P6]
mrcnn_feature_maps = [P2, P3, P4, P5]

FPN论文解读(附网络结构层次代码)相关推荐

  1. FPN论文解读 和 代码详解

    FPN论文解读 和 代码详解 论文地址:[Feature Pyramid Networks for Object Detection](1612.03144v2.pdf (arxiv.org)) 代码 ...

  2. YOLOv7来临:论文解读附代码解析

    前言: 是一份关于YOLOv7的论文解读,首发于[GiantPandaCV]公众号,写的不是很好,望大佬们包涵! 2022年7月,YOLOv7来临, 论文链接:https://arxiv.org/ab ...

  3. 【对比学习】CUT模型论文解读与NCE loss代码解析

    标题:Contrastive Learning for Unpaired Image-to-Image Translation(基于对比学习的非配对图像转换) 作者:Taesung Park, Ale ...

  4. KDD 18论文解读 | 斯坦福大学提出全新网络嵌入方法 — GraphWave

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  5. EMNLP2018论文解读 | 利用篇章信息提升机器翻译质量

    <使用篇章上下文提升 Transformer 翻译模型>是搜狗和清华大学天工研究院合作发表在 EMNLP 2018 的工作.机器翻译在搜狗公司的多个产品线得到广泛应用,包括搜狗英文搜索.搜 ...

  6. ECCV 2018论文解读 | DeepVS:基于深度学习的视频显著性方法

    作者丨蒋铼 学校丨北京航空航天大学在校博士,大不列颠哥伦比亚大学联合培养博士 研究方向丨计算机视觉 本文概述了来自北京航空航天大学徐迈老师组 ECCV 2018 的工作 DeepVS: A Deep ...

  7. ACL 2018论文解读 | 基于路径的实体图关系抽取模型

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  8. ECCV 2018最佳论文解读:基于解剖结构的面部表情生成

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  9. 哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码

    作者丨邓云天 学校丨哈佛大学NLP组博士生 研究方向丨自然语言处理 摘要 Attention 注意力模型在神经网络中被广泛应用.在已有的工作中,Attention 机制一般是决定性的而非随机变量.我们 ...

最新文章

  1. hdu 多校数论 GuGuFishtion
  2. linux 进程监听服务 monit 简介
  3. Visual Studio 2010安装教程
  4. 细数家庭安防五大乱象 何时能步入正轨
  5. android地图实时标记
  6. 郝蕾怒骂河南人---江湖再起风云,网络哪里有净土
  7. sql ntext 替换存储过程
  8. Iroha and Haiku II
  9. plsql的汉化问题
  10. 装饰器模式Decorate
  11. 网络映射iscsi服务器,群晖iSCSI管理器连接网络硬盘详细介绍和配置使用说明
  12. amap 高德 地图打点 地图描点 描点居中 清除打点
  13. 【时间序列】TFT:Temporal Fusion Transformers
  14. 计算机操作评分系统,使用Excel设计竞赛评分系统
  15. 手机验证短信设计与代码实现
  16. KMIP4J数据处理流程
  17. 指针进阶(指针与数组传参、数组指针与指针数组、函数指针数组、回调函数的辨析)
  18. 基于Python股票网站数据爬虫情感可视化分析设计
  19. 计算机辅助设计结课,计算机辅助设计结课报告
  20. java设置excel单元格格式为百分比_Java 设置Excel条件格式示例代码(高亮条件值、应用单元格值/公式/数据条等类型)...

热门文章

  1. 创龙DSP6748开发板驱动LCD屏
  2. 管理nuget程序包中搜索不到任何程序包
  3. UVa 1620 懒惰的苏珊(逆序数)
  4. Android RecyclerView使用详解(一)
  5. mysql 索引的简单使用
  6. iOS开发---- 开发错误汇总及解决方法
  7. jqGrid专题:jqGrid原理
  8. Asp.net开发环境的设置所遇到的问题
  9. mysql cast numeric,mysql decimal、
  10. mysql私房菜_老男孩MySQL私房菜深入浅出精品视频第7章备份与恢复基础实践视频课程...