是否可以在没有适当训练数据的情况下执行对象检测
Is it possible to perform Object Detection without proper training data
对于我的任务,我得到了从猫和老鼠视频中提取的一系列帧。我需要检测框架中的对象(在我的例子中,对象是猫和老鼠)及其位置。由于我的数据集与 ImageNet 中的 类 不同,因此我没有训练数据。
我进行了广泛的搜索,似乎有一些工具需要我手动裁剪图像的位置,有没有没有这种手动工作的方法可以做到这一点?
任何建议都会很有帮助,非常感谢!
is there any way to do this without such manual work ?
欢迎来到机器学习的当前状态,它由数据饥渴的网络和大量的劳动力驱动,并致力于创建数据集:) 标签在这里并将保留一段时间,以告诉您的网络(通过损失函数)你想做什么。
但是但是.. 你根本没有那么糟糕的情况,因为你可以使用预训练的网络并微调到你可爱的 Jerry 和 Tom 中(获取训练数据本身将是 1-2 小时)。
那么这个微调是什么,它是如何工作的呢?假设您正在使用一个在 Imagenet 上训练的预训练网络,并且该网络可以在 Imagenet 中定义的 classes 上表现相当好。这将是你的起点。该网络已经从 ImageNet 中学习了关于所有这些对象的相当抽象的特征,这就是为什么该网络能够使用相当少量的新 class 样本进行迁移学习。现在,当您将 Tom and Jerry 添加到网络输出并根据少量数据(20-100 个样本)对其进行微调时,它的性能不会那么差(我猜 acc 将在 65-85% 之间)。所以这是我的建议:
- google 一些易于交互的预训练网络。我找到了this。请参阅第
4. Transfer Learning with Your Own Image Dataset
. 章
- 挑一些 labeling tool.
- 用边界框标记 20-100 猫和老鼠。对于像这样的小数据集,将其划分为 ./train (80%) 和 ./test (20%)。尝试捕捉不同的姿势、不同的背景、彼此截然不同的画面。去一些 augmentation.
- 删除最后一个网络层并为 2 个新输出添加层,Tom and Jerry。
- 对其进行训练(微调),检查测试集的准确性。
- 玩得开心!用更多数据再次训练它。
"Is it possible to perform Object Detection without proper training
data?"
有点像,但我想不出比微调更简单的事情了。我们可以在这里讨论:
一个。非机器学习方法:计算机视觉+手工制作功能+手动定义参数并将其用作检测器,但在您的情况下,这不是您想要的方式;然而,一些盒子滑动和手动颜色直方图阈值可能适用于汤姆和杰瑞(这个阈值参数自然可能会受到训练)。与提议的微调相比,这通常需要做更多的工作。有时它是一种以这种方式标记数千个样本,然后更正标签,然后训练更强大的检测器的方法。有许多任务,这种方法就足够了,好处是轻量级和速度。
乙。处理没有适当训练数据的机器学习方法。或者可能像人类一样处理少量数据。这主要是新兴领域,目前正在积极研发中,我最喜欢的几个是:
- 微调预训练网络。嘿,我们正在使用它,因为它是如此简单!
- 一次性方法,如三元组损失+深度度量
- one/few 镜头上下文中使用的记忆增强神经网络
- 无监督、半监督方法
- 生物合理网络,包括仅通过监督调整最后一层的无反向传播方法
对于我的任务,我得到了从猫和老鼠视频中提取的一系列帧。我需要检测框架中的对象(在我的例子中,对象是猫和老鼠)及其位置。由于我的数据集与 ImageNet 中的 类 不同,因此我没有训练数据。
我进行了广泛的搜索,似乎有一些工具需要我手动裁剪图像的位置,有没有没有这种手动工作的方法可以做到这一点?
任何建议都会很有帮助,非常感谢!
is there any way to do this without such manual work ?
欢迎来到机器学习的当前状态,它由数据饥渴的网络和大量的劳动力驱动,并致力于创建数据集:) 标签在这里并将保留一段时间,以告诉您的网络(通过损失函数)你想做什么。 但是但是.. 你根本没有那么糟糕的情况,因为你可以使用预训练的网络并微调到你可爱的 Jerry 和 Tom 中(获取训练数据本身将是 1-2 小时)。 那么这个微调是什么,它是如何工作的呢?假设您正在使用一个在 Imagenet 上训练的预训练网络,并且该网络可以在 Imagenet 中定义的 classes 上表现相当好。这将是你的起点。该网络已经从 ImageNet 中学习了关于所有这些对象的相当抽象的特征,这就是为什么该网络能够使用相当少量的新 class 样本进行迁移学习。现在,当您将 Tom and Jerry 添加到网络输出并根据少量数据(20-100 个样本)对其进行微调时,它的性能不会那么差(我猜 acc 将在 65-85% 之间)。所以这是我的建议:
- google 一些易于交互的预训练网络。我找到了this。请参阅第
4. Transfer Learning with Your Own Image Dataset
. 章
- 挑一些 labeling tool.
- 用边界框标记 20-100 猫和老鼠。对于像这样的小数据集,将其划分为 ./train (80%) 和 ./test (20%)。尝试捕捉不同的姿势、不同的背景、彼此截然不同的画面。去一些 augmentation.
- 删除最后一个网络层并为 2 个新输出添加层,Tom and Jerry。
- 对其进行训练(微调),检查测试集的准确性。
- 玩得开心!用更多数据再次训练它。
"Is it possible to perform Object Detection without proper training data?"
有点像,但我想不出比微调更简单的事情了。我们可以在这里讨论:
一个。非机器学习方法:计算机视觉+手工制作功能+手动定义参数并将其用作检测器,但在您的情况下,这不是您想要的方式;然而,一些盒子滑动和手动颜色直方图阈值可能适用于汤姆和杰瑞(这个阈值参数自然可能会受到训练)。与提议的微调相比,这通常需要做更多的工作。有时它是一种以这种方式标记数千个样本,然后更正标签,然后训练更强大的检测器的方法。有许多任务,这种方法就足够了,好处是轻量级和速度。
乙。处理没有适当训练数据的机器学习方法。或者可能像人类一样处理少量数据。这主要是新兴领域,目前正在积极研发中,我最喜欢的几个是:
- 微调预训练网络。嘿,我们正在使用它,因为它是如此简单!
- 一次性方法,如三元组损失+深度度量
- one/few 镜头上下文中使用的记忆增强神经网络
- 无监督、半监督方法
- 生物合理网络,包括仅通过监督调整最后一层的无反向传播方法