训练地板检测模型:使用全房间图像还是仅使用裁剪后的地板?

数据挖掘 深度学习 图像分类 卷积
2021-10-09 19:17:28

我正在尝试建立一个地板类型的图像分类模型。有一个名为OpenSurfaces的开放数据集,其中包含按房间上出现的每个项目的材料类型分割的图像。

像这样的东西:

在此处输入图像描述

我认为使用这个数据集来训练地板检测模型会是一件好事,所以我编写了一个脚本来提取我想要检测的材料(木材、瓷砖、地毯、大理石、石头……)。这些是我通过脚本获得的图像的一些示例:

木质材料:

在此处输入图像描述

瓦:

在此处输入图像描述

地毯:

在此处输入图像描述

然后我训练了一个 CNN,但我只有 70% 的准确率,如果我走的是正确的道路,我现在真的没有。是用我提取的图片训练模型更好,还是用整个房间的图像训练它更好,而不是分割的部分?

我很迷茫,所以任何指导将不胜感激。

3个回答

目前尚不清楚您要做什么(地板检测或只是分类)。

如果您的任务是对不同类型的地板进行分类,则可以只使用分段部分。但是如果你想检测地板并对其进行分类,你也必须给你的模型一些负面的例子(它也需要学习非地板的样子)。

但是,通常最好在完整图像上训练模型即使只是一个地板分类任务,图像的上下文也可以提供帮助(厨房增加瓷砖的概率,卧室增加木地板的概率等)。

我认为你可能过度思考和过度设计这个。答案很简单:您应该始终使用与预测周期中的数据最相似的数据进行训练。

在您的情况下,根据您的架构方式,您可能会进行“延长”的预处理期,在此期间您可以拍摄图像,首先找到地板,然后对纹理饰面(或其他任何东西)进行分类。所以它实际上可能是多种算法的组合,但我会让你决定。

无论如何,您应该始终考虑输入数据的样子——在预测时,而不是建模时——并相应地进行。

似乎数据库有一些非常部分/错误的信息,可能会“混淆” ML - 请参阅下面的“平铺”实例示例,这显然是错误的(请参阅标记为 #1 的黄色小三角形)。

一个好的数据集必须与您试图“教”机器进行分类的内容保持一致。

你是如何为你的学习过程过滤训练/验证集的?

在此处输入图像描述