스트리밍 비디오 분석 결과 읽기 - Amazon Rekognition

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

스트리밍 비디오 분석 결과 읽기

Amazon Kinesis Data Streams 클라이언트 라이브러리를 사용하여 Amazon Kinesis Data Streams 출력 스트림으로 전송되는 분석 결과를 사용할 수 있습니다. 자세한 내용은 Kinesis Data Stream에서 데이터 읽기 단원을 참조하십시오. Amazon Rekognition Video는 분석된 각 프레임에 대한 JSON 프레임 레코드를 Kinesis 출력 스트림에 저장합니다. Amazon Rekognition Video는 Kinesis video stream을 통해 전달받은 모든 프레임을 분석하지 않습니다.

Kinesis data stream으로 전송되는 프레임 레코드에는 프레임이 있는 Kinesis video stream 조각, 조각 내에서 프레임의 위치, 프레임에서 인식되는 얼굴에 대한 정보가 포함되어 있습니다. 또한 스트림 프로세서의 상태 정보도 포함됩니다. 자세한 정보는 참조: Kinesis 얼굴 인식 레코드 단원을 참조하십시오.

구문 분석기 라이브러리에는 Amazon Kinesis Video Streams 결과를 사용하고 원래 Amazon Rekognition Video와 통합하는 예제 테스트가 포함되어 있습니다.Kinesis video stream 자세한 정보는 로컬로 Rekognition를 사용하여 Kinesis Video Streams 결과 표시 단원을 참조하십시오.

Amazon Rekognition Video는 Amazon Rekognition Video 분석 정보를 Kinesis data stream으로 스트리밍합니다. 다음은 단일 레코드에 대한 JSON 예제입니다.

{ "InputInformation": { "KinesisVideo": { "StreamArn": "arn:aws:kinesisvideo:us-west-2:nnnnnnnnnnnn:stream/stream-name", "FragmentNumber": "91343852333289682796718532614445757584843717598", "ServerTimestamp": 1510552593.455, "ProducerTimestamp": 1510552593.193, "FrameOffsetInSeconds": 2 } }, "StreamProcessorInformation": { "Status": "RUNNING" }, "FaceSearchResponse": [ { "DetectedFace": { "BoundingBox": { "Height": 0.075, "Width": 0.05625, "Left": 0.428125, "Top": 0.40833333 }, "Confidence": 99.975174, "Landmarks": [ { "X": 0.4452057, "Y": 0.4395594, "Type": "eyeLeft" }, { "X": 0.46340984, "Y": 0.43744427, "Type": "eyeRight" }, { "X": 0.45960626, "Y": 0.4526856, "Type": "nose" }, { "X": 0.44958648, "Y": 0.4696949, "Type": "mouthLeft" }, { "X": 0.46409217, "Y": 0.46704912, "Type": "mouthRight" } ], "Pose": { "Pitch": 2.9691637, "Roll": -6.8904796, "Yaw": 23.84388 }, "Quality": { "Brightness": 40.592964, "Sharpness": 96.09616 } }, "MatchedFaces": [ { "Similarity": 88.863960, "Face": { "BoundingBox": { "Height": 0.557692, "Width": 0.749838, "Left": 0.103426, "Top": 0.206731 }, "FaceId": "ed1b560f-d6af-5158-989a-ff586c931545", "Confidence": 99.999201, "ImageId": "70e09693-2114-57e1-807c-50b6d61fa4dc", "ExternalImageId": "matchedImage.jpeg" } } ] } ] }

JSON 예제에서 다음 사항에 유의하십시오.

  • InputInformation –로 비디오를 스트리밍하는 데 사용되는 Kinesis video stream에 대한 정보입니다.Amazon Rekognition Video 자세한 정보는 InputInformation 단원을 참조하십시오.

  • StreamProcessorInformation – 스트림 프로세서의 상태 정보입니다.Amazon Rekognition Video Status 필드에 입력할 수 있는 값은 RUNNING뿐입니다. 자세한 정보는 StreamProcessorInformation 단원을 참조하십시오.

  • FaceSearchResponse – 입력 모음의 얼굴과 일치하는 스트리밍 비디오의 얼굴에 대한 정보를 포함합니다. FaceSearchResponse에는 분석된 비디오 프레임에서 감지된 얼굴인 DetectedFace 객체가 포함되어 있습니다. MatchedFaces 배열에는 감지된 얼굴별로 입력 모음에서 발견된 일치하는 얼굴 객체(MatchedFace)와 유사성 점수가 나와 있습니다.

비디오 스트림을 Kinesis 데이터 스트림에 매핑Kinesis

Kinesis video stream 프레임을 Kinesis data stream으로 전송되는 분석 프레임으로 매핑할 수 있습니다. 예를 들어 스트리밍 동영상이 표시되는 도중에도 인식된 사람들의 얼굴 주위로 상자를 표시하는 것이 가능합니다. 경계 상자 좌표는 Kinesis 얼굴 인식 레코드에 포함되어 Kinesis data stream으로 전송됩니다. 경계 상자를 정확하게 표시하려면 Kinesis 얼굴 인식 레코드와 함께 전송된 시간 정보를 원본 Kinesis video stream의 해당 프레임과 매핑시켜야 합니다.

Kinesis video stream을 Kinesis data stream에 매핑할 때 사용하는 기법은 라이브 미디어(라이브 스트리밍 동영상 등)를 스트리밍하는 경우 또는 아카이브 미디어(저장 동영상)를 스트리밍하는 경우에 따라 달라집니다.

라이브 미디어를 스트리밍할 때의 매핑

Kinesis video stream 프레임을 Kinesis data stream 프레임으로 매핑하려면

  1. FragmentTimeCodeType 작업의 입력 파라미터 PutMedia를 로 설정합니다.RELATIVE

  2. PutMedia를 호출하여 라이브 미디어를 Kinesis video stream으로 전송합니다.

  3. Kinesis data stream에서 Kinesis 얼굴 인식 레코드가 수신되면 KinesisVideo 필드의 ProducerTimestamp 값과 FrameOffsetInSeconds 값을 저장합니다.

  4. ProducerTimestamp 필드 값과 FrameOffsetInSeconds 필드 값을 합산하여 Kinesis video stream 프레임과 일치하는 타임스탬프를 계산합니다.

아카이브 미디어를 스트리밍할 때의 매핑

Kinesis video stream 프레임을 Kinesis data stream 프레임으로 매핑하려면

  1. 아카이브 미디어를 으로 전달하려면 PutMedia를 호출하십시오.Kinesis video stream

  2. 작업 응답에서 Acknowledgement 객체를 받으면 PutMediaPayload(페이로드)FragmentNumber 필드의 필드 값을 저장합니다. FragmentNumber는 MKV 클러스터의 조각 번호입니다.

  3. Kinesis data stream에서 Kinesis 얼굴 인식 레코드가 수신되면 KinesisVideo 필드의 FrameOffsetInSeconds 필드 값을 저장합니다.

  4. 2단계와 3단계에서 저장한 FrameOffsetInSecondsFragmentNumber 값을 사용하여 매핑을 계산합니다. FrameOffsetInSecondsFragmentNumber로 전송되는 특정 Amazon Kinesis data stream가 있는 조각의 오프셋입니다. 임의의 조각 수에 대한 동영상 프레임을 가져오는 방법에 대한 자세한 내용은 Amazon Kinesis Video Streams 아카이브 미디어 단원을 참조하십시오.