论文阅读:Learning in the Frequency Domain
- 2020 年 8 月 9 日
- AI
最近真的有点懒 漫无目的在家待了半年多了 没有开学导致寒假连着暑假 但任务还是一个连着一个 今天打算简要记录一下一篇来自CVPR2020 新的论文 看到蛮多博客讲得挺详细明了 故不采取以前详细的叙述过程 只简单记录自己的理解(实则懒)
论文题目:《Learning in the Frequency Domain》
论文地址://arxiv.org/pdf/2002.12416.pdf
论文翻译参考:
CVPR2020:Learning in the Frequency Domain(翻译)(一)
CVPR2020:Learning in the Frequency Domain(翻译)(二)
论文阅读参考:
CVPR2020- 频域学习一半的数据输入,提升MASK RCNN | Learning in the Frequency Domain频域深度学习 Learning in the Frequency Domain
Background
Existing neural networks mainly operate in the spatial domain with fixed input sizes.For practical applications, images are usually large and
have to be downsampled to the predetermined input size of neural networks. Even though the downsampling operations reduce computation and the required communication bandwidth, it removes both redundant and salient information obliviously, which results in accuracy degradation
现有的神经网络主要在固定输入尺寸的空间域内运行。在实际应用中,图像通常很大,必须向下采样到预定的神经网络输入大小。尽管下行采样操作减少了计算量和所需的通信带宽,但它同时在不影响冗余和显著信息的前提下消除了冗余和显著信息,从而导致精度下。
也就是说,在实际应用上会因为需要对图像进行下采样而导致部分信息消失,对实验的精度产生了一定的影响。
本文所提出的方法正是围绕着这个弊端出发的。
Work
Do?
a.We propose a method of learning in the frequency domain (using DCT coefficients as input), which requires little modification to the existing CNN models that take RGB input.
b.We show that learning in the frequency domain better preserves image information in the pre-processing stage than the conventional spatial downsampling approach
c.We analyze the spectral bias from the frequency perspective and show that the CNN models are more sensitive to low-frequency channels than high-frequencychannels, similar to the human visual system (HVS)
d.We propose a learning-based dynamic channel selection method to identify the trivial frequency components for static removal during inference
• 我们提出了一种频域学习方法(使用DCT系数作为输入),它对现有的CNN模型几乎不需要修改(这些模型采用RGB输入)
• 我们发现,在频域学习比传统的空间下采样方法更好地保留了前处理阶段的图像信息。
• 我们从频率的角度分析了频谱偏差,发现CNN模型对低频频道比对高频频道更敏感,类似于人类视觉系统(HVS)。
• 我们提出了一种基于学习的动态信道选择方法来识别琐碎的频率成分,以便在推理过程中进行静态去除。Model
先来看几个问题 通过问题来讲模型
1.为什么需要频域?和传统的方法对比区别在哪里?
先上图上图展示了空间域与频域输入模型的不同:
1.上图的第一行为传统的方法,即在空间域进行:
在传统方法中,通常在CPU上对高分辨率RGB图像进行预处理,然后将其传输到GPU / AI加速器以进行实时推断。 由于RGB格式的未压缩图像通常较大,因此对CPU和GPU / AI加速器之间的通信带宽的要求通常很高。为了降低计算成本和通信带宽需求,将高分辨率RGB图像下采样为较小的图像,这通常会导致信息丢失和推理精度降低。
2.上图的第二行为本文提出的方法,即在频域进行:
在本文提出的方法中,高分辨率RGB图像仍在CPU上进行预处理。 但是,它们首先转换到YCbCr颜色空间,然后转换为频域。 这与JPEG等最广泛使用的图像压缩标准相吻合。 同一频率的所有分量都被分组到一个channel中。 这样,生成了多个channel。 某些channel对推理准确性的影响大于其他channel。 因此,建议仅保留最重要的频道并将其传输到GPU / AI加速器进行推理。
与传统方法相比,论文所提出的方法需要更少的通信带宽并同时获得更高的精度。2.频域的预处理过程是怎么样的?
继续先上图:从图片可以看出,整个预处理的过程包括六部分:
1.spatial resize and crop:
图像变换大小、裁剪和翻转与RGB空间域输入相同
2.DCT transform:
将输入图像由RGB空间变换到YCbCr空间,然后由DCT变换到频域
3.DCT reshape:
将相同频率的二维DCT系数分组到一个信道,形成三维DCT立方体
4.DCT channel select:
选取影响较大的频率通道子集
5.DCT concatenate:
将YCbCr颜色空间中选取的频率通道拼接在一起,形成一个张量
6.DCT normalize:
利用训练数据集计算的均值和方差对每个频率通道进行归一化处理3.如何将空间域模型转换为频域模型呢?
论文证明了频域中的输入特征可以以最小的修改应用于空间域中开发的所有现有CNN模型。具体来说,只需要删除输入的CNN层并保留剩余的残差block。第一个残差层用作输入层,并且需要修改输入通道的数量以适合DCT系数输入的尺寸。 这样,修改后的模型可以保持与原始模型相似的参数计数和计算复杂度。
如下图所示,为了便于理解,我们以ResNet-50作为基础的图像分类举例。ResNet-50通常接受的图片输入尺寸为224×224. 在经过一次convolutional layer (stride=2)和pooling之后,此时网络的feature map的尺寸为56×56,和我们产生的频率信号的feature map尺寸吻合。我们可以将192个56×56的频域feature map全部或者部分直接接在ResNet-50的第一个Residue Block之前,从而达到不改变ResNet-50的结构而实现从频域做机器识别的目的。
如果我们从192个feature map中选取的64个,则和一个标准的ResNet-50在这一层的feature map个数相同,则网络结构和ResNet-50达到了完全一致,即移除了传统ResNet-50中的三个输入层(灰色虚线框),以接受56×56×64 DCT输入。 channel数值为64,该值可以根据通道选择而变化。值得注意的是,由于我们做了8×8的DCT变换,我们实际输入的图片大小为448×448,是标准ResNet-50输入(224×224)的两倍。正因为我们提高了输入图片在空间域的分辨率,我们在后续的实验中可以得到更好的识别精度。
4.基于学习的通道选择
由于输入特征的不同channel处于不同的频率,作者推测某些频率channel对后续任务(例如图像分类,对象检测和实例分割)更有益,并且删除琐碎的频率channel不会导致性能下降。 因此,作者提出了一种基于学习的通道选择机制。 这一功能的模块叫dynamic gate model,实际上就是SE-Net中提出的SE-Block,该模块为每个channel分配一个二进制分数。 分数为零的输入channel从网络中分离出来。 因此,减小了输入数据的大小,从而降低了域变换和通信带宽需求的计算复杂度。上图展示了利用gate来选择重要的feature map的方法。原始所有频率分量组成的feature map的尺寸为WxHxC,其中C代表了feature map的个数,在实验中使用的是C=192(即图中的Tensor1). 每个feautre map通过average pooling将会生成一个1x1xC的特征向量(Tensor 2),其中每个数值代表了对应feature map。
每一对数字表示这个对应的feature map是否重要,如果index为0的数字比index为1的数字更大,那么这个feature map被认为不重要,整个feature map将会被忽略而不参与后续DNN的计算;反过来说,如果index为1的数字比index为0的数字更大,那么这个feature map被认为重要,将会参与后续DNN的计算。这个操作等效于使用了一个开关(gate)来控制每一个频率信息组成的feature map是否流通到后续的计算中。
(补充:Tensor3->Tensor4,由11C->112C,其中2是门控关或者开的概率。Tensor4的192个通道中的每一个通道的两个数字都被归一化,作为采样为0或1的概率,然后点乘以输入频率通道,得到图4中的Tensor5)
由于频率分量对应的开关被选为通过的数量决定了输入DNN的数据带宽,我们把选择为通过的开关的比例作为loss function中的一项,另一项就是对应机器学习任务中原始的loss。通过最小化loss function来实现机器学习任务精度和输入DNN数据带宽的平衡。
令是CNN模型在频域(C = 192)中的输入channel。 令F表示每个频率信道的gate model,损失函数如下:是与准确性相关的损失。 λ是一个超参数,表示调节项的相对权重.
Experiments
1.
1.与高频频道(索引较大的框)相比,低频频道(索引较小的框)的选择频率更高。 这表明对于视觉推理任务而言,低频通道通常比高频通道更具信息性
2.与色度分量Cb和Cr中的频道相比,模型更频繁地选择亮度分量Y中的频道。 这表明亮度分量对于视觉推理任务更具参考价值
3.热图在分类和分割任务之间共享一个公共模式。 这表明上述两个观察结果并非特定于一项任务,很可能对更高层次的视觉任务具有普遍性
4.这些观察结果暗示CNN模型可能确实表现出与人类视觉类似的特征,并且针对人眼的图像压缩标准(例如JPEG)也可能适用于CNN模型。使用ImageNet作为数据集,其中包括大约128万张训练图像和5万张测试图像,总共1000个类别。我们使用了ResNet-50 和MobilenetV2 作为DNN的网络结构
实例分割(instance segmentation)结合了物体检测(object detection) 和语义分割(semanticsegmentation)的需求,它的任务是检测出图像中的每个物体对应的像素点,同时将每一个检测出的物体分类。如下图所示,实例分割任务需要检测出物体(例如,人,足球)的boundingbox,还需要在这个bounding box中将属于该物体的像素标注出来。
使用了COCO的数据集,其中包含了约10万张训练图像和5千张测试图像。我们使用了Mask RCNN 作为深度神经网络结构。Mask RCNN首先会检测出物体的bounding box,然后在bounding box内部的每个像素做二分,确定其是否属于该物体。
结果表明,与传统的空间降采样方法相比,频域学习方法在预处理阶段能更好地保存图像信息,从而提高了图像的精度。而基于学习的动态信道选择方法,也通过实验证明了CNN模型对低频信道比对高频信道更敏感。
今日偷懒完成 八月快乐!