CVPR 2024 | 轻松涨点!北理提出频率自适应空洞卷积

8746e2e38558f679dd16115738038a5a.gif

©PaperWeekly 原创 · 作者 | 知凡

单位 | 北京理工大学

研究方向 | 图像检测分割

扩张卷积通过在连续元素之间插入间隙来扩展感受野,广泛应用于计算机视觉中。在本研究中,我们从谱分析的角度提出了三种策略来改进扩张卷积的各个阶段。与固定全局扩张率作为超参数的传统做法不同,我们引入了频率自适应扩张卷积(FADC),它根据局部频率分量动态调整空间扩张率。

随后,我们设计了两个插件模块来直接增强有效带宽和感受野大小。自适应内核(AdaKern)模块将卷积权重分解为低频和高频分量,并在每个通道的基础上动态调整这些分量之间的比率。通过增加卷积权重的高频部分,AdaKern 捕获更多的高频分量,从而提高有效带宽。

频率选择(FreqSelect)模块通过空间变异重新加权,以最佳方式平衡特征表示中的高频和低频分量。它抑制背景中的高频,以鼓励 FADC 学习更大的扩张,从而增加扩大范围的感受野。关于分割和对象检测的大量实验一致验证了我们方法的有效性。

06dc2cb4ea8532cf8b5cceec6a1a1f6c.png

论文标题:

Frequency-Adaptive Dilated Convolution For Semantic Segmentation

论文链接:

https://openaccess.thecvf.com/content/CVPR2024/papers/Chen_Frequency-Adaptive_Dilated_Convolution_for_Semantic_Segmentation_CVPR_2024_paper.pdf

代码链接:

https://github.com/Linwei-Chen/FADC

5dba5a643048e90ac7d30c9903b288a2.png

引言

cc4dbdecdec5db11b7b87bb7721b2c12.png

扩张卷积以扩张率 (D) 在滤波器值之间插入间隙,以扩大感受野,而不会显着增加计算负载。该技术广泛应用于计算机视觉任务,例如语义分割和对象检测。

虽然较大的扩张率有效扩大感受野大小,但它是以高频分量响应为代价的。将扩张率从 1 增加到 D 相当于通过零插入将卷积核扩张了 D 倍。根据傅立叶变换的缩放特性,频率响应曲线和卷积核的带宽都将缩放到 。

如图 1 所示, 时红色曲线的带宽仅为 时蓝色曲线的四分之一。带宽的减少极大地限制了该层处理高频分量的能力。例如,当特征图的频率内容高于扩张卷积的采样率时,就会出现网格伪影。

在这里,我们引入频率自适应扩张卷积(FADC)来通过频谱分析的角度增强扩张卷积。如图 2 所示,FADC 包括三个关键策略,即自适应扩张率(AdaDR)、自适应内核(AdaKern)和频率选择(FreqSelect),旨在增强普通扩张卷积的各个阶段。AdaDR 在空间上调整膨胀率,AdaKern 对卷积核权重进行操作,而 FreqSelect 直接平衡输入特征的频率功率以鼓励感受野的扩展。

与全局固定膨胀率的传统方法不同,我们的 AdaDR 根据频谱动态分配局部膨胀率。例如,在图 1(a) 的图块 1 中,汽车边界表现出大量高频分量(由蓝色实线表示),AdaDR 应用较小的膨胀率 () 和较宽的有效带宽(由蓝点曲线)。

相反,对于图块 2 中的车门,频率功率主要集中在低频域,AdaDR 将膨胀率 D 增加到 4,因为减少的带宽仍然可以包含大量的频率功率。这两个补丁的膨胀图如图 1(d) 所示。与固定膨胀率相比,我们的 AdaDR 将图 1 的理论平均感受野大小从∼440 像素提高到∼1000 像素。

AdaKern 是一个插件模块,可操纵卷积核来优化图 3 中的频率响应曲线并增强有效带宽。如图 3 所示,该模块将卷积权重分解为低频和高频分量。这使我们能够在每个通道的基础上动态地操作这两个组件。例如,增加高频内核的权重(图 2 底部以红色标记)会导致高频分量的响应更强,从而增加有效带宽,如左图所示图 3 中, 的曲线。

8762b5a99d9c4bae7b8d7ab00aba6197.png

FreqSelect 在输入扩张卷积之前通过平衡特征中的高频和低频分量来增加感受野大小。由于卷积倾向于放大高频分量,所以扩张卷积后的特征通常表现出更高比例的高频分量。为了捕获这些增加的高频分量,较小的膨胀率 D 将因其较大的有效带宽而受到青睐,但代价是感受野大小受到影响。通过抑制输入特征上的高频功率,我们的 FreqSelect 模块能够增加相应的场大小。

