准备训练数据

本页介绍如何准备训练和测试数据,以便 AutoML Video Intelligence 为您构建自定义的视频注释模型。

准备视频

  • 训练模型或请求执行预测(为视频添加注释)时,AutoML Video Intelligence 支持以下视频格式(如下所示)。文件大小的上限为 50GB(时长不超过 3 小时)。不支持容器中格式错误或时间戳为空的单个视频文件。

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • 训练数据应尽可能接近要对其执行预测的数据。例如,如果您的用例涉及模糊的低分辨率视频(例如,来自监控摄像头的视频),那么您的训练数据应由模糊的低分辨率视频组成。一般来说,您还应该考虑为训练视频提供多种角度、分辨率和背景。

  • AutoML Video 模型通常不能预测人类无法分配的标签。因此,如果一个人经过训练,仍无法在观看视频 1-2 秒后分配标签,那么模型可能也无法通过训练达到此目的。

  • 我们建议在每个标签下提供大约 1000 个训练视频。每个标签至少应有 10 个训练视频;对于高级模型,则应至少有 50 个训练视频。一般来说,每个标签下需要有更多示例,才能训练可为每个视频添加多个标签的模型,这种情况下得分也更难以解读。

  • 如果最常见标签下的视频数量不超过最不常见标签下视频数量的 100 倍,则模型效果最佳。建议移除出现频率极低的标签。

  • 考虑添加一个 None_of_the_above 标签以及多个与您定义的任何标签都不匹配的视频。例如,对于动物数据集,请添加不属于已加标签的种类的动物视频,并将它们标记为 None_of_the_above。此举可提高模型的准确率。请注意,虽然您可以使用任何标签名称,但系统会特殊对待 None_of_the_above

训练数据集与评估数据集

在训练模型时,数据集内的数据会划分为三个数据集:训练数据集、验证数据集和测试数据集。

训练数据集用于构建模型。该模型在搜寻训练数据中的模式时会尝试多种算法和参数。在模型识别出模式后,它会使用验证数据集来测试算法和模式。模型会从训练阶段识别出的算法和模式中选出表现最佳的。

在识别出表现最佳的算法和模式之后,使用测试数据集测试它们的错误率、质量和准确度。

系统使用验证和测试数据集是为了避免模型出现偏差。验证阶段使用的最佳模型参数可能会产生指标偏差。在验证阶段结束后使用测试数据集来评估模型质量可得到公正的评估结果。

要标示您的训练、测试和验证数据,请使用 CSV 文件,如下一部分所述。

创建含视频 URI 和标签的 CSV 文件

将文件上传到 Google Cloud Storage 后,您可以创建 CSV 文件,其中列有所有训练数据及其类别标签。该 CSV 文件可以采用任何文件名,但必须与视频文件位于同一个存储分区中,必须采用 UTF-8 编码,并且必须以 .csv 扩展名结尾。

您可以使用四个文件来训练和验证您的模型:

文件 说明
模型训练文件列表

包含指向训练、测试和验证 CSV 文件的路径。

该文件用于标示最多三个描述训练和测试数据的单独 CSV 文件的位置。

以下示例展示了文件列表 CSV 文件的内容:

示例 1:


TRAIN,gs://domestic-animals-vcm/horses/videos/train.csv
TEST,gs://domestic-animals-vcm/horses/videos/test.csv
UNASSIGNED,gs://domestic-animals-vcm/horses/videos/other.csv

示例 2:


UNASSIGNED,gs://domestic-animals-vcm/horses/videos/all.csv
训练数据

用于训练模型。包含指向视频文件的路径、视频片段的开始时间和结束时间、标识视频片段主题的标签。

如果您指定训练数据 CSV 文件,则还必须指定测试数据 CSV 文件。

测试数据

用于在训练阶段测试模型。包含指向视频文件的路径、视频片段的开始时间和结束时间、标识视频片段主题的标签。

如果您指定测试数据 CSV 文件,则还必须指定训练数据 CSV 文件。

未分配的数据

用于训练和测试模型。包含指向视频文件的路径、视频片段的开始时间和结束时间、标识视频片段主题的标签。未分配文件中的各行会自动划分为训练和测试数据。80% 用于训练,20% 用于测试。

只有在没有训练和测试数据 CSV 文件的情况下,您才能指定未分配的数据 CSV 文件。而且,只有在没有未分配的数据 CSV 文件的情况下,您才能指定训练和测试数据 CSV 文件。

在训练、测试和未分配的文件中,每行对应您要上传的集合中的一个视频,并且每行都包含以下几列:

  1. 要分类或添加注释的内容。 此字段包含视频的 Google Cloud Storage URI。Google Cloud Storage URI 区分大小写。

  2. 标识视频分类方式的标签。标签必须以字母开头,且只能包含字母、数字和下划线。您可以在 CSV 文件中添加多行,每行都标示同一视频片段但采用不同的标签,以此为视频指定多个标签。

  3. 视频片段的开始时间和结束时间。 这两个以英文逗号分隔的字段用于标识要分析的视频片段的开始时间和结束时间(以秒为单位)。开始时间必须早于结束时间。这两个值必须为非负数,并且必须在视频的时间范围内。例如,0.09845,1.3600555。要使用视频的全部内容,请将开始时间指定为 0,并将结束时间指定为视频全长或“inf”。例如,0,inf

下面是一些 CSV 数据文件行示例:

单个标签:

gs://domestic-animals-vcm/horses/videos/100080576_f52e8ee070_n.mp4,mustang,0,5.433333

同一视频片段的多个标签:

gs://domestic-animals-vcm/horses/videos/5217892384_3edce91761_m.mp4,clydesdale,0,8.2850000
gs://domestic-animals-vcm/horses/videos/5217892384_3edce91761_m.mp4,arabian,0,8.2850000
gs://domestic-animals-vcm/horses/videos/5217892384_3edce91761_m.mp4,mustang,0,8.2850000

使用 inf 指示视频结束:

gs://domestic-animals-vcm/horses/videos/5217892384_3edce91761_m.mp4,mustang,0,inf

为获得最佳结果,您应该在每个标签下添加至少数百个训练视频片段,以创建准确的模型。该数字可能因数据的复杂程度而异。

您也可以在 CSV 数据文件中提供视频,而不指定任何标签。然后,在训练模型之前,您必须使用 AutoML Video 界面将标签应用于数据。为此,您只需提供视频的 Cloud Storage URI,后跟三个英文逗号,如以下示例所示。

gs://domestic-animals-vcm/horses/videos/100080576_f52e8ee070_n.mp4,,,

您无需指定验证数据来验证经过训练的模型的结果。AutoML Video 会将标识为训练的行自动分为训练和验证数据。70% 用于训练,30% 用于验证。

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

使用 CSV 时的常见错误

  • 在标签中使用 Unicode 字符。例如,不支持日语字符。
  • 在标签中使用空格和非字母数字字符。
  • 空行。
  • 空列(行中带有两个连续英文逗号)。
  • Cloud Storage 视频路径大小写错误。
  • 视频文件的访问权限控制配置错误。您的服务帐号应具有读取或更高权限,或者文件必须可供公开读取。
  • 引用非视频文件(如 PDF 或 PSD 文件)。同样,如果文件并非视频文件,但重命名为具有视频扩展名,也将导致错误。
  • 视频的 URI 指向不属于当前项目的存储分区。只能访问项目存储分区中的视频。
  • 文件并非 CSV 格式。