0.前情回顾
CNN大家在计算机视觉中运用得已经非常多了,一般认为CNN提取特征是循序渐进的,开始提取 low-level的特征,比如边缘、纹理,中间提取 middle-level的特征,最后提取更加抽象的 high-level的特征。从low到high,特征需要的感受野也在不断扩大,high-level的特征需要前两层的特征进行融合,由此诞生了一系列经典的操作,比如特征融合的Densenet,扩大感受野的Non-local、ASPP,各种注意力机制的SENet、CBAM,以及等会儿会提到的FcaNet。
以上很多操作都是让网络去学习具体的卷积核参数,可以说是对频域的隐式建模。很早就有工作考虑结合传统图像处理领域的各类频率分解方法,显式去建模频域上的特征。
最近在看JPEG deartifacts的文章,因为DCT(离散余弦变换)是JPEG压缩技术中天然的一环,所以观察到很早就有工作在DCT域去解释特征,恰好最近Fcanet的工作也用到了DCT,所以自己做了一个简单的整理。
1.DCT与小波分解的简介及实践
比较常见的与CNN结合的技术主要是小波变换和DCT,也有傅里叶变换,但我还没实践过。这两者能用卷积能很容易的去实现,无缝衔接。
转化到频域的好处也很明显,首先RGB域与频域之间的相互转换是没有信息丢失的,不同的是频域的能量排布更加compact,每个channal明确代表了不同频率带的信息,可以用卷积去进一步融合,可解释性更好。
小波变换主要采用的是Haar小波变换,简单来说是把图像用四个卷积核去提取不同频率分量,分表代表直流、横向、纵向、斜向上的能量。
DCT的部分在Fcanet中有了很详细的推导,这里也不再赘述ÿ