具体来说,如图 2 所示,FreqSelect 将特征图从低到高分解为 4 个频率通道。然后,我们使用选择图对每个通道进行空间重新加权,以平衡频率功率,使 FADC 能够有效地学习更大的感受野。我们在分割方面的实验结果表明,我们提出的方法持续带来了改进,从而验证了我们方法的有效性。

我们的贡献可总结如下:

1. 我们使用频率分析对扩张卷积进行了深入探索,将扩张的分配重新定义为涉及平衡有效带宽和感受野的权衡问题。

2. 我们引入了频率自适应扩张卷积(FADC)。它采用自适应扩张率(AdaDR)、自适应内核(AdaKern)和频率选择(FreqSelect)策略。AdaDR以空间变化的方式动态调整膨胀率,以实现有效带宽和感受野之间的平衡。AdaKern 自适应调整内核以充分利用带宽,FreqSelect 学习频率平衡特征以鼓励较大的感受野。

3. 我们通过分割任务的综合实验来验证我们的方法,不断证明其有效性。此外,所提出的 AdaKern 和 FreqSelect 在与目标检测和分割任务中的可变形卷积和扩张注意力集成时也被证明是有效的。

801a6054c8ed491d73f9531e9a28ba88.png

相关工作

内容自适应网络。内容自适应特征的有效性已被各种作品证明。一种内容自适应策略涉及广泛采用的权重调整。最近的视觉转换器结合了注意力机制来预测输入自适应注意力值。这些模型在接收量大的方面取得了巨大的成功,但计算量很大。

除了权重调整之外,修改了与我们的工作密切相关的卷积核的采样网格。可变形卷积用于各种计算机视觉任务,包括目标检测。它为采样网格中的每个位置引入了 K×K×2 的不对称偏移,导致提取的特征表现出空间偏差。在目标检测任务中,通过回归来校正估计框以减轻这些偏差。

然而,在语义分割等位置敏感任务中,每个位置的密度和特征的强一致性至关重要,具有空间偏差的特征可能会导致错误的学习。相反,所提出的频率自适应扩张卷积仅需要一个值作为每个位置的扩张率。这种方法需要更少的额外标准卷积来计算采样坐标,从而使其轻量级。

此外,它消除了空间偏差,从而降低了错误学习的风险,有利于位置敏感的任务自适应扩张卷积也放弃了全局固定扩张的使用。将内核中每个点的膨胀公式化为学习的固定权重,而基于膨胀值与卷积层或对象尺度之间的层间模式相关的假设,凭经验调整膨胀率。

与依赖直观假设的相比,我们提出的方法是由定量频率分析驱动的。此外,它们忽略了当特征频率超过采样率时出现的混叠伪影,从而使它们面临潜在的降级风险。

神经网络中的混叠伪像。神经网络中的混叠伪像问题在计算机视觉界越来越受到关注。几项研究分析了神经网络下采样期间采样不足导致的混叠伪影。其他人则扩大了他们的关注范围,将抗锯齿技术纳入各种应用中,例如视觉变换器、微小物体检测和生成对抗网络(GAN)中的图像生成。关于扩张卷积中的混叠伪影(通常称为网格伪影),当特征图包含比扩张卷积的采样率更高的频率内容时,就会出现这种伪影。

以前的工作要么凭经验应用学习卷积来获取用于抗锯齿的低通滤波器,要么采用具有多个扩张率的扩张卷积,要么使用全连接层来平滑扩张卷积。然而,这些方法主要是根据经验设计的,涉及堆叠更多层,并且没有从频率角度明确处理问题。

相比之下,我们提出的方法通过根据局部频率动态调整膨胀率来避免网格伪影。此外,FreqSelect 还可以抑制背景或对象中心的高频。这种方法提供了一种更有原则、更有效的解决方案来解决混叠问题。

频域学习。传统信号处理长期以来一直依赖频域分析作为基本工具。值得注意的是,这些成熟的方法最近在深度学习中得到了应用,发挥着关键作用。在这种背景下,它们被用来检查深度神经网络(DNN)的优化策略和泛化能力。此外,这些频域技术已无缝集成到 DNN 架构中。这种集成促进了非局部特征或领域可概括表示的学习。

最近的研究表明,捕获高频和低频分量的平衡表示可以增强模型性能。因此,我们的方法为扩张卷积提供了频率视图,并提高了其捕获不同频率信息的能力。

50ec2d8b63de9dd1e5eb1353d02ecc6b.png

频率自适应扩张卷积

所提出的 FADC 的概述如图 2 所示。在本节中,我们首先介绍 AdaDR 策略,概述我们如何平衡带宽和感受野。随后,我们深入研究了 AdaKern 和 FreqSelect 策略的细节,这些策略旨在充分利用带宽并促进大的接受域。

538b97897a0771418a185b2891febc43.png

3.1 自适应扩张率

