一般,利用网络对物体进行检测时,浅层网络分辨率高,学到的是图片的细节特征,深层网络,分辨率低,学到的更多的是语义特征。网络
1)、一般的CNN使用以下图中显示的网络,使用最后一层特征图进行预测ide
例如VGG16,feat_stride=16,表示若原图大小是1000*600,通过网络后最深一层的特征图大小是60*40,可理解为特征图上一像素点映射原图中一个16*16的区域;那这个是否是就表示,若是原图中有一个小于16*16大小的小物体,是否是就会被忽略掉,检测不到呢!性能
因此,使用上图中的网络的缺点就是,会形成检测小物体的性能急剧降低学习
2)、若是上面的单层检测会丢失细节特征;就会想到,利用图像的各个尺度进行训练和测试,好比下图所展现(图片金字塔生成特征金字塔)测试
将图片缩放成多个比例,每一个比例单独提取特征图进行预测,这样,能够获得比较理想的结果,可是比较耗时,不太适合运用到实际当中。blog
3)、为了节约时间,直接使用卷积网络中产生的各层特征图分别进行预测图片
SSD网络也采用了相似的思想,这种方法的问题在于,让不一样深度的特征图去学习一样的语义信息,一样会忽略掉底层网络中的细节特征博客
4)FPN网络,网络结构原理以下图所示class
先来讲下FPN能解决什么问题原理
FPN主要解决的是物体检测中的多尺度问题,经过简单的网络链接改变,在基本不增长原有模型计算量的状况下,大幅度提高了小物体检测的性能
左边的称为“自底向上”,右边的称为“自上而下”
① 自底向上:
自底向上的过程就是神经网络普通的正向传播过程,特征图通过卷积核计算,一般会越变越小
② 自上而下:
自上而下的过程是把更抽象、语义更强的高层特征图进行上采样,而后把该特征横向链接至前一层特征,所以,高层特征获得了加强,每一层预测所用的feature map都融合了不一样分辨率、不一样语义强度的特征,能够完成对应分辨率大小的物体进行检测,保证每一层都有合适的分辨率以及强语义特征。
值得注意的是:横向链接的两层特征在空间尺寸上要相同,这样作能够利用底层定位细节信息
上面经过文字描述完成了FPN网络的演化历程及其基本原理,下面经过一张图,对FPN的工做原理进行补充描述(基于ResNet50网络)
从上图中能够很清晰的看到FPN工做的原理,至于后面省略掉的网络不是此次的重点,能够参看RPN相关知识点
做为一枚技术小白,写这篇笔记的时候参考了不少博客论文,在这里表示感谢,同时,未经赞成,请勿转载....