计算机视觉CV-3

The Sliding Window

卷积和池化操作有一个共同的特点:它们都是在滑动窗口上执行的。对于卷积,这个“窗口”由内核的尺寸(参数 kernel_size)给出。对于池化,它是池化窗口,由 pool_size 给出。

A 2D sliding window.

strides 参数表示窗口每一步应移动多远,padding 参数描述我们如何处理输入边缘的像素。

Stride

窗口每一步移动的距离称为步幅。我们需要指定图像两个维度的步幅:一种用于从左到右移动,一种用于从上到下移动。该动画显示 strides=(2, 2),每步移动 2 个像素。

Sliding window with a stride of (2, 2).

因为我们希望使用高质量的特征进行分类,所以卷积层通常具有步长=(1, 1)。增加步幅意味着我们会错过摘要中潜在的有价值的信息。然而,最大池化层的步幅值几乎总是大于 1,如 (2, 2) 或 (3, 3),但不能大于窗口本身。

可以使用 strides=2 来代替 strides=(2, 2) 进行参数设置。

Padding

当我们设置 padding='valid' 时,卷积窗口将完全保留在输入内部。缺点是输出会缩小(丢失像素),并且对于较大的内核,缩小得更多。这将限制网络可以包含的层数,特别是当输入尺寸较小时。

另一种方法是使用 padding='same'。这里的技巧是在输入的边界周围填充 0,使用足够的 0 使输出的大小与输入的大小相同。然而,这可以具有削弱边界处像素的影响的效果。下面的动画显示了具有“相同”填充的滑动窗口。

Illustration of zero (same) padding.

当设置 padding='same' 时,意味着要进行 “零填充”(zero-padding)以保持输入和输出特征图的大小相同。

具体来说,如果你有一个输入特征图大小为 HxW(高度 x 宽度),并且应用了一个卷积核(filter)大小为 FxF,其中 F 通常是奇数,然后使用 'same' 填充,那么卷积操作将会在输入特征图的周围填充零,以使输出特征图的大小仍然为 HxW

The Receptive Field

追溯某个神经元的所有连接,最终到达输入图像。神经元连接到的所有输入像素都是该神经元的感受野。感受野只是告诉您神经元从输入图像的哪些部分接收信息。

Illustration of the receptive field of two stacked convolutions.

如果你的layer是一个 3×3 的卷积层,那么该层的每个神经元将从一个 3x3 的像素块中接收输入(除了可能在边缘处);再叠加带有 3x3 卷积核的卷积层时,从顶部的神经元回溯连接,你可以看到它与输入中的一个 5x5 像素块(底层)相连:中间层中 3x3 像素块中的每个神经元与一个 3x3 的输入块相连,但它们在一个 5x5 的输入块中重叠。因此,顶部的神经元具有一个 5x5 的感受野

One-Dimensional Convolution

一维卷积,序列上的卷积就像图像上的卷积一样。区别只是序列上的滑动窗口只有一个方向(从左到右)行进,而不是图像上的两个方向。就像二维一样,挑选出的特征取决于内核中数字的模式。

经典代码

卷积窗口和池化窗口的size、stride and padding:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# YOUR CODE HERE: choose an image
image = kaggle_k

# YOUR CODE HERE: choose a kernel
kernel = sharpen

visiontools.show_extraction(
image, kernel,

# YOUR CODE HERE: set parameters
conv_stride=1,
conv_padding='valid',
pool_size=2,
pool_stride=2,
pool_padding='same',

subplot_shape=(1, 4),
figsize=(14, 6),
)
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2024 Guijie Wang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信