

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ストリーミングビデオイベントに対するラベル検出オペレーションの呼び出し
<a name="streaming-labels-detection"></a>

Amazon Rekognition Video は、ストリーミングビデオ内の人または関連オブジェクトを検出し、検出されると通知を送信できます。ラベル検出ストリームプロセッサを作成するときは、Amazon Rekognition Video で検出したいラベルを選択します。ラベルには、人、パッケージとペット、または人、パッケージ、ペットがあります。検出したい特定のラベルのみを選択してください。これにより、関連するラベルのみが通知を作成します。ビデオ情報を保存するタイミングを決定するオプションを設定し、フレーム内で検出されたラベルに基づいて追加の処理を行えます。

リソースをセットアップした後、ストリーミングビデオ内のラベルを検出するプロセスは次のとおりです。

1. ストリームプロセッサを作成する

1. ストリームプロセッサを開始する

1. 対象オブジェクトが検出されると、対象の各オブジェクトの最初の出現に対して Amazon SNS 通知を受け取ります。

1. ストリームプロセッサは、`MaxDurationInSeconds` で指定された時間が経過すると停止します。

1. イベントの概要が記載された最終的な Amazon SNS 通知を受け取ります。

1. Amazon Rekognition Video は、セッションの詳細な概要を S3 バケットに公開します。

