• 作者:老汪软件技巧
  • 发表时间:2024-10-14 07:01
  • 浏览量:

先梳理下整个卷积神经网络工作主要过程

卷积神经网络(Convolutional Neural Network,简称 CNN)是一种深度学习模型,尤其擅长处理图像数据。CNN 通过多层结构逐步提取图片的特征。以下是 CNN 提取图片特征的主要过程:

1.卷积层(Convolutional Layer):

2.激活函数(Activation Function):

3.池化层(Pooling Layer):

4.全连接层(Fully Connected Layer):

5.输出层(Output Layer):

通过这些步骤,CNN 能够逐层提取图片的低级和高级特征,从边缘和纹理,到更复杂的结构和对象。每一层都在前一层的基础上提取更抽象的特征,从而实现对图像的理解和分类。

进入正题,卷积核如何提取到特征的?

假设我们有一个简单的 5x5 的灰度图像(灰度图像的每个像素值是一个单一的数值,表示亮度),以及一个 3x3 的卷积核。我们来看看卷积操作是如何进行的。

原始图像(5x5):

1 2 3 0 1
4 5 6 1 2
7 8 9 2 3
1 0 1 3 4
2 1 0 4 5

卷积核(3x3):

1 0 -1
1 0 -1
1 0 -1

这个卷积核可以用来检测垂直边缘。

卷积操作步骤:

1.将卷积核放在图像的左上角,并计算覆盖区域的点积:

1 2 3
4 5 6
7 8 9

卷积神经网络图像处理__卷积神经网络卷积核

(1*1 + 2*0 + 3*(-1)) + (4*1 + 5*0 + 6*(-1)) + (7*1 + 8*0 + 9*(-1))
= (1 + 0 - 3) + (4 + 0 - 6) + (7 + 0 - 9)
= -2 + -2 + -2
= -6

这样,卷积核在图像左上角的卷积结果是 -6。

2.将卷积核向右移动一格,并重复计算:

2 3 0
5 6 1
8 9 2

(2*1 + 3*0 + 0*(-1)) + (5*1 + 6*0 + 1*(-1)) + (8*1 + 9*0 + 2*(-1))
= (2 + 0 - 0) + (5 + 0 - 1) + (8 + 0 - 2)
= 2 + 4 + 6
= 12

所以在这个位置的卷积结果是 12。

3.继续滑动卷积核,直到覆盖整个图像:

通过这种方式,我们可以计算出整个特征图(Feature Map)。假设步长为 1,并且没有使用填充(Padding),则特征图的尺寸将会是 (5-3+1) x (5-3+1) = 3x3。

最终的特征图(3x3):

-6  12  1
-6  12  1
-6  12  1

解释:

为什么这个卷积核就能用来检测垂直边缘?

1  0 -1
1  0 -1
1  0 -1

垂直边缘检测的原理:

1.卷积核的结构:

2.计算卷积时的效果:

3.边缘检测的逻辑:

总结

以上例子只是一个简单的识别垂直边缘特征,但是通过这个例子,我们知道了提取图像的特征的关键是卷积核,构造不同的卷积核可以识别不同的图像特征。