如何为对象检测任务创建与 TuriCreate 兼容的 SFrame

Posted

技术标签:

【中文标题】如何为对象检测任务创建与 TuriCreate 兼容的 SFrame【英文标题】:How to create an SFrame compatible with TuriCreate for object detection task 【发布时间】:2020-12-03 13:28:38 【问题描述】:

我正在尝试创建一个包含图像和边界框坐标的SFrame,以便使用TuriCreate 执行对象检测。 我通过IBM Cloud Annotations 创建了自己的数据集,导出为CreateML 格式。当我跑步时:

usage_data = tc.SFrame.read_json("annotations.json")

我明白了:

['label': 'xyz'... | 8be1172e-44bb-4084-917f-db....

这不是请求的格式。确认运行以下代码:

data = tc.SFrame.read_json("annotations.json")

train_data, test_data = data.random_split(0.75)

model = tc.object_detector.create(train_data)

predictions = model.predict(test_data)

`我明白了:

ToolkitError: No "feature" column specified and no column with expected type "image" is found. "datasets" consists of columns with types: list, str.

我想知道:

    CreateML格式的导出数据是否正确? 我可以使用SFrame.read_json() 来读取此类数据吗?

【问题讨论】:

【参考方案1】:

您需要从您的图像文件夹中创建一个 SFrame,然后将其加入到您的注释 SFrame 中,例如:

imagesSFrame = turicreate.image_analysis.load_images('imagesFolder/')
combinedSFrame = images.join(annotationsSFrame)

只需确保您的每个注释都有一个与您的 imagesSFrame 中的路径完全匹配的路径。以下是我的 csv 格式:

path, annotation,
imagesFolder/image1.png,['label': 'dog', 'coordinates': 'height': 118, 'width': 240, 'x': 155, 'y': 129]

print(imagesSFrame) 将允许您检查 imagesSFrame 中的路径

【讨论】:

以上是关于如何为对象检测任务创建与 TuriCreate 兼容的 SFrame的主要内容,如果未能解决你的问题,请参考以下文章

使用 GPU 在 colab 上使用 Turicreate 训练对象检测模型

如何为 Thunderbird/Lightning 创建扩展

如何为 tensorflow 对象检测模型运行 eval.py 作业

如何为 ECS 任务分配 IAM 角色

继续训练 CoreML 模型

如何为特定的后台任务确定静态类对象的范围?