Android ML工具包对象检测适当的数据集和模型

Android ML工具包对象检测适当的数据集和模型,android,tensorflow,object-detection,google-mlkit,Android,Tensorflow,Object Detection,Google Mlkit,我正在制作一个应用程序,它可以扫描rubiks立方体类的谜题(DominoCube、pyraminx、slimtower等),并根据检测到的人脸识别谜题并显示解决方案的步骤 我想检测图片中的拼图,获得边界框,然后执行图像处理,如边缘检测和识别边界框内拼图的颜色。对于目标检测,我使用cutom模型 到目前为止,我已经能够重新训练一个模型,它基于哪种类型返回正确的边界框,但几乎没有正确地分类对象,所有东西都分类为pyraminx(请参阅,或)。我的数据集由背景噪音最小的彩色人脸组成。我还尝试在检测到

我正在制作一个应用程序,它可以扫描rubiks立方体类的谜题(DominoCube、pyraminx、slimtower等),并根据检测到的人脸识别谜题并显示解决方案的步骤

我想检测图片中的拼图,获得边界框,然后执行图像处理,如边缘检测和识别边界框内拼图的颜色。对于目标检测,我使用cutom模型

到目前为止,我已经能够重新训练一个模型,它基于哪种类型返回正确的边界框,但几乎没有正确地分类对象,所有东西都分类为pyraminx(请参阅,或)。我的数据集由背景噪音最小的彩色人脸组成。我还尝试在检测到的边缘的二值图像上重新训练上述模型,因为我只需要脸部周围的边界框,不关心颜色,但这非常不成功,没有检测到任何东西

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


谢谢

我将构建数据集,以模拟您在现实世界中的期望。例如,如果您要求用户在拍照时将游戏置于白色背景上,则使用白色背景上的训练图像。另一方面,如果你的背景是不受约束的,那么各种各样的和嘈杂的背景是有意义的——比如你上面展示的例子的第二幅图像

另外:您的数据集中有多少个样本?您可以使用更多的示例或扩充数据集来改进结果—这可能会有所帮助

对于分类,我可能会考虑一些实际的工作:

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

很抱歉回复太晚。我的数据集中大约有2000张图片。然而,你的回答对我帮助很大,尤其是专辑模块。游戏分类有点离谱,因为应用程序的任务是自动检测谜题。然而,我已经能够训练出一个分类模型,这些是我迄今为止的结果。我使用了基本的mobilenet_v2模型,数据集约为14000张图片(每节课约3000张),正如你所看到的,我也将你的想法用于边界框。我之前考虑过,但有点想让用户在整个屏幕上自由移动拼图。然而,这更有意义。因此,目前我使用边界框,裁剪图像并对其进行分类,我得到了大约0.6到0.9的精度,这对我来说已经足够好了。现在是开始正确检测颜色的时候了