扩张卷积。广泛使用的扩张卷积可以表述如下:,其中 表示输出特征图中位置 处的像素值,K 是内核大小, 表示内核的权重参数, 表示对应位置处的像素值到输入特征图中 p 偏移 。变量 表示预定义网格采样 的第 i 个位置 。通过增加扩张率 D 可以扩大感受野。

频率分析。之前的工作已经观察到,扩张的增加会导致地层捕获频率的降低。具体来说,遵循傅里叶变换的缩放特性,将膨胀率从 1 增加到 会将卷积核放大 倍。因此,卷积核的响应频率降低为 ,导致频率响应从高频转移到低频,如图 1 所示。此外,扩张卷积有效地以采样率运行 ,使其无法捕获高于奈奎斯特频率 的频率,即采样率 的一半。

具体来说,我们首先使用离散傅里叶变换(DFT)将特征图 变换到频域,,可以表示为 。

其中 表示 DFT 的复数输出数组。 和 表示其高度和宽度。 表示特征图 的坐标。高度和宽度维度上的归一化频率 由 给出和 。将低频移至中心后, 从集合 中取值, 的值取自 。

因此,大于奈奎斯特频率的高频集合 or 无法准确捕获,限制了其带宽。

自适应扩张率。基于上述分析,扩张率的选择可以被视为大感受野和有效带宽之间的权衡。考虑到输入特征图在空间上是变化的,每个像素的最佳扩张可能不同。因此,我们引入自适应扩张率(AdaDR)策略来实现更好的平衡。它为每个像素分配不同的膨胀率。

可以通过参数为 的卷积层来预测。特别是,我们结合了 ReLU 层 来确保膨胀的非负性。它的目的是最大化每个像素的感受野并最小化丢失的频率信息。对于以 为中心且窗口大小为 的局部特征,我们将其称为 。其感受野 与 正相关。

db3d72d537915d194e513f185998b67b.png

3.2 自适应卷积核

AdaDR 通过为每个像素单独分配膨胀率,实现有效带宽和感受野之间的微妙平衡,共同优化这两个因素。有效带宽与卷积核的权重密切相关,起着关键作用。传统的卷积核学习捕获不同频段的特征,这对于理解复杂的视觉模式至关重要。然而,一旦训练完毕,它们就会变得静止。

为了进一步增强有效带宽,我们将卷积核参数分解为低频和高频分量,然后引入动态加权来调整频率响应。此过程仅增加少量额外参数和计算开销。对于静态卷积核,其权重 W 可以分解如下:

bfd0392a6e526b84e9c769d183ef498d.png

这里, 表示逐核平均 。它充当低通 均值滤波器,后跟由 定义的参数的 卷积。正如中所讨论的,较高的平均值更有可能衰减高频分量。其中 表示残差部分,捕获局部差异并提取高频分量。分解后,我们的 AdaKern 动态调整高频和低频分量,可以大致表示为:

其中 , 是每个通道的动态权重,这是通过简单且轻量级的方法预测的全局池化 + 卷积层。根据输入上下文动态调整 的比率,使网络能够专注于特定频段并适应特征中视觉模式的复杂性。这种动态频率自适应方法增强了网络捕获低频上下文和高频局部细节的能力。这反过来又增加了有效带宽,从而提高了需要跨不同频率提取不同特征的分割任务的性能。

3.3 频率选择

正如先前的研究所示,传统的卷积通常充当高通滤波器。因此,所得到的特征往往表现出较高比例的高频分量。这种倾向导致采用较小的总体膨胀率来保持高有效带宽,不幸的是,这会影响感受野的大小。FreqSelect 旨在通过平衡特征表示中的高频和低频分量来增强感受野。

其中 表示快速傅里叶逆变换。 是一个二值掩码,旨在提取相应的频率:

这里, 来自 个预定义频率阈值 。随后,FreqSelect 在空间上动态地重新加权不同频带中的频率分量。其公式为:

其中 是 FreqSelect 之后学习到的频率平衡特征, 表示第 个频段的选择图。具体来说,我们以倍频程的方式将频率分解为四个频段,即 ,,,和 。

f4ea5e97ae7206a80ee57fdf07a053eb.png

实验

4.1 实验设置

数据集和指标。我们在几个具有挑战性的语义分割数据集上评估我们的方法,包括 Cityscapes 和 ADE20K。我们使用平均交集(mIoU)进行语义分割,使用平均精度(AP)进行对象检测/实例分割作为我们的评估指标。落实细节。Mask2Former、PIDNet、ResNet/HorNet+UPerNet,我们保持与原始论文相同的设置。

在 COCO 数据集上,我们遵循常见做法并训练 12(1× 计划)或 36(3× 计划)epoch 的对象检测和实例分割模型。在 Dilated-ResNet 的情况下,我们用所提出的 FADC 代替 stage-3∼4 的扩张卷积。对于 PIDNet,瓶颈处的卷积被所提出的 FADC 取代。对于 ResNet,我们用所提出的 FADC 替换第 2∼4 阶段的卷积,而对于 HorNet,我们用所提出的 FADC 替换卷积。

