卷积神经网络,边缘检测,卷积核,池化层,三通道卷积

卷积神经网络

1.卷积计算与边缘检测示例

1.1 卷积运算

在这里插入图片描述

​ 假设输人是一张灰度图图像, 那么输人的深度就是1 ,如图所示输人图像尺寸是10 ×10 × 1 。现在选择一个尺寸( 通常选择3 × 3 或5 × 5 , 如图左侧所示) , 从输人图像左上角开始水平移动( 水平方向到头的话, 垂直移动一步后再次水平移动) , 直到滑过整个输人图像, 最终到达图像右下角。这个在输人图像上选择的尺寸( Kernel Size ) , 叫作卷积核( Kernel ) 。在这个过程中, 每次移动都将该尺寸的输人图像与相同尺寸( 3 × 3 或5 × 5 ) 的卷积参数做运算, 这个卷积参数叫作滤波器( Filter , 如图中间所示) , 并得到一个输出( 如图1.2 右侧所示) 。每移动一步, 都会得到一个输出, 当滤波器与整个输人图像运算完之后, 最终得到的输出就是对输人图像提取出的特征, 叫作特征图( Feature Map ) 。这就是卷积层的功能, 在整个移动( 卷积) 过程中, 卷积层的权重( 滤波器, Filter Size ) 是不变的, 即权值共享

下面是过滤器在做卷积的过程图:
在这里插入图片描述

1.2 边缘检测简例

所以,利用卷积运算可以实现边缘检测,如下例所示:

在这里插入图片描述

左边是输入图,中间是过滤器,右边是输出图,这里,数字越高代表亮度越高,所以,下面为它们对应的图像。由卷积运算可知,过滤器从输入图的左上角开始运算,从左往右滑动,滑至尽头时,回到起始点往下一格得位置,继续从左往右的滑,以此类推。

那么,如果要对输入图的垂直边缘进行边缘检测,滑的过程中计算的方式为对应元素相乘再相加,例如:

对于左上角的位置即为
10 1 + 10 1 + 10 1 + 10 0 + 10 0 + 10 0 + 10 1 + 10 1 + 10 1 = 0 10*1+10*1+10*1+10*0+10*0+10*0+10*(-1)+10*(-1)+10*(-1)=0
那么,输出图的左上角即为0,以此类推即可得到输出图。

在输出图上,0代表低像素,亮度低,30则代表高像素,亮度高,于是输出图便是左右为暗,中间亮的图片。所以可以知道在输入图的中间有垂直边缘,只不过这里的输入图太小,导致卷积运算后得到的垂直边缘太粗,但这已经可以说明原理了。

1.3 关于边缘检测的几点说明

  • 对于垂直边缘检测,常用的卷积核有:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

​ 那么,如果要进行水平边缘检测,只要将用于垂直边缘检测的过滤器转置即可。

  • 即使这些过滤器适用于很多情况,但对于所需要处理的图像,这些过滤器确不一定能达到最优效果。所以,利用深度学习的反向传播原理,可以将过滤器的数值设置为参数,让神经网络去训练求得比较合适的参数值。

在这里插入图片描述

1.4 卷积运算的填充(Padding)

对于一个[n,n]的图片,与一个[f,f]的过滤器卷积,输出图的形状为**[n-f+1,n-f+1]**,而一般,过滤器的形状为[3,3]或[5,5],这样直接卷积的话,图片就会缩小。为了解决这个问题,可以在进行卷积之前,对输入图片进行填充(Padding),这样进行卷积后,得到的输出图还是一样的大小。

填充方式:

  1. 有效填充(valid padding):其实就是不填充

在这里插入图片描述

2.相同填充(same padding):输出与输入大小相同

在这里插入图片描述

设填充的像素点个数为p,则:

原输入图大小为[n,n]

输入图填充后的大小为[n+2p,n+2p]

输出图的大小为**[n+2p-f+1,n+2p-f+1]**

要让二者相等,既要让:
2 p f + 1 = 0 2p-f+1=0
即:
p = ( f 1 ) / 2 p=(f-1)/2
这也就是为啥卷积核为[3,3]或者[5,5]之类的奇数的原因了

1.5 步长

卷积核在输入图像上移动时,每移动一步的长度叫做步长,这个长度表示移动的像素数

设原输入图的尺寸为[n,n],填充的像素个数为p,卷积核的尺寸为[f,f],步长为s,则:

输出的特征图的尺寸为:
n + 2 p f s + 1 \frac{n+2p-f}{s}+1



2.三维立体的卷积

在这里插入图片描述
如果研究的是RGB的三通道图像的话,那么对应的卷积核也应该是个三通道的,卷积规则为:

​ 输入图像与卷积核对应通道上对应位置的数相乘后相加,最后将三个通道的和加起来获得一个数字,填入到输出特征图中,这里输出特征图的通道数为1。所以,如果要将特征图通道为多个,就应该用多个卷积核进行卷积,一个3通道的卷积核只能得到单通道的输入特征图。


3.池化层

1.最大池化

在这里插入图片描述

如果需要将得到的特征图再次提取特征,例如,将[4,4]的特征图提取为[2,2]的特征图,那么我们可以设置一个[2,2]的过滤器,步长为2,每个过滤器提取对应区域的最大值,即为最大池化的规则。

2.平均池化

821234)]

如果需要将得到的特征图再次提取特征,例如,将[4,4]的特征图提取为[2,2]的特征图,那么我们可以设置一个[2,2]的过滤器,步长为2,每个过滤器提取对应区域的最大值,即为最大池化的规则。

2.平均池化

如果需要将得到的特征图再次提取特征,例如,将[4,4]的特征图提取为[2,2]的特征图,那么我们可以设置一个[2,2]的过滤器,步长为2,每个过滤器提取对应区域的四个数字的平均值,即为平均池化的规则。



如有不对的地方,还请批评指正!!!

猜你喜欢

转载自blog.csdn.net/tqptr_opqww/article/details/103616701