如何使用 CNN-LSTM 对视频流中的多个边界框的图像序列进行分类?

时间:2021-07-11 14:24:43

标签: computer-vision pytorch conv-neural-network classification lstm

我正在处理一个 pytorch 项目,我在其中使用网络摄像头视频流。对象检测器用于查找帧内的对象,每个框都由跟踪器赋予一个 id。然后,我想用 CNN-LSTM 分析每个边界框,并根据该框的前一帧序列(最后 5 帧)对其进行分类(二进制分类)。我希望程序尽可能接近实时地运行。 目前我被困在我的问题的 CNN-LSTM 部分 - 检测器和跟踪器已经很好地工作了。 我对如何处理这项任务有点无能为力。以下是我的问题:

1) 在这种情况下,推理是如何工作的?我是否必须为包含最后 5 帧的每个边界框保存 np 数组,然后添加当前帧并删除最旧的帧?然后将模型用于当前帧中的每个边界框。这种方式听起来很慢而且效率很低。有没有更快或更简单的方法?

2) 您有任何创建数据集的技巧吗?我有几个带有边界框和标签的视频。我应该循环播放视频并将每个边界框的每个帧序列保存在一个新文件夹中,以及一个包含标签的 csv 吗?我从未使用过 CNN-LSTM,所以我不知道如何加载用于训练的数据。

3) 是否可以并行使用 CNN 提取的特征?如上所述,LSTM 应该将提取的特征用于二元分类问题。只有当前帧才需要分类。我想使用基于提取的 CNN 特征的额外分类器(8 个类),也仅用于当前帧。对于这个分类器,不需要 LSTM。

由于我的解释可能非常混乱,下图希望有助于理解我想要构建的内容:

Architecture

这是我想要使用的架构。这可以使用 Pytorch 吗?到目前为止,我只分别使用了 CNN 和 LSTM。任何帮助是apprechiated :)

0 个答案:

没有答案