Learning in the Frequency Domain

写在最前面

这一系列文章是博主2020年本科论文调研时记的,现在是多模态的时代,很多技术都过时了,发出来希望对读这些论文的人有所帮助

Learning in the Frequency Domain

Motivation

CNN在图像分类、目标检测、语义分割等各种任务上的优异表现,使计算机视觉领域发生了革命性的变化。由于计算资源和内存的限制,大多数CNN模型只接受低分辨率的RGB图像(例如224×224)。然而,现代相机拍摄的图像通常要大得多。例如,高清晰度(HD)分辨率图像(1920×1080)被认为是相对较小的现代标准。即使是ImageNet数据集的平均图像分辨率也是482×415,这大约是大多数CNN模型所能接受的尺寸的四倍。
因此,为了满足分类网络的输入要求,大量的真实图像被压缩到224×224。然而,图像的缩小不可避免地会带来信息的丢失和精度的下降。先前的工作旨在通过学习任务感知缩小网络(task-aware downsizing networks)来减少信息损失。然而,这些网络是特定于任务的,需要额外的计算,这在实际应用中是不利的。

Methods

1.overview
在这篇论文中,作者提出在频域(frequency domain)内对高分辨率图像进行调整,也即离散余弦变换(DCT),而不是在空间域对其进行调整,然后将重新调整后的DCT系数输入CNN模型进行推理。我们的方法需要对现有的以RGB图像为输入的CNN模型进行少许修改。因此,它是常规数据预处理pipeline的通用替代方法。实验结果表明,与传统的基于RGB的方法相比,该方法在图像分类、目标检测和实例分割等方面具有更高的精度。在AI加速器/gpu快速发展的情况下,该方法直接降低了所需的片间通信带宽(inter-chip communication bandwidth),而片间通信带宽是现代深度学习推理系统的瓶颈,如图所示:
在这里插入图片描述
受人类视觉系统(HVS)对不同频率分量的不同敏感性这一观察结果的启发,我们分析了频域内的图像分类、检测和分割任务,发现CNN模型对低频信道的敏感性高于高频信道,这一结果与HVS吻合。
这一观察结果通过一个基于学习的通道选择方法得到验证,该方法由多个“开关”组成。将具有相同频率的DCT系数打包成一个通道,每个开关堆叠在一个特定的频率通道上,以决定整个通道流入或不流入网络。
利用解码后的高保真图像进行模型训练和推理,在数据传输和计算方面都面临着巨大的挑战。由于CNN模型的频谱偏倚,在推理过程中只用保留重要的频率信道,而不会丢失准确性。在这篇论文中,发展了一种静态的信道选择方法来保留显著的信道,而不是使用整个频谱来进行推断。实验结果表明,当输入数据量减少87.5%时,CNN模型仍然保持相同的精度。
2.频域数据预处理
下面是用于频域学习的数据预处理pipeline:
在这里插入图片描述
遵循空间域的预处理方法,包括图像调整大小、裁剪和翻转(上图中的空间调整大小和裁剪),然后将图像转换到YCbCr颜色空间,再转换到频域(上图中的DCT变换),再将相同频率的二维DCT系数分组到一个通道中,形成三维DCT立方体(上图中的DCT整形),选择有效的频率通道的一个子集,所选频道YCbCr色彩空间的连接在一起,形成一个张量,最后,每个频道都是归一化的均值和方差计算训练数据集。
首先考虑亮度通道(Y channel)。假设我们使用图像压缩标准中默认的8x8作为块的尺寸(blocksize)。对于每一个块(block),我们会得到64个DCT的信号,对应了64个不同的频率分量。如果我们原始的图像的尺寸是W x H, 那么我们将会有W/8 x H/8 个DCT信号组成的块。每个块中相同位置的频率分量可以组成一个尺寸为W/8 x H/8的feature map,这样我们会产生8x8=64个feature map。同样的对于Cb和Cr通道,我们也可以各自产生64个feature map。总共产生了64x3=192个feature map,假设W=H=448, 那么现有的基于频域的feature map的尺寸为56x56x192。现在的问题是如何将这些feature map合理的输入到一个已有的DNN网络结构中,使得feature map的尺寸和已有DNN网络的尺寸吻合。
以ResNet-50作为基础的图像分类举例。ResNet-50通常接受的图片输入尺寸为224x224. 在经过一次convolutional layer (stride=2)和pooling之后,此时网络的feature map的尺寸为56x56,和我们产生的频率信号的feature map尺寸吻合。我们可以将192个56x56的频域feature map全部或者部分直接接在ResNet-50的第一个Residue Block之前,从而达到不改变ResNet-50的结构而实现从频域做机器识别的目的。如果我们从192个feature map中选取的64个,则和一个标准的ResNet-50在这一层的feature map个数相同,网络结构和ResNet-50达到了完全一致。这个过程如下图所示。值得注意的是,由于我们做了8x8的DCT变换,我们实际输入的图片大小为448x448,是标准ResNet-50输入(224x224)的两倍。正因为我们提高了输入图片在空间域的分辨率,我们在后续的实验中可以得到更好的识别精度:
在这里插入图片描述
3.基于学习的频域通道选择
图像压缩理论的基础是人眼对于不同的色彩空间和频率分量有不同的敏感度,因此我们可以对Cb,Cr通道降采样,也可以对每个DCT信号中高频分量设置更大的量化区间。然而,我们对于这些频率分量对于机器学习的重要性并不了解。如果我们可以忽略掉其中不重要的feature map,就可以不用将这部分数据从图像解码模块传输到图像推理引擎中,从而节省这部分可能成为瓶颈的带宽。
我们现在面临的问题是如何在这192个feature map中做出选择。类比人类视觉系统,在这192个feature map中,我们能否猜想Y通道和低频分量对应的feature map似乎更重要?如果是这样的话,我们如何确定Y通道中应该选择多少个feature map,而CbCr通道有应当选择多少个feature map?在这一部分,我们提出了利用机器学习中添加gate的方法来学习每一个feature map的重要性。在训练中,不仅图像推理的DNN中的weights被训练出来,同时每一个feature map的重要性也被确定。

