设置训练数据 CSV 文件的格式

准备训练数据(具备足够的代表性)并将这些图片上传到 Google Cloud Storage 之后,您就可以创建包含边界框和标签的 CSV 文件,以将图片导入到数据集中。

本页面介绍如何设置该 CSV 文件的格式。

CSV 格式设置准则

若要使用 importData 方法,CSV 文件及其指向的图片都必须位于 Google Cloud Storage 存储分区中

此外,CSV 文件还必须满足以下要求:

  • 该文件可以使用任何文件名,但必须与图片文件位于同一存储分区中。
  • 必须采用 UTF-8 编码。
  • 必须以 .csv 扩展名结尾。
  • 每行对应您要上传的集合中的一个边界框每行对应一个无边界框的图片(例如下面的第 4 行)。
  • 每行包含一个图片;具有多个边界框的图片将重复多行,行数与边界框数相同。

    例如,第 1 行和第 2 行表示同一图片,该图片具有 2 个注释(car,0.1,0.1,,,0.3,0.3,,bike,.7,.6,,,.8,.9,,)。第 3 行表示仅具有 1 个注释 (car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3) 的图片,而第 4 行表示无注释的图片。

四个示例行:

 TRAIN,gs://folder/image1.png,car,0.1,0.1,,,0.3,0.3,,
 TRAIN,gs://folder/image1.png,bike,.7,.6,,,.8,.9,,
 UNASSIGNED,gs://folder/im2.png,car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3
 TEST,gs://folder/im3.png,,,,,,,,,

每行包含以下列:

  1. 将此行中的内容分配到哪个集合。这是必填字段,可以是以下值之一:

    • TRAIN - 使用图片训练模型。此集合应该是最大的,因为这些图片将用于构建模型。
    • VALIDATION - 使用图片来验证模型在训练期间返回的结果(也称为“开发”数据集)。AutoML Vision Object Detection 将使用这些图片确定何时停止模型训练过程。
    • TEST - 使用图片来量化模型在经过训练后的结果(也称为“留出”数据)。在使用前两个集合创建模型后,将使用这些图片来进行评估。
    • UNASSIGNED - AutoML Vision Object Detection 会将这些图片分配给以上三个集合之一。如果您对图片没有偏好的集合放置设置,请使用此集合标记。
  2. 需要添加注释的内容。此字段包含图片的 Google Cloud Storage URI。Google Cloud Storage URI 区分大小写。

  3. 标识对象分类方式的标签。 标签必须以字母开头,且只能包含字母、数字和下划线。AutoML Vision Object Detection 允许使用带有空格的标签。

    训练图片导入后,您还可以在界面中手动添加标签,或使用 Google 的人工标签服务为训练图片添加标签。

  4. 图片中对象的边界框。可以通过两种方式指定对象的边界框:

    • 使用 2 个包含一组 x、y 坐标的顶点(如果这些点是矩形的对角点)(x_relative_min, y_relative_min,,,x_relative_max,y_relative_max,,),
    • 或使用全部 4 个顶点 (x_relative_min,y_relative_min,x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max)。

    每个 vertex 由 x、y 坐标值指定。这些坐标必须是 0 到 1 范围内的浮点数,其中 0 表示最小 x 或 y 值,1 表示最大 x 或 y 值。

    例如,(0,0) 表示左上角,(1,1) 表示右下角;整个图片的边界框表示为 (0,0,,,1,1,,) 或 (0,0,1,0,1,1,0,1)。

    AutoML Vision API 不需要进行特定的顶点排序。 此外,如果 4 个指定顶点并未形成与图片边缘平行的矩形,则 AutoML Vision API 会计算并使用可形成此类矩形的顶点。

例如:

  • 未分配给集合UNASSIGNED,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,
  • 已分配给集合TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,

    上述行采用以下格式,因为在恰好有两个点时,API 假定它们是矩形的对角顶点(左上顶点、右下顶点):

    set,path,label,x_min,y_min,,,x_max,y_max,,

    以下格式也有效,因为它传达的信息相同:

    set,path,label,x_min,y_min,x_max,y_min,x_max,y_max,x_min,y_max

    这意味着,上面显示的“已分配给集合”行也可以通过指定全部 4 个顶点来表示:

    TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,0.97,0.25,0.97,0.50,0.56,0.50

图片坐标选项

将相关内容作为 CSV 文件保存到 Google Cloud Storage 存储分区中。

使用 CSV 时的常见错误

  • 在标签中使用 Unicode 字符。例如,不支持日语字符。
  • 在标签中使用非字母数字字符。
  • 空行。
  • Cloud Storage 图片路径大小写错误。
  • 图片文件的访问权限控制配置错误。您在启用 API 时创建的 AutoML 服务账号应具有读取权限或更高的访问权限。
  • 引用非图片文件(如 PDF 或 PSD 文件)。同样,如果文件并非图片文件(JPEG、PNG、GIF、BMP 或 ICO),但使用图片扩展名进行重命名,将会导致错误。
  • 文件并非 CSV 格式。