使用 TensorFlow(一般是 ML)根据绿色条纹的存在对行李袋标签进行分类是否可靠?

数据挖掘 分类 张量流 图像分类
2022-03-05 01:58:06

除了侧面有条纹之外,图像是相同的。我正在尝试将图像分类为 2 类:greenStripe、noGreenStripe。

我尝试使用带有小数据集的 tensorflow 重新训练(每个类约 40 张图片,批量大小为 8),但结果非常糟糕。我不敢承诺使用更多数据进行培训,因为这很耗时。

你有什么建议?有没有更好的方法,还是问题出在小训练数据集上?

3个回答

科学的答案是,这取决于。

如果您使用任何类型的 Deep net,那么 40 张图像太少了。更深入地描述您的问题设置可能会有所帮助。袋子总是在同一个地方,还是需要先本地化?这些细节可以帮助其他用户进行推荐。

作为第一种方法,在您尝试深度网络或任何类型的机器学习之前,我会先尝试一个简单的基线。你知道你的绿色条纹的确切像素值是多少吗?然后,您可以简单地检查这种颜色是否存在。这相当粗略,但我会看看这能让你走多远,很高兴看看你的 ML 方法是否能超越这个简单的基线。随后,您还可以考虑尝试对行李标签进行本地化(以您喜欢的任何方式),然后对其进行裁剪并检查该绿色条纹的存在。

1)您可以上传示例图片吗?会更容易做出决定。

2)您的数据集非常小,从头开始训练任何重要的东西肯定会过度拟合模型。采用一个现有的模型,它知道什么是包(例如 Mask R-CNN),并通过更改损失函数和一些架构对其进行微调以适应您的问题

3) 实际框架无关紧要:使用您认为方便的框架。

假如说

  • 包在自由/不受约束的环境中
  • 您实际上是在寻找标签中的条形码

我建议以下管道:

在此处输入图像描述

1 - 使用预训练的 YOLOv3模型检测袋子

2 - 检测标签

  • 创建一个标签检测器,理想情况下使用带有 40 个标签图像数据集的旋转不变特征(例如 HOG)。您可以执行数据扩充(旋转和缩放就足够了)以增加数据集的大小。
  • 您还可以使用图像配准进行基于特征的匹配(参见12,13 和 14 课的讲义)

3 - 估计并执行仿射变换以“正面化”标签

参见第 14 课的讲义。

执行条形码分割然后读取它

参见第 6 课的讲义。