1 3d卷积的官方详解
2 2D卷积与3D卷积
1)2D卷积
2D卷积:卷积核在输入图像的二维空间进行滑窗操作。
2D单通道卷积
对于2维卷积,一个3*3的卷积核,在单通道图像上进行卷积,得到输出的动图如下所示:
2D多通道卷积
在之前的2D单通道的例子中,我们在一张图像上使用卷积核进行扫描,得到一张特征图。这里的“被扫描图像”是一个通道,而非一张彩色图片。如果卷积核每扫描一个通道,就会得到一张特征图,那多通道的图像应该 被怎样扫描呢?会有怎样的输出呢?
在一次扫描中,我们输入了一张拥有三个通道的彩色图像。对于这张图,拥有同样尺寸、但不同具体数值的三个卷积核会分别在三个通道上进行扫描,得出三个相应的“新通道”。由于同一张图片中不同通道的结构一定是一致的,卷积核的尺寸也是一致的,因此卷积操作后得出的“新通道”的尺寸也是一致的。
得出三个“新通道”后,我们将对应位置的元素相加,形成一张新图,这就是卷积层输入的三彩色图像的第一个特征图,如下图所示:
这个操作对于三通道的RGB图像、四通道的RGBA或者CYMK图像都是一致的。只不过, 如果是四通道的图像,则会存在4个同样尺寸、但数值不同的卷积核分别扫描4个通道。
因此,在一次扫描中,无论图像本身有几个通道,卷积核会扫描全部通道之后,将扫描结果加和为一张 feature map。所以,一次扫描对应一个feature map,无关原始图像的通道数目是多少,所以 out_channels就是扫描次数,这之中卷积核的数量就等于输入的通道数in_channels x 扫描次数 out_channels。
2D卷积的计算:
输入层: (Cin 为输入的通道数)
超参数:扫描次数:k
过滤器中卷积核维度:w*h
滑动步长(stride):s
填充值(padding):p
输出层:(Cout为输出的通道数)
输出层和输入层之间的参数关系为:
参数量为:
2)3D卷积
3D单通道
对于3维卷积,一个3*3*3的卷积核在立方体上进行卷积,得到输出如下:
注意:三维单通道跟二维多通道有什么区别吗?
有。二维多通道卷积不同通道上的卷积核的参数是不同的,而三维卷积的卷积核本身就是3D的。三维单通道的一个三维卷积核的参数在整个图像上权重共享。三维卷积核比二维卷积核多了一个depth维度。这个深度可能是视频上的连续帧,也可能是立体图像中的不同切片。
3D多通道
类似于2D多通道,例如,对于三维多通道,输入大小为(3, depth, height, width)的图像。
对于这张图,拥有同样尺寸、但不同具体数值的三个三维卷积核会分别在三个通道上进行扫描,得出三个相应的“新通道”。得出三个“新通道”后,我们将对应位置的元素相加,形成一张新图。
3D卷积的计算
输入层:
超参数:扫描次数:k
过滤器中卷积核维度:w*h*d
滑动步长(stride):s
填充值(padding):p
输出层:
输出层与输入层之间的参数关系为:
参数量为:(w*h*d+1)*k
参考:
卷积神经网络中二维卷积核与三维卷积核有什么区别?
一文搞定3D卷积