ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析

2024-04-27 12:28

本文主要是介绍ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析

  • 论文:https://arxiv.org/abs/2012.11879
  • 代码:https://github.com/cfzd/FcaNet

文章是围绕 2D 的 DCT 进行展开的,本文针对具体的计算逻辑进行梳理和解析。

f ( u , v ) = α u α v H W ∑ i = 0 H − 1 ∑ j = 0 W − 1 f ( i , j ) cos ⁡ ( 2 i + 1 ) u π 2 H cos ⁡ ( 2 j + 1 ) v π 2 W = ∑ i = 0 H − 1 [ α u H cos ⁡ ( 2 i + 1 ) u π 2 H ] ∑ j = 0 W − 1 [ α v W cos ⁡ ( 2 j + 1 ) v π 2 W ] x ( i , j ) = ∑ i = 0 H − 1 A u i ∑ j = 0 W − 1 A v j x ( i , j ) = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x ( i , j ) B u , v i , j , u ∈ { 0 , 1 , … , H − 1 } , v ∈ { 0 , 1 , … , W − 1 } α u = { 1 u = 0 2 u ≠ 0 , α v = { 1 v = 0 2 v ≠ 0 , x = ∑ u = 0 H − 1 ∑ v = 0 W − 1 f ( u , v ) B u , v i , j \begin{align} \\ f(u,v) &= \sqrt{\frac{\alpha_{u}\alpha_{v}}{HW }} \sum^{H-1}_{i=0} \sum^{W-1}_{j=0} f(i,j) \cos\frac{(2i+1)u\pi}{2H} \cos\frac{(2j+1)v\pi}{2W} \\ & = \sum^{H-1}_{i=0} \left[ \sqrt{ \frac{\alpha_{u}}{H} }\cos\frac{(2i+1)u\pi}{2H}\right] \sum^{W-1}_{j=0} \left[ \sqrt{ \frac{\alpha_{v}}{W} }\cos\frac{(2j+1)v\pi}{2W} \right] x(i,j) \\ & = \sum^{H-1}_{i=0} A^{i}_{u} \sum^{W-1}_{j=0} A^{j}_{v} x(i,j) \\ & = \sum^{H-1}_{i=0} \sum^{W-1}_{j=0} x(i,j) B^{i,j}_{u,v}, \, u \in \{0, 1, \dots, H-1\}, \, v \in \{0, 1, \dots, W-1\} \\ \alpha_{u} & = \left\{ \begin{matrix} 1 & u = 0 \\ 2 & u \ne 0, \end{matrix} \right. \quad \alpha_{v} = \left\{ \begin{matrix} 1 & v = 0 \\ 2 & v \ne 0, \end{matrix} \right. \\ x & = \sum^{H-1}_{u=0} \sum^{W-1}_{v=0} f(u,v) B^{i,j}_{u,v} \end{align} f(u,v)αux=HWαuαv i=0H1j=0W1f(i,j)cos2H(2i+1)uπcos2W(2j+1)vπ=i=0H1[Hαu cos2H(2i+1)uπ]j=0W1[Wαv cos2W(2j+1)vπ]x(i,j)=i=0H1Auij=0W1Avjx(i,j)=i=0H1j=0W1x(i,j)Bu,vi,j,u{0,1,,H1},v{0,1,,W1}={12u=0u=0,αv={12v=0v=0,=u=0H1v=0W1f(u,v)Bu,vi,j

实际上这里是将 2D 图像的空间索引 i , j i,j i,j 看做了时域索引,而频域分量的空间位置则由 h , w h,w h,w 索引。从上面的推导中可以看到,正反变换使用的系数是一样的。这就体现出了 DCT 的简洁性。

矩阵形式为:

f ∈ R H × W = A H ⊤ x A W = A ⊤ x A i f H = W A H = [ ( i = 0 , u = 0 ) … ( i = 0 , u = H − 1 ) ⋮ ⋮ ⋮ ( i = H − 1 , u = 0 ) … ( i = H − 1 , u = H − 1 ) ] ∈ R H × H A W = [ ( j = 0 , v = 0 ) … ( j = 0 , v = W − 1 ) ⋮ ⋮ ⋮ ( j = W − 1 , v = 0 ) … ( j = W − 1 , v = W − 1 ) ] ∈ R W × H x = A H ⊤ f A W ( H = W 时, A H 与 A W 在是正交的, H ≠ W 时不清楚 ) \begin{align} f & \in \mathbb{R}^{H \times W} = A^{\top}_{H}xA_{W} = A^{\top}xA \quad if \, H=W \\ A_{H} & = \begin{bmatrix} (i=0,u=0) & \dots & (i=0,u=H-1) \\ \vdots & \vdots & \vdots \\ (i=H-1,u=0) & \dots & (i=H-1,u=H-1) \\ \end{bmatrix} \in \mathbb{R}^{H \times H} \\ A_{W} & = \begin{bmatrix} (j=0,v=0) & \dots & (j=0,v=W-1) \\ \vdots & \vdots & \vdots \\ (j=W-1,v=0) & \dots & (j=W-1,v=W-1) \\ \end{bmatrix} \in \mathbb{R}^{W \times H} \\ x & = A^{\top}_{H}fA_{W} (H=W时,A_{H}与A_{{W}}在是正交的,H \ne W时不清楚) \end{align} fAHAWxRH×W=AHxAW=AxAifH=W= (i=0,u=0)(i=H1,u=0)(i=0,u=H1)(i=H1,u=H1) RH×H= (j=0,v=0)(j=W1,v=0)(j=0,v=W1)(j=W1,v=W1) RW×H=AHfAW(H=W时,AHAW在是正交的,H=W时不清楚)

文中证明了 SEBlock 中的 GAP 操作就是 DCT 中的最低频率的组件。

f ( 0 , 0 ) = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x ( i , j ) B 0 , 0 i , j = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x ( i , j ) = GAP ( x ) H W \begin{align} f(0,0) = \sum^{H-1}_{i=0}\sum^{W-1}_{j=0}x(i,j)B^{i,j}_{0,0} = \sum^{H-1}_{i=0}\sum^{W-1}_{j=0}x(i,j) = \text{GAP}(x)HW \end{align} f(0,0)=i=0H1j=0W1x(i,j)B0,0i,j=i=0H1j=0W1x(i,j)=GAP(x)HW

所以作者们在 GAP 的基础上进一步补充了其他的频率成分。考虑变换的公式,假定 H = W = 7 H=W=7 H=W=7,则其中的基函数可以直接得出:

α u 7 cos ⁡ ( 2 i + 1 ) u π 14 = α u 7 cos ⁡ ( π u 7 ( i + 0.5 ) ) , u ∈ { 0 , 1 , … , 6 } \begin{align} \sqrt{ \frac{\alpha_{u}}{7} } \cos\frac{(2i+1)u\pi}{14} = \sqrt{ \frac{\alpha_{u}}{7} } \cos\left( \pi \frac{u}{7} (i+0.5) \right), \, u \in \{0, 1, \dots, 6\} \end{align} 7αu cos14(2i+1)uπ=7αu cos(π7u(i+0.5)),u{0,1,,6}

对应于代码中的:

def build_filter(self, pos, freq, POS):result = math.cos(math.pi * freq * (pos + 0.5) / POS) / math.sqrt(POS) if freq == 0:return resultelse:return result * math.sqrt(2)

这里的 freq 实际上对应的就是前式里的 u u u v v v。因此,对于 7 × 7 7 \times 7 7×7 的数据,实际上存在 49 个分量,作者们通过大量的实验对不同分量单独使用时的效果进行了汇总:

在这里插入图片描述

通过对得分由高到低排序得到 49 个 ( u , v ) (u,v) (u,v) 对,在代码中直接按情况选择即可。

参考链接

  • 《数字图像处理》图像表征:离散傅里叶变换(DFT)、离散余弦变换(DCT)、主成分分析(PCA)- zhiwei 的文章 - 知乎 https://zhuanlan.zhihu.com/p/563668048

这篇关于ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940505

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

【软考】希尔排序算法分析

目录 1. c代码2. 运行截图3. 运行解析 1. c代码 #include <stdio.h>#include <stdlib.h> void shellSort(int data[], int n){// 划分的数组,例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量,换值int temp;in

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等