一、垂直边缘检测
1、图片如果是黑白的就是像素*像素*1,如果是彩色的就是像素*像素*3【后面数字是维度】3表示RGB
对图片进行卷积运算
如图所示,6x6的图片*3x3的图片=4x4的图片,计算过程如下图:
4x4每个元素的计算是把3x3的矩阵一行一行的覆盖在6x6的矩阵上,大图片每一列的元素乘以小图片的每一列然后相加得到
4x4图片的每个元素,中间的图片称谓过滤器。
在Python中,卷积用表示conv_forward()函数,在TensorFlow中,卷积用tf.nn.conv2d
二、水平检测
水平检测就是把垂直检测的过滤器翻转90°,
1 | 1 | 1 |
0 | 0 | 0 |
-1 | -1 | -1 |
任何一张n x n的图片通过f x f的过滤器,会得到(n-f+1)x(n-f+1)的输出图像
二、过滤器的缺点
一个n x n的图片经过f x f的过滤器输出就会缩小变成(n-f+1)x(n-f+1)的输出,这样不好。所以应该在原来图像上填充新的像素使输入输出一样,填充的p=(f-1)/2。所以这就要求过滤器一般是奇数X奇数。
三、步长的设置
如果步长stride设置为2,则输出图像为{[(n+2p-f)/s]+1}x{[(n+2p-f)/s]+1} s表示步长,如果除不尽,就用向下取整的方法,过滤器一定要全部在图片上。