前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >解读基于频域的图像分类网络——Learning in the Frequency Domain阅读笔记

解读基于频域的图像分类网络——Learning in the Frequency Domain阅读笔记

作者头像
灯塔大数据
发布2020-11-04 15:44:03
发布2020-11-04 15:44:03
4.3K0
举报
文章被收录于专栏:灯塔大数据灯塔大数据

论文地址:https://arxiv.org/pdf/2002.12416.pdf

在目前的计算机视觉(CV)领域中,无论是图像分类、目标检测,还是实例分割,卷积神经网络都发挥着至关重要的作用。而通常在训练模型时,我们会采用降采样的方式进行数据预处理。这种方式的确能起到减少计算量和通信带宽的作用,但相应的,也会删除一些重要的信息,进而影响精度。

文章提出了一种方法,将空间频域代替RGB图像传入CNN中来提取特征向量。这种方法可以显著降低数据传输量,并一定程度提升模型精度。值得一提的是,由于该方法无需改变现有网络结构,因此可以将其应用于任何CNN网络。

1

背景知识

1、YCbCr

YCbCr是色彩空间的一种,是YUV的压缩和偏移版本,通常会用于的影响连续处理,或是数字摄影系统中。其中,Y表示亮度(luminance),Cb表示蓝色色度,Cr表示红色色度。我们常见的JPEG就采用的是这种格式。

YCbCr不同的格式,但是通常会采用4:1:1,即每个点保存一个8bit的Y值,而每2*2个点保存一个8bit的Cr值和Cb值。这样,原本在RGB的图像中每个点需要8bits*3=24bits,当转化为YCbCr后,每个点仅需要8bits+8bits/4+8bits/4=12bits。这样图像大小就变为了原来的一半。

RGB和YCbCr的转化公式如下:

2、空间频率

空间频率是单位距离中结构的正弦分量(由傅立叶变换确定)重复的频率的度量 。在图像处理中,空间频率通常1/mm表示。在视觉领域中,不同的空间频率代表图像中不同的信息,不同的空间频率传达了有关刺激外观的不同信息。高空间频率表示图像中的突然空间变化(例如边缘),并且通常对应于特征信息和精细细节。低而空间频率代表有关形状的全局信息,例如总体方向和比例。

3、离散余弦变换

离散余弦变换(discrete cosine transform, DCT)是傅里叶变换相关的一种变换。它相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的。

DCT常用的的形式为:

经常被用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。这是由于DCT具有很强的“能量集中”特性:大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔科夫过程的统计特性时,DCT的去相关性接近于K-L变换的性能。

2

文章方法介绍

1、与传统方法对比

图一展示的是传统卷积方法(a)与文章的方法(b)相比的区别。

(a)通常会在CPU上对高分辨率的RGB图进行处理,然后将其传递给GPU。如果直接将用CPU处理高分辨率图像并传给GPU,那么communication bandwidth(CB)需要承受极大的压力。所以为了保证能正常进行,通常会对图像数据进行降采样,而这样做难免会带来信息损失以及模型精度降低。

(b)数据预处理部分依旧在CPU上进行,但是这个预处理指的是先将RGB图像转换成为YCbCr,再将其转换为用频域空间表示。这样,可以大大降低传输数据大小,降低数据传输对CB的压力,减少信息损失。文中提到,通过实验发现,在模型精度不变的情况下,输入数据大小仅为之前的12.5%。

2、数据预处理

a)首先对原始图像进行预处理,包括调整大小、裁剪以及翻转(对应图二中的Spatial resize and crop);

b)将预处理过的图像转成YCbCr格式,再将转换后的图像转成空间频域上(对应图二中的DCT transform);

c)将同一频率下的二维DCT系数分到同一通道下,组成三维DCT数据(对应图二中的DCT reshape);

d)对影响力较强的频率通道进行选择(对应图二中的DCT channel select);

e)将被选出来的频率通道合并成一个张量(对应图二中的DCT concatenate);

f)用通过训练集得到的均值和方差对每个频率通道进行归一化(对应图二中的DCT normalize)

