主页 / 关于 / 卷积算子交互实验台

卷积算子交互实验台

本页提供离散二维卷积的浏览器端计算环境:载入任意图像,施加经典卷积核,逐点观察乘加过程,追溯输出像素的感受野来源,并对多张特征图执行加权合成、池化与上采样,用以建立从单个卷积核到 U-Net 编码-解码结构的直观理解。全部计算在本地完成,图像不上传至任何服务器。

18 种经典核 自定义核编辑 逐点计算动画 感受野追溯 特征图加权合成 池化 / 上采样 PNG 导出

1定义与记号

设输入图像为 $x$,核尺寸为 $k$($k$ 为奇数,$r=(k-1)/2$),权重为 $w$,偏置为 $b$,则输出特征图的逐点定义为

$$y(i,j)=\sum_{m=-r}^{r}\sum_{n=-r}^{r} w(m,n)\,x(i+m,\;j+n)+b$$

深度学习框架中的“卷积”实为互相关(cross-correlation),核不作 180° 翻转;本页采用同一约定,故上式无翻转项。对于对称核(如高斯核)二者等价,对于方向性核(如 Sobel)两种约定仅相差整体符号。

输出尺寸由填充宽度 $p$ 与步长 $s$ 决定:

$$o=\left\lfloor\frac{i+2p-k}{s}\right\rfloor+1$$

当 $p=(k-1)/2$ 且 $s=1$ 时输出与输入同尺寸(same 填充);当 $p=0$(valid 填充)时每次卷积使边长减少 $k-1$,此即 U-Net 原文中特征图尺寸逐层收缩、跳跃连接需裁剪对齐的成因。

核元素之和 $\sum w$ 决定均值响应:$\sum w=1$ 时图像平均亮度保持(低通、平滑类算子);$\sum w=0$ 时输出为零均值且含负值(高通、微分类算子),必须经显示映射后方可呈现为灰度图像,本页在第 5 节提供五种映射方式。

2图像输入

支持文件选择、拖放与剪贴板粘贴(Ctrl+V)。为控制计算量,载入时按最长边等比缩放至指定分辨率。

将图像拖放至此 · 或点击选择 · 或 Ctrl+V 粘贴
处理分辨率(最长边)

内置测试图样

测试图样用于分离验证:棋盘格检验高频响应,同心环检验方向选择性,梯度与噪声检验平滑核的降噪能力,类细胞图像对应 U-Net 的典型分割场景。

尚未载入

3卷积核与计算参数

经典核预设
核尺寸
缩放系数(支持 1/16 形式)
当前核的连续剖面 w(x):中心行(实线)/ 中心列(虚线)

计算参数

边界填充
步长 s
通道方式
偏置 b
激活函数

卷积在浮点域进行且不作中间截断,因此负响应得以保留;只有在显示与导出时才施加映射。这一处理与深度学习框架一致,可避免微分算子的信息在早期被裁剪。

当前输入
实时预览(当前核与参数)

典型卷积核的连续形态

离散权重本身难以显示算子的形态,故下列图谱以其重建的连续函数表示:对权重作三次样条(Catmull–Rom)插值并在支撑区外按零延拓,得到过全部采样点的连续函数 $w(x)$ 与曲面 $w(x,y)$。左图为二维连续曲面(暖色为负、强调色为正,色深正比于 $|w|/\max|w|$),右图为中心行(实线)与中心列(虚线)的一维连续剖面,空心点标出整数采样位置,即离散权重的取值处。

三类算子的连续形态区别明确:低通核为单峰非负的钟形(高斯型);一阶方向微分核为奇函数,中心过零、两侧异号(高斯一阶导型);二阶微分与带通核呈中心与外环异号的墨西哥帽形。可分离的核在卡片中给出其一维因子($K=vh^{\top}$),此时二维卷积可拆为两次一维卷积,计算量由 $O(k^2)$ 降至 $O(2k)$;拉普拉斯、LoG、浮雕等不可分离,无法写成两个一维核的外积。点击任一卡片即可将该核载入编辑器。

正权重 负权重 连续剖面:中心行(实线) 连续剖面:中心列(虚线)

4逐点计算演示

将当前输入降采样为 G×G 灰度网格,展开单个输出像素的乘加过程。移动鼠标或点击左侧网格可指定窗口位置,亦可播放扫描动画。此处固定步长为 1 并采用 same 填充,以便输入输出逐点对应。

