准备训练数据
本页面介绍如何准备数据以训练 AutoML Video 对象跟踪模型。
准备视频
本页面介绍如何准备训练和测试数据,以便 AutoML Video Intelligence 对象跟踪可以为您创建视频注解模型。
训练模型或请求执行预测时,AutoML Video Intelligence 对象跟踪支持以下视频格式。
- .MOV
- .MPEG4
- .MP4
- .AVI
训练视频的文件大小上限为 50GB,时长上限为 3 小时。不支持容器中格式错误或时间偏移为空的单个视频文件。
训练数据应尽可能接近要对其执行预测的数据。例如,如果您的用例涉及模糊的低分辨率视频(例如,来自监控摄像头的视频),那么您的训练数据应由模糊的低分辨率视频组成。一般来说,您还应该考虑为训练视频提供多种角度、分辨率和背景。
AutoML Video 对象跟踪模型通常不能预测人类无法分配的标签。例如,如果一个人经过训练,仍无法在观看视频 1-2 秒后分配标签,那么模型可能也无法通过训练达到此目的。
边界框大小下限:10×10 像素。
对于远远大于 1024×1024 像素的视频帧分辨率,在 AutoML Video 对象跟踪的帧归一化过程中,图片质量可能会在一定程度上受损。
如果最常见标签下的视频数量不超过最罕见标签下帧数量的 100 倍,则模型效果最佳。您可以考虑从数据集中移除非常低频的标签。
每个唯一标签必须存在于至少 3 个不同的视频帧中。且必须具有至少 10 个注释。
每个数据集中已加标签的视频帧数的上限为 15 万。
每个数据集中已添加注释的边界框总数上限目前为 100 万。
每个数据集中的唯一标签的最大数目前限制为 1000。
您的训练数据必须至少包含 1 个标签。
您应该至少为每个标签提供 100 个训练视频帧,并且在每个帧中,感兴趣的所有对象均已加标签。您无需为显示对象的所有帧都加标签,但标签越多,模型越好。建议选择彼此不相邻的帧,以便它们能够覆盖不同的尺寸、角度、背景、光线条件等。
训练、验证和测试数据集
在训练模型时,数据集内的数据会划分为三个数据集:训练数据集、验证数据集(可选)和测试数据集。
- 训练数据集用于构建模型。在训练数据中搜索模式时,系统会尝试使用多种算法和参数。
- 识别出模式后,系统会使用验证数据集来测试算法和模式。模型会从训练阶段识别出的算法和模式中选出表现最佳的。
- 在识别出表现最佳的算法和模式之后,使用测试数据集测试它们的错误率、质量和准确度。
系统使用验证和测试数据集是为了避免模型出现偏差。验证阶段使用的最佳模型参数可能会产生指标偏差。在验证阶段结束后使用测试数据集来评估模型质量可得到公正的评估结果。
要识别训练和测试数据集,请使用 CSV 文件。
创建含视频 URI 和标签的 CSV 文件
将文件上传到 Cloud Storage 后,您可以创建 CSV 文件,其中列有所有训练数据及其类别标签。该 CSV 文件可以采用任何文件名,但必须使用 UTF-8 编码,并且文件名必须以 .csv
扩展名结尾。
您可以使用以下三个文件来训练和验证模型:
文件 | 说明 |
---|---|
模型训练文件列表 | 包含训练和测试 CSV 文件的路径。 此文件用于标识描述训练和测试数据的单独 CSV 文件的位置。 以下示例展示了文件列表 CSV 文件的内容: 示例 1: TRAIN,gs://automl-video-demo-data/traffic_videos/traffic_videos_train.csv TEST,gs://automl-video-demo-data/traffic_videos/traffic_videos_test.csv 示例 2: UNASSIGNED,gs://automl-video-demo-data/traffic_videos/traffic_videos_labels.csv |
训练数据 | 用于训练模型。 包含视频文件的 URI、标识对象类别的标签、用于标识视频中各视频帧的对象实例的实例 ID(可选),已添加标签的视频帧的时间偏移和对象边界框坐标。 如果您指定了训练数据 CSV 文件,则还必须指定测试或未分配的数据 CSV 文件。 |
测试数据 | 用于在训练阶段测试模型。 包含与训练数据中相同的字段。 如果您指定了测试数据 CSV 文件,则还必须指定训练或未分配的数据 CSV 文件。 |
未分配的数据 | 用于训练和测试模型。 包含与训练数据中相同的字段。 未分配文件中的各行会自动划分为训练和测试数据。80% 用于训练,20% 用于测试。 只有在没有训练和测试数据 CSV 文件的情况下,您才能指定未分配的数据 CSV 文件。而且,只有在没有未分配的数据 CSV 文件的情况下,您才能指定训练和测试数据 CSV 文件。 |
在训练文件、测试文件和未分配的文件中,均有一行对应您要上传的集中的一个对象边界框,并且每行都包含以下几列:
要分类或添加注释的内容。 此字段包含视频的 Cloud Storage URI。Cloud Storage URI 区分大小写。
标识对象分类方式的标签。 标签必须以字母开头,且只能包含字母、数字和下划线。AutoML Video 对象跟踪还允许使用带空格的标签。
用于标识视频中跨视频帧的对象实例的实例 ID。 实例 ID 是一个整数。如果提供此 ID,则 AutoML Video 对象跟踪会使用此 ID 进行对象跟踪调整、训练和评估。不同视频帧中出现的同一对象实例的边界框会标记为同一实例 ID。实例 ID 仅在每个视频中是唯一的,但在数据集中是唯一的。例如,如果两个不同视频的两个对象具有相同的实例 ID,并不意味着它们是同一个对象实例。
视频帧的时间偏移,可指示相对于视频开始时的时长偏移量。时间偏移是浮点数,单位为秒。
视频帧中对象的边界框可以通过两种方式指定对象的边界框:
使用 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 Video 对象跟踪 API 不需要进行特定的顶点排序。此外,如果四个指定顶点并未形成与图片边缘平行的矩形,那么 AutoML Video Object Tracking API 会指定可形成此类矩形的顶点。
CSV 数据集文件示例
以下行演示了如何在数据集中指定数据。该示例包括 Cloud Storage 上的视频路径、对象的标签、开始跟踪的时间偏移以及两个对角顶点。
video_uri,label,instance_id,time_offset,x_relative_min,y_relative_min, x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max
gs://folder/video1.avi,car,,12.90,0.8,0.2,,,0.9,0.3,,
gs://folder/video1.avi,bike,,12.50,0.45,0.45,,,0.55,0.55,,
在第一行中,
- VIDEO_URI 为
gs://folder/video1.avi
, - LABEL 为
car
, - INSTANCE_ID 未指定,
- TIME_OFFSET 为
12.90
, - X_RELATIVE_MIN,Y_RELATIVE_MIN 为
0.8,0.2
, - X_RELATIVE_MAX,Y_RELATIVE_MIN 未指定,
- X_RELATIVE_MAX,Y_RELATIVE_MAX 为
0.9,0.3
, - X_RELATIVE_MIN,Y_RELATIVE_MAX 未指定
如前所述,您还可以通过提供所有四个顶点来指定边界框,如以下示例所示。
gs://folder/video1.avi,car,,12.10,0.8,0.8,0.9,0.8,0.9,0.9,0.8,0.9
gs://folder/video1.avi,car,,12.90,0.4,0.8,0.5,0.8,0.5,0.9,0.4,0.9
gs://folder/video1.avi,car,,12.10,0.4,0.2,0.5,0.2,0.5,0.3,0.4,0.3
您无需指定验证数据来验证经过训练的模型的结果。AutoML Video 对象跟踪会将标识为训练的行自动分为训练和验证数据。80% 用于训练,20% 用于验证。
对 CSV 数据集问题进行问题排查
如果您在使用 CSV 文件指定数据集时遇到问题,请在 CSV 文件中查看以下常见错误列表:
- 在标签中使用 Unicode 字符。例如,不支持日语字符。
- 在标签中使用空格和非字母数字字符。
- 空行。
- 空列(行中带有两个连续英文逗号)
- Cloud Storage 视频路径大小写错误
- 视频文件的访问权限控制配置错误。您的服务账号应具有读取或更高权限,或者文件必须可供公开读取。
- 引用非视频文件(如 PDF 或 PSD 文件)。同样,如果文件并非视频文件,但重命名为具有视频扩展名,也将导致错误。
- 视频的 URI 指向不属于当前项目的存储桶。 只能访问项目存储桶中的视频。
- 文件并非 CSV 格式。