卷积运算(二维、三维)

时间:2021-07-27
本文章向大家介绍卷积运算(二维、三维),主要包括卷积运算(二维、三维)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1  边缘检测(Edge detection

卷积运算是卷积神经网络最基本的组成部分,看一个例子,这是一个 6×6 的灰度图像,因为是灰度图像,所以它是 6×6×1 的矩阵,而不是 6×6×3 的,因为没有 RGB 三通道,为了检测图像中的垂直边缘,可以构造一个 3×3矩阵,像这样,它被称为过滤器,在论文它有时候会被称为核。对这个 6×6 的图像进行卷积运算,卷积运算用“∗”来表示,用 3×3的过滤器对其进行卷积。这个卷积运算的输出将会是一个 4×4 的矩阵,你可以将它看成一个 4×4 的图像,在 4×4 左上角的那个元素,使用 3×3 的过滤器,将其覆盖在输入图像,如下图所示,然后进行元素乘法(element-wise products)运算,所以:,然后将该矩阵每个元素相加,得到左上角元素为-5,其他依次计算得到4×4 的矩阵:

 再看一个例子:

为什么这个可以做垂直边缘检测呢?这是一个简单的 6×6 图像,左边的一半是 10,右边一般是 0,左边那部分看起来是白色的,像素值 10 是比较亮的像素值,右边像素值比较暗,我使用灰色来表示 0 , 图片里,有一个特别明显的垂直边缘在图像中间,这条垂直线是从黑到白的过渡线,或者从白色到深色, 当你用一个 3×3 过滤器进行卷积运算的时候,这个 3×3 的过滤器可视化为下面这个样子,在左边有明亮的像素,然后有一个过渡,0 在中间,然后右边是深色的,卷积运算后,你得到的是右边的矩阵,在输出图像中间的亮处,表示在图像中间有一个特别明显的垂直边缘。    

还可以检测出水平的边缘,此时用到的过滤器是这样的:,其他操作与上面的垂直边缘检测类似,这里不做详细的解释。

当然也可以使用这种过滤器:,叫做 Sobel 的过滤器,它的优点在于增加了中间一行元素的权重,这使得结果的鲁棒性会更高一些。

或者这种:,这叫做 Scharr 过滤器,它有着和之前完全不同的特性,实际上也是一种垂直边缘检测,如果将其翻转 90 度,就能得到对应水平边缘检测。

三维卷积(Convolutions over volumes

假如说你不仅想检测灰度图像的特征,也想检测 RGB 彩色图像的特征。彩色图像如果是 6×6×3,这里的 3 指的是三个颜色通道,你可以把它想象成三个 6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的 3×3 的过滤器做卷积,而是跟一个三维的过滤器,它的维度是 3×3×3,,这个 3×3×3 的过滤器有 27 个数,27 个参数就是 3 的立方这样这个过滤器也有三层,对应红绿、蓝三个通道,以下两张图片详细说明了三维卷积运算。

理论上,我们的过滤器只关注红色通道,或者只关注绿色或者蓝色通道也是可行的。在卷积运算中,我们也可以使用多个过滤器,下图写出了详细的计算过程,和第一个过滤器卷积,可以得到第一个 4×4 的输出,然后卷积第二个过滤器,得到一个不同的 4×4 的输出,我们做完卷积,然后把这两个 4×4 的输出,取第一个把它放到前面,然后取第二个过滤器输出,我把它画在这,放到后面。所以把这两个输出堆叠在一起,这样你就都得到了一个 4×4×2 的输出立方体。

本文来自博客园,作者:zhang-X,转载请注明原文链接:https://www.cnblogs.com/YY-zhang/p/15067799.html

原文地址:https://www.cnblogs.com/YY-zhang/p/15067799.html