首页 > 解决方案 > ML kit 对象检测适当的数据集和模型

问题描述

我正在制作一个应用程序,它可以扫描类似魔方的谜题(多米诺立方体、金字塔、slimtower 等),并根据检测到的面孔识别谜题并显示解决方案的步骤。

我想检测图片中的拼图,获取边界框,然后执行边缘检测等图像处理,识别边界框内拼图的颜色。对于对象检测,我使用带有自定义模型的 ML-kit 对象检测。

到目前为止,我已经能够重新训练基于mobilenet_v2的模型,该模型返回正确的边界框,但几乎不能正确分类对象,并且所有内容都归类为 pyraminx(参见123)。我的数据集由背景中噪音最小的彩色个体面孔组成。我还尝试在检测到的边缘的二进制图像上重新训练上述模型,因为我只需要面部周围的边界框并且不关心颜色,但这非常不成功并且没有检测到任何东西。

所以我的问题是数据集应该是什么样的?它应该看起来像这样还是这样这样。还有没有更适合这个的模型?

谢谢

标签: androidtensorflowobject-detectiongoogle-mlkit

解决方案


我将构建数据集以模拟您在现实世界中的期望。例如,如果您要求用户在拍照时将他们的游戏放在白色背景上,那么请使用白色背景上的训练图像。另一方面,如果您的背景不受限制,那么各种嘈杂的背景将是有意义的 - 例如您上面显示的示例的第二张图片。

另外:您的数据集中有多少样本?您可以通过更多样本或扩充您的数据集来改善结果 - 专辑可以在这里提供帮助。

对于分类,我可能会考虑一些实际的解决方法:

  • 让用户对游戏进行分类。毕竟,他们知道自己在玩什么游戏,并且可以在应用程序 UI 中自行选择。
  • 将分类延迟到以后。只是边界框游戏,就像你正在做的那样。然后,由于您将“执行图像处理,例如边缘检测和识别拼图的颜色”,您是否不能使用该信息进行分类:盒子的数量、游戏块的形状等 - 或者您可能还没有解决这部分问题的问题呢。
  • 使用两步分类:如果您的对象检测成功,请使用边界框坐标裁剪图像,然后将其输入另一个分类器,这在可用模型方面为您提供了更大的灵活性。例如,许多这些模型虽然是为 TPU 构建的,但应该编译为移动版 TFLITE。

推荐阅读