在这里插入图片描述
上图展示了利用gate来选择重要的feature map的方法。原始所有频率分量组成的feature map的尺寸为WxHxC,其中C代表了feature map的个数,正如我们前面介绍的那样,在实验中使用的是C=192. 每个feature map通过average pooling将会生成一个1x1xC的特征向量,其中每个数值代表了对应feature map。这个特征向量通过一个fully connected layer生成一个1x1xCx2的特征向量对。每一对数字表示这个对应的feature map是否重要,如果index为0的数字比index为1的数字更大,那么这个feature map被认为不重要,整个feature map将会被忽略而不参与后续DNN的计算;反过来说,如果index为1的数字比index为0的数字更大,那么这个feature map被认为重要,将会参与后续DNN的计算。这个操作等效于使用了一个开关(gate)来控制每一个频率信息组成的feature map是否流通到后续的计算中。
具体而言,由于我们使用了argmax函数来选择更大的index进而表示feature map是否被选择参与计算,我们需要一种特殊的方法在训练中将gradient传播到这C个开关的控制网络中。这种方法名为Gumbel-softmax 。
由于频率分量对应的开关被选为通过的数量决定了输入DNN的数据带宽,我们把选择为通过的开关的比例作为loss function中的一项,另一项就是对应机器学习任务中原始的loss。通过最小化loss function来实现机器学习任务精度和输入DNN数据带宽的平衡。
4.静态频域通道选择
现在我们拥有了选择重要的feature map的方式,我们有两种方案来减少从图像解码模块到图像推理引擎的数据带宽,这两种方式我们称之为动态(Dynamic)方式和静态(Static)方式。
所谓动态方式,就是每一个频率分量的选择开关由当前输入的图像决定,这种方法可以自适应每一次图像推理(inference)的不同输入。由于选择开关的网络十分简单,我们可以将其放在图像解码模块中。这样从图像解码模块到图像推理引擎之间只需要对被选择的频率分量对应的feature map进行数据传输,可以极大的减少这两个模块之间的带宽需求。
所谓静态方式,就是我们通过训练(training)得到最重要的一些频率分量。在做图像推理(inference)的时候,我们事先就确定只用这些事先确定好的频率分量对应的featuremap,而不会根据不同的图像进行自适应选择。这种静态方式在inference的时候无需选择开关的网络。这种方式不仅可以节省图像解码模块到图像推理引擎的带宽,还可以在编码模块中忽略不重要的频率分量,进而减少图像编码的计算量,延时,以及网络传输的带宽。值得一提的是,通常网络传输的带宽远小于机器内部组件之间的带宽。

Evaluation

1.Image Classification
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.Object detection

在这里插入图片描述
3.Instance segmentation
在这里插入图片描述

Notes

论文中提出了一种频域学习方法(使用DCT系数作为输入),并证明了它在分类、检测和分割等多种任务上的通用性和优越性。这种方法对现有的接收RGB输入的CNN模型的修改很少,因此可以普遍应用于现有的网络训练和推理方法。
结果表明,与传统的空间降采样方法相比,频域学习方法在预处理阶段能更好地保存图像信息,从而提高了图像的精度。另外还提出了一种基于学习的动态信道选择方法,并通过实验证明了CNN模型对低频信道比对高频信道更敏感。实验结果表明,在不降低或降低分类、目标检测和实例分割任务的精度的情况下,使用所提出的信道选择方法可以削减高达87.5%的频率信道。

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值