☰
AKConv:任意采样形状与任意参数量的卷积核——论文精读与即插即用代码实战
2026/10/30 8:27:22 网站建设 项目流程

目录

1. 前言:标准卷积的两道"紧箍咒"

2. AKConv 方法详解

2.1 整体流程

2.2 核心创新一:任意尺寸初始采样坐标生成算法

2.3 核心创新二:可学习偏移量自适应目标形变

3. 完整代码(即插即用)

4.1 环境依赖

4.2 完整实现(akconv.py)

4. 即插即用集成指南

4.1 前置说明:即插即用的含义与限制

4.2 在任意 PyTorch 网络中替换标准卷积

5. 总结

5.1 论文做了什么

6.适用场景建议:


  • 1. 前言:标准卷积的两道"紧箍咒"

  • 基于卷积运算的神经网络在深度学习领域取得了显著成果,但标准卷积操作存在两个固有缺陷:

    缺陷一:采样形状固定。 卷积运算被限制在一个局部窗口内,无法捕获窗口之外其他位置的信息,并且采样点排布永远是规整的方形网格。而现实世界中,目标的形状和尺寸千变万化——不同数据集之间不同,同一张图里的不同位置也不同。用一张固定的"方格网"去适配所有目标,显然是不合理的。

    缺陷二:参数量随核尺寸平方增长。 卷积核尺寸固定为 k×k的正方形,参数量随 k的增大呈平方级增长(1,4,9,16,25,…)。想把感受野做大一点,付出的参数与计算代价就急速膨胀,这对硬件环境非常不友好。以 3×3 卷积为基础的现代 CNN(ResNet、YOLO 系列、MobileNet 等)长期被这两条约束限制。大核卷积(如 RepLKNet 的 31×31)证明了大感受野的价值,但代价是参数量平方级膨胀。

    AKConv(Alterable Kernel Convolution)的出发点正是同时解开这两道紧箍咒:

  • 任意参数数量:核大小 N 可以取任意正整数(3、5、7、9、13……),参数量随 N 线性增长(1,2,3,4,5,…1,2,3,4,5,…);

  • 任意采样形状:通过一套新的初始坐标生成算法为任意尺寸的核定义初始采样位置,再通过可学习偏移量(offset)动态调整采样形状,使卷积核能自适应目标形变。

  • 2. AKConv 方法详解

  • 2.1 整体流程

    AKConv 的整体计算流程可分为四步(以核大小 N=5为例):

  • 偏移量预测:用一个普通 3×3 卷积 p_conv从输入特征预测偏移量,输出维为 (B,2N,H,W),即每个空间位置 NN 个采样点、每点 2 个坐标方向的偏移;

  • 坐标合成:初始采样坐标 = 规则位置基准 P0​ + 初始相对坐标 Pn+ 偏移量 ΔP;

  • 双线性插值重采样:合成后的坐标一般是小数(非整数位置),对每个坐标用双线性插值从输入特征图上取值;

  • 堆叠 + 一维卷积:把重采样得到的特征按规则堆叠成通道-空间排布,再用一个 kernel=(N,1),stride=(N,1) 的普通卷积完成加权求和,输出特征。

  • 2.2 核心创新一:任意尺寸初始采样坐标生成算法

  • 这是论文最重要的贡献(论文 Algorithm 1)。目标:给定任意正整数 N(卷积核参数数量),生成 N个初始采样点的相对坐标 Pn算法逻辑(伪代码对应代码中的 _get_p_n):

  • 规则部分:生成 row×base的规则网格坐标(前 row⋅base个点);

  • 余数部分:若 mod>0,在网格下方补一行,取该行前 mod个位置(凑齐N个点)。

  • 2.3 核心创新二:可学习偏移量自适应目标形变

  • 偏移量分支的实现要点:

  • p_conv 是一个普通 nn.Conv2d(inc, 2N, kernel_size=3, padding=1, stride=stride),输出每个位置 N个采样点在 (x,y)两个方向的偏移;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询