关于为什么我用 turicreate 创建的 coreml 模型不起作用的任何想法?

Any ideas on why my coreml model created with turicreate isn't working?

这里的 ML 几乎是全新的。我正在尝试使用 turicreate 创建手部检测 CoreML 模型。

我使用的数据集来自 https://github.com/aurooj/Hand-Segmentation-in-the-Wild , which provides images of hands from an egocentric perspective, along with masks for the images. I'm following the steps in turicreate's "Data Preparation" (https://github.com/apple/turicreate/blob/master/userguide/object_detection/data-preparation.md) 逐步创建 SFrame。整个过程中检查变量的内容,似乎没有任何错误。

准备好数据后,我按照 https://github.com/apple/turicreate/tree/master/userguide/object_detection

的 "Introductory Example" 部分中的步骤操作

当 turicreate 执行迭代以创建模型时,我得到错误提示。好像一点Loss都没有,好像不太对。

创建模型后,我尝试使用 SFrame 的 test_data 部分对其进行测试。这些预测的结果只是空数组,这显然是不正确的。

将模型导出为 CoreML .mlmodel 并在应用程序中试用后,它无法识别任何东西(不足为奇)。

我是模型创建的新手,我不知道哪里出了问题。数据集对我来说似乎很准确。我对数据集所做的唯一更改是某些蒙版没有明确的文件扩展名(它们是 PNG),因此我添加了 .png 扩展名。我还重命名了图像以遵循 turicreate 的教程格式(即 vid4frame025.image.pngvid4frame025.mask.0.png)。同样,使用此数据的 SFrame 创建过程似乎在每个步骤都是正确的。我能够遵循 turicreate 的教程数据集的过程(自行车和汽车)成功。对可能出现的问题有什么想法吗?

我发现了问题,基本上是因为我对Python不熟悉。

在数据准备部分的一部分中,在从蒙版图像创建边界框之后,每个注释都被分配了一个 'label' 来指示注释的对象类型。我的数据的名称格式与教程的数据不同,因此我的注释不是每个注释都具有 'label': 'bike',而是 'label': 'vid4frame25`, 'label': 'vid4frame26', etc

更正这一点,使每个注释都有 'label': 'hand' 似乎已经更正了这一点(或者至少到目前为止,它正在创建一个看似合法的模型)。