android - ML kit 对象检测适当的数据集和模型
问题描述
我正在制作一个应用程序,它可以扫描类似魔方的谜题(多米诺立方体、金字塔、slimtower 等),并根据检测到的面孔识别谜题并显示解决方案的步骤。
我想检测图片中的拼图,获取边界框,然后执行边缘检测等图像处理,识别边界框内拼图的颜色。对于对象检测,我使用带有自定义模型的 ML-kit 对象检测。
到目前为止,我已经能够重新训练基于mobilenet_v2的模型,该模型返回正确的边界框,但几乎不能正确分类对象,并且所有内容都归类为 pyraminx(参见1、2或3)。我的数据集由背景中噪音最小的彩色个体面孔组成。我还尝试在检测到的边缘的二进制图像上重新训练上述模型,因为我只需要面部周围的边界框并且不关心颜色,但这非常不成功并且没有检测到任何东西。
所以我的问题是数据集应该是什么样的?它应该看起来像这样还是这样或这样。还有没有更适合这个的模型?
谢谢
解决方案
我将构建数据集以模拟您在现实世界中的期望。例如,如果您要求用户在拍照时将他们的游戏放在白色背景上,那么请使用白色背景上的训练图像。另一方面,如果您的背景不受限制,那么各种嘈杂的背景将是有意义的 - 例如您上面显示的示例的第二张图片。
另外:您的数据集中有多少样本?您可以通过更多样本或扩充您的数据集来改善结果 - 专辑可以在这里提供帮助。
对于分类,我可能会考虑一些实际的解决方法:
- 让用户对游戏进行分类。毕竟,他们知道自己在玩什么游戏,并且可以在应用程序 UI 中自行选择。
- 将分类延迟到以后。只是边界框游戏,就像你正在做的那样。然后,由于您将“执行图像处理,例如边缘检测和识别拼图的颜色”,您是否不能使用该信息进行分类:盒子的数量、游戏块的形状等 - 或者您可能还没有解决这部分问题的问题呢。
- 使用两步分类:如果您的对象检测成功,请使用边界框坐标裁剪图像,然后将其输入另一个分类器,这在可用模型方面为您提供了更大的灵活性。例如,许多这些模型虽然是为 TPU 构建的,但应该编译为移动版 TFLITE。
推荐阅读
- python-3.x - 基于烧瓶形式的用户输入将 Pandas 分组数据发送到烧瓶模板
- docusignapi - Docusign 签名者坐标无法正常工作
- algorithm - Racket 定义的渐进类型 lambda 演算的“重复”语法?
- php - Laravel Eloquent - 如何使用 Eloquent 让每个父母只有 2 个孩子?
- if-statement - 动态 If else 语句,条件值来自数据库
- javascript - 前端框架项目的节点和 npm 版本锁定?
- angular - 在 Angular 应用程序中存储身份验证令牌的替代方法
- r - 使用 Hydromad 部署闪亮的应用程序时出错
- c# - 如何在 C# 中解析和执行自定义脚本?
- python - 如何在按钮pygame上显示变量值?