1D 卷积

一维卷积主要用于对只有一个维度的时间序列提取特征,比如信号、股价、天气、文本以及自然语言处理领域。

16658826960765

如上图,图中的输入的数据维度为 8,过滤器的维度为 5, 步长 stride 为 1, 则卷积后输出的数据维度为 8−5+1=4。

2D 卷积

2D 卷积是提取的单张静态图像的空间特征,然后同神经网络结合之后完成图像的分类、检测等计算机视觉方面的任务。

2d_20221016
16658827558899

如上图中的输入的数据维度为(14×14),过滤器大小为 5×5,步长 stride 为 1, 二者做卷积,输出的数据维度为(10×10)即(14−5+1=10)。

3D 卷积

2D 卷积的 CNN 可以较好地处理单张图片,但是对视频,即多帧图像就会束手无策,因为 2D 卷积没有考虑到图像之间的时间维度上的物体运动信息,即光流场。因此,为了能够对视频进行特征,以便用来分类等任务,提出了 3D 卷积,在卷积核中加入时间维度。下图就很好的说明了 2D 卷积和 3D 卷积之间的差异。很明显,我们可以直观的发现 3D CNN 提取的是三维度的方体特征。

3 维卷积,一个 333 的卷积核在立方体上进行卷积,得到输出。 3d_cnn

如下图,假设输入数据的大小为(a1×a2×a3),过滤器大小为 fff, 三维卷积最终的输出为(a1−f+1)×(a2−f+1)×(a3−f+1)。

16658852477248

补充:3D 卷积里面也分为单通道和多通道。 针对单通道,与 2D 卷积不同之处在于,输入的图像多了一个 depth 维度,即输入为(1, depth, height, width),卷积核也多了一个 k_d 维度,因此卷积核在输入 3D 图像的空间维度(height 和 width 维)和 depth 维度上均进行滑窗操作,每次滑窗与 (k_d, k_h, k_w) 窗口内的 values 进行相关操作,得到输出 3D 图像中的一个 value。 针对多通道,输入大小为(3, depth, height, width),则与 2D 卷积的操作一样,每次滑窗与 3 个 channels 上的 (k_d, k_h, k_w) 窗口内的所有 values 进行相关操作,得到输出 3D 图像中的一个 value。

多通道卷积与 3D 卷积

多通道卷积不同的通道上的卷积核的参数是不同的,而 3D 卷积则由于卷积核本身是 3D 的,所以这个由于“深度”造成的看似不同通道上用的就是同一个卷积,权重共享嘛。

总之,多了一个深度通道,这个深度可能是视频上的连续帧,也可能是立体图像中的不同切片。

3D 卷积的应用

3D 卷积就是多了一个深度通道,而这个深度通道可能是视频上的连续帧,也可能是立体图像中的不同切片,所以从应用上来说,主要就是两大主要方向: 视频分类与图像切割

参考

卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解 - szx_spark - 博客园