(deeplearning 基础网络结构) OctConv 论文阅读笔记
Drop an Ocatve: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution
- paper:
https://arxiv.org/abs/1904.05049 - github: MXNet实现
https://github.com/terrychenism/OctaveConv - github: Pytorch实现
https://github.com/iacolippo/octconv-pytorch
参考
- 知乎: Drop an Octave:facebook新型卷积 Octave convolution
intro:
url: https://zhuanlan.zhihu.com/p/62711929
创新点是什么?
-
paper的motivation是什么?
此前的计算机视觉网络架构工作大多关注于设计具有空间信息上多尺度信息整合能力的卷积结构。很少有人探究更改卷积使其具有整合不同频域信息。但是在自然图像中,图像信息可以被分解为高频信息与低频信息,其中高频信息是图像中空间变化剧烈的内容,低频信息则是空间变化缓慢的内容。 -
paper的创新是什么?
作者将深度学习中的学习得到的特征图分解为高频信息和低频信息
并在此基础上设计出了OctConv这样即插即用的网络。
贡献是什么?
- 将常规卷积分成高频和低频两种groups 并用不同的卷积处理; 低频特征图可以降低分辨率,可以起到优化缓存和计算量的效果。
- 设计出了即插即用的OctConv
- OctConv可以用于优化各种CNNs的backbone
OctConv详细介绍
高频输出特征于低频输出特征的计算公式如下:
需要注意的是,在计算低频输出特征时,需要对高频输入特征进行降采样,文中分析了两种降采样方式:stride convolution与average pooling。最终采取了后者。因为如图所示,stride convolution会造成一定程度上特征偏移,带特征融合中造成特征不对齐,进而影响性能。
最终输出的高频输出特征与低频输出特征操作可以简要总结为如下: