Machine learning Yolo对象检测:包括不包含要预测的类的图像?

Machine learning Yolo对象检测:包括不包含要预测的类的图像?,machine-learning,deep-learning,object-detection,yolo,Machine Learning,Deep Learning,Object Detection,Yolo,我想在我自己的数据集上训练tiny yolo。我想预测三类人:汽车、行人和骑自行车的人;所有这些都已注释 我的数据集还包括不包含这些类的图像(因此没有注释)。我应该在培训中包括这些图像吗?为什么 谢谢大家! TLDR;您不需要提供没有类的图像 YOLO将输出划分为单独的网格单元,每个网格单元都有一个或多个锚定框优先级,每个锚定框优先级预测对象类与“非对象性”的输出值 由于大多数图像不会在每个网格单元中包含对象,因此它自然会学习如何识别“无对象” 事实上,通常情况下,没有对象的锚太多,而实际对象的

我想在我自己的数据集上训练tiny yolo。我想预测三类人:汽车、行人和骑自行车的人;所有这些都已注释

我的数据集还包括不包含这些类的图像(因此没有注释)。我应该在培训中包括这些图像吗?为什么


谢谢大家!

TLDR;您不需要提供没有类的图像

YOLO将输出划分为单独的网格单元,每个网格单元都有一个或多个锚定框优先级,每个锚定框优先级预测对象类与“非对象性”的输出值

由于大多数图像不会在每个网格单元中包含对象,因此它自然会学习如何识别“无对象”

事实上,通常情况下,没有对象的锚太多,而实际对象的锚太少会造成不平衡。这就是为什么YOLO使用一个联合损失函数来降低负示例λ_noobj=.5的权重

其他方法,如SSD使用“硬负面挖掘”来减少负面示例的数量并解决不平衡问题

我能想到的一个例外是:如果您所有的培训示例都包含整个视野中的许多对象(即人群、交通堵塞等),那么您可能需要包含一些没有对象的培训示例


另一个例外是,如果您的对象始终显示在同一网格单元中(例如,中心),则您可能需要一些纯粹的负面示例,或者使用数据增强生成对象出现在不同位置的示例。

建议使用不带对象的图像,但我不能确切地确定它的实际原因是什么

希望您的训练数据集包含未标记的图像 您不想检测的对象-不带 有界框(空的.txt文件)-使用尽可能多的负片图像 示例,因为存在带有对象的图像


除了提供模型应该检测到的训练数据外,还可以提供不应该检测到的负面数据。没有注释的图像暗示其中的任何内容都不是模型应该检测到的

假设你正在训练一个模型来检测黄色出租车。当然,您可以提供黄色出租车的数据。但它也有意义,包括负面数据包含黄色物体,而不是出租车以及汽车,不是出租车。这会阻止您的网络了解任何黄色的东西都是出租车,或者任何汽车都是出租车

神经网络有点像黑匣子,但从理论上看,你可以说它们以某种方式从输入中提取某些抽象特征。基于提取的特征,它们确定(例如)对象的类别和位置

然后,训练神经网络意味着该网络学习寻找与确定对象类别和位置相关的抽象特征。神经网络的本质使得我们很难理解它在学习什么特性。我们所能看到的是,神经网络开始按照我们训练它的方式运行

如果没有负面数据,网络可能会学习太抽象的特征。然后,网络可能会在其他不应检测的对象中找到这些特征。例如,在我们的团队中,我们训练了一个YOLO网络来检测某些植物。但有一次,我们发现我们的一个网络也在一张只有方块的图像中检测到了植物

负面数据为学习功能提供了更多反馈。在培训过程中,网络可能会开始学习过于抽象的特征。但是,网络很可能开始检测负面数据中的对象。然后,训练算法发现网络错误地检测到对象并提供反馈


Rohit提到了AlexeyAB的github页面,指出您应该提供尽可能多的负片样本图像,就像提供对象图像一样。由于AlexeyAB是YOLO的主要贡献者之一,除非你有明确证据证明他错了,否则遵循他的建议可能不会有什么坏处。

那么,将那些不需要的和未标记的图像放入你的数据集中有什么意义呢?我投票结束这个问题,因为它是关于ML理论,而不是编程。