我如何为 3d 卷积神经网络提供输入?

How I can give input to the 3d Convolutional Neural Network?

3d CNN 适用于视频、MRI 和扫描数据集。你能告诉我如果我必须将输入(视频)提供给建议的 3d CNN 网络,并训练它的权重,我该怎么做?作为 3d CNN 期望 5 维输入;

[batch size, channels, depth, height, weight]

如何从视频中提取深度?

如果我有 10 个不同的 10 个视频 类。每个视频的时长为 6 秒。我每秒提取 2 帧,每个视频大约 12 帧。

RGB 视频的大小为 112x112 --> 高度 = 112,宽度 = 112,通道数 = 3

如果我保持批量大小等于 2

1 个视频 --> 6 秒 --> 12 帧(1 秒 == 2 帧)[每帧 (3,112,112)]

10 个视频 (10 类) --> 60 秒 --> 120 帧

所以5个维度是这样的; [2, 3, 12, 112, 112]

2 --> 每个批量大小将处理两个视频。

3 --> RGB 通道

12 --> 每个视频包含 12 帧

112 --> 每个视频的高度

112 --> 每个视频的宽度

我说得对吗?

是的,如果您想使用 3D CNN,这似乎很有意义。您实际上是在为输入添加一个时间维度,因此使用 depth 维度是合乎逻辑的。这样你就可以将通道轴保持为特征通道(不是时空维度)。

请记住,3D CNN 确实是内存密集型的。存在其他方法来处理时间相关输入。在这里,您实际上并没有处理第三个维度(即 'spatial' 维度),因此您 不需要 使用 3D CNN。


编辑:

If I give the input of the above dimension to the 3d CNN, will it learn both features (spatial and temporal)? [...] Can you make me understand, spatial and temporal features?

如果您使用 3D CNN,那么您的过滤器将具有 3D 内核,并且卷积将是三维的:沿两个空间维度(宽度和高度)以及深度维度(此处对应于时间维度)维度,因为您正在为视频帧序列使用深度维度。3D CNN 将允许您捕获局部('local',因为感知场受内核大小和总层数的限制CNN)时空信息。