关于卷积的那些事

143 阅读6分钟

卷积:

图像的数值化:

如果想要将图像作为输入,必须将图像化作列向量,但这样就会失去图像中的位置信息。因此在将图像向量化前,需要对图像进行卷积提取图像的重要特征(位置信息等),再转换成向量。

网外卷积:

均值滤波: 均值滤波是一种简单的线性滤波器,它通过计算像素邻域的平均值来替代中心像素的值。对于每个像素,计算其周围像素(根据核的大小)的平均值,并将这个平均值赋给中心像素。 中值滤波: 中值滤波是一种非线性滤波器,它通过计算像素邻域的中值来替代中心像素的值。对于每个像素,找到其周围像素的中值,并将这个中值赋给中心像素。中值滤波对于去除椒盐噪声特别有效。

高斯卷积核 高斯卷积核是一种常用的滤波器,用于图像处理中的平滑和降噪。它基于高斯分布(正态分布)生成,能够对图像进行加权平均,权重随着距离中心像素的增加而递减。

高斯卷积核的生成步骤如下:

确定核的大小和标准差(σ):核的大小通常为奇数,如3x3、5x5、7x7等,以确保有一个中心像素。标准差决定了高斯分布的宽度,σ越大,平滑效果越强。

计算每个位置的高斯值:对于核中的每个位置(x, y),计算其相对于中心的距离,并使用高斯函数计算对应的权重:

G(x,y)=12πσ2ex2+y22σ2G(x, y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2 + y^2}{2\sigma^2}}

归一化权重:将所有高斯值相加,然后将每个高斯值除以这个总和,确保核的权重之和为1,这样可以保持图像的亮度不变。

高斯一阶偏导核:

高斯一阶偏导核用于计算图像在x和y方向上的梯度。这些核通常是高斯函数的一阶导数,用于检测图像中的边缘。高斯一阶偏导核可以与高斯滤波器结合使用,先对图像进行平滑处理,然后计算梯度。

Canny算子:

Canny算子是一种多阶段的边缘检测算法,它包括以下几个步骤:

  • 使用高斯滤波器对图像进行平滑处理,以减少噪声。
  • 计算图像的梯度幅值和方向。
  • 应用非极大值抑制(Non-Maximum Suppression)来细化边缘。
  • 使用双阈值法检测和连接边缘。

非极大抑制:

非极大抑制(Non-Maximum Suppression, NMS)是一种边缘细化技术,用于消除边缘检测中的虚假响应。其原理如下:

  • 计算梯度方向:首先,计算每个像素的梯度方向,这通常是通过高斯一阶偏导核得到的。
  • 抑制非极大值:对于每个像素,根据其梯度方向,检查其在该方向上的邻近像素。如果当前像素的梯度幅值不是局部极大值,则将其抑制(设置为0)。
  • 保留边缘像素:经过抑制后,只有梯度幅值为局部极大值的像素被保留,这些像素通常对应于图像中的真实边缘。
  • 非极大抑制有助于消除边缘检测中的冗余响应,使得边缘更加清晰和准确。

卷积神经网络:

网内外卷积区别:

在网络之外的卷积与在网络中的卷积的区别在于,前者的卷积核中的具体数值是设定好的,而后者通过网络的参数更新可以不断变换权重,自己找到合适的卷积值。

网内卷积:

卷积:

卷积操作是深度学习中用于提取图像特征的基本操作。它涉及一个卷积核(也称为滤波器)在输入图像上滑动,每个位置上卷积核与输入图像的对应部分进行乘法,然后将结果相加,得到输出特征图上的一个像素值。卷积核的大小通常为奇数,如3x3、5x5等,以确保有一个中心像素。

卷积结果尺寸计算: 卷积层输出特征图的尺寸可以通过以下公式计算:

输出尺寸=输入尺寸核大小+2×填充步幅+1\text{输出尺寸} = \frac{\text{输入尺寸} - \text{核大小} + 2 \times \text{填充}}{\text{步幅}} + 1

其中: 输入尺寸是输入特征图的高度或宽度。 核大小是卷积核的高度或宽度。 填充是为输入特征图添加的额外像素,通常用于保持输出特征图的尺寸与输入尺寸相同。 步幅是卷积核在输入特征图上滑动的步长。

实际网络卷积:

对于图像通常有多个通道,如最开始的输入图像尺寸通常为(3,n,m)3表示通道数,也就是特征图的数量。

对于具有特征图数量的卷积,卷积核也必须是具有相应通道的(3,x,x)x表示核大小,3表示通道数。

由基本的卷积我们可以知道,一个卷积核在一步操作中会计算一个值作为这个图像在这部分的代表,对于多个通道则在这个部分有多个值,对于同一位置的多个值采取求和方式,将多个特征图的同一位置的信息整合到一起。

具体表现为: 图像(3,30,30),卷积核(3,3,3)得到的特征图为(1,28,28)。

如果对一个图像使用n个相同卷积核,得到的特征图数量就由卷积核的数量决定,这样我们通过卷积实现了信息更浓缩,信息存储能力不变的目的。

具体表现: 图像(3,30,30),10个卷积核(3,3,3)得到的特征图为(10,28,28)。

池化

池化操作用于降低特征图的空间维度,同时保留重要的信息。最常见的池化类型是最大池化和平均池化。

最大池化选择池化窗口内的最大值作为输出

平均池化则计算池化窗口内的平均值作为输出。

对于池化,通常通过大小和步幅(stride)决定了输出特征图的尺寸。池化与卷积不同的地方就是池化是没有权重的,它只是单纯的对于卷积后的图像进一步的缩小,实现信息的进一步浓缩。

具体表现: 卷积后特征图(10,28,28),池化模板(3,3)步幅为2,得到的特征图(10,15,15)