亚马逊AWS官方博客

新推出 – 使用 Amazon SageMaker Ground Truth 标记视频

Amazon Sagemaker Ground Truth 在 AWS re:Invent 2018 中推出,是 Amazon SageMaker 的一项功能,可用于轻松注释机器学习数据集。客户可以使用内置工作流高效准确地标记图像、文本和 3D 点云数据,或使用自定义工作流标记任何其他类型的数据。数据示例将自动分发给工作人员(私人、第三方或 MTurk),且注释会存储在 Amazon Simple Storage Service (S3) 中。或者,还可以启用自动化数据标记,以同时减少标记数据集所需的时间和相关成本。

随着模型变得越来越精妙,AWS 客户越来越多地将机器学习预测应用于视频内容。自动驾驶可能是众所周知的用例,出于安全性考虑,它要求实时正确检测和跟踪道路状况和移动对象。视频预测在体育届也很流行,它可以跟踪运动员或赛车,从而计算观众非常喜欢的各种统计数据。医疗保健组织还使用视频预测来识别和跟踪医学视频中的解剖对象。制造业的公司也这样做,他们跟踪装配线上的对象、物流包裹等等。诸如此类,不胜枚举。各行各业中不断涌现出令人惊叹的应用。

毫无疑问,这类应用都需要构建和标记视频数据集,这就需要手动标记关注对象。如果视频采样率为每秒 30 帧,则一分钟的视频将转换为 1,800 张单独的图像,这一工作量令人不堪重负。此外,还必须构建用于标记图像、管理工作流等任务的特定工具。组织需要从核心业务中抽出宝贵的时间和资源来完成所有这些工作。

AWS 客户要求我们提供更好的解决方案,今天,我非常高兴地宣布,Amazon Sagemaker Ground Truth 现在支持视频标记。

客户使用案例:美国国家橄榄球联盟
美国国家橄榄球联盟 (NFL) 已经开始使用这一新功能。NFL球员健康与创新高级副总裁Jennifer Langton说:“在美国国家橄榄球联盟 (NFL),我们一直在寻找使用机器学习 (ML) 的新方法,以帮助我们的球迷、播音员、教练和球队从更深入的见解中受益。建立这些功能需要大量准确标记的训练数据。Amazon SageMaker Ground Truth 是切实有效地加速项目进度的力量推进器。除了其他现有的计算机视觉 (CV) 标记工作流之外,我们还利用了新的视频对象跟踪工作流来开发标签,用于训练计算机视觉系统,该系统可在比赛期间跟踪场上所有 22 位球员的移动情况。Amazon SageMaker Ground Truth 将生成高质量标记数据集的时间缩短了 80% 以上。”

以下两个预测帧显示了对西雅图海鹰队视频进行头盔检测的结果(资料由 NFL 提供)。该视频包含 353 个帧。下面显示的第一张图片是第 100 帧。

对象跟踪

第二张图片是第 110 帧。

对象跟踪

推出视频标记
使用新增的视频任务类型,客户现在可以使用 Amazon Sagemaker Ground Truth 执行以下工作:

  • 视频片段分类
  • 视频多帧对象检测
  • 视频多帧对象跟踪

多帧任务类型支持多个标签,因此您可以标记视频帧中出现的不同类别的对象。您可以创建标记作业,以从头开始给帧加注释;也可以创建调整作业,以查看和优化已有标记的帧。您创建的作业可以分发给私人劳动力,也可以分发给您在 AWS Marketplace 中选择的供应商劳动力。

工作人员可以使用内置的 GUI,轻松地在所有帧中标记和跟踪对象。在给一个帧添加注释后,他们可以使用辅助标记功能来预测下一帧中边界框的位置,如下面的演示所示。这极大地简化了标记工作,节省了时间,并提高了注释的质量。最后但同样重要的一点是,工作会自动保存。

为视频对象检测和跟踪准备输入数据
如您所料,输入数据必须位于 S3 中。您可以输入视频文件,也可以输入视频帧序列。

第一个选项最简单,因为 Amazon Sagemaker Ground Truth 包含一个可自动从视频文件中提取帧的工具。另外,您还可以对帧进行采样(取“n”分之一),以减少标记的工作量。提取工具还会构建一个清单文件,用于描述序列和帧。您可以在文档中了解更多信息。

第二个选项需要两个步骤:提取帧和构建清单文件。可以使用流行的开源工具 ffmpeg 轻松提取帧。您可以按照以下方法将视频的前 60 秒转换为一个帧序列。

$ ffmpeg -ss 00:00:00.00 -t 00:01:0.00 -i basketball.mp4 frame%04d.jpg

每个帧序列应使用不同的前缀上传到 S3,例如 s3://my-bucket/my-videos/sequence1s3://my-bucket/my-videos/sequence2,等等,如文档所述。

上传帧序列后,您可以使用自己的 JSON 文件对其进行描述,也可以让 Ground Truth 爬取您的序列并自动构建 JSON 文件和清单文件。请注意,视频序列不能超过 2,000 帧,这相当于每秒 30 帧的一分钟视频。

每个序列应由一个简单的序列文件提供描述,其中包含以下内容:

  • 序列号、S3 前缀和帧数。
  • 一个帧列表:编号、文件名和创建时间戳。

下面是一个序列文件的示例。

{"version": "2020-06-01",
"seq-no": 1, "prefix": "s3://jsimon-smgt/videos/basketball", "number-of-frames": 1800,
	"frames": [
		{"frame-no": 1, "frame": "frame0001.jpg", "unix-timestamp": 1594111541.71155},
		{"frame-no": 2, "frame": "frame0002.jpg", "unix-timestamp": 1594111541.711552},
		{"frame-no": 3, "frame": "frame0003.jpg", "unix-timestamp": 1594111541.711553},
		{"frame-no": 4, "frame": "frame0004.jpg", "unix-timestamp": 1594111541.711555},
. . .

最后,清单文件应指向您要包括在标记作业中的序列文件。请看以下示例。

{"source-ref": "s3://jsimon-smgt/videos/seq1.json"}
{"source-ref": "s3://jsimon-smgt/videos/seq2.json"}
. . .

与其他任务类型一样,标记完成后,可在 S3 中找到增强清单文件。它包含注释和标记,您随后可以将这些内容提供给机器学习训练作业。

使用 Amazon SageMaker Ground Truth 标记视频
下面是一个示例视频,我在其中标记了一个序列的前十帧。屏幕截图如下所示。

我先使用 Ground Truth GUI 仔细标记了第一帧,为篮球和篮球运动员绘制了边界框。然后,我使用“预测下一帧”辅助标记工具来预测下九个帧中这些框的位置,仅对部分框进行了少量调整。尽管这是我第一次尝试,但我发现这个过程非常简单直观。我相信稍加练习之后,我一定可以快得多!

开始使用
现在轮到您了。您现在可以在以下区域使用 Amazon Sagemaker Ground Truth 开始标记视频:

  • 美国东部(弗吉尼亚北部)美国东部(俄亥俄)美国西部(俄勒冈)
  • 加拿大(中部)
  • 欧洲(爱尔兰)欧洲(伦敦)欧洲(法兰克福)
  • 亚太地区(孟买)亚太地区(新加坡)亚太地区(首尔)亚太地区(悉尼)亚太地区(东京)

我们期待看到您的反馈。您可以通过您的常用支持联系方式,或者在 Amazon SageMakerAWS 论坛中发送反馈。

– Julien