我需要将 IP 摄像机中的视频发送到 Kinesis Video Stream,并使用 Sagemaker 托管我的 ML 模型,然后该模型将实时分析 Kinesis Video Stream 中的视频。
我点击了此链接:https://aws.amazon.com/blogs/machine-learning/analyze-live-video-at-scale-in-real-time-using-amazon-kinesis-video-streams-and-亚马逊-Sagemaker/
我已经完成了这些事情:
我被这件事困住了:
如何从 sagemaker 笔记本中的 aws fargate 获取视频帧作为输入(如下图所示,步骤 3)?链接中提到,KIT 预先捆绑了一个自定义 Lambda 函数,该函数被编写为使用对象检测算法处理 Amazon SageMaker 示例之一的预测输出。我不确定这个算法如何从 KVS 获取输入。
此 AWS 示例 Lambda 代码将是一个很好的参考。
Lambda 可以由 Kinesis Datastream 输入触发。
首先记住 Lambda 不连接到 Kinesis Video Stream。那么示例如何获取 Kinesis Video Stream 的帧数据。它是 CloudFormation 中的 AWS ECS Docker 镜像。
DockerImageRepository:
Type: String
Default: >-
528560246458.dkr.ecr.us-east-1.amazonaws.com/kinesisvideosagemakerintegration_release:V1.0.3
Description: Docker image for Kinesis Video Stream & SageMaker Integration Driver.
创建CloudFormation的XML文件代码。在此文件中,您可以确认创建 Docker Image。因此你应该检查 Docker Image 中的代码。
我无法在 Docker Image 中打开代码。但我可以在 Github 上找到 java 代码。
https://github.com/aws/amazon-kinesis-video-streams-parser-library
此代码可能在 Docker Image 中运行。首先,此代码读取 Kinesis Video Stream 中的 i-Frame。其次与之前的 i-Frame 进行比较。第三次发送到 SageMaker 端点并获取 Sagemaker 推理。最后发送到 Kinesis(不是 Kinesis Video Stream),然后 Lambda 接收 Sagemaker 推理。
我在开发产品时尝试这个例子。你应该关注我的Github来交流:https://github.com/WooSung-Jung