前文提到,文章提到的方法可以在基本不改变网络主体结构的情况下操作。但是在输入层,空间频率数据会在H和W维度上会较小,而在纬度C上会大于3,即是说我们无法直接将做好的空间频率数据直接输入到一个现有的神经网络中,例如:ResNet-50。

文章证明可以通过删除输入层来达到正常训练的目的。图三所示是ResNet-50网络的输入结构。假如我们经过转化后的DCT输入部分为,那为了能正常输入ResNet-50就需要先移除掉传统ResNet-50中的输入层(图中虚线框所示),然后调整最先接受DCT数据的通道数量为64,使其能够适应DCT输入的尺寸。这样,修改后的模型可以保持与原始模型相似的参数以及计算复杂度。

3、基于学习的频率通道选择

输入层不同的通道对应着不同的频率,文章认为一些频率通道并未包含有用的信息,那么删除掉他们不仅不会对最终得到的模型有负面影响,还会节约带宽。为了删除掉这些没有用的通道,文章设计了一个dynamic gate module,如图四所示。

a)Tensor1为输入向量,尺寸为,这里C代表频率通道;

b)对Tensor1使用average pooling,得到的向量Tensor2;

c)对Tensor2使用的卷积核进行卷积操作,得到的向量Tensor3,从Tensor1到Tensor3的转换类似于squeeze and excitation block (SE-Block);

d)Tensor3中的每个元素与两个训练参数相乘得到的向量对Tensor4(因为没看到代码,笔者私以为这里的两个参数是特意设定的);

e)对Tensor4中的每个频率通道的两个数进行归一化,通过对向量对中的两个向量比较确定是否采用该频率(笔者个人理解这里的比较应该是人为将向量对中的一个设定成了基准,然后用另一个和他比较大小,如果基准小,则采用),采用为1,不采用归0,然后与输入数据进行点乘得到Tensor5。(值得一提的是,由于参数选择使用的是argmax,所以这里用Gumbel Softmax的方式使得离散的数据可导)。

4、静态频率通道选择

笔者并不是特别明白为什么这一部分被称之为Static Frequency Channel Selection,因为这一部分更多的是描述一些实验性的结果。

图五展示了两个输入频道的热图可视化,(a)描述的是基于ImageNet的图像分类,(b)描述的是基于coco数据集的实例分割。基于图五,文章描述了几个发现:

a)相较于高频通道,低频通道出现的频率会更高;

b)相较于Cb和Cr,Y通道会更多地被选择;

c)上述两个特征很可能会适合更多的场景;

相较于RGB,YCbCr格式的图像对于人类的视觉系统更加亲切。而人眼对YCbCr中的Y也更加敏感。同时,人眼在接受信号时,对低频信号的敏感程度也要更高。

由于CNN本身是在模仿人类的视觉系统,那么文章中提到的这种方式也更加的适合CNN网络呢?

5、实验结果

表一在图像分类上与传统方法进行了对比。这里使用网络为经典神经网络Resnet-50,基于ImageNet的数据集进行测试。结果发现,无论在top1还是top5的精度上,使用频域的结果会普遍高于基于RGB结果。

表二展示出,在以MobileNetV2为基础框架的对比中,频域数据在top1上有普遍提升,而在top5上表现与传统RGB基本持平。

表三及表四展示的是实例分割的结果,使用DCT的AP比使用RGB的AP都高出了0.8。

3

结论

文章首次将频域数据应用到了实例分割和目标检测领域。就试验结果而言,DCT带来的图像分类、实例分割、目标检测效果的普遍提升的确让人为之侧目。但是笔者有一些疑惑:

如果真的是因为贴近人类视觉系统带来了相应提升,那直接将YCbCr格式带入到神经网络后应该就会有提升。但是,在表一中我们可以清楚地看到,当将YCbCr数据代入ResNet-50网络后,top1和top5的数值不仅没有上升,反而下降了。那这是不是可以说明这个提升的本质并不是因为这种方法更贴近人类的视觉系统呢?

本文旨在分享笔者对于Learning in the Frequency Domain的一些理解,希望对大家有所帮助,欢迎大家来探讨。

本文作者:

中国电信股份有限公司研究院 李昊

文章内容系作者个人观点,

不代表融智未来公众号的观点或立场。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 融智未来 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档