

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 输入数据设置
<a name="sms-video-data-setup"></a>

创建视频帧标注作业时，需要让 Ground Truth 知道在哪里查找输入数据。您可以通过两种方式之一来执行此操作：
+ 您可以将输入数据存储在 Amazon S3 中，并让 Ground Truth 自动检测用于标注作业的输入数据集。在[设置自动视频帧输入数据](sms-video-automated-data-setup.md)中了解有关此选项的更多信息。
+ 您可以创建输入清单文件和序列文件并将其上传到 Amazon S3。在[手动设置视频帧输入数据](sms-video-manual-data-setup.md)中了解有关此选项的更多信息。

**Topics**
+ [设置自动视频帧输入数据](sms-video-automated-data-setup.md)
+ [手动设置视频帧输入数据](sms-video-manual-data-setup.md)

# 设置自动视频帧输入数据
<a name="sms-video-automated-data-setup"></a>

您可以使用 Ground Truth 自动数据设置自动检测 Amazon S3 存储桶中的视频文件并从这些文件中提取视频帧。要了解如何操作，请参阅[提供视频文件](sms-point-cloud-video-input-data.md#sms-point-cloud-video-frame-extraction)。

如果 Amazon S3 中已有视频帧，则可以使用自动数据设置在标注作业中使用这些视频帧。对于此选项，来自单个视频的所有视频帧必须使用唯一的前缀来存储。要了解使用此选项的要求，请参阅[提供视频帧](sms-point-cloud-video-input-data.md#sms-video-provide-frames)。

选择以下部分之一，了解如何设置与 Ground Truth 的自动输入数据集连接。

## 提供视频文件和提取帧
<a name="sms-video-provide-files-auto-setup-console"></a>

使用以下过程将视频文件与 Ground Truth 连接起来，并自动从这些文件中提取视频帧以进行视频帧对象检测和对象跟踪标注作业。

**注意**  
如果您使用自动数据设置控制台工具从 10 个以上的视频文件中提取视频帧，则需要修改该工具生成的清单文件，或创建一个新的清单文件以包含 10 个或更少的视频帧序列文件。要了解更多信息，请参阅[提供视频文件](sms-point-cloud-video-input-data.md#sms-point-cloud-video-frame-extraction)。

确保您的视频文件存储在您执行自动数据设置所在 AWS 区域的 Amazon S3 存储桶中。

**使用 Ground Truth 自动连接 Amazon S3 中的视频文件并提取视频帧：**

1. 导航至 Amazon A SageMaker I 控制台中的**创建标签作业**页面：g [https://console.aws.amazon.com/sagemaker/roundtruth](https://console.aws.amazon.com//sagemaker/groundtruth)。

   输入和输出 S3 存储桶必须位于创建标注作业的同一 AWS 区域中。此链接将您带到北弗吉尼亚州 (us-east- AWS 1) 区域。如果输入数据在另一个区域的 Amazon S3 存储桶中，请切换到该区域。要更改您的 AWS 区域，请在[导航栏](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html#select-region)上选择当前显示的区域的名称。

1. 选择**创建标注作业**。

1. 输入**作业名称**。

1. 在**输入数据设置**部分，选择**自动数据设置**。

1. 输入 Amazon S3 URI 作为**输入数据集的 S3 位置**。S3 URI 如下所示：`s3://amzn-s3-demo-bucket/path-to-files/`。此 URI 应指向存储视频文件的 Amazon S3 位置。

1. 指定**输出数据集的 S3 位置**。这是存储输出数据的位置。您可以选择将输出数据存储在**与输入数据集相同的位置**，或**指定新位置**，并输入您要存储输出数据的位置的 S3 URI。

1. 使用下拉列表为**数据类型**选择**视频文件**。

1. 选择**是的，为对象跟踪和检测任务提取帧**。

1. 选择一种**帧提取**方法。
   + 当您选择**使用从视频中提取的所有帧来创建标注任务**时，Ground Truth 将从**输入数据集的 S3 位置**的每个视频中提取所有帧，最多可提取 2000 帧。如果输入数据集中的视频包含 2000 多个帧，则会提取前 2000 个帧用于该标注任务。
   + 当您选择 “**使用视频中的每一*x*帧来创建标注任务**” 时，Ground *x* Truth 会从您 **S3 位置的每个视频中提取每一帧作为输入数据集**。

     例如，如果您的视频长度为 2 秒，[帧频](https://en.wikipedia.org/wiki/Frame_rate)为每秒 30 帧，那么视频中就有 60 个帧。如果在此指定 10，Ground Truth 将提取视频中的每第 10 帧。这意味着提取第 1、第 10、第 20、第 30、第 40、第 50 和第 60 帧。

1. 选择或创建 IAM 执行角色。确保此角色有权访问您的 Amazon S3 位置以获取步骤 5 和 6 中指定的输入和输出数据。

1. 选择**完成数据设置**。

## 提供视频帧
<a name="sms-video-provide-frames-auto-setup-console"></a>

使用以下过程将视频帧序列与 Ground Truth 连接起来，以进行视频帧对象检测和对象跟踪标注作业。

确保您的视频帧存储在您执行自动数据设置所在 AWS 区域的 Amazon S3 存储桶中。每个视频帧序列都应该有唯一的前缀。例如，如果您在 `s3://amzn-s3-demo-bucket/video-frames/sequences/` 中存储了两个序列，则每个序列都应该有一个唯一的前缀（如 `sequence1` 和 `sequence2`），并且都应该位于 `/sequences/` 前缀的正下方。在上面的示例中，这两个序列的位置是：`s3://amzn-s3-demo-bucket/video-frames/sequences/sequence1/` 和 `s3://amzn-s3-demo-bucket/video-frames/sequences/sequence2/`。

**自动将您在 Amazon S3 中的视频帧与 Ground Truth 连接：**

1. 导航至 Amazon A SageMaker I 控制台中的**创建标签作业**页面：g [https://console.aws.amazon.com/sagemaker/roundtruth](https://console.aws.amazon.com//sagemaker/groundtruth)。

   输入和输出 S3 存储桶必须位于创建标注作业的同一 AWS 区域中。此链接将您带到北弗吉尼亚州 (us-east- AWS 1) 区域。如果输入数据在另一个区域的 Amazon S3 存储桶中，请切换到该区域。要更改您的 AWS 区域，请在[导航栏](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html#select-region)上选择当前显示的区域的名称。

1. 选择**创建标注作业**。

1. 输入**作业名称**。

1. 在**输入数据设置**部分，选择**自动数据设置**。

1. 输入 Amazon S3 URI 作为**输入数据集的 S3 位置**。

   这应该是存储序列的 Amazon S3 位置。例如，如果在 `s3://amzn-s3-demo-bucket/video-frames/sequences/sequence1/`、`s3://amzn-s3-demo-bucket/video-frames/sequences/sequence2/` 中存储了两个序列，请在此处输入 `s3://amzn-s3-demo-bucket/video-frames/sequences/`。

1. 指定**输出数据集的 S3 位置**。这是存储输出数据的位置。您可以选择将输出数据存储在**与输入数据集相同的位置**，或**指定新位置**，并输入您要存储输出数据的位置的 S3 URI。

1. 使用下拉列表为**数据类型**选择**视频帧**。

1. 选择或创建 IAM 执行角色。确保此角色有权访问您的 Amazon S3 位置以获取步骤 5 和 6 中指定的输入和输出数据。

1. 选择**完成数据设置**。

这些过程将在您在步骤 5 中指定的输入数据集的 Amazon S3 位置创建输入清单。如果您要使用 SageMaker API 或、或 AWS SDK 创建标签任务 AWS CLI，请使用此输入清单文件的 Amazon S3 URI 作为参数的输入`ManifestS3Uri`。

# 手动设置视频帧输入数据
<a name="sms-video-manual-data-setup"></a>

如果您已为每个视频帧序列创建了序列文件，并在清单文件中列出了对这些序列文件的引用，请选择手动数据设置选项。

## 创建视频帧输入清单文件
<a name="sms-video-create-manifest"></a>

 在创建标注任务时，Ground Truth 使用输入清单文件来标识输入数据集的位置。对于视频帧对象检测和对象跟踪标注作业，输入清单文件中的每一行都标识视频帧序列文件的位置。每个序列文件标识单个视频帧序列中包含的图像。

使用本页可以了解如何为视频帧对象跟踪和对象检测标注作业创建视频帧序列文件和输入清单文件。

如果您希望 Ground Truth 自动生成序列文件和输入清单文件，请参阅[设置自动视频帧输入数据](sms-video-automated-data-setup.md)。

### 创建视频帧序列输入清单
<a name="sms-video-create-input-manifest-file"></a>

在视频帧序列输入清单文件中，清单中的每一行都是一个 JSON 对象，其中有一个引用序列文件的 `"source-ref"` 键。每个序列文件标识视频帧序列的位置。这是所有视频帧标注作业所需的清单文件格式。

下面的示例演示了用于输入清单文件的语法：

```
{"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq1.json"}
{"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq2.json"}
```

### 创建视频帧序列文件
<a name="sms-video-create-sequence-file"></a>

每个视频帧序列的数据需要存储在一个 JSON 数据对象中。以下是用于序列文件的格式示例。有关每个帧的信息将包含为 JSON 对象并在 `frames` 列表中列出。为了便于阅读，下面的 JSON 已经扩展。

```
{
 "seq-no": 1,
 "prefix": "s3://amzn-s3-demo-bucket/prefix/video1/",
 "number-of-frames": 3,
 "frames":[
   {"frame-no": 1, "unix-timestamp": 1566861644, "frame": "frame0001.jpg" },
   {"frame-no": 2, "unix-timestamp": 1566861644, "frame": "frame0002.jpg" }, 
   {"frame-no": 3, "unix-timestamp": 1566861644, "frame": "frame0003.jpg" }   
 ]
}
```

下表详细介绍了此代码示例中显示的参数。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `seq-no`  |  是  |  整数  |  序列的有序编号。  | 
|  `prefix`  |  是  |  字符串 **接受的值**： `s3://<bucket-name>/<prefix>/`  |  序列文件所在的 Amazon S3 位置。 前缀必须以正斜杠结尾：`/`。  | 
|  `number-of-frames`  |  是  |  整数  |  序列文件中包含的总帧数。该数字必须与下一行中的 `frames` 参数列出的总帧数匹配。  | 
|  `frames`  |  是  |  JSON 对象列表 **必需**： `frame-no`, `frame` **可选**： `unix-timestamp`  |  帧数据列表。列表长度必须等于 `number-of-frames`。在工作人员 UI 中，序列中的帧以 [UTF-8](https://en.wikipedia.org/wiki/UTF-8) 二进制顺序排序。要了解有关此排序的更多信息，请参阅[提供视频帧](sms-point-cloud-video-input-data.md#sms-video-provide-frames)。  | 
| frame-no |  是  |  整数  |  帧顺序号。这将决定帧在序列中的顺序。  | 
|  `unix-timestamp`  |  否  |  整数  |  帧的 unix 时间戳。从 1970 年 1 月 1 日到捕获帧时的 UTC 时间的秒数。  | 
| frame |  是  |  字符串  |  视频帧图像文件的名称。  | 