**Topics**
+ [Amazon Rekognition Video ラベル検出ストリームプロセッサを作成する](#streaming-video-create-labels-stream-processor)
+ [Amazon Rekognition Video ラベル検出ストリームプロセッサの起動](#streaming-video-start-labels-stream-processor)
+ [ラベル検出結果の分析](#streaming-video-labels-stream-processor-results)

## Amazon Rekognition Video ラベル検出ストリームプロセッサを作成する
<a name="streaming-video-create-labels-stream-processor"></a>

ストリーミングビデオを分析する前に、Amazon Rekognition Video ストリームプロセッサ ([CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)) を作成します。

対象となるラベルや人を検出するストリームプロセッサを作成する場合は、Kinesis ビデオストリーム (`Input`)、Amazon S3 バケット情報 (`Output`)、Amazon SNS トピック ARN (`StreamProcessorNotificationChannel`) を入力として指定します。Amazon S3 バケットに送信されるデータを暗号化する KMS キー ID を指定することもできます。人、パッケージと人、またはペット、人、パッケージなど、`Settings` で検出する内容を指定します。Amazon Rekognition が `RegionsOfInterest` を使用してモニタリングするフレーム内の箇所を指定することもできます。`CreateStreamProcessor` リクエストに関する JSON の例を次に示します。

```
{
  "DataSharingPreference": { "OptIn":TRUE
  },
  "Input": {
    "KinesisVideoStream": {
      "Arn": "arn:aws:kinesisvideo:us-east-1:nnnnnnnnnnnn:stream/muh_video_stream/nnnnnnnnnnnnn"
    }
  },
  "KmsKeyId": "muhkey",
  "Name": "muh-default_stream_processor",
  "Output": {
    "S3Destination": {
      "Bucket": "s3bucket",
      "KeyPrefix": "s3prefix"
    }
  },
  "NotificationChannel": {
    "SNSTopicArn": "arn:aws:sns:us-east-2:nnnnnnnnnnnn:MyTopic"
  },
  "RoleArn": "arn:aws:iam::nnnnnnnnn:role/Admin",
  "Settings": {
    "ConnectedHome": {
      "Labels": [
        "PET"
      ]
    "MinConfidence": 80
    }
  },
  "RegionsOfInterest": [
    {
      "BoundingBox": {
        "Top": 0.11,
        "Left": 0.22,
        "Width": 0.33,
        "Height": 0.44
      }
    },
    {
      "Polygon": [
        {
          "X": 0.11,
          "Y": 0.11
        },
        {
          "X": 0.22,
          "Y": 0.22
        },
        {
          "X": 0.33,
          "Y": 0.33
        }
      ]
    }
  ]
}
```

`MinConfidence` 値は、ストリームプロセッサの `ConnectedHomeSettings` を指定するときに変更できます。`MinConfidence` は 0～100 の数値で、アルゴリズムの予測がどの程度確実であるかを示します。例えば、信頼度が 90 の `person` の通知は、アルゴリズムが、その人物がビデオに存在することを確信していることを意味します。信頼値が 10 の場合は、人物が存在する可能性があるということです。通知を受ける頻度に応じて、`MinConfidence` を 0～100 の任意の値に設定できます。例えば、Rekognition がビデオフレームにパッケージが含まれていると確信した場合にのみ通知を受け取りたい場合は、`MinConfidence` を 90 に設定できます。

`MinConfidence ` は、デフォルトで 50 に設定されます。アルゴリズムを最適化して精度を高めたい場合は、`MinConfidence` を 50 より大きい値に設定できます。これにより、通知を受け取る回数は少なくなりますが、各通知の信頼性は高まります。アルゴリズムを最適化してリコールを高めたい場合は、`MinConfidence` を 50 未満に設定すれば、より多くの通知を受け取れます。

## Amazon Rekognition Video ラベル検出ストリームプロセッサの起動
<a name="streaming-video-start-labels-stream-processor"></a>

`CreateStreamProcessor` で指定したストリームプロセッサの名前を使用して [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html) を呼び出し、ストリーミングビデオの分析を開始します。ラベル検出ストリームプロセッサで `StartStreamProcessor` オペレーションを実行する場合は、開始情報と停止情報を入力して処理時間を決定します。

ストリームプロセッサが起動すると、ラベル検出ストリームプロセッサの状態は次のように変化します。

1. `StartStreamProcessor` を呼び出すと、ラベル検出ストリームのプロセッサの状態は `STOPPED` または `FAILED` から `STARTING` に変化します。

1. ラベル検出ストリームプロセッサが実行されている間は、状態は `STARTING` になります。

1. ラベル検出ストリームプロセッサの実行が終了すると、状態は `STOPPED` または `FAILED` になります。

`StartSelector` は、処理を開始する Kinesis ストリームの開始点を指定します。KVS Producer のタイムスタンプまたは KVS フラグメント番号を使用できます。詳細については、「[Fragment](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_Fragment.html)」を参照してください。

**注記**  
KVS Producer のタイムスタンプを使用する場合は、時間をミリ秒単位で入力する必要があります。

`StopSelector` は、ストリームの処理を停止するタイミングを指定します。ビデオを処理する最大時間を指定できます。デフォルトでは、最大継続時間が 10 秒に設定されています。個々の KVS フラグメントのサイズによっては、実際の処理時間が最大継続時間より少し長くなる場合があることに注意してください。フラグメントの終端で最大継続時間に達したか、それを超えた場合、処理時間は停止します。

`StartStreamProcessor` リクエストに関する JSON の例を次に示します。

```
{
   "Name": "string",
   "StartSelector": {
     "KVSStreamStartSelector": { 
         "KVSProducerTimestamp": 1655930623123
      },
        "StopSelector": {
            "MaxDurationInSeconds": 11
      }
   }
}
```

ストリームプロセッサが正常に起動した場合は、HTTP 200 レスポンスが返されます。空の JSON 本文が含まれています。

## ラベル検出結果の分析
<a name="streaming-video-labels-stream-processor-results"></a>

Amazon Rekognition Video がラベル検出ストリームプロセッサから通知を公開する方法は 3 つあります。オブジェクト検出イベントの Amazon SNS 通知、セッション終了の概要に関する Amazon SNS 通知、詳細な Amazon S3 バケットレポートです。
+ オブジェクト検出イベントの Amazon SNS 通知 

  ビデオストリームでラベルが検出されると、オブジェクト検出イベントの Amazon SNS 通知を受け取ります。Amazon Rekognition は、ビデオストリームで対象オブジェクトまたは人物が初めて検出されたときに通知を公開します。通知には、検出されたラベルのタイプ、信頼度、ヒーローイメージへのリンクなどの情報が含まれています。また、検出された人物またはオブジェクトのトリミングされたイメージや検出タイムスタンプも含まれています。この通知の形式は次のとおりです。

  ```
  {"Subject": "Rekognition Stream Processing Event",
      "Message": {    
          "inputInformation": {
              "kinesisVideo": {
                  "streamArn": string
              }
          },
          "eventNamespace": {
              "type": "LABEL_DETECTED"
          },
          "labels": [{
              "id": string,
              "name": "PERSON" | "PET" | "PACKAGE",
              "frameImageUri": string,
              "croppedImageUri": string,
              "videoMapping": {
                  "kinesisVideoMapping": {
                      "fragmentNumber": string,
                      "serverTimestamp": number,
                      "producerTimestamp": number,
                      "frameOffsetMillis": number
                  }
              },
              "boundingBox": {
                  "left": number,
                  "top": number,
                  "height": number,
                  "width": number
              }
          }],
          "eventId": string,
          "tags": {
              [string]: string
          },
          "sessionId": string,
          "startStreamProcessorRequest": object
      }
  }
  ```
+ Amazon SNS セッション終了の概要

  ストリーム処理セッションが終了すると、Amazon SNS 通知も送信されます。この通知には、セッションのメタデータがリスト表示されます。また、処理されたストリームの継続時間などの詳細情報が含まれています。この通知の形式は次のとおりです。

  ```
  {"Subject": "Rekognition Stream Processing Event",
      "Message": {
          "inputInformation": {
              "kinesisVideo": {
                  "streamArn": string,
                  "processedVideoDurationMillis": number
              }
          },
          "eventNamespace": {
              "type": "STREAM_PROCESSING_COMPLETE"
          },
          "streamProcessingResults": {
              "message": string
          },
          "eventId": string,
          "tags": {
              [string]: string
          },
          "sessionId": string,
          "startStreamProcessorRequest": object
      }
  }
  ```
+ Amazon S3 バケットレポート

  Amazon Rekognition Video は、ビデオ分析オペレーションの詳細な推論結果を、`CreateStreamProcessor` オペレーションで提供された Amazon S3 バケットに公開します。これらの結果には、対象のオブジェクトや人物が初めて検出されたイメージフレームが含まれています。

  フレームは S3 パス ObjectKeyPrefix/StreamProcessorName/SessionId/*service\$1determined\$1unique\$1path* で入手できます。このパスでは、**LabelKeyPrefix** はお客様指定のオプション引数、**StreamProcessorName** はストリームプロセッサリソースの名前、**SessionId** はストリーム処理セッションの固有の ID です。これらは状況に応じて置き換えてください。