机器学习助力视频分辨率提升
本指南演示了如何使用一种名为“生成式人工智能”的人工智能(AI)将低分辨率视频转换为高清视频。许多媒体公司都有大量的旧视频内容存档,而这些内容最初是以标清等现已过时的较低分辨率进行的编码。不过,现代显示技术则能支持更清晰的超高清格式,例如 4K 分辨率。但是,如果手动来重新制作庞大的存档文件,极其耗费人力。本指南可以帮您解决这一难题;它使用的生成式人工智能可以放大和推断低质量视频中缺失的细节,提高分辨率。这样,即使是有颗粒感的老镜头,也能在如今的高分辨率屏幕和 4K 电视标准下播放,满足了消费者的观看体验。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
用户通过位于应用程序负载均衡器(ALB)前面的 Amazon CloudFront 分发来访问 AWS Fargate 上托管的应用程序。ALB 将用户重定向到 Amazon Cognito,对新用户会话进行身份验证。
第 2 步
在 Amazon DynamoDB 的任务跟踪器表中为用户注册任务。这种任务跟踪功能可将管道任务与拥有这些任务的用户关联起来,有助于安全访问提质后的视频。
第 3 步
应用程序容器使用 AWS Systems Manager 运行命令在头节点上运行脚本,以分配新任务并获取任务状态。
第 4 步
用户可直接从 Amazon Simple Storage Service(Amazon S3)上传或观看提质后的视频。具体做法是请求预签名的 URL,然后从托管应用程序的 Fargate 容器上传和下载视频。
第 5 步
Amazon S3 上传成功后会调用 AWS Lambda 函数。这一步将启动视频提质工作流程,调用 Systems Manager 运行命令。将任务提交到 AWS ParallelCluster 中的 Slurm 任务队列,运行视频提质管道。
第 6 步
ParallelCluster 中的计划任务会提取视频帧并写入图像。它还将音频和媒体元数据 [例如比特率和每秒帧数(fps)] 提取到共享的适用于 Lustre 的 Amazon FSx 文件系统中,以执行人工智能(AI)超分辨率任务。
该文件系统使用 AWS Key Management Service(AWS KMS)提供的密钥进行加密。集群可自动扩展中央处理器(CPU)计算实例集,以执行视频帧处理任务。
第 7 步
ParallelCluster 对每帧执行人工智能提质。ParallelCluster 通过托管在图形处理器(GPU)计算实例集中的 Amazon SageMaker 端点,调用生成式人工智能模型(RealESRGan 和 SwinIR2)来完成这一过程。该输出将写入适用于 Lustre 的 FSx 文件系统中。该集群会自动扩展 GPU 计算实例集以执行视频提质任务。
第 8 步
ParallelCluster 批处理任务对图像帧进行编码以创建新的视频内容,并将其上传到指定的 Amazon S3 位置。如果授权用户提出请求,则可以按需创建 Amazon S3 预签名 URL。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指南通过视频提质管道中端到端的可见性和可扩展式自动化,满足您的运营需求。例如,Amazon CloudWatch 指标和 DynamoDB 任务跟踪可提供流程监督,以监控性能、帮助您发现问题和排除根本原因。Lambda 可实现自动化且零停机时间的部署,因此基础设施更新可以无缝进行,无需人工操作。此外,ParallelCluster 使用基础设施即代码(IaC)实现跨环境的一致化基础设施自动配置,从而简化变更控制工作。最后,Amazon Elastic Container Registry(Amazon ECR)集中了机器学习(ML)模型容器,便于使用统一的脚本进行大规模推理部署。
-
安全性
强大的安全保护覆盖整个工作流程,同时简化了访问控制。输入和输出 Amazon S3 存储桶使用预签名的 URL 或 AWS Identity and Access Management(IAM)角色来授予临时访问权限,从而锁定数据。经过身份验证的用户通过 Amazon Cognito 连接到私有 ALB。ParallelCluster 将机器学习推理封锁在隔离的 VPC 内,只能通过 Systems Manager 进行访问。此外,管理员可以通过 VPC 安全组来限制对适用于 Lustre 的 FSx 文件系统的访问权限,并且可以通过 AWS KMS 对数据进行加密。最后,AWS CloudTrail 集中管理活动日志,实现审计可见性。
-
可靠性
由弹性负载均衡(ELB)、Fargate 和 DynamoDB 提供的无服务器前端架构在区域内提供高可用性。而且,您可以在多个可用区(AZ)以高可用性方式部署转码和机器学习计算节点。您还可在多个可用区中将 Slurm 控制器按主模式或辅助模式部署,以提高故障恢复能力。适用于 Lustre 的 FSx 文件系统将数据存储在成本优化的存储空间中,适用于转码等短期、流程繁琐的工作负载。不过,源材料和最终材料都存储在 Amazon S3 中以增强其持久性。
-
性能效率
本指南通过使用 ParallelCluster 实现可扩展的性能效率,自动扩展 GPU 资源以满足动态批处理需求,避免过度配置成本。即时工作分配功能在异构集群中智能分配视频工作流程,进一步优化了基础设施的实用性。 Lambda 函数可扩展视频帧提取的调用次数,而预置的并发性保证了低延迟响应。最后,在整个集群中使用共享的适用于 Lustre 的 FSx 文件系统,为单个视频帧提供低延迟的读取和/或写入访问。
-
成本优化
该指南使用的是事件驱动型架构,只有在需要时才会消耗计算和网络资源。此外,Lambda 对于处理时间按毫秒计费,而 ParallerCluster 计算节点在队列中没有任务时将容量减少至零,从而节省计算费用。
-
可持续性
通过优化资源和基础设施来实现可持续性。ParallelCluster Slurm 调度程序可根据特定工作负载的需求智能地安排任务。为具有成本效益的 CPU 节点有效分配视频提取和转码任务,而 GPU 实例集则只用于计算密集型提质。这最大限度地减少了资源的过度配置,加快了产出时间,降低了能源需求。
实施资源
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。