是否有可能在没有适当训练数据的情况下执行对象检测

问题描述 投票:1回答:1

对于我的任务,我从汤姆和杰里的视频中提取了一系列帧。我需要检测框架中的对象(在我的情况下,对象是tom和jerry)及其位置。由于我的数据集与ImageNet中的类不同,因此我没有任何训练数据。

我进行了广泛的搜索,似乎有一些工具需要手动裁剪图像的位置,如果没有这种手动工作,有没有办法做到这一点?

任何建议都会非常有帮助,非常感谢!

deep-learning computer-vision object-detection
1个回答
1
投票

没有这种手动工作,有没有办法做到这一点?

欢迎使用机器的当前状态,这是由需要大量数据的网络以及大量的劳动和在创建数据集方面的工作所推动的:)标签在这里并将保留一段时间,以告诉您的网络(通过损失函数)您想要的去做。但是,..您根本不会处于这种情况下,因为您可以使用预先训练的网络,然后微调到可爱的杰里和汤姆(获取训练数据本身将是1-2小时)。那么,这种微调是什么?它如何工作?假设您正在接受Imagenet上经过培训的预训练网络,并且该网络可以在Imagenet中定义的类上表现良好。这将是您的起点。该网络已经从ImageNet学习了有关所有这些对象的相当抽象的功能,这就是为什么该网络能够使用少量新类样本进行学习转移的原因。现在,当您将Tom和Jerry添加到网络输出中并在少量数据(20-100个样本)上进行微调时,它的性能不会太差(我想acc将在65-85%之间)。所以这是我的建议:

  1. google一些易于训练的经过培训的网络。我找到了this。参见4. Transfer Learning with Your Own Image Dataset章。
  2. 选择一些labeling tool
  3. 标签20-100个Toms,带有边框的Jerries。对于像这样的小型数据集,请将其分为./train(80%)和./test(20%)。尝试捕捉不同的姿势,不同的背景,彼此不同的框架。去一些augmentation
  4. 删除最后一个网络层并为2个新输出Tom和Jerry添加层。
  5. 培训(微调),检查测试仪的准确性。
  6. 玩得开心!使用更多数据再次训练它。

“是否可以在没有经过适当培训的情况下执行对象检测数据?”

有点,但是我无法想象有什么比微调更简单的了。我们可以在这里谈论:

A。非机器学习方法:这是计算机视觉+手工制作功能+手动定义参数并将其用作检测器,但是在您的情况下,这不是您想要的方式;但是,某些框滑动和手动颜色直方图阈值处理可能适用于Tom和Jerry(此阈值参数自然可能会受到训练)。这通常比拟议的微调要做的工作更多。有时,这是一种以这种方式标记成千上万个样本,然后纠正标记,然后训练功能更强大的检测器的方法。这种方法足以完成许多任务,其好处是轻巧和快速。

B。没有适当训练数据的机器学习方法。或者也许像人类一样处理少量数据。这主要是新兴的,目前正在积极的研发中,我最喜欢的是:

  • 微调预训练网络。嘿,我们正在使用它,因为它是如此简单!
  • 一次性方法,如三重损失+深度指标
  • 一次/几次射击时使用的记忆增强神经网络
  • 无监督,半监督方法
  • 生物似然的网,包括无反向传播方法,仅通过监督即可调整最后一层
© www.soinside.com 2019 - 2024. All rights reserved.