

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為串流視訊事件呼叫標籤偵測操作
<a name="streaming-labels-detection"></a>

**注意**  
串流影片和大量影像分析不再可供新客戶使用。如需詳細資訊，請參閱[Amazon Rekognition 功能可用性變更](rekognition-availability-changes.md)。  
**此變更不會影響其他 Amazon Rekognition 功能的可用性。**

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`) 作為輸入。您也可以提供 KMS 金鑰 ID 來加密傳送到 S3 儲存貯體的資料。您可以指定要在 `Settings` 中偵測的專案，例如人物、包裹和寵物，或人物、包裹和寵物。您也可以用 `RegionsOfInterest` 指定希望 Amazon Rekognition 在框架中的哪個位置進行監控。以下是 `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
        }
      ]
    }
  ]
}
```

請注意，您可以在為串流處理器指定 `ConnectedHomeSettings` 時變更此 `MinConfidence` 的值。`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>

您可以透過呼叫 [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html) 並提供您在 `CreateStreamProcessor` 中指定的串流處理器名稱，來開始分析串流影片。當您在標籤偵測串流處理器上執行 `StartStreamProcessor` 作業時，您可以輸入開始和停止資訊以決定處理時間。

啟動串流處理器時，標籤偵測串流處理器狀態會以下列方式變更：

1. 當您呼叫時 `StartStreamProcessor`，標籤偵測串流處理器狀態會從 `STOPPED` 或 `FAILED` 變成 `STARTING`。

1. 當標籤偵測串流處理器執行時，會保持在 `STARTING`。

1. 當標籤偵測串流處理器完成執行時，狀態將變為 `STOPPED` 或 `FAILED`。

`StartSelector` 指定 Kinesis 串流中要開始處理的起點。您可以使用 KVS 生產者時間戳記或 KVS 片段編號。如需詳細資訊，請參閱[片段](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_Fragment.html)。

**注意**  
如果您使用 KVS 生產者時間戳記，則必須輸入以毫秒為單位的時間。

`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 從標籤偵測串流處理器發佈通知的方式有三種：針對物件偵測事件的 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\_determined\_unique\_path}}。在此路徑中，**LabelKeyPrefix** 是客戶提供的選擇性參數，**StreamProcessorName** 是串流處理器資源的名稱，而 **SessionId** 是串流處理工作階段的唯一 ID。根據對此進行更換。