卷积神经网络CNN概述上(黑白图像卷积)

1.边界检测

检测图像的物体可以有垂直边缘和水平边缘检测。

如下是一个6*6的灰度图像,构造一个3*3的矩阵,在卷积神经网络中通常称之为filter,对这个6*6的图像进行卷积运算,以左上角的-5计算为例

3*1+0*0+1*-1+1*1+5*0+8*-1+2*1+7*0+2*-1 = -5

其它的以此类推,让过滤器在图像上逐步滑动,对整个图像进行卷积计算得到一幅4*4的图像。

为什么这种卷积计算可以得到图像的边缘,下图0表示图像暗色区域,10为图像比较亮的区域,同样用一个3*3过滤器,对图像进行卷积,得到的图像中间亮,两边暗,亮色区域就对应图像边缘。

通过以下的水平过滤器和垂直过滤器,可以实现图像水平和垂直边缘检测。

以下列出了一些常用的过滤器,对于不同的过滤器也有着不同的争论,在卷积神经网络中把这些过滤器当成我们要学习的参数,卷积神经网络训练的目标就是去理解过滤器的参数。

2. padding

在上部分中,通过一个3*3的过滤器来对6*6的图像进行卷积,得到了一幅4*4的图像,假设输出图像大小为n*n与过滤器大小为f*f,输出图像大小则为

(n−f+1)∗(n−f+1)

这样做卷积运算的缺点是,卷积图像的大小会不断缩小,另外图像的左上角的元素只被一个输出所使用,所以在图像边缘的像素在输出中采用较少,也就意味着你丢掉了很多图像边缘的信息,为了解决这两个问题,就引入了padding操作,也就是在图像卷积操作之前,沿着图像边缘用0进行图像填充。对于3*3的过滤器,我们填充宽度为1时,就可以保证输出图像和输入图像一样大。

padding的两种模式:

①Valid:no padding

输入图像n*n,过滤器f*f,输出图像大小为:

(n−f+1)∗(n−f+1)

②Same:输出图像和输入图像一样大

3.卷积步长

卷积步长是指过滤器在图像上滑动的距离,前两部分步长都默认为1,如果卷积步长为2,卷积运算过程为:

加入stride后卷积图像大小的通用计算公式为:
输入图像:n*n,过滤器:f*f步长:s,padding:p
输出图像大小为:⌊(n+2p−fs+1))⌋∗⌊(n+2p−fs+1)⌋⌊(n+2p−fs+1))⌋∗⌊(n+2p−fs+1)⌋,⌊⌋⌊⌋表示向下取整

以输入图像6*6,过滤器3*3,步长为2,padding模式为valid为例输出图像大小为:⌊(6+2∗0−32+1)⌋∗⌊6+2∗0−32+1)⌋=3∗3

彩色图像卷积及单层神经网络请参考:

卷积神经网络CNN概述下(RGB图像卷积与单层神经网络)

转载自:https://blog.csdn.net/ice_actor/article/details/78648780

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注