网格规模 G
12 × 12
输入网格 x(灰度,0–255)
输出网格 y(按扫描顺序逐点填充)

当前窗口的乘加展开

局部窗口 x
核权重 w
=
逐元素乘积 w·x

5特征图库:显示映射、导出与层叠

每次卷积或后处理生成一张特征图,等价于卷积层输出的一个通道。显示映射决定浮点响应如何转换为 0–255 灰度:截断直接钳制至 [0,255];偏移加 128 后钳制,可同时呈现正负响应;绝对值取模后钳制;绝对值拉伸按最大模线性归一,适用于梯度类算子;最小-最大拉伸将实际值域线性映射至满量程。导出的 PNG 与所选映射一致。

特征图库为空。请在第 3 节施加一次卷积。

6特征图运算:合成、池化与上采样

多图合成(对应跳跃连接与多通道融合)

合成方式

尺寸不一致时,全部输入将按第一张选中图的尺寸作双线性重采样。梯度幅值适用于 Sobel X 与 Sobel Y 的组合,其结果即各向同性的边缘强度 $\sqrt{G_x^2+G_y^2}$。

单图后处理(作用于“当前输入”)

下列操作以第 2 节的当前输入为对象并生成新特征图。可在第 5 节点击“设为输入”切换对象,从而串联出编码-解码路径。

最大池化在 2×2 窗口内取极大值,尺寸减半而感受野翻倍,且对小幅平移不敏感;平均池化等价于步长为 2 的 2×2 均值卷积。上采样仅恢复空间尺寸,不能恢复池化丢失的高频细节——这正是跳跃连接存在的原因。

上采样的构造:从坐标映射到像素

两种上采样算子均以半像素对齐的坐标映射为基础。放大倍数为 2 时,输出坐标 $i$ 对应的输入坐标及其小数部分为

$$u=\frac{i+0.5}{2}-0.5=\frac{i}{2}-\frac{1}{4},\qquad u_0=\lfloor u\rfloor,\qquad \alpha=u-u_0$$

最近邻插值取距离最近的输入像素,等价于按 2×2 块复制:

$$y(i,j)=x\big(\lfloor i/2\rfloor,\;\lfloor j/2\rfloor\big)$$

双线性插值对四个邻点按面积权重加权($\beta$ 为纵向坐标的小数部分):

$$y(i,j)=(1-\alpha)(1-\beta)\,x(u_0,v_0)+\alpha(1-\beta)\,x(u_0{+}1,v_0)+(1-\alpha)\beta\,x(u_0,v_0{+}1)+\alpha\beta\,x(u_0{+}1,v_0{+}1)$$

放大倍数为 2 时 $\alpha,\beta$ 仅取 $1/4$ 与 $3/4$ 两个值,故双线性上采样等价于一次权重固定、步长为 2 的转置卷积,其可分离核为

$$K=\frac{1}{16}\begin{bmatrix}1\\3\\3\\1\end{bmatrix}\begin{bmatrix}1&3&3&1\end{bmatrix}=\frac{1}{16}\begin{bmatrix}1&3&3&1\\3&9&9&3\\3&9&9&3\\1&3&3&1\end{bmatrix}$$

边界之外按复制边缘取值,故首尾输出退化为直接复制。转置卷积(反卷积)与此同构,区别仅在于 U-Net 中该核的权重由训练得到而非固定。

最近邻:每个输出点取用 1 个输入点
双线性:每个输出点按 3/4 与 1/4 混合 2 个输入点

图中标注的权重对应输出点 $y_3$:其输入坐标 $u=1.25$,故由 $x_1$ 与 $x_2$ 按 $3/4$ 与 $1/4$ 合成。连线粗细与权重成正比。

逐点计算演示

与第 4 节的卷积演示同构:左侧为输入网格(当前输入降采样所得的灰度块),右侧为 ×2 上采样的输出网格,按扫描顺序逐点填充。在右侧网格上移动鼠标或点击可指定输出像素,下方展开其取点与权重。切换插值方式即可直接对照:最近邻输出为 2×2 常数块,双线性输出在块间形成线性过渡。数值由页面实际使用的上采样函数计算,非另行推导。

