我需要手动修剪 300 个视频吗?

数据挖掘 数据集 数据清理 卷积神经网络
2022-03-06 02:05:48

我希望训练一个基于视频输入检测狗品种的模型。我有一个包含 10 个类的数据集,每个类有 30 个视频。问题在于,对于这些视频中的每一个,狗在整个视频过程中都没有出现。以下是数据集中 2 个视频的示例:

视频 1:后院视频(前 5 秒)--> 狗出现(15 秒)--> 周围建筑物视频(3 秒)

视频 2:草地视频(前 8 秒)--> 狗出现(3 秒)--> 附近人的视频(4 秒)

我假设如果我按原样在视频上训练我的模型,我的 CNN 会检测到冗余特征并因此给出不正确的输出。因此,我是否需要手动修剪 300 个视频中的每一个以仅显示狗出现的部分,或者是否有更简单的方法来解决这个问题?

3个回答

这取决于规模。

我有几种情况,手动执行一项任务会节省时间,因为它不会在将来扩展或重复。

我认为您最多会为每个视频花费五分钟。那是三天的工作时间。如果您迫切需要数据,手动执行和/或委派会比尝试不同的解决方案更快,除非您在该领域有丰富的经验。

如果您有信心在不到一天的时间内实施并解决其中一种建议的方法(两阶段网络,帧到图像),那么我会试一试自动化。
但是,我认为您更有可能将它调试一周或更长时间。

因此,如果此任务是一次性的并且您现在需要数据,我建议手动执行此操作。

一种选择是创建分层系统。第一阶段可以是检测“狗”/“非狗”存在的模型。第二个圣人可能是“狗”是否存在,然后是特定品种。

许多卷积神经网络 (CNN) 是为图像设计的。因此,视频的分类将逐帧进行。

由于这是一项相对常见的任务,因此请找到一个预训练的 CNN,看看它在您的特定数据上的表现如何。如果性能不可接受,则标记您的数据并微调模型。

我会尝试分几个步骤来做到这一点:

  1. 将 fideo 转换为图像帧,然后转换为灰度,再转换为 csv。
  2. 我想在你拥有的大多数视频中,狗出现在视频中的某个时间点,然后消失(或不消失),所以在视频中间,狗几乎总是在那里。所以可能会剪掉除了视频中间的帧之外的所有帧,然后也减少它们的数量(因为运行时间差小于半秒的帧算法是非常浪费资源的(没有任何变化) .
  3. 现在您可以运行规范化和您想要的模型。

希望这可以帮助!