计算机系统应用教程网站

网站首页 > 技术文章 正文

深度解析卷积:从原理到应用 卷积通俗易懂

btikc 2024-10-24 09:37:38 技术文章 13 ℃ 0 评论

一、卷积的基本概念

卷积是一种在数学领域尤其是分析数学中占据重要地位的运算方式。它通过两个函数 和 来生成第三个函数。设 和 是 上的两个可积函数,卷积的积分表达式为: 。在离散情况下,卷积定义为 。

从实际应用的角度来看,卷积在多个领域有着广泛的作用。例如在统计学中,加权的滑动平均就是一种卷积;在概率论中,两个统计独立变量 与 的和的概率密度函数是 与 的概率密度函数的卷积;在声学中,回声可以用源声与一个反映各种反射效应的函数的卷积表示;在电子工程与信号处理中,任一个线性系统的输出都可以通过将输入信号与系统函数(系统的冲激响应)做卷积获得;在物理学中,任何一个线性系统(符合叠加原理)都存在卷积。

卷积具有一些重要的性质,如交换律、结合律、分配律和数乘结合律等。其中,交换律即 。卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积,这一定理对多种傅里叶变换的变体同样成立,利用卷积定理可以简化卷积的运算量。对于长度为 的序列,按照卷积的定义进行计算,需要做 组对位乘法,而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度大大降低。

二、卷积的计算过程

(一)单通道卷积

以单通道卷积为例,假设输入为(1,5,5),即 1 个通道,宽和高均为 5。卷积核大小为 3x3,padding=0,stride=1。在这个过程中,相应的卷积核不断在图像上进行遍历。具体来说,卷积核从输入图像的左上角开始,每次移动一个像素的位置,对当前窗口内的像素值与卷积核对应位置的值进行乘法运算,然后将这些乘积相加,得到一个输出像素值。这样不断重复这个过程,直到遍历完整个输入图像,最后得到一个 3x3 的卷积结果。

(二)多通道卷积

  1. 多通道卷积 1:以彩色图像为例,彩色图像包含三个通道,分别表示 RGB 三原色的像素值,输入为(3,5,5),即 3 个通道,每个通道的宽和高均为 5。假设卷积核只有 1 个,卷积核通道为 3,每个通道的卷积核大小仍为 3x3,padding=0,stride=1。在这个过程中,每一个通道的像素值与对应的卷积核通道的数值进行卷积,因此每一个通道会对应一个输出卷积结果。然后,将三个卷积结果对应位置累加求和,得到最终的卷积结果。输出结果是原始图像各个通道综合信息的原因在于,每个通道的卷积结果反映了该通道的特征信息,而最终的累加求和则是将三个通道的特征信息进行融合,得到了原始图像各个通道的综合信息。
  1. 多通道卷积 2:如果要实现卷积后也输出多通道,可以增加卷积核的数量。原理在于,每一个卷积核会产生一个通道的输出结果。例如,假设有 m 个卷积核,那么输出的大小就变为(mw’h’),其中 w’、h’表示卷积后的通道尺寸,原始输入大小为(nwh)。整个卷积层的尺寸为(mnk1*k2),其中 m 表示卷积核的数量,n 表示通道数量,k1 表示每一个卷积核通道的宽,k2 表示每一个卷积核通道的高。具体过程是,每个卷积核对应的输出通道结果(feature map)进行拼接,从而实现多通道输出。例如,有三个彩色图像通道,若有两个卷积核,第一个卷积核与三个通道进行卷积运算后得到一个输出通道结果,第二个卷积核同样进行运算得到另一个输出通道结果,最后将这两个输出通道结果拼接起来,就实现了两通道的输出。

三、卷积的关键因素

(一)填充

填充(Padding)是卷积过程中的一个重要概念。在卷积操作中,填充是指在输入图像的周围添加额外的像素值,通常是零值。填充的作用主要有以下几点:

  • 防止图像边缘信息损失:在进行卷积操作时,卷积核一般是一个小窗口,在输入图像上滑动。如果没有填充,每次卷积核移动计算后,都会导致卷积的输出尺寸变小,最终可能使得输入图像的边缘信息丢失。而通过填充,可以在输入图像的周围添加额外的像素,使得卷积核在边缘处也能进行完整的计算,从而保留输入图像的边缘特征。
  • 增加输出的高和宽:填充可以增加输出的高和宽,使得输出尺寸更加接近输入尺寸。例如,对于一个尺寸为 的输入图像,使用尺寸为 的卷积核进行卷积操作,如果不进行填充,输出尺寸为 和 ,其中 为步幅。如果在输入图像周围添加 层填充,输出尺寸变为 和 。可以看出,填充可以增加输出的高和宽。
  • 允许网络从输入数据的边缘学习更多特征信息:零填充是在输入数据的周围添加一圈零值,目的是保持原始数据的分布不变,并允许网络从输入数据的边缘学习更多的特征信息。在卷积神经网络中,常用零填充来控制卷积操作的输出尺寸,以保持与网络输入的要求相匹配。通过零填充,我们可以在卷积过程中保留输入数据的边缘特征,并且能够更好地处理边缘像素。这种技术在图像处理中特别有用,因为它可以防止边缘信息在卷积过程中被丢失,从而提高网络的性能和准确度。