4.2 主要结果

542ef3cf1e156fa299c2049e5b19c786.png

74647282a79e073a75123703e79519f2.png

a15b2eee077b822560a2551544f73640.png

4.3 可视化结果

AdaDR 学习预测高频区域的小膨胀率,例如汽车、自行车和人的边界(参见图 4(c)),以保持高带宽用于捕捉高频精细细节。相反,它为具有较低高频水平的较平滑区域分配较大的扩张率,以扩大感受野。

a6da1bd1f41c5d98f17f98e063393563.png

f2e2d15f6e4be7f437c1462319328193.jpeg

此外,与可变形卷积相比,AdaDR 避免了图 7 所示的空间偏差,防止了错误的学习并有利于位置敏感任务。

89a9b42c0a9e126b6c34ab75a1e6752e.png

特征图没有了 Dilated Conv 那种由于混叠导致的”gridding artifact“。

7d81b9022250f5ed03a9add8c02a78d0.jpeg

FreqSelect 预测较高频段的平均权重较低,这与逆幂律一致。在可视化图8中的热图后,我们注意到 FreqSelect 倾向于为对象边界分配更高的注意力权重。对于较高频段,这一点更为明显。它有选择地抑制对准确预测没有贡献的区域中的高频,例如背景和物体的中心。这鼓励 FADC 学习更高的扩张率,从而扩大感受野。FreqSelect 各频段可视化:

a5d0a7466ec41290ad975c4cf26935ee.png

0ea81a2b7f5f39da0adb5e54cb62f265.jpeg

5f8f05271aa831f562595fa513a6b156.png

总结

在这项工作中,我们从频率角度回顾了扩张卷积,并引入 FADC 来通过三个关键策略来改进各个阶段:AdaDR、AdaKern 和 FreqSelect。与采用固定全局膨胀率的传统方法不同,AdaDR 根据局部频率分量动态调整膨胀率,增强了空间适应性。

AdaKern 在每个通道的基础上动态调整卷积权重中低频和高频分量之间的比率,捕获更多高频信息并提高整体有效带宽。FreqSelect 通过空间变化重新加权来平衡高频和低频分量,鼓励 FADC 学习更大的扩张,从而扩大感受野。

未来,我们的目标是将定量频率分析扩展到可变形/扩张的注意力。此外,由于 FADC 被证明可以无缝替换现有架构中的标准卷积层,因此我们将为 FADC 设计特定的架构。

更多阅读

5731fae106db6ac63a3fbb5785bd40ce.png

5821c8e96d6ff13bce6a964ac853beb1.png

128e6178386f77ad281f91afb4bf6cf2.png

f3b0d9bba780ed34da06e2c0607abedc.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

8a02e55f92be64aada3bbbbb64bdcac6.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

646953a320faf74b27dee56d841cb91e.jpeg

以下是51单片机播放小星星的代码实现: ```c #include <reg52.h> #define uint unsigned int #define uchar unsigned char sbit beep = P1^5; // 蜂鸣器控制引脚 // 延时函数 void Delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } // 播放音符函数 void PlayMusic(uchar note, uchar beat) { uint time; switch(note) { case 1: time = 3822; break; // C case 2: time = 3405; break; // D case 3: time = 3034; break; // E case 4: time = 2863; break; // F case 5: time = 2551; break; // G case 6: time = 2273; break; // A case 7: time = 2024; break; // B default: time = 0; break; } while(beat--) { TH0 = (65536 - time) / 256; TL0 = (65536 - time) % 256; TR0 = 1; while(!TF0); TR0 = 0; TF0 = 0; Delay(1); } } // 播放小星星函数 void PlayStar() { uchar FreqSelect; uchar MusicSelect = 0; uchar Music[] = {1,1,5,5,6,6,5,4,4,3,3,2,2,1,5,5,4,4,3,3,2,5,5,4,4,3,3,2,1,1,5,5,6,6,5,4,4,3,3,2,2,1}; uchar Beat[] = {1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,2}; while(MusicSelect < 40) { FreqSelect = Music[MusicSelect]; MusicSelect++; PlayMusic(FreqSelect, Beat[MusicSelect-1]); } } // 主函数 void main() { TMOD = 0x01; // 定时器0工作在模式1 TH0 = 0xff; // 定时器0初始值 TL0 = 0xff; ET0 = 1; // 开启定时器0中断 EA = 1; // 开启总中断 while(1) { PlayStar(); // 播放小星星 Delay(500); // 延时500ms } } // 定时器0中断服务函数 void Timer0() interrupt 1 { beep = ~beep; // 翻转蜂鸣器控制引脚 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值