Google Cloud Vision 不会自动分割图像以进行训练/测试

Posted

技术标签:

【中文标题】Google Cloud Vision 不会自动分割图像以进行训练/测试【英文标题】:Google Cloud Vision not automatically splitting images for trainin/test 【发布时间】:2021-06-07 15:50:46 【问题描述】:

这很奇怪,出于某种原因,GCP Vision 不允许我训练我的模型。我已经满足每个标签至少 10 个图像,没有未标记的图像,并尝试上传指向 3 个此标签图像作为验证图像的 CSV。但我收到此错误

您的某些标签(例如“Label1”)没有足够的图像分配给您的验证集。导入另一个 CSV 文件并将这些图像分配给这些集合。

任何想法都将不胜感激

【问题讨论】:

【参考方案1】:

此错误通常发生在您未标记所有图像时,因为 AutoML 将您的图像(包括错误标记的图像)划分为多个类别,并且当未标记的图像进入 VALIDATION 集时会触发此错误.

根据documentation,建议每个标签1000张图片。但是,每个标签最少为 10 个图像,复杂情况下最少为 50 个。此外,

当最常见标签的图像最多比最不常见标签的图像多 100 倍时,该模型效果最佳。我们建议删除频率非常低的标签。

此外,AutoML Vision 将 80% 的内容文档用于训练,10% 用于验证,10% 用于测试。由于您的图像没有分为这三个类别,您应该手动将它们分配给 TRAINVALIDATIONTEST。您可以通过将图像上传到 GCS 存储桶并在 .csv 文件中引用每个标记的图像来做到这一点,如下所示:

TRAIN, gs://my_bucket/image1.jpeg,cat

正如您在上面看到的,它遵循[SET],[GCS image path], [Label] 的格式。请注意,您将手动划分数据集,它应该尊重已经提到的百分比。因此,您将在每个类别中拥有足够的数据。您可以按照准备训练数据的步骤here 和here。

注意:请注意您的 .csv 文件区分大小写。

最后,为了验证您的数据集并检查标记/未标记的图像,您可以导出创建的数据集并检查导出的 .csv 文件。您可以按照documentation 中的说明进行操作。导出后,下载并验证每个 SETTRAIN、VALIDATION 和 TEST)。

【讨论】:

不抱歉,这没有帮助,正如我在问题中所说,我没有未标记的图像,我创建了一个 csv 来定义不同的集合,但我仍然得到上述结果。 您是否导出了创建的数据集以检查是否所有行都已标记?

以上是关于Google Cloud Vision 不会自动分割图像以进行训练/测试的主要内容,如果未能解决你的问题,请参考以下文章

google vision - 在 c# 中从 google.cloud.vision.v1.entity 注释转换为 json

json Google Cloud Vision API OpenAPI

Google Cloud Vision - 解析期间发生 PHP 错误

Google Cloud Vision Document OCR - 在结果文本中保留布局

IndexError:带有 Google Cloud Vision API 的字节数组

Google Cloud Vision API PDF 文本提取