插值方式
输入网格 G
6 × 6 → 12 × 12
输入网格 x(灰度,0–255)
输出网格 y(按扫描顺序逐点填充)

当前输出点的取点与加权

参与的输入像素 x
插值权重 w
=
乘积 w·x

与跳跃连接的合并

上采样只负责恢复分辨率,与编码分支的合并由本节的多图合成完成。设编码分支特征为 $F_{\mathrm{enc}}$、解码分支的上采样结果为 $\mathcal{U}(F_{\mathrm{dec}})$,本页的加性融合为

$$F_{\mathrm{out}}=w_1F_{\mathrm{enc}}+w_2\,\mathcal{U}(F_{\mathrm{dec}})$$

U-Net 原文采用通道拼接后再卷积。若拼接后所接为 $1\times1$ 卷积、权重为 $(a,b)$,则

$$\mathrm{Conv}_{1\times1}\big([\,F_1;F_2\,]\big)=aF_1+bF_2$$

即加性融合是“拼接 + 卷积”在 $1\times1$ 情形下的特例;原文所接为 $3\times3$ 卷积且权重由训练得到,融合方式是学出来的而非人工指定。合成时以第一张选中图的尺寸为基准,其余输入作双线性重采样对齐——边长为奇数时池化取 $\lfloor w/2\rfloor$,上采样后会相差一个像素(如 $213\to106\to212$),该步即用于补齐;U-Net 原文因使用 valid 卷积,编码器特征更大,改用中心裁剪对齐。

7感受野追溯

感受野(receptive field)指某一输出像素的取值所依赖的原始图像区域的边长。设第 $l$ 层核尺寸为 $k_l$、步长为 $s_l$、单侧填充为 $p_l$,则感受野边长 $r_l$、采样间隔 $j_l$(输出移动一像素对应原图移动的距离)与首像素中心偏移 $\mathrm{start}_l$ 满足如下递推:

$$j_l=j_{l-1}\,s_l,\qquad r_l=r_{l-1}+(k_l-1)\,j_{l-1},\qquad \mathrm{start}_l=\mathrm{start}_{l-1}+\left(\frac{k_l-1}{2}-p_l\right)j_{l-1}$$

初值为 $j_0=1$、$r_0=1$、$\mathrm{start}_0=0.5$(原始图像的单个像素,感受野为 1,采样间隔为 1)。

据此,输出坐标 $(i,j)$ 在原始图像中的中心与依赖区间为

$$c_i=\mathrm{start}_l+i\,j_l,\qquad \mathcal{R}(i)=\left[\,c_i-\frac{r_l}{2},\;c_i+\frac{r_l}{2}\,\right]$$

下方面板对当前特征图执行该映射:在右侧特征图上移动鼠标指定一个输出像素,左侧原始图像即高亮其全部依赖像素。

追溯对象
原始图像 · 该输出像素的依赖区域
目标特征图 · 选定的输出像素

运算链上的感受野增长

方块边长按各层感受野等比绘制(以链末为满量程)。逐点运算(ReLU、归一化)不改变几何关系,故感受野保持不变。

堆叠与下采样的增长速率对比

以一维情形示意:下图每个圆点为一个像素,自下而上为逐层运算,着色部分即顶层中心像素的依赖链。图中卷积层的窗口宽度取 $k=4$,故每个输出点向下连接 4 个输入点;池化层窗口为 2。连接数恒等于窗口宽度,感受野即由此逐层累加。

路径 A:连续 3 次 4 宽卷积(步长 1)
路径 B:4 宽卷积 → 池化 2×2 → 4 宽卷积

路径 A 中每层使感受野增加 $k-1$,增长为线性:$r=1+L(k-1)$;图中 $k=4$、$L=3$,得 $r=10$(若取 $k=3$ 则为 $r=7$)。路径 B 在同为三层的条件下得 $r=11$:池化使 $j$ 翻倍,其后每层的贡献 $(k-1)j$ 随之翻倍,故感受野随下采样次数指数增长。U-Net 编码器依靠这一机制,在四次下采样后使瓶颈层的感受野覆盖数百像素的尺度,从而获得足以判别语义类别的上下文;代价是空间定位精度按 $j$ 的倍数下降,须由跳跃连接补偿。

