机器学习图像训练集数据为整个对象但找到部分对象

数据挖掘 张量流
2022-03-16 13:40:54

如果要测试的图像只是对象的一部分,那么拥有整个对象的训练集数据是否有帮助,还是所有训练数据都成为对象的一部分更好?例如,如果测试图片是椅子的腿或椅子的顶部,那么拥有整张椅子的训练集图像数据是否有帮助?还是我应该只专注于获取椅子部分的训练集数据?我打算使用 TensorFlow。

我会将物体归类为椅子,而不是椅子的一部分。但是,如果它可以通过识别零件来提高我识别椅子的比率,它可以识别零件,并且我可以在最后结合信息。我只需要在图像中识别出至少一张椅子(或更可能是椅子的一部分)。

1个回答

使用您希望网络识别的相同类型的输入进行训练。没有简单的方法可以添加您认为应该有助于网络的逻辑组合,因为尽管深度神经网络被炒作是打击 AI 的最佳选择,但它本质上只是非常愚蠢的复杂统计分析器。

如果您提供训练图像,CNN 将学习如何统计组合组件来确定整个图像是否是椅子。例如,如果图像是一个穿着棉袄的人,那可能看起来有点像椅子的靠背。NN 可能会输出 0.75 的置信度,即椅子靠背在图像中。如果您手动组合来自组件的决策,您将需要从中确定是否说图像中有一把椅子。如果你把它留给网络,CNN 本身会将这些数据与额外的检测相结合,有 0.2 的置信度认为该人的腿是椅子腿(并且它们位于错误的相对位置)并决定 - 希望 - 没有椅子。

您无需为 NN 显式标记对象的组件即可了解组件及其外观。Deep Dream 和其他 CNN 可视化的输出表明,CNN 在内部构建了自己的结构来表示对象的一部分。它们不一定与人们关注的部分相同,但通过允许选择训练过程,您应该能够获得良好的识别率。

所以,如果你给网络很多椅子部件分别识别,它会更好地准确标记这些椅子部件。但这并不能真正帮助网络识别椅子。事实上,如果训练图像与预期识别的图像差异太大,主要任务可能会更糟。另外,您的任务是决定如何重新组合类以稍后检测椅子。

可能架构和图像处理管道可用于将部分的逻辑知识及其姿势组合成整个对象。这是我非常期望成为计算机视觉系统研究的一个活跃领域。但是,这些方法不会使用简单的 CNN 和更改训练数据作为解决方案。