FcaNet: Frequency Channel Attention Networks
这篇paper是基于SENet以及CBAM的关于频道上的注意力分配的模块设计。
在SENet中SE模块将特征图做一个global average pooling,得到的特征矢量。特征矢量再通过全连接层映射到注意力矢量:
CBAM则同时使用max-pooling以及mean-pooling.
本文指出,它们,尤其是SENet,从频域上看仅使用了信息中最低频的一簇,因而信息流失比较大。本文的思路是增加使用不同频域的信息.
2D DCT
在图片域上, DCT的频域计算:
逆变换:
显然,全局平均池化是2D DCT的一个特殊case,
FCA Net:
算法:
- 设定个基频,计算比例常数
- 将输入沿着channel方向分为.
- 对不同部分计算2D DCT:
- concat起来并且执行全连接以及 sigmoid.
代码上,除了计算DCT的常数之外,运行时代码变动不大.