如何从aws Kinesis实时流媒体视频生成检测到面部的帧?

时间:2018-04-12 05:13:33

标签: aws-sdk amazon-kinesis amazon-rekognition

我正在开发Kinesis实时流媒体视频POC。

我能够将视频从Android应用程序流式传输到视频流,并调用python boto3 api(' get_records')进行人脸检测。

面部被检测到并从api获得回应。

"InputInformation": {
            "KinesisVideo": {
                "StreamArn": "arn:aws:kinesisvideo:<video-stream>",
                "FragmentNumber": "913..",
                "ServerTimestamp": 1.5234201234E9,
                "ProducerTimestamp": 1.523420130123E9,
                "FrameOffsetInSeconds": 0.6769999861718424
            }
        },
        "StreamProcessorInformation": {
            "Status": "RUNNING"
        },
        "FaceSearchResponse": [{
            "DetectedFace": {
                "BoundingBox": {
                    "Height": 0.41025642,
                    "Width": 0.30769232,
                    "Left": 0.45673078,
                    "Top": 0.23397435
                },
                "Confidence": 99.99998, ........

问题: 如何通过突出显示此数据流输出中检测到的面部来生成帧(通过引用视频流数据)?

我没有在aws参考页面中找到任何示例或文档来创建框架并将其存储为带有面部高亮的jpeg图像。

java / python api中的示例上的任何帮助/指针从视频流生成帧?

2 个答案:

答案 0 :(得分:1)

对于AWS Rekognition与Kinesis Video Streams的集成,请查看Consumer Parser库中发布的KinesisVideoRekognitionIntegrationExample。此示例显示如何摄取视频文件(您可以使用GStreamer sample application等实时生成器替换),检索数据,解析MKV,使用JCodec解码H264帧,与Rekognition JSON输出集成并在脸上绘制边界框使用JFrame检测到。

答案 1 :(得分:0)

没有自动设施可根据检测到的面部修改视频数据。您需要编写一个应用程序:

  • 从Amazon Kinesis Video
  • 中检索框架
  • 从Amazon Rekognition Video生成的Amazon Kinesis Stream中检索记录
  • 将自己的矩形添加到框架中(例如,使用ImageMagick或OpenCV)