小目标检测很难,为什么难.想象一下,两幅图片,尺寸一样,都是拍的红绿灯,但是一副图是离得很近的拍的,一幅图是离得很远的拍的,红绿灯在图片里只占了很小的一个角落,即便是对人眼而言,后者图片中的红绿灯也更难识别.

说回到cnn,不断地卷积以后,feature map的尺寸变小.这时候feature map所代表的语义信息已经很丰富了,如果绘图绘制出来,可能会看见代表的是某种形状,颜色,或更高级的更抽象的概念了.但是由于feature map尺寸减小,所以检测小目标困难.

我们可以用同一图片,不同尺寸内容相同的同一幅图分别训练多个feature map,但是这么搞会及其耗时,并且需要大量内存.在实时性要求高的场景下是不能这么搞的.这就引入了FPN的概念

Feature Pyramid Networks (FPN)

特征金字塔网络(FPN)是根据特征金字塔概念设计的特征提取器,目的是提高精度和速度.它替代了类如Faster R-CNN中的特征提取器,并且生成更高质量的特征图金字塔.

经过一系列的卷积以后得到了feature map,我们通过上采样,再一步步还原回去,在保证高级语义信息没丢的情况下,还把feature map的size搞大了.然后用大size的feature map去检测小目标.从而解决小目标难以检测的问题.

FPN由自下而上和自上而下两部分构成.自下而上的就是传统的卷积网络做特征提取,随着卷积的深入,空间分辨率减少,空间信息丢失.但是高级语义信息被更多地检测到.

ssd从依据多个feature map来做预测,但是底层的layer并没有选中做object detetion.底层的具有high resolution,但是不具备高级语义high semantic.ssd为了提高速度,在predict的时候不用比较底层的feature map.这一点也导致了它对小目标的检测效果不好.

FPN提供了一种自上而下的路径,去构建higher resolution layer from a semantic rich layer.

这样构建出来的层具有high resolution的同时又有丰富的语义rich semantic.但是由于经过了不断地上采样下采样,object的位置已经不准确了.

所以我们在重新构建出来的层和相应的feature map之间构建横向连接,以使得检测器可以更好地预测location.

下面是自下而上和自上而下的路径图.P2,P3,P4,P5是object detection所需的金字塔feature map.

FPN with RPN

FPN本身并不是object detetcor.它只是一个feature detetor.下图显示FPN在一个object detector中的位置和作用. 每一个feature map(P2到P5)被独立地送到后续的流程完成object detection.

FPN with Fast R-CNN or Faster R-CNN

通过FPN,生成了feature map的金字塔(也就是一堆不同尺寸的特征图,都具有高级语义).然后用RPN生成ROI.然后对不同尺寸的目标,选用不同尺寸的特征图去做识别.小目标要用大尺寸的feature map. 大目标用小尺寸的feature map.很好理解,目标很小,你再用小尺寸(低分辨率)的feature map,肯定更难看清目标了.

参考:https://medium.com/@jonathan_hui/what-do-we-learn-from-single-shot-object-detectors-ssd-yolo-fpn-focal-loss-3888677c5f4d

特征金字塔网络Feature Pyramid Networks的更多相关文章

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

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

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

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

  3. FPN(feature pyramid networks)

    多尺度的object detection算法:FPN(feature pyramid networks). 原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征 ...

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

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

  5. 特征金字塔网络 FPN

    一. 提出背景 论文:Feature Pyramid Networks for Object Detection  [点击下载] 在传统的图像处理方法中,金字塔是比较常用的一种手段,像 SIFT 基于 ...

  6. Feature Pyramid Networks for Object Detection

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

  7. 常见特征金字塔网络FPN及变体

    好久没有写文章了(对不起我在划水),最近在看北京的租房(真真贵呀). 预告一下,最近无事,根据个人多年的证券操作策略和自己的浅显的AI时间序列的算法知识,还有自己Javascript的现学现卖,在微信 ...

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

  9. FPN(feature pyramid networks)

    多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确:高层的特征语义信息比较丰富,但是目标位置比较粗略.另外虽然也有些算法采用多尺度 ...

随机推荐

  1. java高并发系列 - 第13天:JUC中的Condition对象

    本文目标: synchronized中实现线程等待和唤醒 Condition简介及常用方法介绍及相关示例 使用Condition实现生产者消费者 使用Condition实现同步阻塞队列 Object对 ...

  2. 【踩坑系列】VS2019提示 ' the package could not be found in c\users\username\nuget\packages\. '

    解决步骤 1.删除对应项目下的 obj 文件夹 2.重新生成该项目

  3. Python切片中的误区与高级用法

    众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组...)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slice)就是一种截取索引片段的技术,借助切片 ...

  4. 适合初学者的Python爬取链家网教程

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: TinaLY PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  5. startsWith(),endsWith()判断当前字符串是否是以给定字符串开始或结尾的

    package seday01;/** * boolean startsWith(String str) * boolean endsWith(String str) * 判断当前字符串是否是以给定字 ...

  6. java笔记----cpu消耗快速定位代码

    下载ProcessExplorer ProcessExplorer下载地址:ProcessExplorer 下载运行代码 打开ProcessExplorer 查看javaw.exe的pid jstac ...

  7. HTTP协议中的chunked编码解析

    \r\n\r\n"了. chunked编码很简单,是不是? 不过,在协议还原的实现过程中,如何高效高性能地对chunked进行解码,是一件值得挑战的事哦.毕竟,HTTP的流量占比不小的. 长 ...

  8. 防火墙centos7执行 service iptables status报错问题完美解决

    在centos7 执行防火墙命令时 service iptables status 报错如下: 解决方案 : 1.systemctl start firewalld.service(开启防火墙) 2. ...

  9. Excel 扩展编程相关

    ============================产品分析============================Excel Automation Tools (Best of List)htt ...

  10. 第十七章 Metasploit Framework

    渗透测试者的困扰▪ 需要掌握数百个工具软件,上千个命令参数,实在记不住▪ 新出现的漏洞PoC/EXP有不同的运行环境要求,准备工作繁琐▪ 大部分时间都在学习使用不同工具的使用习惯,如果能统一就好了▪ ...