目标检测中的池化层
池化层(Pooling Layer)的原理本质上是一种下采样(Subsampling)或特征压缩(feature aggregation)的操作,它通过在输入特征图上划分小区域,对每个区域进行统计汇聚,从而得到更小的输出特征图。
作用
降低分辨率,减少计算量:池化层通过下采样减少特征图的宽高。减低计算复杂度,加快训练和推理。减少参数量,避免网络过大。
基本计算过程
假设输入一张二维特征图,
1.划分窗口
给定池化核大小(如
),以及步幅。从左上角开始,按找步幅滑动窗口,覆盖输入特征图。
2.区域聚合
对每个窗口内的元素,进行特定的汇聚操作。
最大池化:取改窗口中的最大值。
平均池化:去窗口内所有值的平均。
全局池化:直接对整张特征图取最大/平均(用于分类的最后一层)。
3.生产输出特征图
每一个窗口对应一个输出值,最终得到比输入更小的特征图。
示例
输入特征图
最大池化,stride=2
[1,2,3,4] 最大值=6
[2,4,1,2] 最大值=4
[7,8,3,4]最大值=8
[2,0,6,1]最大值=6
值得注意的是在现代检测网络中,传统池化层的使用逐渐减少,更多依赖卷积+步幅代替池化完成下采样,以减少信息丢失。但在FPN或ROl Align等模块中,池化思想依然是核心。
传统池化层和 卷积 + 步幅区别-CSDN博客