(二)步幅

步幅(Stride)是卷积操作中的另一个关键因素。步幅是指卷积核在输入数组上滑动的行数和列数。例如,步幅为 表示卷积核每次在输入数组上滑动一个像素的位置,而步幅为 表示卷积核每次在输入数组上滑动两个像素的位置。步幅的作用主要有以下几点:

  • 影响输出形状:步幅可以改变卷积窗口在输入数组上的滑动行数和列数,从而影响输出形状。例如,对于一个尺寸为 的输入图像,使用尺寸为 的卷积核进行卷积操作,如果步幅为 ,输出尺寸为 和 。可以看出,步幅越大,输出尺寸越小。
  • 减少计算量:较大的步幅可以减少卷积操作的计算量,因为卷积核在输入数组上滑动的次数减少了。这对于处理大规模图像数据非常有用,可以提高计算效率。
  • 改变感受野大小:步幅还可以改变卷积操作的感受野大小。感受野是指卷积核在输入数组上看到的区域大小。较大的步幅会导致感受野减小,而较小的步幅会导致感受野增加。这可以影响网络对不同特征的感知能力,从而影响网络的性能。

四、卷积的实际应用

(一)图像降噪平滑操作中的卷积应用

在图像处理中,卷积有着广泛的应用,特别是在图像降噪和平滑操作方面。其中,均值卷积核和高斯滤波是两种常见的方法。

1. 均值卷积核

  • 原理:均值滤波是最简单的一种滤波操作,用一片图像区域的各个像素的均值来代替原图像中的各个像素值。均值滤波的卷积核中每个像素的权重相等,一般是一个全为 1 的矩阵。对于 RGB 图像,需要对每一个通道都进行求均值操作。例如,对于一个 3x3 的均值卷积核,其作用过程是将卷积核在图像上滑动,将核的锚点放在特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合。然后对卷积核内的所有像素值求平均,将所得结果放到与锚点对应的像素上。对图像所有像素重复上述过程。
  • 效果:优点是操作简单,效率高,易于实现。但缺点也很明显,不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

2. 高斯滤波

  • 原理:高斯滤波是一种线性平滑滤波,广泛应用于图像滤波领域,即图像去噪。它对于抑制服从正态分布的噪声非常有效,正态分布的噪声也就是高斯噪声。高斯滤波是将所有信号进行加权平均的过程,信号中的每个值,均由其本身和邻域内的其他信号值经过加权平均后得到。具体操作是用一个模板掩模对信号中的每个值进行扫描,用模板确定邻域内信号的加权平均值来替换模板中心值。在图像处理中,用一个用户指定的模板(或称卷积、掩膜)去扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。二维的高斯函数为: ,其中 为点坐标, 是标准差。要得到一个高斯滤波器的模板,可以对高斯函数进行离散化,得到的高斯函数值作为模板的系数。例如要产生一个 的高斯滤波器模板,以模板的中心位置为坐标原点进行取样,模板在各个位置的坐标根据高斯函数计算系数。
  • 效果:高斯滤波器相比于均值滤波器对图像的模糊程度较小。因为高斯滤波器的模板系数随着距离模板中心的增大而系数减小,而均值滤波器的模板系数都是相同的为 1。高斯滤波能够在平滑物体表面的同时,更好地保持图像的边缘和轮廓。通常情况下,为了尽量保留图像原有的信息,卷积核中心的权值应该最高,越远离核中心的权值越小。例如,对于一个 5x5 的高斯滤波模板,中间点的权值最大,向四周逐渐减小。一般来说,高斯滤波的标准差 决定了模板的系数分布。如果 较小,生成的模板的中心系数较大,而周围的系数较小,对图像的平滑效果就不是很明显;反之, 较大,则生成的模板的各个系数相差就不是很大,比较类似均值模板,对图像的平滑效果比较明显。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表