工程上的判据:感受野应不小于待识别目标的特征尺度。若目标结构跨度约 60 像素而网络感受野仅 20 像素,则任一输出像素都无法“看到”完整结构,分割结果将出现系统性的边界与拓扑错误。

8从卷积核到 U-Net

U-Net 由收缩路径(编码器)与扩张路径(解码器)构成,二者在同一分辨率层级间以跳跃连接相联,整体呈 U 形。编码器通过“卷积—激活—池化”反复堆叠,使感受野随深度指数式扩大,获取语义信息但损失空间精度;解码器通过上采样逐级恢复分辨率;跳跃连接把编码器同层级的高分辨率特征直接送入解码器,补偿池化造成的定位精度损失。该结构在医学图像分割等小样本、强边界要求的任务中成为基准方法。

编码块 1 · Conv 3×3 ×2320² · 感受野 5 编码块 2 · Conv 3×3 ×2160² · 感受野 14 编码块 3 · Conv 3×3 ×280² · 感受野 32 瓶颈层 Conv 3×3 ×240² · 感受野最大 解码块 1 · Conv 3×3 ×2320² · 输出分割图 解码块 2 · Conv 3×3 ×2160² 解码块 3 · Conv 3×3 ×280² ↓ 最大池化 2×2 ↓ 最大池化 2×2 ↑ 上采样 ×2 ↑ 上采样 ×2 跳跃连接(通道拼接) 跳跃连接(通道拼接) 跳跃连接(通道拼接)

本页操作与 U-Net 组件的对应关系

本页操作U-Net 组件作用与差异
施加 3×3 卷积(same 填充)编码/解码块内的 Conv 3×3提取局部特征。差异在于本页权重为人工设定的固定算子,U-Net 权重由反向传播学习得到。
激活函数 ReLUReLU引入非线性并抑制负响应。对 Sobel 输出施加 ReLU 后仅保留单一极性的边缘,可直接观察到该效应。
最大池化 2×2收缩路径的下采样尺寸减半,等效感受野随之翻倍,同时引入平移不变性。
上采样 ×2扩张路径的上采样 / 转置卷积恢复空间分辨率。转置卷积的插值权重可学习,最近邻与双线性插值则为固定算子。
多图加权求和跳跃连接U-Net 原文采用通道拼接后再卷积,本页以加性融合作近似(等同于残差式跳跃连接);两者的共同作用均为向解码器注入高分辨率细节。
特征图库中的多张结果卷积层的多通道输出一层中 C 个不同的核产生 C 个通道,各通道响应不同的局部模式。
层叠卷积(生成后设为输入)网络深度两次 3×3 卷积的等效感受野为 5×5,三次为 7×7;配合池化则呈指数增长。第 7 节可对任一特征图逐像素追溯其在原图上的依赖区域。

建议实验流程

  1. 在第 2 节载入“类细胞图像”或自有图像,处理分辨率取 320 px。
  2. 第 3 节选择“高斯 3×3”,通道方式取灰度,施加卷积得到 F1,并勾选“自动设为新的输入”。观察平滑对噪声的抑制。
  3. 第 6 节点击“最大池化 2×2”得到 F2(尺寸减半,感受野翻倍),将 F2 设为输入。此步对应编码器的一次下采样。
  4. 分别施加 Sobel X 与 Sobel Y 得到 F3、F4;在第 6 节同时选中二者并以“梯度幅值”合成,得到低分辨率的边缘响应 F5。
  5. 将 F5 设为输入,执行“双线性上采样 ×2”得到 F6,其尺寸已恢复至原始水平,但边界明显模糊——此即池化造成的定位精度损失。
  6. 返回第 3 节,对 F1(原分辨率)施加 Sobel X/Y 并合成为 F7;随后同时选中 F6 与 F7,以加权求和(权重各 0.5)合成 F8。对比 F6 与 F8 可见跳跃连接对高分辨率边界细节的补偿作用。
  7. 在第 7 节将追溯对象依次切换为 F1、F2、F5,对照三者的感受野(分别为 3、4、8 量级)与采样间隔 j,可定量看出:下采样使同一输出像素的依赖区域扩大一倍以上,而定位精度同步降至 j 像素。
  8. 可进一步对同一输入施加多种核并全部保留,观察“单层多通道”的特征多样性;再对任一通道施加 ReLU,理解非线性对响应极性的筛选。