卷积操作在图像领域具有重要意义,卷积神经网络(CNN)中,核心的网络层就是卷积层,通过大量的卷积层,实现有效特征的提取。下面对于卷积运算的原理进行详细说明:
卷积运算步骤:
1)假设原图像矩阵如下:
0000000000001000000000000
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
卷积核如下:
147258369
1
2
3
4
5
6
7
8
9
2)对卷积核进行180度旋转:
963852741
9
8
7
6
5
4
3
2
1
3)使用旋转后的卷积核对原图像进行遍历,遍历后的结果如下:
0000001470025800369000000
0
0
0
0
0
0
1
2
3
0
0
4
5
6
0
0
7
8
9
0
0
0
0
0
0
4)关于图像的边缘,可用0填充,也可以用最近邻对其赋值,或者使用部分卷积核进行运算。
说明:
在一些深度学习的开源代码中,比如Caffe,对于卷积的运算并没有对卷积核进行旋转,而是直接用卷积核对输入数据进行运算,更准确的说此操作应该称为相关,但是在此处我们仍然称之为卷积运算。