当前位置:网站首页>FPN特征金字塔网络
FPN特征金字塔网络
2022-06-23 14:44:00 【luemeon】
改进卷积神经网络目标检测,提取多尺度的特征信息进行融合,提高目标检测的精度
R-CNN系列是在得到的最后一层特征图上进行特征提取,从而进行目标识别的,
顶层特征在不断地卷积池化过程中可能忽略了小物体的一些信息
只根据顶层特征进行目标识别,不能完整地反映小目标物体的信息。
如果可以结合多层级的特征,就可以大大提高多尺度检测的准确性。
FPN可以广泛地应用在针对小目标物体的检测上
图像金字塔
主要使用人工提取不同尺度的图片的特征
传统的提取多层级特征的方法,多分辨率来解释图像

利用卷积神经网络在图片金字塔(a左)上进行特征提取,可以构建出特征金字塔(a右)

问题是运算耗时过大,需要的计算能力较高
SSD(Single Shot Detector)
CNN计算的时候本身就存在多级特征图,且不同层的特征图尺度就不同,形似金字塔结构。
如果利用这个金字塔结构进行目标检测,从网络不同层抽取不同尺度的特征做预测,
不仅没有增加额外的计算工作,也可以利用低层特征。
SSD(Single Shot Detector)就采用了这种方法。

SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3)
FPN算法
把低分辨率、高语义信息的高层特征
和高分辨率、低语义信息的低层特征
进行自上而下的侧边连接,使得所有尺度下的特征都有丰富的语义信息。

卷积神经网络的前向过程(上图左),自上而下过程(上图右)和特征与特征之间的侧边连接。
在前向过程中,特征图的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,将不改变特征图大小的层归为一个阶段,因此每次抽取的特征都是每个阶段的最后一个层的输出,这样就能构成特征金字塔。
自上而下的过程 对 特征图 进行 上采样。使上采样后的特征图有和下一层的特征图相同的大小。
侧边之间的横向连接的过程在下图中展示。
将上采样的结果 和 自下而上生成的特征图进行融合。
将卷积神经网络中生成的 对应层的特征图 进行1×1的卷积操作,
将之与经过 上采样 的 特征图融合,得到一个新的特征图,这个特征图融合了不同层的特征,具有更丰富的信息。
这里1×1的卷积操作目的是改变channels,要求和后一层的channels相同。
在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应,
如此就得到了一个新的特征图。这样一层一层地迭代下去,就可以得到多个新的特征图。
生成的特征图结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。金字塔结构中所有层级共享分类层(回归层)。
上采样、下采样
主要目的
缩小图像(或称为下采样(subsampled)或降采样(downsampled)):符合显示区域大小
放大图像(或称为上采样(upsampling)或图像插值(interpolating)):放大原图像,提高质量
原理
下采样:图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的得分辨率图像,
(s是M和N的公约数),
若是矩阵式图像,s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值:
上采样:图像放大几乎都是采用内插值方法,在像素点之间采用合适的插值算法插入新的元素。
缩放图像(下采样)、放大图像(上采样),采样方式多种。如最近邻插值,双线性插值,均值插值,中值插值等方法
参考链接:图像的上采样(upsampling)与下采样(subsampled)_易大飞的博客-CSDN博客_图像上采样
FPN特征金字塔网络--论文解读_开心的火龙果的博客-CSDN博客_特征金字塔网络
边栏推荐
- 快速排序的簡單理解
- 详解Redis分布式锁的原理与实现
- 乐高宣布涨价,炒家更嗨皮了
- golang 重要知识:atomic 原子操作
- Error creating bean with name xxx Factory method ‘sqlSessionFactory‘ threw exception; nested excepti
- golang 重要知识:定时器 timer
- [普通物理] 半波损失 等厚与等倾干涉
- 2021-05-22
- 【云驻共创】智能供应链计划:提升供应链决策水平,帮助企业运营降本增效
- [cloud based co creation] intelligent supply chain plan: improve the decision-making level of the supply chain and help enterprises reduce costs and increase efficiency
猜你喜欢

golang 重要知识:atomic 原子操作

Introduction to the push function in JS

乐高宣布涨价,炒家更嗨皮了

The work and development steps that must be done in the early stage of the development of the source code of the live broadcasting room

直播间源码在开发前期必须做的工作及开发步骤

2021-04-15

狂奔的极兔,摔了一跤

JSR303数据校验
Xampp中mysql无法启动问题的解决方法

JS traversal array (using the foreach () method)
随机推荐
Slice() and slice() of JS
Gartner's latest report: development of low code application development platform in China
Important knowledge of golang: atomic atomic operation
Starting from 3, add paging function in the business system
山东:美食“隐藏款”,消费“扫地僧”
volatile~多线程下变量不可见
js中的push函数介绍
How to solve the problem that iterative semi supervised training is difficult to implement in ASR training? RTC dev Meetup
Sectigo(Comodo)证书的由来
【opencv450】椒盐噪声demo
Half wave loss equal thickness and equal inclination interference
golang 重要知识:RWMutex 读写锁分析
General sequence representation learning in kdd'22 "Ali" recommendation system
JS垃圾回收
32. compose beautiful touch animation
Un million de bonus vous attend, le premier concours d'innovation et d'application de la Chine Yuan cosmique Joint Venture Black Horse Hot Recruitment!
Xampp中mysql无法启动问题的解决方法
PHP specified fields are more than 100 in positive order and less than 100 in random order
Diffraction of light
idea查看.class文件 idea查看.class文件夹