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

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

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

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

Kinesis 데이터 스트림 으로 전송되는 프레임 레코드에는 프레임이 있는 Kinesis 비디오 스트림 조각, 조각 내에서 프레임의 위치, 프레임에서 인식되는 얼굴에 대한 정보가 포함되어 있습니다. 또한 스트림 프로세서의 상태 정보도 포함됩니다. 자세한 설명은 참조: Kinesis 얼굴 인식 레코드 섹션을 참조하세요.

Amazon Kinesis Video Streams 구문 분석 라이브러리에는 Amazon Rekognition Video 결과를 사용하고 이를 원본 Kinesis 비디오 스트림과 통합하는 예제 테스트가 포함되어 있습니다. 자세한 설명은 Kinesis Video Streams를 사용하여 로컬에서 Rekognition 결과 표시 섹션을 참조하세요.

Amazon Rekognition Video는 Amazon Rekognition Video 분석 정보를 Kinesis 데이터 스트림으로 스트리밍합니다. 다음은 단일 레코드에 대한 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— Amazon Rekognition Video로 비디오를 스트리밍하는 데 사용되는 Kinesis 비디오 스트림에 대한 정보. 자세한 설명은 InputInformation 섹션을 참조하세요.

  • StreamProcessorInformation— Amazon Rekognition 비디오 스트림 프로세서의 상태 정보입니다. Status 필드에 입력할 수 있는 값은 RUNNING뿐입니다. 자세한 설명은 StreamProcessorInformation 섹션을 참조하세요.

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

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

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

Kinesis 비디오 스트림을 Kinesis 데이터 스트림에 매핑할 때 사용하는 기법은 라이브 미디어(라이브 스트리밍 비디오 등)를 스트리밍하는지 또는 아카이브 미디어(저장된 비디오 등)를 스트리밍하는지에 따라 달라집니다.

라이브 미디어를 스트리밍하는 경우의 매핑

Kinesis 비디오 스트림 프레임을 Kinesis 데이터 스트림 프레임에 매핑하려면
  1. PutMedia작업의 입력 매개변수를 FragmentTimeCodeType 로 설정합니다RELATIVE.

  2. PutMedia를 호출하여 라이브 미디어를 Kinesis 비디오 스트림에 전송하세요.

  3. Kinesis 데이터 스트림에서 Kinesis 얼굴 인식 레코드를 수신하면 KinesisVideo 필드의 ProducerTimestamp 값과 FrameOffsetInSeconds 값을 저장합니다.

  4. ProducerTimestamp 필드 값과 FrameOffsetInSeconds 필드 값을 합산하여 Kinesis 비디오 스트림 프레임에 대응하는 타임스탬프를 계산합니다.

아카이브 미디어를 스트리밍하는 경우의 매핑

Kinesis 비디오 스트림 프레임을 Kinesis 데이터 스트림 프레임에 매핑하려면
  1. 전화를 PutMedia걸어 보관된 미디어를 Kinesis 비디오 스트림으로 전송하십시오.

  2. PutMedia 작업 응답에서 Acknowledgement 객체를 수신하면 Payload 필드의 FragmentNumber 필드 값을 저장합니다. FragmentNumber는 MKV 클러스터의 조각 번호입니다.

  3. Kinesis 데이터 스트림에서 Kinesis 얼굴 인식 레코드를 수신하면 KinesisVideo 필드의 FrameOffsetInSeconds 값을 저장합니다.

  4. 2단계와 3단계에서 저장한 FrameOffsetInSecondsFragmentNumber 값을 사용하여 매핑을 계산합니다. 여기에서 FrameOffsetInSeconds는 Amazon Kinesis 데이터 스트림으로 전송되는 특정 FragmentNumber에 대한 오프셋입니다. 임의의 조각 번호에 대한 비디오 프레임을 가져오는 방법에 대한 자세한 내용은 Amazon Kinesis Video Streams 아카이브 미디어를 참조하세요.