在本地使用 Kinesis 视频流显示 Rekognition 结果 - Amazon Rekognition

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

在本地使用 Kinesis 视频流显示 Rekognition 结果

你可以使用亚马逊 Kinesis Video Streams 解析器库的示例测试,查看亚马逊 Rekognition Video Streams 的结果显示在你来自亚马逊 Kinesis Video Streams 的提要中。KinesisVideo KinesisVideoRekognitionIntegrationExample 在检测到的人脸上显示边界框,并通过 JFrame 在本地渲染视频。此过程假设您已成功将来自设备摄像头的媒体输入连接到 Kinesis 视频流并启动了 Amazon Rekognition 流处理器。有关更多信息,请参阅 使用 GStreamer 插件进行流式传播

步骤 1:安装 Kinesis 视频流解析器库

要创建目录并下载 Github 存储库,请运行以下命令:

$ git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library.git

导航到库目录并运行以下 Maven 命令进行全新安装:

$ mvn clean install

步骤 2:配置 Kinesis 视频流和 Rekognition 集成示例测试

打开 KinesisVideoRekognitionIntegrationExampleTest.java文件。删除类标题后的 @Ignore。使用来自 Amazon Kinesis 和 Amazon Rekognition 资源的信息填充数据字段。有关更多信息,请参阅 设置您的 Amazon Rekognition Video 和 Amazon Kinesis 资源。如果您要将视频流式传输到 Kinesis 视频流,请移除 inputStream 参数。

请看下面的代码示例:

RekognitionInput rekognitionInput = RekognitionInput.builder() .kinesisVideoStreamArn("arn:aws:kinesisvideo:us-east-1:123456789012:stream/rekognition-test-video-stream") .kinesisDataStreamArn("arn:aws:kinesis:us-east-1:123456789012:stream/AmazonRekognition-rekognition-test-data-stream") .streamingProcessorName("rekognition-test-stream-processor") // Refer how to add face collection : // https://docs.aws.amazon.com/rekognition/latest/dg/add-faces-to-collection-procedure.html .faceCollectionId("rekognition-test-face-collection") .iamRoleArn("rekognition-test-IAM-role") .matchThreshold(0.95f) .build(); KinesisVideoRekognitionIntegrationExample example = KinesisVideoRekognitionIntegrationExample.builder() .region(Regions.US_EAST_1) .kvsStreamName("rekognition-test-video-stream") .kdsStreamName("AmazonRekognition-rekognition-test-data-stream") .rekognitionInput(rekognitionInput) .credentialsProvider(new ProfileCredentialsProvider()) // NOTE: Comment out or delete the inputStream parameter if you are streaming video, otherwise // the test will use a sample video. //.inputStream(TestResourceUtil.getTestInputStream("bezos_vogels.mkv")) .build();

步骤 3:运行 Kinesis 视频流和 Rekognition 集成示例测试

如果您正在向其进行流式传输,请确保您的 Kinesis 视频流正在接收媒体输入,然后在运行 Amazon Rekognition Video 流处理器的情况下开始分析您的流。有关更多信息,请参阅 Amazon Rekognition Video 流处理器操作概述。以 JUnit 测试的形式运行 KinesisVideoRekognitionIntegrationExampleTest 类。短暂延迟后,将打开一个新窗口,其中包含来自您的 Kinesis 视频流的视频源,以及在检测到的人脸上绘制的边界框。

注意

本示例中使用的集合中的人脸必须以此格式指定外部图像 ID(文件名),边界框标签才能显示有意义的文本: PersonName1-Trusted、 PersonName 2-Intruder、 PersonName 3-Neutral 等。标签也可以采用颜色编码,并且可以在 FaceType .java 文件中进行自定义。